X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_1%2Fty3%2Fsty0.ma;h=e590a65e06294230bce7d0579be90885f0b543a3;hb=57ae1762497a5f3ea75740e2908e04adb8642cc2;hp=3c630662cc1efb4f7128e8871104feece3031956;hpb=88a68a9c334646bc17314d5327cd3b790202acd6;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_1/ty3/sty0.ma b/matita/matita/contribs/lambdadelta/basic_1/ty3/sty0.ma index 3c630662c..e590a65e0 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/ty3/sty0.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/ty3/sty0.ma @@ -14,11 +14,11 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/ty3/pr3_props.ma". +include "basic_1/ty3/pr3_props.ma". -include "Basic-1/sty0/fwd.ma". +include "basic_1/sty0/fwd.ma". -theorem ty3_sty0: +lemma ty3_sty0: \forall (g: G).(\forall (c: C).(\forall (u: T).(\forall (t1: T).((ty3 g c u t1) \to (\forall (t2: T).((sty0 g c u t2) \to (ty3 g c u t2))))))) \def @@ -61,23 +61,22 @@ T).(\lambda (t0: T).(eq T t2 (lift (S n) O t0))))) (ty3 g c0 (TLRef n) t2) g c0 (TLRef n) t0)) (let H10 \def (eq_ind C (CHead d (Bind Abbr) u0) (\lambda (c1: C).(getl n c0 c1)) H0 (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abbr) u0) n H0 (CHead x0 (Bind Abbr) x1) H6)) in (let H11 \def (f_equal -C C (\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) -\Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) (CHead d (Bind Abbr) u0) -(CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abbr) u0) n H0 (CHead -x0 (Bind Abbr) x1) H6)) in ((let H12 \def (f_equal C T (\lambda (e: C).(match -e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u0 | (CHead _ _ -t0) \Rightarrow t0])) (CHead d (Bind Abbr) u0) (CHead x0 (Bind Abbr) x1) +C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | (CHead c1 _ _) +\Rightarrow c1])) (CHead d (Bind Abbr) u0) (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abbr) u0) n H0 (CHead x0 (Bind Abbr) x1) H6)) in -(\lambda (H13: (eq C d x0)).(let H14 \def (eq_ind_r T x1 (\lambda (t0: -T).(getl n c0 (CHead x0 (Bind Abbr) t0))) H10 u0 H12) in (let H15 \def -(eq_ind_r T x1 (\lambda (t0: T).(sty0 g x0 t0 x2)) H7 u0 H12) in (let H16 -\def (eq_ind_r C x0 (\lambda (c1: C).(getl n c0 (CHead c1 (Bind Abbr) u0))) -H14 d H13) in (let H17 \def (eq_ind_r C x0 (\lambda (c1: C).(sty0 g c1 u0 -x2)) H15 d H13) in (ty3_abbr g n c0 d u0 H16 x2 (H2 x2 H17)))))))) H11))) t2 -H9)))))))) H5)) (\lambda (H5: (ex3_3 C T T (\lambda (e: C).(\lambda (u1: -T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abst) u1))))) (\lambda (e: -C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 t0)))) (\lambda (_: -C).(\lambda (u1: T).(\lambda (_: T).(eq T t2 (lift (S n) O +((let H12 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) +\Rightarrow u0 | (CHead _ _ t0) \Rightarrow t0])) (CHead d (Bind Abbr) u0) +(CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abbr) u0) n H0 (CHead +x0 (Bind Abbr) x1) H6)) in (\lambda (H13: (eq C d x0)).(let H14 \def +(eq_ind_r T x1 (\lambda (t0: T).(getl n c0 (CHead x0 (Bind Abbr) t0))) H10 u0 +H12) in (let H15 \def (eq_ind_r T x1 (\lambda (t0: T).(sty0 g x0 t0 x2)) H7 +u0 H12) in (let H16 \def (eq_ind_r C x0 (\lambda (c1: C).(getl n c0 (CHead c1 +(Bind Abbr) u0))) H14 d H13) in (let H17 \def (eq_ind_r C x0 (\lambda (c1: +C).(sty0 g c1 u0 x2)) H15 d H13) in (ty3_abbr g n c0 d u0 H16 x2 (H2 x2 +H17)))))))) H11))) t2 H9)))))))) H5)) (\lambda (H5: (ex3_3 C T T (\lambda (e: +C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abst) u1))))) +(\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 t0)))) +(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq T t2 (lift (S n) O u1))))))).(ex3_3_ind C T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abst) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 t0)))) (\lambda (_: C).(\lambda (u1: @@ -89,67 +88,64 @@ T t2 (lift (S n) O x1))).(let H9 \def (f_equal T T (\lambda (e: T).e) t2 g c0 (TLRef n) t0)) (let H10 \def (eq_ind C (CHead d (Bind Abbr) u0) (\lambda (c1: C).(getl n c0 c1)) H0 (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind Abbr) u0) n H0 (CHead x0 (Bind Abst) x1) H6)) in (let H11 \def (eq_ind -C (CHead d (Bind Abbr) u0) (\lambda (ee: C).(match ee in C return (\lambda -(_: C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow -(match k in K return (\lambda (_: K).Prop) with [(Bind b) \Rightarrow (match -b in B return (\lambda (_: B).Prop) with [Abbr \Rightarrow True | Abst -\Rightarrow False | Void \Rightarrow False]) | (Flat _) \Rightarrow -False])])) I (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind Abbr) u0) -n H0 (CHead x0 (Bind Abst) x1) H6)) in (False_ind (ty3 g c0 (TLRef n) (lift -(S n) O x1)) H11))) t2 H9)))))))) H5)) H4))))))))))))) (\lambda (n: -nat).(\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (H0: (getl n -c0 (CHead d (Bind Abst) u0))).(\lambda (t: T).(\lambda (H1: (ty3 g d u0 -t)).(\lambda (_: ((\forall (t2: T).((sty0 g d u0 t2) \to (ty3 g d u0 -t2))))).(\lambda (t2: T).(\lambda (H3: (sty0 g c0 (TLRef n) t2)).(let H_x -\def (sty0_gen_lref g c0 t2 n H3) in (let H4 \def H_x in (or_ind (ex3_3 C T T -(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e (Bind -Abbr) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 -t0)))) (\lambda (_: C).(\lambda (_: T).(\lambda (t0: T).(eq T t2 (lift (S n) -O t0)))))) (ex3_3 C T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: -T).(getl n c0 (CHead e (Bind Abst) u1))))) (\lambda (e: C).(\lambda (u1: -T).(\lambda (t0: T).(sty0 g e u1 t0)))) (\lambda (_: C).(\lambda (u1: -T).(\lambda (_: T).(eq T t2 (lift (S n) O u1)))))) (ty3 g c0 (TLRef n) t2) -(\lambda (H5: (ex3_3 C T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: +C (CHead d (Bind Abbr) u0) (\lambda (ee: C).(match ee with [(CSort _) +\Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind b) +\Rightarrow (match b with [Abbr \Rightarrow True | Abst \Rightarrow False | +Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead x0 (Bind +Abst) x1) (getl_mono c0 (CHead d (Bind Abbr) u0) n H0 (CHead x0 (Bind Abst) +x1) H6)) in (False_ind (ty3 g c0 (TLRef n) (lift (S n) O x1)) H11))) t2 +H9)))))))) H5)) H4))))))))))))) (\lambda (n: nat).(\lambda (c0: C).(\lambda +(d: C).(\lambda (u0: T).(\lambda (H0: (getl n c0 (CHead d (Bind Abst) +u0))).(\lambda (t: T).(\lambda (H1: (ty3 g d u0 t)).(\lambda (_: ((\forall +(t2: T).((sty0 g d u0 t2) \to (ty3 g d u0 t2))))).(\lambda (t2: T).(\lambda +(H3: (sty0 g c0 (TLRef n) t2)).(let H_x \def (sty0_gen_lref g c0 t2 n H3) in +(let H4 \def H_x in (or_ind (ex3_3 C T T (\lambda (e: C).(\lambda (u1: +T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abbr) u1))))) (\lambda (e: +C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 t0)))) (\lambda (_: +C).(\lambda (_: T).(\lambda (t0: T).(eq T t2 (lift (S n) O t0)))))) (ex3_3 C +T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e +(Bind Abst) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g +e u1 t0)))) (\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq T t2 (lift +(S n) O u1)))))) (ty3 g c0 (TLRef n) t2) (\lambda (H5: (ex3_3 C T T (\lambda +(e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abbr) +u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 t0)))) +(\lambda (_: C).(\lambda (_: T).(\lambda (t0: T).(eq T t2 (lift (S n) O +t0))))))).(ex3_3_ind C T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abbr) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 t0)))) (\lambda (_: C).(\lambda (_: -T).(\lambda (t0: T).(eq T t2 (lift (S n) O t0))))))).(ex3_3_ind C T T -(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e (Bind -Abbr) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 -t0)))) (\lambda (_: C).(\lambda (_: T).(\lambda (t0: T).(eq T t2 (lift (S n) -O t0))))) (ty3 g c0 (TLRef n) t2) (\lambda (x0: C).(\lambda (x1: T).(\lambda -(x2: T).(\lambda (H6: (getl n c0 (CHead x0 (Bind Abbr) x1))).(\lambda (_: -(sty0 g x0 x1 x2)).(\lambda (H8: (eq T t2 (lift (S n) O x2))).(let H9 \def -(f_equal T T (\lambda (e: T).e) t2 (lift (S n) O x2) H8) in (eq_ind_r T (lift -(S n) O x2) (\lambda (t0: T).(ty3 g c0 (TLRef n) t0)) (let H10 \def (eq_ind C -(CHead d (Bind Abst) u0) (\lambda (c1: C).(getl n c0 c1)) H0 (CHead x0 (Bind +T).(\lambda (t0: T).(eq T t2 (lift (S n) O t0))))) (ty3 g c0 (TLRef n) t2) +(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: T).(\lambda (H6: (getl n c0 +(CHead x0 (Bind Abbr) x1))).(\lambda (_: (sty0 g x0 x1 x2)).(\lambda (H8: (eq +T t2 (lift (S n) O x2))).(let H9 \def (f_equal T T (\lambda (e: T).e) t2 +(lift (S n) O x2) H8) in (eq_ind_r T (lift (S n) O x2) (\lambda (t0: T).(ty3 +g c0 (TLRef n) t0)) (let H10 \def (eq_ind C (CHead d (Bind Abst) u0) (\lambda +(c1: C).(getl n c0 c1)) H0 (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d +(Bind Abst) u0) n H0 (CHead x0 (Bind Abbr) x1) H6)) in (let H11 \def (eq_ind +C (CHead d (Bind Abst) u0) (\lambda (ee: C).(match ee with [(CSort _) +\Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind b) +\Rightarrow (match b with [Abbr \Rightarrow False | Abst \Rightarrow True | +Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abst) u0) n H0 (CHead x0 (Bind Abbr) -x1) H6)) in (let H11 \def (eq_ind C (CHead d (Bind Abst) u0) (\lambda (ee: -C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow -False | (CHead _ k _) \Rightarrow (match k in K return (\lambda (_: K).Prop) -with [(Bind b) \Rightarrow (match b in B return (\lambda (_: B).Prop) with -[Abbr \Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | -(Flat _) \Rightarrow False])])) I (CHead x0 (Bind Abbr) x1) (getl_mono c0 -(CHead d (Bind Abst) u0) n H0 (CHead x0 (Bind Abbr) x1) H6)) in (False_ind -(ty3 g c0 (TLRef n) (lift (S n) O x2)) H11))) t2 H9)))))))) H5)) (\lambda -(H5: (ex3_3 C T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 -(CHead e (Bind Abst) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: -T).(sty0 g e u1 t0)))) (\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq T -t2 (lift (S n) O u1))))))).(ex3_3_ind C T T (\lambda (e: C).(\lambda (u1: +x1) H6)) in (False_ind (ty3 g c0 (TLRef n) (lift (S n) O x2)) H11))) t2 +H9)))))))) H5)) (\lambda (H5: (ex3_3 C T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abst) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 t0)))) (\lambda (_: -C).(\lambda (u1: T).(\lambda (_: T).(eq T t2 (lift (S n) O u1))))) (ty3 g c0 -(TLRef n) t2) (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: T).(\lambda -(H6: (getl n c0 (CHead x0 (Bind Abst) x1))).(\lambda (H7: (sty0 g x0 x1 -x2)).(\lambda (H8: (eq T t2 (lift (S n) O x1))).(let H9 \def (f_equal T T -(\lambda (e: T).e) t2 (lift (S n) O x1) H8) in (eq_ind_r T (lift (S n) O x1) -(\lambda (t0: T).(ty3 g c0 (TLRef n) t0)) (let H10 \def (eq_ind C (CHead d -(Bind Abst) u0) (\lambda (c1: C).(getl n c0 c1)) H0 (CHead x0 (Bind Abst) x1) +C).(\lambda (u1: T).(\lambda (_: T).(eq T t2 (lift (S n) O +u1))))))).(ex3_3_ind C T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: +T).(getl n c0 (CHead e (Bind Abst) u1))))) (\lambda (e: C).(\lambda (u1: +T).(\lambda (t0: T).(sty0 g e u1 t0)))) (\lambda (_: C).(\lambda (u1: +T).(\lambda (_: T).(eq T t2 (lift (S n) O u1))))) (ty3 g c0 (TLRef n) t2) +(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: T).(\lambda (H6: (getl n c0 +(CHead x0 (Bind Abst) x1))).(\lambda (H7: (sty0 g x0 x1 x2)).(\lambda (H8: +(eq T t2 (lift (S n) O x1))).(let H9 \def (f_equal T T (\lambda (e: T).e) t2 +(lift (S n) O x1) H8) in (eq_ind_r T (lift (S n) O x1) (\lambda (t0: T).(ty3 +g c0 (TLRef n) t0)) (let H10 \def (eq_ind C (CHead d (Bind Abst) u0) (\lambda +(c1: C).(getl n c0 c1)) H0 (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d +(Bind Abst) u0) n H0 (CHead x0 (Bind Abst) x1) H6)) in (let H11 \def (f_equal +C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | (CHead c1 _ _) +\Rightarrow c1])) (CHead d (Bind Abst) u0) (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind Abst) u0) n H0 (CHead x0 (Bind Abst) x1) H6)) in -(let H11 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda (_: -C).C) with [(CSort _) \Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) (CHead -d (Bind Abst) u0) (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind -Abst) u0) n H0 (CHead x0 (Bind Abst) x1) H6)) in ((let H12 \def (f_equal C T -(\lambda (e: C).(match e in C return (\lambda (_: C).T) with [(CSort _) +((let H12 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u0 | (CHead _ _ t0) \Rightarrow t0])) (CHead d (Bind Abst) u0) (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind Abst) u0) n H0 (CHead x0 (Bind Abst) x1) H6)) in (\lambda (H13: (eq C d x0)).(let H14 \def @@ -231,7 +227,4 @@ c0 x1 x2 H12 t3 x0 H_y0 H10) x H11) (THead (Flat Cast) t3 t2) (THead (Flat Cast) x0 t3) (ty3_cast g c0 t2 t3 H0 x0 H_y0) (pc3_thin_dx c0 t3 x1 (ty3_unique g c0 t2 t3 H0 x1 H_y) x0 Cast)))) (ty3_correct g c0 t2 x1 H_y)))) (ty3_correct g c0 t3 x0 H_y0))))) t4 H9))))))) H5))))))))))))) c u t1 H))))). -(* COMMENTS -Initial nodes: 4539 -END *)