Add the statement that the logrel respects beta eta laws
This commit is contained in:
parent
8e0f9a1e0a
commit
368c83dd8e
1 changed files with 49 additions and 1 deletions
|
@ -2,7 +2,7 @@ Require Import Autosubst2.core Autosubst2.fintype Autosubst2.syntax.
|
||||||
Require Import fp_red.
|
Require Import fp_red.
|
||||||
From Hammer Require Import Tactics.
|
From Hammer Require Import Tactics.
|
||||||
From Equations Require Import Equations.
|
From Equations Require Import Equations.
|
||||||
Require Import ssreflect.
|
Require Import ssreflect ssrbool.
|
||||||
Require Import Logic.PropExtensionality (propositional_extensionality).
|
Require Import Logic.PropExtensionality (propositional_extensionality).
|
||||||
From stdpp Require Import relations (rtc(..)).
|
From stdpp Require Import relations (rtc(..)).
|
||||||
Definition ProdSpace {n} (PA : Tm n -> Prop)
|
Definition ProdSpace {n} (PA : Tm n -> Prop)
|
||||||
|
@ -178,3 +178,51 @@ Lemma InterpUnivN_back_preservation_star n i (A : Tm n) B P (h : ⟦ B ⟧ i ↘
|
||||||
rtc RPar.R A B ->
|
rtc RPar.R A B ->
|
||||||
⟦ A ⟧ i ↘ P.
|
⟦ A ⟧ i ↘ P.
|
||||||
Proof. hauto l:on rew:db:InterpUnivN use:InterpExt_back_preservation_star. Qed.
|
Proof. hauto l:on rew:db:InterpUnivN use:InterpExt_back_preservation_star. Qed.
|
||||||
|
|
||||||
|
Definition ty_hf {n} (a : Tm n) :=
|
||||||
|
match a with
|
||||||
|
| Pi _ _ => true
|
||||||
|
| Univ _ => true
|
||||||
|
| _ => false
|
||||||
|
end.
|
||||||
|
|
||||||
|
Lemma InterpExtInv n i I (A : Tm n) PA :
|
||||||
|
⟦ A ⟧ i ;; I ↘ PA ->
|
||||||
|
exists B, ty_hf B /\ rtc RPar.R A B /\ ⟦ B ⟧ i ;; I ↘ PA.
|
||||||
|
Proof.
|
||||||
|
move => h. elim : A PA /h.
|
||||||
|
- move => A B PA PF hPA _ hPF hPF0 _.
|
||||||
|
exists (Pi A B). repeat split => //=.
|
||||||
|
apply rtc_refl.
|
||||||
|
hauto l:on ctrs:InterpExt.
|
||||||
|
- move => j ?. exists (Univ j).
|
||||||
|
hauto l:on ctrs:InterpExt.
|
||||||
|
- hauto lq:on ctrs:rtc.
|
||||||
|
Qed.
|
||||||
|
|
||||||
|
Lemma InterpExt_Join n i I (A B : Tm n) PA PB :
|
||||||
|
⟦ A ⟧ i ;; I ↘ PA ->
|
||||||
|
⟦ B ⟧ i ;; I ↘ PB ->
|
||||||
|
join A B ->
|
||||||
|
PA = PB.
|
||||||
|
Proof.
|
||||||
|
move => h. move : B PB. elim : A PA /h.
|
||||||
|
- move => A B PA PF hPA ihPA hTot hRes ihPF U PU /InterpExtInv.
|
||||||
|
move => [B0 []].
|
||||||
|
case : B0 => //=.
|
||||||
|
+ move => A0 B0 _ [hr hPi].
|
||||||
|
move /InterpExt_Fun_inv : hPi.
|
||||||
|
move => [PA0][PF0][hPA0][hTot0][hRes0]?. subst.
|
||||||
|
move => hjoin.
|
||||||
|
have ? : join A A0 by admit.
|
||||||
|
have ? : join B B0 by admit.
|
||||||
|
have ? : PA0 = PA by hauto l:on. subst.
|
||||||
|
rewrite /ProdSpace.
|
||||||
|
extensionality b.
|
||||||
|
apply propositional_extensionality.
|
||||||
|
admit.
|
||||||
|
(* Contradiction *)
|
||||||
|
+ admit.
|
||||||
|
- admit.
|
||||||
|
- admit.
|
||||||
|
Admitted.
|
||||||
|
|
Loading…
Add table
Reference in a new issue