]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/basic_1/s/props.ma
- some improvements in the generation of terms
[helm.git] / matita / matita / contribs / lambdadelta / basic_1 / s / 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/s/defs.ma".
18
19 theorem s_S:
20  \forall (k: K).(\forall (i: nat).(eq nat (s k (S i)) (S (s k i))))
21 \def
22  \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(let TMP_1 
23 \def (S i) in (let TMP_2 \def (s k0 TMP_1) in (let TMP_3 \def (s k0 i) in 
24 (let TMP_4 \def (S TMP_3) in (eq nat TMP_2 TMP_4))))))) in (let TMP_9 \def 
25 (\lambda (b: B).(\lambda (i: nat).(let TMP_6 \def (Bind b) in (let TMP_7 \def 
26 (s TMP_6 i) in (let TMP_8 \def (S TMP_7) in (refl_equal nat TMP_8)))))) in 
27 (let TMP_13 \def (\lambda (f: F).(\lambda (i: nat).(let TMP_10 \def (Flat f) 
28 in (let TMP_11 \def (s TMP_10 i) in (let TMP_12 \def (S TMP_11) in 
29 (refl_equal nat TMP_12)))))) in (K_ind TMP_5 TMP_9 TMP_13 k)))).
30
31 theorem s_plus:
32  \forall (k: K).(\forall (i: nat).(\forall (j: nat).(eq nat (s k (plus i j)) 
33 (plus (s k i) j))))
34 \def
35  \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
36 (j: nat).(let TMP_1 \def (plus i j) in (let TMP_2 \def (s k0 TMP_1) in (let 
37 TMP_3 \def (s k0 i) in (let TMP_4 \def (plus TMP_3 j) in (eq nat TMP_2 
38 TMP_4)))))))) in (let TMP_9 \def (\lambda (b: B).(\lambda (i: nat).(\lambda 
39 (j: nat).(let TMP_6 \def (Bind b) in (let TMP_7 \def (s TMP_6 i) in (let 
40 TMP_8 \def (plus TMP_7 j) in (refl_equal nat TMP_8))))))) in (let TMP_13 \def 
41 (\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(let TMP_10 \def (Flat f) 
42 in (let TMP_11 \def (s TMP_10 i) in (let TMP_12 \def (plus TMP_11 j) in 
43 (refl_equal nat TMP_12))))))) in (K_ind TMP_5 TMP_9 TMP_13 k)))).
44
45 theorem s_plus_sym:
46  \forall (k: K).(\forall (i: nat).(\forall (j: nat).(eq nat (s k (plus i j)) 
47 (plus i (s k j)))))
48 \def
49  \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
50 (j: nat).(let TMP_1 \def (plus i j) in (let TMP_2 \def (s k0 TMP_1) in (let 
51 TMP_3 \def (s k0 j) in (let TMP_4 \def (plus i TMP_3) in (eq nat TMP_2 
52 TMP_4)))))))) in (let TMP_17 \def (\lambda (_: B).(\lambda (i: nat).(\lambda 
53 (j: nat).(let TMP_6 \def (S j) in (let TMP_7 \def (plus i TMP_6) in (let 
54 TMP_10 \def (\lambda (n: nat).(let TMP_8 \def (S j) in (let TMP_9 \def (plus 
55 i TMP_8) in (eq nat n TMP_9)))) in (let TMP_11 \def (S j) in (let TMP_12 \def 
56 (plus i TMP_11) in (let TMP_13 \def (refl_equal nat TMP_12) in (let TMP_14 
57 \def (plus i j) in (let TMP_15 \def (S TMP_14) in (let TMP_16 \def (plus_n_Sm 
58 i j) in (eq_ind_r nat TMP_7 TMP_10 TMP_13 TMP_15 TMP_16))))))))))))) in (let 
59 TMP_21 \def (\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(let TMP_18 
60 \def (Flat f) in (let TMP_19 \def (s TMP_18 j) in (let TMP_20 \def (plus i 
61 TMP_19) in (refl_equal nat TMP_20))))))) in (K_ind TMP_5 TMP_17 TMP_21 k)))).
62
63 theorem s_minus:
64  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((le j i) \to (eq nat (s 
65 k (minus i j)) (minus (s k i) j)))))
66 \def
67  \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
68 (j: nat).((le j i) \to (let TMP_1 \def (minus i j) in (let TMP_2 \def (s k0 
69 TMP_1) in (let TMP_3 \def (s k0 i) in (let TMP_4 \def (minus TMP_3 j) in (eq 
70 nat TMP_2 TMP_4))))))))) in (let TMP_17 \def (\lambda (_: B).(\lambda (i: 
71 nat).(\lambda (j: nat).(\lambda (H: (le j i)).(let TMP_6 \def (S i) in (let 
72 TMP_7 \def (minus TMP_6 j) in (let TMP_10 \def (\lambda (n: nat).(let TMP_8 
73 \def (S i) in (let TMP_9 \def (minus TMP_8 j) in (eq nat n TMP_9)))) in (let 
74 TMP_11 \def (S i) in (let TMP_12 \def (minus TMP_11 j) in (let TMP_13 \def 
75 (refl_equal nat TMP_12) in (let TMP_14 \def (minus i j) in (let TMP_15 \def 
76 (S TMP_14) in (let TMP_16 \def (minus_Sn_m i j H) in (eq_ind_r nat TMP_7 
77 TMP_10 TMP_13 TMP_15 TMP_16)))))))))))))) in (let TMP_21 \def (\lambda (f: 
78 F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (_: (le j i)).(let TMP_18 
79 \def (Flat f) in (let TMP_19 \def (s TMP_18 i) in (let TMP_20 \def (minus 
80 TMP_19 j) in (refl_equal nat TMP_20)))))))) in (K_ind TMP_5 TMP_17 TMP_21 
81 k)))).
82
83 theorem minus_s_s:
84  \forall (k: K).(\forall (i: nat).(\forall (j: nat).(eq nat (minus (s k i) (s 
85 k j)) (minus i j))))
86 \def
87  \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
88 (j: nat).(let TMP_1 \def (s k0 i) in (let TMP_2 \def (s k0 j) in (let TMP_3 
89 \def (minus TMP_1 TMP_2) in (let TMP_4 \def (minus i j) in (eq nat TMP_3 
90 TMP_4)))))))) in (let TMP_7 \def (\lambda (_: B).(\lambda (i: nat).(\lambda 
91 (j: nat).(let TMP_6 \def (minus i j) in (refl_equal nat TMP_6))))) in (let 
92 TMP_9 \def (\lambda (_: F).(\lambda (i: nat).(\lambda (j: nat).(let TMP_8 
93 \def (minus i j) in (refl_equal nat TMP_8))))) in (K_ind TMP_5 TMP_7 TMP_9 
94 k)))).
95
96 theorem s_le:
97  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((le i j) \to (le (s k i) 
98 (s k j)))))
99 \def
100  \lambda (k: K).(let TMP_3 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
101 (j: nat).((le i j) \to (let TMP_1 \def (s k0 i) in (let TMP_2 \def (s k0 j) 
102 in (le TMP_1 TMP_2))))))) in (let TMP_4 \def (\lambda (_: B).(\lambda (i: 
103 nat).(\lambda (j: nat).(\lambda (H: (le i j)).(le_n_S i j H))))) in (let 
104 TMP_5 \def (\lambda (_: F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: 
105 (le i j)).H)))) in (K_ind TMP_3 TMP_4 TMP_5 k)))).
106
107 theorem s_lt:
108  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((lt i j) \to (lt (s k i) 
109 (s k j)))))
110 \def
111  \lambda (k: K).(let TMP_3 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
112 (j: nat).((lt i j) \to (let TMP_1 \def (s k0 i) in (let TMP_2 \def (s k0 j) 
113 in (lt TMP_1 TMP_2))))))) in (let TMP_4 \def (\lambda (_: B).(\lambda (i: 
114 nat).(\lambda (j: nat).(\lambda (H: (lt i j)).(lt_n_S i j H))))) in (let 
115 TMP_5 \def (\lambda (_: F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: 
116 (lt i j)).H)))) in (K_ind TMP_3 TMP_4 TMP_5 k)))).
117
118 theorem s_inc:
119  \forall (k: K).(\forall (i: nat).(le i (s k i)))
120 \def
121  \lambda (k: K).(let TMP_2 \def (\lambda (k0: K).(\forall (i: nat).(let TMP_1 
122 \def (s k0 i) in (le i TMP_1)))) in (let TMP_30 \def (\lambda (b: B).(\lambda 
123 (i: nat).(let TMP_3 \def (Bind b) in (let TMP_4 \def (s TMP_3 i) in (let 
124 TMP_5 \def (S i) in (let TMP_6 \def (Bind b) in (let TMP_7 \def (s TMP_6 i) 
125 in (let TMP_8 \def (S TMP_7) in (let TMP_9 \def (S i) in (let TMP_10 \def (S 
126 TMP_9) in (let TMP_11 \def (Bind b) in (let TMP_12 \def (s TMP_11 i) in (let 
127 TMP_13 \def (S TMP_12) in (let TMP_14 \def (S TMP_13) in (let TMP_15 \def (S 
128 i) in (let TMP_16 \def (S TMP_15) in (let TMP_17 \def (S TMP_16) in (let 
129 TMP_18 \def (Bind b) in (let TMP_19 \def (s TMP_18 i) in (let TMP_20 \def (S 
130 TMP_19) in (let TMP_21 \def (S TMP_20) in (let TMP_22 \def (Bind b) in (let 
131 TMP_23 \def (s TMP_22 i) in (let TMP_24 \def (S TMP_23) in (let TMP_25 \def 
132 (S TMP_24) in (let TMP_26 \def (le_n TMP_25) in (let TMP_27 \def (le_S TMP_17 
133 TMP_21 TMP_26) in (let TMP_28 \def (le_S_n TMP_10 TMP_14 TMP_27) in (let 
134 TMP_29 \def (le_S_n TMP_5 TMP_8 TMP_28) in (le_S_n i TMP_4 
135 TMP_29)))))))))))))))))))))))))))))) in (let TMP_33 \def (\lambda (f: 
136 F).(\lambda (i: nat).(let TMP_31 \def (Flat f) in (let TMP_32 \def (s TMP_31 
137 i) in (le_n TMP_32))))) in (K_ind TMP_2 TMP_30 TMP_33 k)))).
138
139 theorem s_arith0:
140  \forall (k: K).(\forall (i: nat).(eq nat (minus (s k i) (s k O)) i))
141 \def
142  \lambda (k: K).(\lambda (i: nat).(let TMP_1 \def (minus i O) in (let TMP_2 
143 \def (\lambda (n: nat).(eq nat n i)) in (let TMP_3 \def (\lambda (n: nat).(eq 
144 nat n i)) in (let TMP_4 \def (refl_equal nat i) in (let TMP_5 \def (minus i 
145 O) in (let TMP_6 \def (minus_n_O i) in (let TMP_7 \def (eq_ind nat i TMP_3 
146 TMP_4 TMP_5 TMP_6) in (let TMP_8 \def (s k i) in (let TMP_9 \def (s k O) in 
147 (let TMP_10 \def (minus TMP_8 TMP_9) in (let TMP_11 \def (minus_s_s k i O) in 
148 (eq_ind_r nat TMP_1 TMP_2 TMP_7 TMP_10 TMP_11))))))))))))).
149
150 theorem s_arith1:
151  \forall (b: B).(\forall (i: nat).(eq nat (minus (s (Bind b) i) (S O)) i))
152 \def
153  \lambda (_: B).(\lambda (i: nat).(let TMP_1 \def (\lambda (n: nat).(eq nat n 
154 i)) in (let TMP_2 \def (refl_equal nat i) in (let TMP_3 \def (minus i O) in 
155 (let TMP_4 \def (minus_n_O i) in (eq_ind nat i TMP_1 TMP_2 TMP_3 TMP_4)))))).
156