X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Fcontribs%2FLAMBDA-TYPES%2FLambdaDelta-1%2Fsubst1%2Fsubst1.ma;h=c683a49405c91613c5b7d501b988415bc5b56c6f;hb=e92710b1d9774a6491122668c8463b8658114610;hp=dc20f3ff3607efca80b116d34575919e14e27a11;hpb=831af787465e1bff886e22ee14b68c8f1bb0177c;p=helm.git diff --git a/helm/software/matita/contribs/LAMBDA-TYPES/LambdaDelta-1/subst1/subst1.ma b/helm/software/matita/contribs/LAMBDA-TYPES/LambdaDelta-1/subst1/subst1.ma index dc20f3ff3..c683a4940 100644 --- a/helm/software/matita/contribs/LAMBDA-TYPES/LambdaDelta-1/subst1/subst1.ma +++ b/helm/software/matita/contribs/LAMBDA-TYPES/LambdaDelta-1/subst1/subst1.ma @@ -14,11 +14,9 @@ (* This file was automatically generated: do not edit *********************) -set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/subst1/subst1". +include "LambdaDelta-1/subst1/fwd.ma". -include "subst1/fwd.ma". - -include "subst0/subst0.ma". +include "LambdaDelta-1/subst0/subst0.ma". theorem subst1_subst1: \forall (t1: T).(\forall (t2: T).(\forall (u2: T).(\forall (j: nat).((subst1 @@ -35,25 +33,25 @@ t)))))))) (\lambda (u1: T).(\lambda (u: T).(\lambda (i: nat).(\lambda (_: (t: T).(subst1 (S (plus i j)) u t t1)) t1 (subst1_refl j u1 t1) (subst1_refl (S (plus i j)) u t1)))))) (\lambda (t3: T).(\lambda (H0: (subst0 j u2 t1 t3)).(\lambda (u1: T).(\lambda (u: T).(\lambda (i: nat).(\lambda (H1: (subst1 -i u u1 u2)).(insert_eq T u2 (\lambda (t: T).(subst1 i u u1 t)) (ex2 T -(\lambda (t: T).(subst1 j u1 t1 t)) (\lambda (t: T).(subst1 (S (plus i j)) u -t t3))) (\lambda (y: T).(\lambda (H2: (subst1 i u u1 y)).(subst1_ind i u u1 -(\lambda (t: T).((eq T t u2) \to (ex2 T (\lambda (t0: T).(subst1 j u1 t1 t0)) -(\lambda (t0: T).(subst1 (S (plus i j)) u t0 t3))))) (\lambda (H3: (eq T u1 -u2)).(eq_ind_r T u2 (\lambda (t: T).(ex2 T (\lambda (t0: T).(subst1 j t t1 -t0)) (\lambda (t0: T).(subst1 (S (plus i j)) u t0 t3)))) (ex_intro2 T -(\lambda (t: T).(subst1 j u2 t1 t)) (\lambda (t: T).(subst1 (S (plus i j)) u -t t3)) t3 (subst1_single j u2 t1 t3 H0) (subst1_refl (S (plus i j)) u t3)) u1 -H3)) (\lambda (t0: T).(\lambda (H3: (subst0 i u u1 t0)).(\lambda (H4: (eq T -t0 u2)).(let H5 \def (eq_ind T t0 (\lambda (t: T).(subst0 i u u1 t)) H3 u2 -H4) in (ex2_ind T (\lambda (t: T).(subst0 j u1 t1 t)) (\lambda (t: T).(subst0 -(S (plus i j)) u t t3)) (ex2 T (\lambda (t: T).(subst1 j u1 t1 t)) (\lambda -(t: T).(subst1 (S (plus i j)) u t t3))) (\lambda (x: T).(\lambda (H6: (subst0 -j u1 t1 x)).(\lambda (H7: (subst0 (S (plus i j)) u x t3)).(ex_intro2 T +i u u1 u2)).(insert_eq T u2 (\lambda (t: T).(subst1 i u u1 t)) (\lambda (_: +T).(ex2 T (\lambda (t0: T).(subst1 j u1 t1 t0)) (\lambda (t0: T).(subst1 (S +(plus i j)) u t0 t3)))) (\lambda (y: T).(\lambda (H2: (subst1 i u u1 +y)).(subst1_ind i u u1 (\lambda (t: T).((eq T t u2) \to (ex2 T (\lambda (t0: +T).(subst1 j u1 t1 t0)) (\lambda (t0: T).(subst1 (S (plus i j)) u t0 t3))))) +(\lambda (H3: (eq T u1 u2)).(eq_ind_r T u2 (\lambda (t: T).(ex2 T (\lambda +(t0: T).(subst1 j t t1 t0)) (\lambda (t0: T).(subst1 (S (plus i j)) u t0 +t3)))) (ex_intro2 T (\lambda (t: T).(subst1 j u2 t1 t)) (\lambda (t: +T).(subst1 (S (plus i j)) u t t3)) t3 (subst1_single j u2 t1 t3 H0) +(subst1_refl (S (plus i j)) u t3)) u1 H3)) (\lambda (t0: T).(\lambda (H3: +(subst0 i u u1 t0)).(\lambda (H4: (eq T t0 u2)).(let H5 \def (eq_ind T t0 +(\lambda (t: T).(subst0 i u u1 t)) H3 u2 H4) in (ex2_ind T (\lambda (t: +T).(subst0 j u1 t1 t)) (\lambda (t: T).(subst0 (S (plus i j)) u t t3)) (ex2 T (\lambda (t: T).(subst1 j u1 t1 t)) (\lambda (t: T).(subst1 (S (plus i j)) u -t t3)) x (subst1_single j u1 t1 x H6) (subst1_single (S (plus i j)) u x t3 -H7))))) (subst0_subst0 t1 t3 u2 j H0 u1 u i H5)))))) y H2))) H1))))))) t2 -H))))). +t t3))) (\lambda (x: T).(\lambda (H6: (subst0 j u1 t1 x)).(\lambda (H7: +(subst0 (S (plus i j)) u x t3)).(ex_intro2 T (\lambda (t: T).(subst1 j u1 t1 +t)) (\lambda (t: T).(subst1 (S (plus i j)) u t t3)) x (subst1_single j u1 t1 +x H6) (subst1_single (S (plus i j)) u x t3 H7))))) (subst0_subst0 t1 t3 u2 j +H0 u1 u i H5)))))) y H2))) H1))))))) t2 H))))). theorem subst1_subst1_back: \forall (t1: T).(\forall (t2: T).(\forall (u2: T).(\forall (j: nat).((subst1 @@ -169,30 +167,30 @@ t2)) \to (eq T t1 t2))))))) \def \lambda (t0: T).(\lambda (t1: T).(\lambda (u: T).(\lambda (i: nat).(\lambda (H: (subst1 i u t0 (lift (S O) i t1))).(insert_eq T (lift (S O) i t1) -(\lambda (t: T).(subst1 i u t0 t)) (\forall (t2: T).((subst1 i u t0 (lift (S -O) i t2)) \to (eq T t1 t2))) (\lambda (y: T).(\lambda (H0: (subst1 i u t0 -y)).(subst1_ind i u t0 (\lambda (t: T).((eq T t (lift (S O) i t1)) \to -(\forall (t2: T).((subst1 i u t0 (lift (S O) i t2)) \to (eq T t1 t2))))) -(\lambda (H1: (eq T t0 (lift (S O) i t1))).(\lambda (t2: T).(\lambda (H2: -(subst1 i u t0 (lift (S O) i t2))).(let H3 \def (eq_ind T t0 (\lambda (t: -T).(subst1 i u t (lift (S O) i t2))) H2 (lift (S O) i t1) H1) in (let H4 \def -(sym_eq T (lift (S O) i t2) (lift (S O) i t1) (subst1_gen_lift_eq t1 u (lift -(S O) i t2) (S O) i i (le_n i) (eq_ind_r nat (plus (S O) i) (\lambda (n: -nat).(lt i n)) (le_n (plus (S O) i)) (plus i (S O)) (plus_comm i (S O))) H3)) -in (lift_inj t1 t2 (S O) i H4)))))) (\lambda (t2: T).(\lambda (H1: (subst0 i -u t0 t2)).(\lambda (H2: (eq T t2 (lift (S O) i t1))).(\lambda (t3: +(\lambda (t: T).(subst1 i u t0 t)) (\lambda (_: T).(\forall (t2: T).((subst1 +i u t0 (lift (S O) i t2)) \to (eq T t1 t2)))) (\lambda (y: T).(\lambda (H0: +(subst1 i u t0 y)).(subst1_ind i u t0 (\lambda (t: T).((eq T t (lift (S O) i +t1)) \to (\forall (t2: T).((subst1 i u t0 (lift (S O) i t2)) \to (eq T t1 +t2))))) (\lambda (H1: (eq T t0 (lift (S O) i t1))).(\lambda (t2: T).(\lambda +(H2: (subst1 i u t0 (lift (S O) i t2))).(let H3 \def (eq_ind T t0 (\lambda +(t: T).(subst1 i u t (lift (S O) i t2))) H2 (lift (S O) i t1) H1) in (let H4 +\def (sym_eq T (lift (S O) i t2) (lift (S O) i t1) (subst1_gen_lift_eq t1 u +(lift (S O) i t2) (S O) i i (le_n i) (eq_ind_r nat (plus (S O) i) (\lambda +(n: nat).(lt i n)) (le_n (plus (S O) i)) (plus i (S O)) (plus_comm i (S O))) +H3)) in (lift_inj t1 t2 (S O) i H4)))))) (\lambda (t2: T).(\lambda (H1: +(subst0 i u t0 t2)).(\lambda (H2: (eq T t2 (lift (S O) i t1))).(\lambda (t3: T).(\lambda (H3: (subst1 i u t0 (lift (S O) i t3))).(let H4 \def (eq_ind T t2 (\lambda (t: T).(subst0 i u t0 t)) H1 (lift (S O) i t1) H2) in (insert_eq T -(lift (S O) i t3) (\lambda (t: T).(subst1 i u t0 t)) (eq T t1 t3) (\lambda -(y0: T).(\lambda (H5: (subst1 i u t0 y0)).(subst1_ind i u t0 (\lambda (t: -T).((eq T t (lift (S O) i t3)) \to (eq T t1 t3))) (\lambda (H6: (eq T t0 -(lift (S O) i t3))).(let H7 \def (eq_ind T t0 (\lambda (t: T).(subst0 i u t -(lift (S O) i t1))) H4 (lift (S O) i t3) H6) in (subst0_gen_lift_false t3 u -(lift (S O) i t1) (S O) i i (le_n i) (eq_ind_r nat (plus (S O) i) (\lambda -(n: nat).(lt i n)) (le_n (plus (S O) i)) (plus i (S O)) (plus_comm i (S O))) -H7 (eq T t1 t3)))) (\lambda (t4: T).(\lambda (H6: (subst0 i u t0 -t4)).(\lambda (H7: (eq T t4 (lift (S O) i t3))).(let H8 \def (eq_ind T t4 -(\lambda (t: T).(subst0 i u t0 t)) H6 (lift (S O) i t3) H7) in (sym_eq T t3 -t1 (subst0_confluence_lift t0 t3 u i H8 t1 H4)))))) y0 H5))) H3))))))) y -H0))) H))))). +(lift (S O) i t3) (\lambda (t: T).(subst1 i u t0 t)) (\lambda (_: T).(eq T t1 +t3)) (\lambda (y0: T).(\lambda (H5: (subst1 i u t0 y0)).(subst1_ind i u t0 +(\lambda (t: T).((eq T t (lift (S O) i t3)) \to (eq T t1 t3))) (\lambda (H6: +(eq T t0 (lift (S O) i t3))).(let H7 \def (eq_ind T t0 (\lambda (t: +T).(subst0 i u t (lift (S O) i t1))) H4 (lift (S O) i t3) H6) in +(subst0_gen_lift_false t3 u (lift (S O) i t1) (S O) i i (le_n i) (eq_ind_r +nat (plus (S O) i) (\lambda (n: nat).(lt i n)) (le_n (plus (S O) i)) (plus i +(S O)) (plus_comm i (S O))) H7 (eq T t1 t3)))) (\lambda (t4: T).(\lambda (H6: +(subst0 i u t0 t4)).(\lambda (H7: (eq T t4 (lift (S O) i t3))).(let H8 \def +(eq_ind T t4 (\lambda (t: T).(subst0 i u t0 t)) H6 (lift (S O) i t3) H7) in +(sym_eq T t3 t1 (subst0_confluence_lift t0 t3 u i H8 t1 H4)))))) y0 H5))) +H3))))))) y H0))) H))))).