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/Level-1/LambdaDelta/lift1/props".
19 include "lift1/defs.ma".
21 include "lift/props.ma".
23 include "drop1/defs.ma".
26 \forall (hds: PList).(\forall (t: T).(eq T (lift1 (Ss hds) (lift (S O) O t))
27 (lift (S O) O (lift1 hds t))))
29 \lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall (t: T).(eq T
30 (lift1 (Ss p) (lift (S O) O t)) (lift (S O) O (lift1 p t))))) (\lambda (t:
31 T).(refl_equal T (lift (S O) O t))) (\lambda (h: nat).(\lambda (d:
32 nat).(\lambda (p: PList).(\lambda (H: ((\forall (t: T).(eq T (lift1 (Ss p)
33 (lift (S O) O t)) (lift (S O) O (lift1 p t)))))).(\lambda (t: T).(eq_ind_r T
34 (lift (S O) O (lift1 p t)) (\lambda (t0: T).(eq T (lift h (S d) t0) (lift (S
35 O) O (lift h d (lift1 p t))))) (eq_ind nat (plus (S O) d) (\lambda (n:
36 nat).(eq T (lift h n (lift (S O) O (lift1 p t))) (lift (S O) O (lift h d
37 (lift1 p t))))) (eq_ind_r T (lift (S O) O (lift h d (lift1 p t))) (\lambda
38 (t0: T).(eq T t0 (lift (S O) O (lift h d (lift1 p t))))) (refl_equal T (lift
39 (S O) O (lift h d (lift1 p t)))) (lift h (plus (S O) d) (lift (S O) O (lift1
40 p t))) (lift_d (lift1 p t) h (S O) d O (le_O_n d))) (S d) (refl_equal nat (S
41 d))) (lift1 (Ss p) (lift (S O) O t)) (H t))))))) hds).
44 \forall (hds: PList).(\forall (ts: TList).(eq TList (lifts1 (Ss hds) (lifts
45 (S O) O ts)) (lifts (S O) O (lifts1 hds ts))))
47 \lambda (hds: PList).(\lambda (ts: TList).(TList_ind (\lambda (t: TList).(eq
48 TList (lifts1 (Ss hds) (lifts (S O) O t)) (lifts (S O) O (lifts1 hds t))))
49 (refl_equal TList TNil) (\lambda (t: T).(\lambda (t0: TList).(\lambda (H: (eq
50 TList (lifts1 (Ss hds) (lifts (S O) O t0)) (lifts (S O) O (lifts1 hds
51 t0)))).(eq_ind_r T (lift (S O) O (lift1 hds t)) (\lambda (t1: T).(eq TList
52 (TCons t1 (lifts1 (Ss hds) (lifts (S O) O t0))) (TCons (lift (S O) O (lift1
53 hds t)) (lifts (S O) O (lifts1 hds t0))))) (eq_ind_r TList (lifts (S O) O
54 (lifts1 hds t0)) (\lambda (t1: TList).(eq TList (TCons (lift (S O) O (lift1
55 hds t)) t1) (TCons (lift (S O) O (lift1 hds t)) (lifts (S O) O (lifts1 hds
56 t0))))) (refl_equal TList (TCons (lift (S O) O (lift1 hds t)) (lifts (S O) O
57 (lifts1 hds t0)))) (lifts1 (Ss hds) (lifts (S O) O t0)) H) (lift1 (Ss hds)
58 (lift (S O) O t)) (lift1_xhg hds t))))) ts)).
61 \forall (hds: PList).(\forall (i: nat).(\forall (t: T).(eq T (lift1 hds
62 (lift (S i) O t)) (lift (S (trans hds i)) O (ctrans hds i t)))))
64 \lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall (i:
65 nat).(\forall (t: T).(eq T (lift1 p (lift (S i) O t)) (lift (S (trans p i)) O
66 (ctrans p i t)))))) (\lambda (i: nat).(\lambda (t: T).(refl_equal T (lift (S
67 i) O t)))) (\lambda (h: nat).(\lambda (d: nat).(\lambda (hds0:
68 PList).(\lambda (H: ((\forall (i: nat).(\forall (t: T).(eq T (lift1 hds0
69 (lift (S i) O t)) (lift (S (trans hds0 i)) O (ctrans hds0 i t))))))).(\lambda
70 (i: nat).(\lambda (t: T).(eq_ind_r T (lift (S (trans hds0 i)) O (ctrans hds0
71 i t)) (\lambda (t0: T).(eq T (lift h d t0) (lift (S (match (blt (trans hds0
72 i) d) with [true \Rightarrow (trans hds0 i) | false \Rightarrow (plus (trans
73 hds0 i) h)])) O (match (blt (trans hds0 i) d) with [true \Rightarrow (lift h
74 (minus d (S (trans hds0 i))) (ctrans hds0 i t)) | false \Rightarrow (ctrans
75 hds0 i t)])))) (xinduction bool (blt (trans hds0 i) d) (\lambda (b: bool).(eq
76 T (lift h d (lift (S (trans hds0 i)) O (ctrans hds0 i t))) (lift (S (match b
77 with [true \Rightarrow (trans hds0 i) | false \Rightarrow (plus (trans hds0
78 i) h)])) O (match b with [true \Rightarrow (lift h (minus d (S (trans hds0
79 i))) (ctrans hds0 i t)) | false \Rightarrow (ctrans hds0 i t)])))) (\lambda
80 (x_x: bool).(bool_ind (\lambda (b: bool).((eq bool (blt (trans hds0 i) d) b)
81 \to (eq T (lift h d (lift (S (trans hds0 i)) O (ctrans hds0 i t))) (lift (S
82 (match b with [true \Rightarrow (trans hds0 i) | false \Rightarrow (plus
83 (trans hds0 i) h)])) O (match b with [true \Rightarrow (lift h (minus d (S
84 (trans hds0 i))) (ctrans hds0 i t)) | false \Rightarrow (ctrans hds0 i
85 t)]))))) (\lambda (H0: (eq bool (blt (trans hds0 i) d) true)).(eq_ind_r nat
86 (plus (S (trans hds0 i)) (minus d (S (trans hds0 i)))) (\lambda (n: nat).(eq
87 T (lift h n (lift (S (trans hds0 i)) O (ctrans hds0 i t))) (lift (S (trans
88 hds0 i)) O (lift h (minus d (S (trans hds0 i))) (ctrans hds0 i t)))))
89 (eq_ind_r T (lift (S (trans hds0 i)) O (lift h (minus d (S (trans hds0 i)))
90 (ctrans hds0 i t))) (\lambda (t0: T).(eq T t0 (lift (S (trans hds0 i)) O
91 (lift h (minus d (S (trans hds0 i))) (ctrans hds0 i t))))) (refl_equal T
92 (lift (S (trans hds0 i)) O (lift h (minus d (S (trans hds0 i))) (ctrans hds0
93 i t)))) (lift h (plus (S (trans hds0 i)) (minus d (S (trans hds0 i)))) (lift
94 (S (trans hds0 i)) O (ctrans hds0 i t))) (lift_d (ctrans hds0 i t) h (S
95 (trans hds0 i)) (minus d (S (trans hds0 i))) O (le_O_n (minus d (S (trans
96 hds0 i)))))) d (le_plus_minus (S (trans hds0 i)) d (bge_le (S (trans hds0 i))
97 d (le_bge (S (trans hds0 i)) d (lt_le_S (trans hds0 i) d (blt_lt d (trans
98 hds0 i) H0))))))) (\lambda (H0: (eq bool (blt (trans hds0 i) d)
99 false)).(eq_ind_r T (lift (plus h (S (trans hds0 i))) O (ctrans hds0 i t))
100 (\lambda (t0: T).(eq T t0 (lift (S (plus (trans hds0 i) h)) O (ctrans hds0 i
101 t)))) (eq_ind nat (S (plus h (trans hds0 i))) (\lambda (n: nat).(eq T (lift n
102 O (ctrans hds0 i t)) (lift (S (plus (trans hds0 i) h)) O (ctrans hds0 i t))))
103 (eq_ind_r nat (plus (trans hds0 i) h) (\lambda (n: nat).(eq T (lift (S n) O
104 (ctrans hds0 i t)) (lift (S (plus (trans hds0 i) h)) O (ctrans hds0 i t))))
105 (refl_equal T (lift (S (plus (trans hds0 i) h)) O (ctrans hds0 i t))) (plus h
106 (trans hds0 i)) (plus_comm h (trans hds0 i))) (plus h (S (trans hds0 i)))
107 (plus_n_Sm h (trans hds0 i))) (lift h d (lift (S (trans hds0 i)) O (ctrans
108 hds0 i t))) (lift_free (ctrans hds0 i t) (S (trans hds0 i)) h O d (eq_ind nat
109 (S (plus O (trans hds0 i))) (\lambda (n: nat).(le d n)) (eq_ind_r nat (plus
110 (trans hds0 i) O) (\lambda (n: nat).(le d (S n))) (le_S d (plus (trans hds0
111 i) O) (le_plus_trans d (trans hds0 i) O (bge_le d (trans hds0 i) H0))) (plus
112 O (trans hds0 i)) (plus_comm O (trans hds0 i))) (plus O (S (trans hds0 i)))
113 (plus_n_Sm O (trans hds0 i))) (le_O_n d)))) x_x))) (lift1 hds0 (lift (S i) O
114 t)) (H i t)))))))) hds).