Finish regularity

This commit is contained in:
Yiyun Liu 2025-02-25 21:04:32 -05:00
parent 96bc223b0a
commit bb39f157ba

View file

@ -542,7 +542,7 @@ Proof.
have hξ' : morphing_ok (funcomp (ren_PTm shift) (scons PNat Δ)) have hξ' : morphing_ok (funcomp (ren_PTm shift) (scons PNat Δ))
(funcomp (ren_PTm shift) (scons PNat Γ)) (up_PTm_PTm ξ). (funcomp (ren_PTm shift) (scons PNat Γ)) (up_PTm_PTm ξ).
move /morphing_up : . move /(_ PNat 0). move /morphing_up : . move /(_ PNat 0).
apply. by apply T_Nat. apply. by apply T_Nat'.
apply E_IndSuc' with (i := i). by asimpl. by asimpl. apply E_IndSuc' with (i := i). by asimpl. by asimpl.
qauto l:on use:Wff_Cons', T_Nat', renaming_up. qauto l:on use:Wff_Cons', T_Nat', renaming_up.
by eauto with wt. by eauto with wt.
@ -681,7 +681,8 @@ 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. - move => s Γ P a b c i + ? + *. clear. move => h ha. exists i.
hauto lq:on use:substing_wt.
- sfirstorder. - sfirstorder.
- sfirstorder. - sfirstorder.
- sfirstorder. - sfirstorder.
@ -712,12 +713,45 @@ 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. - move => n Γ P0 P1 a0 a1 b0 b1 c0 c1 i _ _ hPE [hP0 [hP1 _]] hae [ha0 [ha1 _]] _ [hb0 [hb1 hb2]] _ [hc0 [hc1 hc2]].
have wfΓ : Γ by hauto use:wff_mutual.
repeat split. by eauto using T_Ind.
apply : T_Conv. apply : T_Ind; eauto.
apply : T_Conv; eauto.
eapply morphing; by eauto using Su_Eq, morphing_ext, morphing_id with wt.
apply : T_Conv. apply : ctx_eq_subst_one; eauto.
by eauto using Su_Eq, E_Symmetric.
eapply renaming; eauto.
eapply morphing; eauto 20 using Su_Eq, morphing_ext, morphing_id with wt.
apply morphing_ext; eauto.
replace (funcomp VarPTm shift) with (funcomp (@ren_PTm n _ shift) VarPTm); last by asimpl.
apply : morphing_ren; eauto using Wff_Cons' with wt.
apply : renaming_shift; eauto. by apply morphing_id.
apply T_Suc. apply T_Var'. by asimpl. apply : Wff_Cons'; eauto using T_Nat'.
apply : Wff_Cons'; eauto. apply : renaming_shift; eauto.
have /E_Symmetric /Su_Eq : Γ PBind PSig PNat P0 PBind PSig PNat P1 PUniv i by eauto with wt.
move /E_Symmetric in hae.
by eauto using Su_Sig_Proj2.
sauto lq:on use:substing_wt.
- 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. - move => n Γ P i b c hP _ hb _ hc _.
- admit. have ? : Γ by hauto use:wff_mutual.
repeat split=>//.
by eauto with wt.
sauto lq:on use:substing_wt.
- move => s Γ P a b c i hP _ ha _ hb _ hc _.
have ? : Γ by hauto use:wff_mutual.
repeat split=>//.
apply : T_Ind; eauto with wt.
set Ξ : fin (S (S _)) -> _ := (X in X _ _) in hc.
have : morphing_ok Γ Ξ (scons (PInd P a b c) (scons a VarPTm)).
apply morphing_ext. apply morphing_ext. by apply morphing_id.
by eauto. by eauto with wt.
subst Ξ.
move : morphing_wt hc; repeat move/[apply]. asimpl. by apply.
sauto lq:on use:substing_wt.
- 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)
@ -783,7 +817,8 @@ 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.
Admitted. Unshelve. all: exact 0.
Qed.
Lemma Var_Inv n Γ (i : fin n) A : Lemma Var_Inv n Γ (i : fin n) A :
Γ VarPTm i A -> Γ VarPTm i A ->