Fix the broken pair eta rule
This commit is contained in:
parent
9f80013df6
commit
b8d7ebfaa2
1 changed files with 15 additions and 7 deletions
|
@ -25,10 +25,9 @@ Module ERed.
|
||||||
| AppEta a0 a1 :
|
| AppEta a0 a1 :
|
||||||
R a0 a1 ->
|
R a0 a1 ->
|
||||||
R (PAbs (PApp (ren_PTm shift a0) (VarPTm var_zero))) a1
|
R (PAbs (PApp (ren_PTm shift a0) (VarPTm var_zero))) a1
|
||||||
| PairEta a0 b0 a1 :
|
| PairEta a0 a1 :
|
||||||
R a0 a1 ->
|
R a0 a1 ->
|
||||||
R b0 a1 ->
|
R (PPair (PProj PL a0) (PProj PR a0)) a1
|
||||||
R (PPair (PProj PL a0) (PProj PR b0)) a1
|
|
||||||
(*************** Congruence ********************)
|
(*************** Congruence ********************)
|
||||||
| AbsCong a0 a1 :
|
| AbsCong a0 a1 :
|
||||||
R a0 a1 ->
|
R a0 a1 ->
|
||||||
|
@ -230,7 +229,7 @@ Proof.
|
||||||
elim /ERed.inv => //= _.
|
elim /ERed.inv => //= _.
|
||||||
move => p a0 a1 ha [*]. subst.
|
move => p a0 a1 ha [*]. subst.
|
||||||
elim /ERed.inv : ha => //= _.
|
elim /ERed.inv : ha => //= _.
|
||||||
+ move => a0 b0 a2 ha ha' [*]. subst.
|
+ move => a0 a2 ha' [*]. subst.
|
||||||
exists (PProj PL a1).
|
exists (PProj PL a1).
|
||||||
split. sauto.
|
split. sauto.
|
||||||
sauto lq:on.
|
sauto lq:on.
|
||||||
|
@ -239,7 +238,7 @@ Proof.
|
||||||
elim /ERed.inv => //=_.
|
elim /ERed.inv => //=_.
|
||||||
move => p a0 a1 + [*]. subst.
|
move => p a0 a1 + [*]. subst.
|
||||||
elim /ERed.inv => //=_.
|
elim /ERed.inv => //=_.
|
||||||
+ move => a0 b0 a2 h0 h1 [*]. subst.
|
+ move => a0 a2 h1 [*]. subst.
|
||||||
exists (PProj PR a1).
|
exists (PProj PR a1).
|
||||||
split. sauto.
|
split. sauto.
|
||||||
sauto lq:on.
|
sauto lq:on.
|
||||||
|
@ -319,8 +318,17 @@ Function tstar {n} (a : PTm n) :=
|
||||||
| PProj p a => PProj p (tstar a)
|
| PProj p a => PProj p (tstar a)
|
||||||
end.
|
end.
|
||||||
|
|
||||||
Lemma η_nf n (a b c : PTm n) : ERed.R a b -> nf b ->
|
Lemma η_nf n (a b : PTm n) : ERed.R a b -> nf b -> ERed.R (tstar a) b.
|
||||||
ERed.R c b.
|
Proof.
|
||||||
|
move => h.
|
||||||
|
elim : n a b /h => n.
|
||||||
|
- move => a0 a1 ha iha.
|
||||||
|
|
||||||
|
move : ha. clear. best.
|
||||||
|
clear.
|
||||||
|
- sfirstorder.
|
||||||
|
-
|
||||||
|
|
||||||
|
|
||||||
Lemma η_nf n (a b c : PTm n) : ERed.R a b -> nf b -> RRed.R a c ->
|
Lemma η_nf n (a b c : PTm n) : ERed.R a b -> nf b -> RRed.R a c ->
|
||||||
ERed.R c b.
|
ERed.R c b.
|
||||||
|
|
Loading…
Add table
Reference in a new issue