Add some admits to work on later

This commit is contained in:
Yiyun Liu 2025-02-25 16:12:44 -05:00
parent b2aec9c6ce
commit 291d821d94
2 changed files with 31 additions and 7 deletions

View file

@ -130,6 +130,8 @@ Proof.
move : hA0 => /[swap]. move : Su_Transitive. repeat move/[apply]. move : hA0 => /[swap]. move : Su_Transitive. repeat move/[apply].
move {hS}. move {hS}.
move => ?. apply : E_Conv; eauto. apply : E_ProjPair2; eauto. move => ?. apply : E_Conv; eauto. apply : E_ProjPair2; eauto.
- admit.
- admit.
- qauto l:on use:Abs_Inv, E_Conv, regularity_sub0, E_Abs. - qauto l:on use:Abs_Inv, E_Conv, regularity_sub0, E_Abs.
- move => a0 a1 b ha iha Γ A /App_Inv [A0][B0][ih0][ih1]hU. - move => a0 a1 b ha iha Γ A /App_Inv [A0][B0][ih0][ih1]hU.
have {}/iha iha := ih0. have {}/iha iha := ih0.
@ -170,7 +172,7 @@ Proof.
have {}/ihA ihA := h1. have {}/ihA ihA := h1.
apply : E_Conv; eauto. apply : E_Conv; eauto.
apply E_Bind'; eauto using E_Refl. apply E_Bind'; eauto using E_Refl.
Qed. Admitted.
Theorem subject_reduction n Γ (a b A : PTm n) : Theorem subject_reduction n Γ (a b A : PTm n) :
Γ a A -> Γ a A ->

View file

