Finish regularity
This commit is contained in:
parent
96bc223b0a
commit
bb39f157ba
1 changed files with 41 additions and 6 deletions
|
@ -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 : hξ. move /(_ PNat 0).
|
move /morphing_up : hξ. 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 hΓ ihΓ hP _ hb [i0 ihb].
|
- move => n Γ b A B i hΓ 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 ->
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue