Section TcNRAEnvIgnore.
Require Import List String.
Require Import Utils BasicSystem.
Require Import NRA NRAEq cNRAEnv cNRAEnvEq.
Require Import cNRAEnvIgnore.
Require Import TcNRAEnv.
Local Open Scope nraenv_core_scope.
Lemma tnraenv_core_ignores_env_swap {
m:
basic_model} (
e:
nraenv_core) :
nraenv_core_ignores_env e ->
forall τ
c (τ
in τ
out τ
env₁ τ
env₂:
rtype),
e ▷ τ
in >=> τ
out ⊣ τ
c;τ
env₁ ->
e ▷ τ
in >=> τ
out ⊣ τ
c;τ
env₂.
Proof.
induction e ; try reflexivity; simpl in *; try congruence; try contradiction; intros.
- inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H; clear H.
inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H; clear H.
inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H; clear H.
inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H; clear H.
inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H; clear H.
inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H; clear H.
inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H; clear H.
inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H; clear H.
inversion H0; clear H0.
econstructor; eauto.
- inversion H; clear H.
inversion H0; clear H0.
econstructor; eauto.
- inversion H; clear H.
inversion H0; clear H0.
econstructor; eauto.
- inversion H0; clear H0.
econstructor; eauto.
- inversion H0; clear H0.
econstructor; eauto.
Qed.
Lemma tnraenv_core_ignores_id_swap {
m:
basic_model} (
e:
nraenv_core) :
nraenv_core_ignores_id e ->
forall τ
c (τ
in₁ τ
in₂ τ
out τ
env:
rtype),
e ▷ τ
in₁ >=> τ
out ⊣ τ
c;τ
env ->
e ▷ τ
in₂ >=> τ
out ⊣ τ
c;τ
env.
Proof.
induction e ; try reflexivity; simpl in *; try congruence; try contradiction; intros.
- inversion H0; clear H0; intros.
econstructor; eauto.
- inversion H; clear H.
inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H; clear H.
inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H; clear H.
inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H0; clear H0; subst.
inversion H; clear H; subst.
econstructor; eauto.
- inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H0; clear H0. econstructor; eauto.
- inversion H0; clear H0. econstructor; eauto.
- inversion H; clear H.
inversion H0; clear H0; subst.
econstructor; eauto.
- inversion H0; clear H0; subst.
econstructor; eauto.
Qed.
End TcNRAEnvIgnore.