@ -92,6 +92,15 @@ Proof.
move => ->. eauto using T_Pair. move => ->. eauto using T_Pair.
Qed. Qed.
Lemma T_Ind' s Γ P (a : PTm s) b c i U :
U = subst_PTm (scons a VarPTm) P ->
funcomp (ren_PTm shift) (scons PNat Γ) P PUniv i ->
Γ a PNat ->
Γ b subst_PTm (scons PZero VarPTm) P ->
funcomp (ren_PTm shift)(scons P (funcomp (ren_PTm shift) (scons PNat Γ))) c ren_PTm shift (subst_PTm (scons (PSuc (VarPTm var_zero)) (funcomp VarPTm shift) ) P) ->
Γ PInd P a b c U.
Proof. move =>->. apply T_Ind. Qed.
Lemma T_Proj2' n Γ (a : PTm n) A B U : Lemma T_Proj2' n Γ (a : PTm n) A B U :
U = subst_PTm (scons (PProj PL a) VarPTm) B -> U = subst_PTm (scons (PProj PL a) VarPTm) B ->
Γ a PBind PSig A B -> Γ a PBind PSig A B ->
@ -103,9 +112,7 @@ Lemma E_Proj2' n Γ i (a b : PTm n) A B U :
Γ PBind PSig A B (PUniv i) -> Γ PBind PSig A B (PUniv i) ->
Γ a b PBind PSig A B -> Γ a b PBind PSig A B ->
Γ PProj PR a PProj PR b U. Γ PProj PR a PProj PR b U.
Proof. Proof. move => ->. apply E_Proj2. Qed.
move => ->. apply E_Proj2.
Qed.
Lemma E_Bind' n Γ i p (A0 A1 : PTm n) B0 B1 : Lemma E_Bind' n Γ i p (A0 A1 : PTm n) B0 B1 :
Γ A0 PUniv i -> Γ A0 PUniv i ->
@ -184,6 +191,7 @@ Proof.
- move => n Γ a A b B i hA ihA hB ihB hS ihS m Δ ξ . - move => n Γ a A b B i hA ihA hB ihB hS ihS m Δ ξ .
eapply T_Pair' with (U := ren_PTm ξ (subst_PTm (scons a VarPTm) B));eauto. by asimpl. eapply T_Pair' with (U := ren_PTm ξ (subst_PTm (scons a VarPTm) B));eauto. by asimpl.
- move => n Γ a A B ha iha m Δ ξ . apply : T_Proj2'; eauto. by asimpl. - move => n Γ a A B ha iha m Δ ξ . apply : T_Proj2'; eauto. by asimpl.
- admit.
- hauto lq:on ctrs:Wt,LEq. - hauto lq:on ctrs:Wt,LEq.
- hauto lq:on ctrs:Eq. - hauto lq:on ctrs:Eq.
- hauto lq:on rew:off use:E_Bind', Wff_Cons, renaming_up. - hauto lq:on rew:off use:E_Bind', Wff_Cons, renaming_up.
@ -199,6 +207,7 @@ Proof.
move : ihb . repeat move/[apply]. move : ihb . repeat move/[apply].
by asimpl. by asimpl.
- move => *. apply : E_Proj2'; eauto. by asimpl. - move => *. apply : E_Proj2'; eauto. by asimpl.
- admit.
- qauto l:on ctrs:Eq, LEq. - qauto l:on ctrs:Eq, LEq.
- move => n Γ a b A B i hP ihP hb ihb ha iha m Δ ξ . - move => n Γ a b A B i hP ihP hb ihb ha iha m Δ ξ .
move : ihP () (). repeat move/[apply]. move : ihP () (). repeat move/[apply].
@ -216,6 +225,8 @@ Proof.
- move => n Γ a b A B i hP ihP ha iha hb ihb m Δ ξ . - move => n Γ a b A B i hP ihP ha iha hb ihb m Δ ξ .
apply : E_ProjPair2'; eauto. by asimpl. apply : E_ProjPair2'; eauto. by asimpl.
move : ihb ; repeat move/[apply]. by asimpl. move : ihb ; repeat move/[apply]. by asimpl.
- admit.
- admit.
- move => *. - move => *.
apply : E_AppEta'; eauto. by asimpl. apply : E_AppEta'; eauto. by asimpl.
- qauto l:on use:E_PairEta. - qauto l:on use:E_PairEta.
@ -228,7 +239,7 @@ Proof.
- qauto l:on ctrs:LEq. - qauto l:on ctrs:LEq.
- move => *; apply : Su_Pi_Proj2'; eauto; by asimpl. - move => *; apply : Su_Pi_Proj2'; eauto; by asimpl.
- move => *. apply : Su_Sig_Proj2'; eauto; by asimpl. - move => *. apply : Su_Sig_Proj2'; eauto; by asimpl.
Qed. Admitted.
Definition morphing_ok {n m} Δ Γ (ρ : fin n -> PTm m) := Definition morphing_ok {n m} Δ Γ (ρ : fin n -> PTm m) :=
forall i, Δ ρ i subst_PTm ρ (Γ i). forall i, Δ ρ i subst_PTm ρ (Γ i).
@ -342,6 +353,10 @@ Proof.
- move => *. apply : T_Proj2'; eauto. by asimpl. - move => *. apply : T_Proj2'; eauto. by asimpl.
- hauto lq:on ctrs:Wt,LEq. - hauto lq:on ctrs:Wt,LEq.
- qauto l:on ctrs:Wt. - qauto l:on ctrs:Wt.
- qauto l:on ctrs:Wt.
- qauto l:on ctrs:Wt.
- admit.
- qauto l:on ctrs:Wt.
- hauto lq:on ctrs:Eq. - hauto lq:on ctrs:Eq.
- hauto lq:on ctrs:Eq. - hauto lq:on ctrs:Eq.
- hauto lq:on ctrs:Eq. - hauto lq:on ctrs:Eq.
@ -359,6 +374,7 @@ Proof.
by asimpl. by asimpl.
- hauto q:on ctrs:Eq. - hauto q:on ctrs:Eq.
- move => *. apply : E_Proj2'; eauto. by asimpl. - move => *. apply : E_Proj2'; eauto. by asimpl.
- admit.
- qauto l:on ctrs:Eq, LEq. - qauto l:on ctrs:Eq, LEq.
- move => n Γ a b A B i hP ihP hb ihb ha iha m Δ ρ hρ. - move => n Γ a b A B i hP ihP hb ihb ha iha m Δ ρ hρ.
move : ihP (hρ) (). repeat move/[apply]. move : ihP (hρ) (). repeat move/[apply].
@ -376,6 +392,8 @@ Proof.
- move => n Γ a b A B i hP ihP ha iha hb ihb m Δ ρ hρ. - move => n Γ a b A B i hP ihP ha iha hb ihb m Δ ρ hρ.
apply : E_ProjPair2'; eauto. by asimpl. apply : E_ProjPair2'; eauto. by asimpl.
move : ihb hρ ; repeat move/[apply]. by asimpl. move : ihb hρ ; repeat move/[apply]. by asimpl.
- admit.
- admit.
- move => *. - move => *.
apply : E_AppEta'; eauto. by asimpl. apply : E_AppEta'; eauto. by asimpl.
- qauto l:on use:E_PairEta. - qauto l:on use:E_PairEta.
@ -388,7 +406,7 @@ Proof.
- qauto l:on ctrs:LEq. - qauto l:on ctrs:LEq.
- move => *; apply : Su_Pi_Proj2'; eauto; by asimpl. - move => *; apply : Su_Pi_Proj2'; eauto; by asimpl.
- move => *. apply : Su_Sig_Proj2'; eauto; by asimpl. - move => *. apply : Su_Sig_Proj2'; eauto; by asimpl.
Qed. Admitted.
Lemma morphing_wt : forall n Γ (a A : PTm n), Γ a A -> forall m Δ (ρ : fin n -> PTm m), Δ -> morphing_ok Δ Γ ρ -> Δ subst_PTm ρ a subst_PTm ρ A. Lemma morphing_wt : forall n Γ (a A : PTm n), Γ a A -> forall m Δ (ρ : fin n -> PTm m), Δ -> morphing_ok Δ Γ ρ -> Δ subst_PTm ρ a subst_PTm ρ A.
Proof. sfirstorder use:morphing. Qed. Proof. sfirstorder use:morphing. Qed.
@ -505,6 +523,7 @@ Proof.
exists j. have : Γ PProj PL a A by qauto use:T_Proj1. exists j. have : Γ PProj PL a A by qauto use:T_Proj1.
move : substing_wt h1; repeat move/[apply]. move : substing_wt h1; repeat move/[apply].
by asimpl. by asimpl.
- admit.
- sfirstorder. - sfirstorder.
- sfirstorder. - sfirstorder.
- sfirstorder. - sfirstorder.
@ -535,9 +554,12 @@ Proof.
eauto using bind_inst. eauto using bind_inst.
move /T_Proj1 in iha. move /T_Proj1 in iha.
hauto lq:on ctrs:Wt,Eq,LEq use:Bind_Inv, substing_wt. hauto lq:on ctrs:Wt,Eq,LEq use:Bind_Inv, substing_wt.
- admit.
- hauto lq:on ctrs:Wt. - hauto lq:on ctrs:Wt.
- hauto q:on use:substing_wt db:wt. - hauto q:on use:substing_wt db:wt.
- hauto l:on use:bind_inst db:wt. - hauto l:on use:bind_inst db:wt.
- admit.
- admit.
- move => n Γ b A B i ihΓ hP _ hb [i0 ihb]. - move => n Γ b A B i ihΓ hP _ hb [i0 ihb].
repeat split => //=; eauto with wt. repeat split => //=; eauto with wt.
have {}hb : funcomp (ren_PTm shift) (scons A Γ) ren_PTm shift b ren_PTm shift (PBind PPi A B) have {}hb : funcomp (ren_PTm shift) (scons A Γ) ren_PTm shift b ren_PTm shift (PBind PPi A B)
@ -603,7 +625,7 @@ Proof.
+ apply Cumulativity with (i := i1); eauto. + apply Cumulativity with (i := i1); eauto.
have : Γ a1 A1 by eauto using T_Conv. have : Γ a1 A1 by eauto using T_Conv.
move : substing_wt ih1';repeat move/[apply]. by asimpl. move : substing_wt ih1';repeat move/[apply]. by asimpl.
Qed. Admitted.
Lemma Var_Inv n Γ (i : fin n) A : Lemma Var_Inv n Γ (i : fin n) A :
Γ VarPTm i A -> Γ VarPTm i A ->