1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 (* This file was automatically generated: do not edit *********************)
17 set "baseuri" "cic:/matita/LAMBDA-TYPES/LambdaDelta-1/clear/props".
19 include "clear/fwd.ma".
22 \forall (c1: C).(\forall (c2: C).((clear c1 c2) \to (clear c2 c2)))
24 \lambda (c1: C).(C_ind (\lambda (c: C).(\forall (c2: C).((clear c c2) \to
25 (clear c2 c2)))) (\lambda (n: nat).(\lambda (c2: C).(\lambda (H: (clear
26 (CSort n) c2)).(clear_gen_sort c2 n H (clear c2 c2))))) (\lambda (c:
27 C).(\lambda (H: ((\forall (c2: C).((clear c c2) \to (clear c2
28 c2))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2: C).(\lambda (H0: (clear
29 (CHead c k t) c2)).(K_ind (\lambda (k0: K).((clear (CHead c k0 t) c2) \to
30 (clear c2 c2))) (\lambda (b: B).(\lambda (H1: (clear (CHead c (Bind b) t)
31 c2)).(eq_ind_r C (CHead c (Bind b) t) (\lambda (c0: C).(clear c0 c0))
32 (clear_bind b c t) c2 (clear_gen_bind b c c2 t H1)))) (\lambda (f:
33 F).(\lambda (H1: (clear (CHead c (Flat f) t) c2)).(H c2 (clear_gen_flat f c
34 c2 t H1)))) k H0))))))) c1).
37 \forall (c: C).(\forall (c1: C).((clear c c1) \to (\forall (c2: C).((clear c
38 c2) \to (eq C c1 c2)))))
40 \lambda (c: C).(C_ind (\lambda (c0: C).(\forall (c1: C).((clear c0 c1) \to
41 (\forall (c2: C).((clear c0 c2) \to (eq C c1 c2)))))) (\lambda (n:
42 nat).(\lambda (c1: C).(\lambda (_: (clear (CSort n) c1)).(\lambda (c2:
43 C).(\lambda (H0: (clear (CSort n) c2)).(clear_gen_sort c2 n H0 (eq C c1
44 c2))))))) (\lambda (c0: C).(\lambda (H: ((\forall (c1: C).((clear c0 c1) \to
45 (\forall (c2: C).((clear c0 c2) \to (eq C c1 c2))))))).(\lambda (k:
46 K).(\lambda (t: T).(\lambda (c1: C).(\lambda (H0: (clear (CHead c0 k t)
47 c1)).(\lambda (c2: C).(\lambda (H1: (clear (CHead c0 k t) c2)).(K_ind
48 (\lambda (k0: K).((clear (CHead c0 k0 t) c1) \to ((clear (CHead c0 k0 t) c2)
49 \to (eq C c1 c2)))) (\lambda (b: B).(\lambda (H2: (clear (CHead c0 (Bind b)
50 t) c1)).(\lambda (H3: (clear (CHead c0 (Bind b) t) c2)).(eq_ind_r C (CHead c0
51 (Bind b) t) (\lambda (c3: C).(eq C c1 c3)) (eq_ind_r C (CHead c0 (Bind b) t)
52 (\lambda (c3: C).(eq C c3 (CHead c0 (Bind b) t))) (refl_equal C (CHead c0
53 (Bind b) t)) c1 (clear_gen_bind b c0 c1 t H2)) c2 (clear_gen_bind b c0 c2 t
54 H3))))) (\lambda (f: F).(\lambda (H2: (clear (CHead c0 (Flat f) t)
55 c1)).(\lambda (H3: (clear (CHead c0 (Flat f) t) c2)).(H c1 (clear_gen_flat f
56 c0 c1 t H2) c2 (clear_gen_flat f c0 c2 t H3))))) k H0 H1))))))))) c).
59 \forall (c1: C).(\forall (c: C).((clear c1 c) \to (\forall (c2: C).((clear c
60 c2) \to (clear c1 c2)))))
62 \lambda (c1: C).(C_ind (\lambda (c: C).(\forall (c0: C).((clear c c0) \to
63 (\forall (c2: C).((clear c0 c2) \to (clear c c2)))))) (\lambda (n:
64 nat).(\lambda (c: C).(\lambda (H: (clear (CSort n) c)).(\lambda (c2:
65 C).(\lambda (_: (clear c c2)).(clear_gen_sort c n H (clear (CSort n)
66 c2))))))) (\lambda (c: C).(\lambda (H: ((\forall (c0: C).((clear c c0) \to
67 (\forall (c2: C).((clear c0 c2) \to (clear c c2))))))).(\lambda (k:
68 K).(\lambda (t: T).(\lambda (c0: C).(\lambda (H0: (clear (CHead c k t)
69 c0)).(\lambda (c2: C).(\lambda (H1: (clear c0 c2)).(K_ind (\lambda (k0:
70 K).((clear (CHead c k0 t) c0) \to (clear (CHead c k0 t) c2))) (\lambda (b:
71 B).(\lambda (H2: (clear (CHead c (Bind b) t) c0)).(let H3 \def (eq_ind C c0
72 (\lambda (c3: C).(clear c3 c2)) H1 (CHead c (Bind b) t) (clear_gen_bind b c
73 c0 t H2)) in (eq_ind_r C (CHead c (Bind b) t) (\lambda (c3: C).(clear (CHead
74 c (Bind b) t) c3)) (clear_bind b c t) c2 (clear_gen_bind b c c2 t H3)))))
75 (\lambda (f: F).(\lambda (H2: (clear (CHead c (Flat f) t) c0)).(clear_flat c
76 c2 (H c0 (clear_gen_flat f c c0 t H2) c2 H1) f t))) k H0))))))))) c1).
79 \forall (b: B).(\forall (c1: C).(\forall (c2: C).(\forall (u2: T).((clear c1
80 (CHead c2 (Bind b) u2)) \to (\forall (k: K).(\forall (u1: T).(clear (CTail k
81 u1 c1) (CHead (CTail k u1 c2) (Bind b) u2))))))))
83 \lambda (b: B).(\lambda (c1: C).(C_ind (\lambda (c: C).(\forall (c2:
84 C).(\forall (u2: T).((clear c (CHead c2 (Bind b) u2)) \to (\forall (k:
85 K).(\forall (u1: T).(clear (CTail k u1 c) (CHead (CTail k u1 c2) (Bind b)
86 u2)))))))) (\lambda (n: nat).(\lambda (c2: C).(\lambda (u2: T).(\lambda (H:
87 (clear (CSort n) (CHead c2 (Bind b) u2))).(\lambda (k: K).(\lambda (u1:
88 T).(K_ind (\lambda (k0: K).(clear (CHead (CSort n) k0 u1) (CHead (CTail k0 u1
89 c2) (Bind b) u2))) (\lambda (b0: B).(clear_gen_sort (CHead c2 (Bind b) u2) n
90 H (clear (CHead (CSort n) (Bind b0) u1) (CHead (CTail (Bind b0) u1 c2) (Bind
91 b) u2)))) (\lambda (f: F).(clear_gen_sort (CHead c2 (Bind b) u2) n H (clear
92 (CHead (CSort n) (Flat f) u1) (CHead (CTail (Flat f) u1 c2) (Bind b) u2))))
93 k))))))) (\lambda (c: C).(\lambda (H: ((\forall (c2: C).(\forall (u2:
94 T).((clear c (CHead c2 (Bind b) u2)) \to (\forall (k: K).(\forall (u1:
95 T).(clear (CTail k u1 c) (CHead (CTail k u1 c2) (Bind b) u2))))))))).(\lambda
96 (k: K).(\lambda (t: T).(\lambda (c2: C).(\lambda (u2: T).(\lambda (H0: (clear
97 (CHead c k t) (CHead c2 (Bind b) u2))).(\lambda (k0: K).(\lambda (u1:
98 T).(K_ind (\lambda (k1: K).((clear (CHead c k1 t) (CHead c2 (Bind b) u2)) \to
99 (clear (CHead (CTail k0 u1 c) k1 t) (CHead (CTail k0 u1 c2) (Bind b) u2))))
100 (\lambda (b0: B).(\lambda (H1: (clear (CHead c (Bind b0) t) (CHead c2 (Bind
101 b) u2))).(let H2 \def (f_equal C C (\lambda (e: C).(match e in C return
102 (\lambda (_: C).C) with [(CSort _) \Rightarrow c2 | (CHead c0 _ _)
103 \Rightarrow c0])) (CHead c2 (Bind b) u2) (CHead c (Bind b0) t)
104 (clear_gen_bind b0 c (CHead c2 (Bind b) u2) t H1)) in ((let H3 \def (f_equal
105 C B (\lambda (e: C).(match e in C return (\lambda (_: C).B) with [(CSort _)
106 \Rightarrow b | (CHead _ k1 _) \Rightarrow (match k1 in K return (\lambda (_:
107 K).B) with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow b])])) (CHead c2
108 (Bind b) u2) (CHead c (Bind b0) t) (clear_gen_bind b0 c (CHead c2 (Bind b)
109 u2) t H1)) in ((let H4 \def (f_equal C T (\lambda (e: C).(match e in C return
110 (\lambda (_: C).T) with [(CSort _) \Rightarrow u2 | (CHead _ _ t0)
111 \Rightarrow t0])) (CHead c2 (Bind b) u2) (CHead c (Bind b0) t)
112 (clear_gen_bind b0 c (CHead c2 (Bind b) u2) t H1)) in (\lambda (H5: (eq B b
113 b0)).(\lambda (H6: (eq C c2 c)).(eq_ind_r T t (\lambda (t0: T).(clear (CHead
114 (CTail k0 u1 c) (Bind b0) t) (CHead (CTail k0 u1 c2) (Bind b) t0))) (eq_ind_r
115 C c (\lambda (c0: C).(clear (CHead (CTail k0 u1 c) (Bind b0) t) (CHead (CTail
116 k0 u1 c0) (Bind b) t))) (eq_ind B b (\lambda (b1: B).(clear (CHead (CTail k0
117 u1 c) (Bind b1) t) (CHead (CTail k0 u1 c) (Bind b) t))) (clear_bind b (CTail
118 k0 u1 c) t) b0 H5) c2 H6) u2 H4)))) H3)) H2)))) (\lambda (f: F).(\lambda (H1:
119 (clear (CHead c (Flat f) t) (CHead c2 (Bind b) u2))).(clear_flat (CTail k0 u1
120 c) (CHead (CTail k0 u1 c2) (Bind b) u2) (H c2 u2 (clear_gen_flat f c (CHead
121 c2 (Bind b) u2) t H1) k0 u1) f t))) k H0)))))))))) c1)).
124 \forall (c1: C).(\forall (c2: C).((clear c1 c2) \to (cle c2 c1)))
126 \lambda (c1: C).(C_ind (\lambda (c: C).(\forall (c2: C).((clear c c2) \to
127 (le (cweight c2) (cweight c))))) (\lambda (n: nat).(\lambda (c2: C).(\lambda
128 (H: (clear (CSort n) c2)).(clear_gen_sort c2 n H (le (cweight c2) O)))))
129 (\lambda (c: C).(\lambda (H: ((\forall (c2: C).((clear c c2) \to (le (cweight
130 c2) (cweight c)))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2:
131 C).(\lambda (H0: (clear (CHead c k t) c2)).(K_ind (\lambda (k0: K).((clear
132 (CHead c k0 t) c2) \to (le (cweight c2) (plus (cweight c) (tweight t)))))
133 (\lambda (b: B).(\lambda (H1: (clear (CHead c (Bind b) t) c2)).(eq_ind_r C
134 (CHead c (Bind b) t) (\lambda (c0: C).(le (cweight c0) (plus (cweight c)
135 (tweight t)))) (le_n (plus (cweight c) (tweight t))) c2 (clear_gen_bind b c
136 c2 t H1)))) (\lambda (f: F).(\lambda (H1: (clear (CHead c (Flat f) t)
137 c2)).(le_plus_trans (cweight c2) (cweight c) (tweight t) (H c2
138 (clear_gen_flat f c c2 t H1))))) k H0))))))) c1).