]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/basic_1/csubt/clear.ma
components: pc1, pc3, ty3, csubt, ex1
[helm.git] / matita / matita / contribs / lambdadelta / basic_1 / csubt / clear.ma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 (* This file was automatically generated: do not edit *********************)
16
17 include "basic_1/csubt/fwd.ma".
18
19 include "basic_1/clear/fwd.ma".
20
21 theorem csubt_clear_conf:
22  \forall (g: G).(\forall (c1: C).(\forall (c2: C).((csubt g c1 c2) \to 
23 (\forall (e1: C).((clear c1 e1) \to (ex2 C (\lambda (e2: C).(csubt g e1 e2)) 
24 (\lambda (e2: C).(clear c2 e2))))))))
25 \def
26  \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubt g c1 
27 c2)).(let TMP_3 \def (\lambda (c: C).(\lambda (c0: C).(\forall (e1: 
28 C).((clear c e1) \to (let TMP_1 \def (\lambda (e2: C).(csubt g e1 e2)) in 
29 (let TMP_2 \def (\lambda (e2: C).(clear c0 e2)) in (ex2 C TMP_1 TMP_2))))))) 
30 in (let TMP_8 \def (\lambda (n: nat).(\lambda (e1: C).(\lambda (H0: (clear 
31 (CSort n) e1)).(let TMP_4 \def (\lambda (e2: C).(csubt g e1 e2)) in (let 
32 TMP_6 \def (\lambda (e2: C).(let TMP_5 \def (CSort n) in (clear TMP_5 e2))) 
33 in (let TMP_7 \def (ex2 C TMP_4 TMP_6) in (clear_gen_sort e1 n H0 
34 TMP_7))))))) in (let TMP_49 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda 
35 (H0: (csubt g c3 c4)).(\lambda (H1: ((\forall (e1: C).((clear c3 e1) \to (ex2 
36 C (\lambda (e2: C).(csubt g e1 e2)) (\lambda (e2: C).(clear c4 
37 e2))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (e1: C).(\lambda (H2: 
38 (clear (CHead c3 k u) e1)).(let TMP_12 \def (\lambda (k0: K).((clear (CHead 
39 c3 k0 u) e1) \to (let TMP_9 \def (\lambda (e2: C).(csubt g e1 e2)) in (let 
40 TMP_11 \def (\lambda (e2: C).(let TMP_10 \def (CHead c4 k0 u) in (clear 
41 TMP_10 e2))) in (ex2 C TMP_9 TMP_11))))) in (let TMP_33 \def (\lambda (b: 
42 B).(\lambda (H3: (clear (CHead c3 (Bind b) u) e1)).(let TMP_13 \def (Bind b) 
43 in (let TMP_14 \def (CHead c3 TMP_13 u) in (let TMP_19 \def (\lambda (c: 
44 C).(let TMP_15 \def (\lambda (e2: C).(csubt g c e2)) in (let TMP_18 \def 
45 (\lambda (e2: C).(let TMP_16 \def (Bind b) in (let TMP_17 \def (CHead c4 
46 TMP_16 u) in (clear TMP_17 e2)))) in (ex2 C TMP_15 TMP_18)))) in (let TMP_22 
47 \def (\lambda (e2: C).(let TMP_20 \def (Bind b) in (let TMP_21 \def (CHead c3 
48 TMP_20 u) in (csubt g TMP_21 e2)))) in (let TMP_25 \def (\lambda (e2: C).(let 
49 TMP_23 \def (Bind b) in (let TMP_24 \def (CHead c4 TMP_23 u) in (clear TMP_24 
50 e2)))) in (let TMP_26 \def (Bind b) in (let TMP_27 \def (CHead c4 TMP_26 u) 
51 in (let TMP_28 \def (Bind b) in (let TMP_29 \def (csubt_head g c3 c4 H0 
52 TMP_28 u) in (let TMP_30 \def (clear_bind b c4 u) in (let TMP_31 \def 
53 (ex_intro2 C TMP_22 TMP_25 TMP_27 TMP_29 TMP_30) in (let TMP_32 \def 
54 (clear_gen_bind b c3 e1 u H3) in (eq_ind_r C TMP_14 TMP_19 TMP_31 e1 
55 TMP_32))))))))))))))) in (let TMP_48 \def (\lambda (f: F).(\lambda (H3: 
56 (clear (CHead c3 (Flat f) u) e1)).(let TMP_34 \def (clear_gen_flat f c3 e1 u 
57 H3) in (let H4 \def (H1 e1 TMP_34) in (let TMP_35 \def (\lambda (e2: 
58 C).(csubt g e1 e2)) in (let TMP_36 \def (\lambda (e2: C).(clear c4 e2)) in 
59 (let TMP_37 \def (\lambda (e2: C).(csubt g e1 e2)) in (let TMP_40 \def 
60 (\lambda (e2: C).(let TMP_38 \def (Flat f) in (let TMP_39 \def (CHead c4 
61 TMP_38 u) in (clear TMP_39 e2)))) in (let TMP_41 \def (ex2 C TMP_37 TMP_40) 
62 in (let TMP_47 \def (\lambda (x: C).(\lambda (H5: (csubt g e1 x)).(\lambda 
63 (H6: (clear c4 x)).(let TMP_42 \def (\lambda (e2: C).(csubt g e1 e2)) in (let 
64 TMP_45 \def (\lambda (e2: C).(let TMP_43 \def (Flat f) in (let TMP_44 \def 
65 (CHead c4 TMP_43 u) in (clear TMP_44 e2)))) in (let TMP_46 \def (clear_flat 
66 c4 x H6 f u) in (ex_intro2 C TMP_42 TMP_45 x H5 TMP_46))))))) in (ex2_ind C 
67 TMP_35 TMP_36 TMP_41 TMP_47 H4))))))))))) in (K_ind TMP_12 TMP_33 TMP_48 k 
68 H2)))))))))))) in (let TMP_69 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda 
69 (H0: (csubt g c3 c4)).(\lambda (_: ((\forall (e1: C).((clear c3 e1) \to (ex2 
70 C (\lambda (e2: C).(csubt g e1 e2)) (\lambda (e2: C).(clear c4 
71 e2))))))).(\lambda (b: B).(\lambda (H2: (not (eq B b Void))).(\lambda (u1: 
72 T).(\lambda (u2: T).(\lambda (e1: C).(\lambda (H3: (clear (CHead c3 (Bind 
73 Void) u1) e1)).(let TMP_50 \def (Bind Void) in (let TMP_51 \def (CHead c3 
74 TMP_50 u1) in (let TMP_56 \def (\lambda (c: C).(let TMP_52 \def (\lambda (e2: 
75 C).(csubt g c e2)) in (let TMP_55 \def (\lambda (e2: C).(let TMP_53 \def 
76 (Bind b) in (let TMP_54 \def (CHead c4 TMP_53 u2) in (clear TMP_54 e2)))) in 
77 (ex2 C TMP_52 TMP_55)))) in (let TMP_59 \def (\lambda (e2: C).(let TMP_57 
78 \def (Bind Void) in (let TMP_58 \def (CHead c3 TMP_57 u1) in (csubt g TMP_58 
79 e2)))) in (let TMP_62 \def (\lambda (e2: C).(let TMP_60 \def (Bind b) in (let 
80 TMP_61 \def (CHead c4 TMP_60 u2) in (clear TMP_61 e2)))) in (let TMP_63 \def 
81 (Bind b) in (let TMP_64 \def (CHead c4 TMP_63 u2) in (let TMP_65 \def 
82 (csubt_void g c3 c4 H0 b H2 u1 u2) in (let TMP_66 \def (clear_bind b c4 u2) 
83 in (let TMP_67 \def (ex_intro2 C TMP_59 TMP_62 TMP_64 TMP_65 TMP_66) in (let 
84 TMP_68 \def (clear_gen_bind Void c3 e1 u1 H3) in (eq_ind_r C TMP_51 TMP_56 
85 TMP_67 e1 TMP_68)))))))))))))))))))))) in (let TMP_89 \def (\lambda (c3: 
86 C).(\lambda (c4: C).(\lambda (H0: (csubt g c3 c4)).(\lambda (_: ((\forall 
87 (e1: C).((clear c3 e1) \to (ex2 C (\lambda (e2: C).(csubt g e1 e2)) (\lambda 
88 (e2: C).(clear c4 e2))))))).(\lambda (u: T).(\lambda (t: T).(\lambda (H2: 
89 (ty3 g c3 u t)).(\lambda (H3: (ty3 g c4 u t)).(\lambda (e1: C).(\lambda (H4: 
90 (clear (CHead c3 (Bind Abst) t) e1)).(let TMP_70 \def (Bind Abst) in (let 
91 TMP_71 \def (CHead c3 TMP_70 t) in (let TMP_76 \def (\lambda (c: C).(let 
92 TMP_72 \def (\lambda (e2: C).(csubt g c e2)) in (let TMP_75 \def (\lambda 
93 (e2: C).(let TMP_73 \def (Bind Abbr) in (let TMP_74 \def (CHead c4 TMP_73 u) 
94 in (clear TMP_74 e2)))) in (ex2 C TMP_72 TMP_75)))) in (let TMP_79 \def 
95 (\lambda (e2: C).(let TMP_77 \def (Bind Abst) in (let TMP_78 \def (CHead c3 
96 TMP_77 t) in (csubt g TMP_78 e2)))) in (let TMP_82 \def (\lambda (e2: C).(let 
97 TMP_80 \def (Bind Abbr) in (let TMP_81 \def (CHead c4 TMP_80 u) in (clear 
98 TMP_81 e2)))) in (let TMP_83 \def (Bind Abbr) in (let TMP_84 \def (CHead c4 
99 TMP_83 u) in (let TMP_85 \def (csubt_abst g c3 c4 H0 u t H2 H3) in (let 
100 TMP_86 \def (clear_bind Abbr c4 u) in (let TMP_87 \def (ex_intro2 C TMP_79 
101 TMP_82 TMP_84 TMP_85 TMP_86) in (let TMP_88 \def (clear_gen_bind Abst c3 e1 t 
102 H4) in (eq_ind_r C TMP_71 TMP_76 TMP_87 e1 TMP_88)))))))))))))))))))))) in 
103 (csubt_ind g TMP_3 TMP_8 TMP_49 TMP_69 TMP_89 c1 c2 H))))))))).
104