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/tau1/props".
19 include "tau1/defs.ma".
21 include "tau0/props.ma".
24 \forall (g: G).(\forall (c: C).(\forall (t1: T).(\forall (t: T).((tau1 g c
25 t1 t) \to (\forall (t2: T).((tau1 g c t t2) \to (tau1 g c t1 t2)))))))
27 \lambda (g: G).(\lambda (c: C).(\lambda (t1: T).(\lambda (t: T).(\lambda (H:
28 (tau1 g c t1 t)).(\lambda (t2: T).(\lambda (H0: (tau1 g c t t2)).(tau1_ind g
29 c t (\lambda (t0: T).(tau1 g c t1 t0)) (\lambda (t3: T).(\lambda (H1: (tau0 g
30 c t t3)).(tau1_sing g c t1 t H t3 H1))) (\lambda (t0: T).(\lambda (_: (tau1 g
31 c t t0)).(\lambda (H2: (tau1 g c t1 t0)).(\lambda (t3: T).(\lambda (H3: (tau0
32 g c t0 t3)).(tau1_sing g c t1 t0 H2 t3 H3)))))) t2 H0))))))).
35 \forall (g: G).(\forall (b: B).(\forall (c: C).(\forall (v: T).(\forall (t1:
36 T).(\forall (t2: T).((tau1 g (CHead c (Bind b) v) t1 t2) \to (tau1 g c (THead
37 (Bind b) v t1) (THead (Bind b) v t2))))))))
39 \lambda (g: G).(\lambda (b: B).(\lambda (c: C).(\lambda (v: T).(\lambda (t1:
40 T).(\lambda (t2: T).(\lambda (H: (tau1 g (CHead c (Bind b) v) t1
41 t2)).(tau1_ind g (CHead c (Bind b) v) t1 (\lambda (t: T).(tau1 g c (THead
42 (Bind b) v t1) (THead (Bind b) v t))) (\lambda (t3: T).(\lambda (H0: (tau0 g
43 (CHead c (Bind b) v) t1 t3)).(tau1_tau0 g c (THead (Bind b) v t1) (THead
44 (Bind b) v t3) (tau0_bind g b c v t1 t3 H0)))) (\lambda (t: T).(\lambda (_:
45 (tau1 g (CHead c (Bind b) v) t1 t)).(\lambda (H1: (tau1 g c (THead (Bind b) v
46 t1) (THead (Bind b) v t))).(\lambda (t3: T).(\lambda (H2: (tau0 g (CHead c
47 (Bind b) v) t t3)).(tau1_sing g c (THead (Bind b) v t1) (THead (Bind b) v t)
48 H1 (THead (Bind b) v t3) (tau0_bind g b c v t t3 H2))))))) t2 H))))))).
51 \forall (g: G).(\forall (c: C).(\forall (v: T).(\forall (t1: T).(\forall
52 (t2: T).((tau1 g c t1 t2) \to (tau1 g c (THead (Flat Appl) v t1) (THead (Flat
55 \lambda (g: G).(\lambda (c: C).(\lambda (v: T).(\lambda (t1: T).(\lambda
56 (t2: T).(\lambda (H: (tau1 g c t1 t2)).(tau1_ind g c t1 (\lambda (t: T).(tau1
57 g c (THead (Flat Appl) v t1) (THead (Flat Appl) v t))) (\lambda (t3:
58 T).(\lambda (H0: (tau0 g c t1 t3)).(tau1_tau0 g c (THead (Flat Appl) v t1)
59 (THead (Flat Appl) v t3) (tau0_appl g c v t1 t3 H0)))) (\lambda (t:
60 T).(\lambda (_: (tau1 g c t1 t)).(\lambda (H1: (tau1 g c (THead (Flat Appl) v
61 t1) (THead (Flat Appl) v t))).(\lambda (t3: T).(\lambda (H2: (tau0 g c t
62 t3)).(tau1_sing g c (THead (Flat Appl) v t1) (THead (Flat Appl) v t) H1
63 (THead (Flat Appl) v t3) (tau0_appl g c v t t3 H2))))))) t2 H)))))).
66 \forall (g: G).(\forall (e: C).(\forall (t1: T).(\forall (t2: T).((tau1 g e
67 t1 t2) \to (\forall (c: C).(\forall (h: nat).(\forall (d: nat).((drop h d c
68 e) \to (tau1 g c (lift h d t1) (lift h d t2))))))))))
70 \lambda (g: G).(\lambda (e: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda
71 (H: (tau1 g e t1 t2)).(tau1_ind g e t1 (\lambda (t: T).(\forall (c:
72 C).(\forall (h: nat).(\forall (d: nat).((drop h d c e) \to (tau1 g c (lift h
73 d t1) (lift h d t))))))) (\lambda (t3: T).(\lambda (H0: (tau0 g e t1
74 t3)).(\lambda (c: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H1: (drop
75 h d c e)).(tau1_tau0 g c (lift h d t1) (lift h d t3) (tau0_lift g e t1 t3 H0
76 c h d H1)))))))) (\lambda (t: T).(\lambda (_: (tau1 g e t1 t)).(\lambda (H1:
77 ((\forall (c: C).(\forall (h: nat).(\forall (d: nat).((drop h d c e) \to
78 (tau1 g c (lift h d t1) (lift h d t)))))))).(\lambda (t3: T).(\lambda (H2:
79 (tau0 g e t t3)).(\lambda (c: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda
80 (H3: (drop h d c e)).(tau1_sing g c (lift h d t1) (lift h d t) (H1 c h d H3)
81 (lift h d t3) (tau0_lift g e t t3 H2 c h d H3))))))))))) t2 H))))).
84 \forall (g: G).(\forall (c: C).(\forall (t1: T).(\forall (t: T).((tau1 g c
85 t1 t) \to (ex T (\lambda (t2: T).(tau0 g c t t2)))))))
87 \lambda (g: G).(\lambda (c: C).(\lambda (t1: T).(\lambda (t: T).(\lambda (H:
88 (tau1 g c t1 t)).(tau1_ind g c t1 (\lambda (t0: T).(ex T (\lambda (t2:
89 T).(tau0 g c t0 t2)))) (\lambda (t2: T).(\lambda (H0: (tau0 g c t1
90 t2)).(tau0_correct g c t1 t2 H0))) (\lambda (t0: T).(\lambda (_: (tau1 g c t1
91 t0)).(\lambda (_: (ex T (\lambda (t2: T).(tau0 g c t0 t2)))).(\lambda (t2:
92 T).(\lambda (H2: (tau0 g c t0 t2)).(tau0_correct g c t0 t2 H2)))))) t H))))).
95 \forall (g: G).(\forall (c: C).(\forall (d: C).(\forall (v: T).(\forall (i:
96 nat).((getl i c (CHead d (Bind Abbr) v)) \to (\forall (w: T).((tau1 g d v w)
97 \to (tau1 g c (TLRef i) (lift (S i) O w)))))))))
99 \lambda (g: G).(\lambda (c: C).(\lambda (d: C).(\lambda (v: T).(\lambda (i:
100 nat).(\lambda (H: (getl i c (CHead d (Bind Abbr) v))).(\lambda (w:
101 T).(\lambda (H0: (tau1 g d v w)).(tau1_ind g d v (\lambda (t: T).(tau1 g c
102 (TLRef i) (lift (S i) O t))) (\lambda (t2: T).(\lambda (H1: (tau0 g d v
103 t2)).(tau1_tau0 g c (TLRef i) (lift (S i) O t2) (tau0_abbr g c d v i H t2
104 H1)))) (\lambda (t: T).(\lambda (_: (tau1 g d v t)).(\lambda (H2: (tau1 g c
105 (TLRef i) (lift (S i) O t))).(\lambda (t2: T).(\lambda (H3: (tau0 g d t
106 t2)).(tau1_sing g c (TLRef i) (lift (S i) O t) H2 (lift (S i) O t2)
107 (tau0_lift g d t t2 H3 c (S i) O (getl_drop Abbr c d v i H)))))))) w
111 \forall (g: G).(\forall (c: C).(\forall (t1: T).(\forall (t2: T).((tau1 g c
112 t1 t2) \to (\forall (v1: T).(\forall (v2: T).((tau0 g c v1 v2) \to (ex2 T
113 (\lambda (v3: T).(tau1 g c v1 v3)) (\lambda (v3: T).(tau1 g c (THead (Flat
114 Cast) v1 t1) (THead (Flat Cast) v3 t2)))))))))))
116 \lambda (g: G).(\lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda
117 (H: (tau1 g c t1 t2)).(tau1_ind g c t1 (\lambda (t: T).(\forall (v1:
118 T).(\forall (v2: T).((tau0 g c v1 v2) \to (ex2 T (\lambda (v3: T).(tau1 g c
119 v1 v3)) (\lambda (v3: T).(tau1 g c (THead (Flat Cast) v1 t1) (THead (Flat
120 Cast) v3 t)))))))) (\lambda (t3: T).(\lambda (H0: (tau0 g c t1 t3)).(\lambda
121 (v1: T).(\lambda (v2: T).(\lambda (H1: (tau0 g c v1 v2)).(ex_intro2 T
122 (\lambda (v3: T).(tau1 g c v1 v3)) (\lambda (v3: T).(tau1 g c (THead (Flat
123 Cast) v1 t1) (THead (Flat Cast) v3 t3))) v2 (tau1_tau0 g c v1 v2 H1)
124 (tau1_tau0 g c (THead (Flat Cast) v1 t1) (THead (Flat Cast) v2 t3) (tau0_cast
125 g c v1 v2 H1 t1 t3 H0)))))))) (\lambda (t: T).(\lambda (_: (tau1 g c t1
126 t)).(\lambda (H1: ((\forall (v1: T).(\forall (v2: T).((tau0 g c v1 v2) \to
127 (ex2 T (\lambda (v3: T).(tau1 g c v1 v3)) (\lambda (v3: T).(tau1 g c (THead
128 (Flat Cast) v1 t1) (THead (Flat Cast) v3 t))))))))).(\lambda (t3: T).(\lambda
129 (H2: (tau0 g c t t3)).(\lambda (v1: T).(\lambda (v2: T).(\lambda (H3: (tau0 g
130 c v1 v2)).(let H_x \def (H1 v1 v2 H3) in (let H4 \def H_x in (ex2_ind T
131 (\lambda (v3: T).(tau1 g c v1 v3)) (\lambda (v3: T).(tau1 g c (THead (Flat
132 Cast) v1 t1) (THead (Flat Cast) v3 t))) (ex2 T (\lambda (v3: T).(tau1 g c v1
133 v3)) (\lambda (v3: T).(tau1 g c (THead (Flat Cast) v1 t1) (THead (Flat Cast)
134 v3 t3)))) (\lambda (x: T).(\lambda (H5: (tau1 g c v1 x)).(\lambda (H6: (tau1
135 g c (THead (Flat Cast) v1 t1) (THead (Flat Cast) x t))).(let H_x0 \def
136 (tau1_correct g c v1 x H5) in (let H7 \def H_x0 in (ex_ind T (\lambda (t4:
137 T).(tau0 g c x t4)) (ex2 T (\lambda (v3: T).(tau1 g c v1 v3)) (\lambda (v3:
138 T).(tau1 g c (THead (Flat Cast) v1 t1) (THead (Flat Cast) v3 t3)))) (\lambda
139 (x0: T).(\lambda (H8: (tau0 g c x x0)).(ex_intro2 T (\lambda (v3: T).(tau1 g
140 c v1 v3)) (\lambda (v3: T).(tau1 g c (THead (Flat Cast) v1 t1) (THead (Flat
141 Cast) v3 t3))) x0 (tau1_sing g c v1 x H5 x0 H8) (tau1_sing g c (THead (Flat
142 Cast) v1 t1) (THead (Flat Cast) x t) H6 (THead (Flat Cast) x0 t3) (tau0_cast
143 g c x x0 H8 t t3 H2))))) H7)))))) H4))))))))))) t2 H))))).