]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/basic_1/pr1/props.ma
components: wcpr0 pr1 pr2
[helm.git] / matita / matita / contribs / lambdadelta / basic_1 / pr1 / props.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/pr1/fwd.ma".
18
19 include "basic_1/pr0/subst1.ma".
20
21 include "basic_1/subst1/props.ma".
22
23 include "basic_1/T/props.ma".
24
25 theorem pr1_pr0:
26  \forall (t1: T).(\forall (t2: T).((pr0 t1 t2) \to (pr1 t1 t2)))
27 \def
28  \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr0 t1 t2)).(let TMP_1 \def 
29 (pr1_refl t2) in (pr1_sing t2 t1 H t2 TMP_1)))).
30
31 theorem pr1_t:
32  \forall (t2: T).(\forall (t1: T).((pr1 t1 t2) \to (\forall (t3: T).((pr1 t2 
33 t3) \to (pr1 t1 t3)))))
34 \def
35  \lambda (t2: T).(\lambda (t1: T).(\lambda (H: (pr1 t1 t2)).(let TMP_1 \def 
36 (\lambda (t: T).(\lambda (t0: T).(\forall (t3: T).((pr1 t0 t3) \to (pr1 t 
37 t3))))) in (let TMP_2 \def (\lambda (t: T).(\lambda (t3: T).(\lambda (H0: 
38 (pr1 t t3)).H0))) in (let TMP_4 \def (\lambda (t0: T).(\lambda (t3: 
39 T).(\lambda (H0: (pr0 t3 t0)).(\lambda (t4: T).(\lambda (_: (pr1 t0 
40 t4)).(\lambda (H2: ((\forall (t5: T).((pr1 t4 t5) \to (pr1 t0 
41 t5))))).(\lambda (t5: T).(\lambda (H3: (pr1 t4 t5)).(let TMP_3 \def (H2 t5 
42 H3) in (pr1_sing t0 t3 H0 t5 TMP_3)))))))))) in (pr1_ind TMP_1 TMP_2 TMP_4 t1 
43 t2 H)))))).
44
45 theorem pr1_head_1:
46  \forall (u1: T).(\forall (u2: T).((pr1 u1 u2) \to (\forall (t: T).(\forall 
47 (k: K).(pr1 (THead k u1 t) (THead k u2 t))))))
48 \def
49  \lambda (u1: T).(\lambda (u2: T).(\lambda (H: (pr1 u1 u2)).(\lambda (t: 
50 T).(\lambda (k: K).(let TMP_3 \def (\lambda (t0: T).(\lambda (t1: T).(let 
51 TMP_1 \def (THead k t0 t) in (let TMP_2 \def (THead k t1 t) in (pr1 TMP_1 
52 TMP_2))))) in (let TMP_5 \def (\lambda (t0: T).(let TMP_4 \def (THead k t0 t) 
53 in (pr1_refl TMP_4))) in (let TMP_11 \def (\lambda (t2: T).(\lambda (t1: 
54 T).(\lambda (H0: (pr0 t1 t2)).(\lambda (t3: T).(\lambda (_: (pr1 t2 
55 t3)).(\lambda (H2: (pr1 (THead k t2 t) (THead k t3 t))).(let TMP_6 \def 
56 (THead k t2 t) in (let TMP_7 \def (THead k t1 t) in (let TMP_8 \def (pr0_refl 
57 t) in (let TMP_9 \def (pr0_comp t1 t2 H0 t t TMP_8 k) in (let TMP_10 \def 
58 (THead k t3 t) in (pr1_sing TMP_6 TMP_7 TMP_9 TMP_10 H2)))))))))))) in 
59 (pr1_ind TMP_3 TMP_5 TMP_11 u1 u2 H)))))))).
60
61 theorem pr1_head_2:
62  \forall (t1: T).(\forall (t2: T).((pr1 t1 t2) \to (\forall (u: T).(\forall 
63 (k: K).(pr1 (THead k u t1) (THead k u t2))))))
64 \def
65  \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr1 t1 t2)).(\lambda (u: 
66 T).(\lambda (k: K).(let TMP_3 \def (\lambda (t: T).(\lambda (t0: T).(let 
67 TMP_1 \def (THead k u t) in (let TMP_2 \def (THead k u t0) in (pr1 TMP_1 
68 TMP_2))))) in (let TMP_5 \def (\lambda (t: T).(let TMP_4 \def (THead k u t) 
69 in (pr1_refl TMP_4))) in (let TMP_11 \def (\lambda (t0: T).(\lambda (t3: 
70 T).(\lambda (H0: (pr0 t3 t0)).(\lambda (t4: T).(\lambda (_: (pr1 t0 
71 t4)).(\lambda (H2: (pr1 (THead k u t0) (THead k u t4))).(let TMP_6 \def 
72 (THead k u t0) in (let TMP_7 \def (THead k u t3) in (let TMP_8 \def (pr0_refl 
73 u) in (let TMP_9 \def (pr0_comp u u TMP_8 t3 t0 H0 k) in (let TMP_10 \def 
74 (THead k u t4) in (pr1_sing TMP_6 TMP_7 TMP_9 TMP_10 H2)))))))))))) in 
75 (pr1_ind TMP_3 TMP_5 TMP_11 t1 t2 H)))))))).
76
77 theorem pr1_comp:
78  \forall (v: T).(\forall (w: T).((pr1 v w) \to (\forall (t: T).(\forall (u: 
79 T).((pr1 t u) \to (\forall (k: K).(pr1 (THead k v t) (THead k w u))))))))
80 \def
81  \lambda (v: T).(\lambda (w: T).(\lambda (H: (pr1 v w)).(let TMP_3 \def 
82 (\lambda (t: T).(\lambda (t0: T).(\forall (t1: T).(\forall (u: T).((pr1 t1 u) 
83 \to (\forall (k: K).(let TMP_1 \def (THead k t t1) in (let TMP_2 \def (THead 
84 k t0 u) in (pr1 TMP_1 TMP_2))))))))) in (let TMP_4 \def (\lambda (t: 
85 T).(\lambda (t0: T).(\lambda (u: T).(\lambda (H0: (pr1 t0 u)).(\lambda (k: 
86 K).(pr1_head_2 t0 u H0 t k)))))) in (let TMP_16 \def (\lambda (t2: 
87 T).(\lambda (t1: T).(\lambda (H0: (pr0 t1 t2)).(\lambda (t3: T).(\lambda (H1: 
88 (pr1 t2 t3)).(\lambda (_: ((\forall (t: T).(\forall (u: T).((pr1 t u) \to 
89 (\forall (k: K).(pr1 (THead k t2 t) (THead k t3 u)))))))).(\lambda (t: 
90 T).(\lambda (u: T).(\lambda (H3: (pr1 t u)).(\lambda (k: K).(let TMP_7 \def 
91 (\lambda (t0: T).(\lambda (t4: T).(let TMP_5 \def (THead k t1 t0) in (let 
92 TMP_6 \def (THead k t3 t4) in (pr1 TMP_5 TMP_6))))) in (let TMP_9 \def 
93 (\lambda (t0: T).(let TMP_8 \def (pr1_sing t2 t1 H0 t3 H1) in (pr1_head_1 t1 
94 t3 TMP_8 t0 k))) in (let TMP_15 \def (\lambda (t0: T).(\lambda (t4: 
95 T).(\lambda (H4: (pr0 t4 t0)).(\lambda (t5: T).(\lambda (_: (pr1 t0 
96 t5)).(\lambda (H6: (pr1 (THead k t1 t0) (THead k t3 t5))).(let TMP_10 \def 
97 (THead k t1 t0) in (let TMP_11 \def (THead k t1 t4) in (let TMP_12 \def 
98 (pr0_refl t1) in (let TMP_13 \def (pr0_comp t1 t1 TMP_12 t4 t0 H4 k) in (let 
99 TMP_14 \def (THead k t3 t5) in (pr1_sing TMP_10 TMP_11 TMP_13 TMP_14 
100 H6)))))))))))) in (pr1_ind TMP_7 TMP_9 TMP_15 t u H3)))))))))))))) in 
101 (pr1_ind TMP_3 TMP_4 TMP_16 v w H)))))).
102
103 theorem pr1_eta:
104  \forall (w: T).(\forall (u: T).(let t \def (THead (Bind Abst) w u) in 
105 (\forall (v: T).((pr1 v w) \to (pr1 (THead (Bind Abst) v (THead (Flat Appl) 
106 (TLRef O) (lift (S O) O t))) t)))))
107 \def
108  \lambda (w: T).(\lambda (u: T).(let TMP_1 \def (Bind Abst) in (let t \def 
109 (THead TMP_1 w u) in (\lambda (v: T).(\lambda (H: (pr1 v w)).(let TMP_2 \def 
110 (Bind Abst) in (let TMP_3 \def (S O) in (let TMP_4 \def (lift TMP_3 O w) in 
111 (let TMP_5 \def (S O) in (let TMP_6 \def (S O) in (let TMP_7 \def (lift TMP_5 
112 TMP_6 u) in (let TMP_8 \def (THead TMP_2 TMP_4 TMP_7) in (let TMP_16 \def 
113 (\lambda (t0: T).(let TMP_9 \def (Bind Abst) in (let TMP_10 \def (Flat Appl) 
114 in (let TMP_11 \def (TLRef O) in (let TMP_12 \def (THead TMP_10 TMP_11 t0) in 
115 (let TMP_13 \def (THead TMP_9 v TMP_12) in (let TMP_14 \def (Bind Abst) in 
116 (let TMP_15 \def (THead TMP_14 w u) in (pr1 TMP_13 TMP_15))))))))) in (let 
117 TMP_17 \def (Flat Appl) in (let TMP_18 \def (TLRef O) in (let TMP_19 \def 
118 (Bind Abst) in (let TMP_20 \def (S O) in (let TMP_21 \def (lift TMP_20 O w) 
119 in (let TMP_22 \def (S O) in (let TMP_23 \def (S O) in (let TMP_24 \def (lift 
120 TMP_22 TMP_23 u) in (let TMP_25 \def (THead TMP_19 TMP_21 TMP_24) in (let 
121 TMP_26 \def (THead TMP_17 TMP_18 TMP_25) in (let TMP_27 \def (Bind Abbr) in 
122 (let TMP_28 \def (TLRef O) in (let TMP_29 \def (S O) in (let TMP_30 \def (S 
123 O) in (let TMP_31 \def (lift TMP_29 TMP_30 u) in (let TMP_32 \def (THead 
124 TMP_27 TMP_28 TMP_31) in (let TMP_33 \def (Flat Appl) in (let TMP_34 \def 
125 (TLRef O) in (let TMP_35 \def (Bind Abst) in (let TMP_36 \def (S O) in (let 
126 TMP_37 \def (lift TMP_36 O w) in (let TMP_38 \def (S O) in (let TMP_39 \def 
127 (S O) in (let TMP_40 \def (lift TMP_38 TMP_39 u) in (let TMP_41 \def (THead 
128 TMP_35 TMP_37 TMP_40) in (let TMP_42 \def (THead TMP_33 TMP_34 TMP_41) in 
129 (let TMP_43 \def (S O) in (let TMP_44 \def (lift TMP_43 O w) in (let TMP_45 
130 \def (TLRef O) in (let TMP_46 \def (TLRef O) in (let TMP_47 \def (TLRef O) in 
131 (let TMP_48 \def (pr0_refl TMP_47) in (let TMP_49 \def (S O) in (let TMP_50 
132 \def (S O) in (let TMP_51 \def (lift TMP_49 TMP_50 u) in (let TMP_52 \def (S 
133 O) in (let TMP_53 \def (S O) in (let TMP_54 \def (lift TMP_52 TMP_53 u) in 
134 (let TMP_55 \def (S O) in (let TMP_56 \def (S O) in (let TMP_57 \def (lift 
135 TMP_55 TMP_56 u) in (let TMP_58 \def (pr0_refl TMP_57) in (let TMP_59 \def 
136 (pr0_beta TMP_44 TMP_45 TMP_46 TMP_48 TMP_51 TMP_54 TMP_58) in (let TMP_60 
137 \def (Bind Abbr) in (let TMP_61 \def (TLRef O) in (let TMP_62 \def (S O) in 
138 (let TMP_63 \def (lift TMP_62 O u) in (let TMP_64 \def (THead TMP_60 TMP_61 
139 TMP_63) in (let TMP_65 \def (Bind Abbr) in (let TMP_66 \def (TLRef O) in (let 
140 TMP_67 \def (S O) in (let TMP_68 \def (S O) in (let TMP_69 \def (lift TMP_67 
141 TMP_68 u) in (let TMP_70 \def (THead TMP_65 TMP_66 TMP_69) in (let TMP_71 
142 \def (TLRef O) in (let TMP_72 \def (TLRef O) in (let TMP_73 \def (TLRef O) in 
143 (let TMP_74 \def (pr0_refl TMP_73) in (let TMP_75 \def (S O) in (let TMP_76 
144 \def (S O) in (let TMP_77 \def (lift TMP_75 TMP_76 u) in (let TMP_78 \def (S 
145 O) in (let TMP_79 \def (S O) in (let TMP_80 \def (lift TMP_78 TMP_79 u) in 
146 (let TMP_81 \def (S O) in (let TMP_82 \def (S O) in (let TMP_83 \def (lift 
147 TMP_81 TMP_82 u) in (let TMP_84 \def (pr0_refl TMP_83) in (let TMP_85 \def (S 
148 O) in (let TMP_86 \def (lift TMP_85 O u) in (let TMP_87 \def (le_O_n O) in 
149 (let TMP_88 \def (subst1_lift_S u O O TMP_87) in (let TMP_89 \def (pr0_delta1 
150 TMP_71 TMP_72 TMP_74 TMP_77 TMP_80 TMP_84 TMP_86 TMP_88) in (let TMP_90 \def 
151 (Bind Abbr) in (let TMP_91 \def (TLRef O) in (let TMP_92 \def (S O) in (let 
152 TMP_93 \def (lift TMP_92 O u) in (let TMP_94 \def (THead TMP_90 TMP_91 
153 TMP_93) in (let TMP_95 \def (pr0_refl u) in (let TMP_96 \def (TLRef O) in 
154 (let TMP_97 \def (pr0_zeta Abbr not_abbr_abst u u TMP_95 TMP_96) in (let 
155 TMP_98 \def (pr1_pr0 TMP_94 u TMP_97) in (let TMP_99 \def (pr1_sing TMP_64 
156 TMP_70 TMP_89 u TMP_98) in (let TMP_100 \def (pr1_sing TMP_32 TMP_42 TMP_59 u 
157 TMP_99) in (let TMP_101 \def (Bind Abst) in (let TMP_102 \def (pr1_comp v w H 
158 TMP_26 u TMP_100 TMP_101) in (let TMP_103 \def (S O) in (let TMP_104 \def 
159 (Bind Abst) in (let TMP_105 \def (THead TMP_104 w u) in (let TMP_106 \def 
160 (lift TMP_103 O TMP_105) in (let TMP_107 \def (S O) in (let TMP_108 \def 
161 (lift_bind Abst w u TMP_107 O) in (eq_ind_r T TMP_8 TMP_16 TMP_102 TMP_106 
162 TMP_108)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
163 ))))))))))))))))))))))))))))))))))).
164