]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/basic_1/next_plus/props.ma
update in basic_2
[helm.git] / matita / matita / contribs / lambdadelta / basic_1 / next_plus / 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/next_plus/defs.ma".
18
19 lemma next_plus_assoc:
20  \forall (g: G).(\forall (n: nat).(\forall (h1: nat).(\forall (h2: nat).(eq 
21 nat (next_plus g (next_plus g n h1) h2) (next_plus g n (plus h1 h2))))))
22 \def
23  \lambda (g: G).(\lambda (n: nat).(\lambda (h1: nat).(nat_ind (\lambda (n0: 
24 nat).(\forall (h2: nat).(eq nat (next_plus g (next_plus g n n0) h2) 
25 (next_plus g n (plus n0 h2))))) (\lambda (h2: nat).(refl_equal nat (next_plus 
26 g n h2))) (\lambda (n0: nat).(\lambda (_: ((\forall (h2: nat).(eq nat 
27 (next_plus g (next_plus g n n0) h2) (next_plus g n (plus n0 h2)))))).(\lambda 
28 (h2: nat).(nat_ind (\lambda (n1: nat).(eq nat (next_plus g (next g (next_plus 
29 g n n0)) n1) (next g (next_plus g n (plus n0 n1))))) (eq_ind nat n0 (\lambda 
30 (n1: nat).(eq nat (next g (next_plus g n n0)) (next g (next_plus g n n1)))) 
31 (refl_equal nat (next g (next_plus g n n0))) (plus n0 O) (plus_n_O n0)) 
32 (\lambda (n1: nat).(\lambda (H0: (eq nat (next_plus g (next g (next_plus g n 
33 n0)) n1) (next g (next_plus g n (plus n0 n1))))).(eq_ind nat (S (plus n0 n1)) 
34 (\lambda (n2: nat).(eq nat (next g (next_plus g (next g (next_plus g n n0)) 
35 n1)) (next g (next_plus g n n2)))) (f_equal nat nat (next g) (next_plus g 
36 (next g (next_plus g n n0)) n1) (next g (next_plus g n (plus n0 n1))) H0) 
37 (plus n0 (S n1)) (plus_n_Sm n0 n1)))) h2)))) h1))).
38
39 lemma next_plus_next:
40  \forall (g: G).(\forall (n: nat).(\forall (h: nat).(eq nat (next_plus g 
41 (next g n) h) (next g (next_plus g n h)))))
42 \def
43  \lambda (g: G).(\lambda (n: nat).(\lambda (h: nat).(eq_ind_r nat (next_plus 
44 g n (plus (S O) h)) (\lambda (n0: nat).(eq nat n0 (next g (next_plus g n 
45 h)))) (refl_equal nat (next g (next_plus g n h))) (next_plus g (next_plus g n 
46 (S O)) h) (next_plus_assoc g n (S O) h)))).
47
48 lemma next_plus_lt:
49  \forall (g: G).(\forall (h: nat).(\forall (n: nat).(lt n (next_plus g (next 
50 g n) h))))
51 \def
52  \lambda (g: G).(\lambda (h: nat).(nat_ind (\lambda (n: nat).(\forall (n0: 
53 nat).(lt n0 (next_plus g (next g n0) n)))) (\lambda (n: nat).(next_lt g n)) 
54 (\lambda (n: nat).(\lambda (H: ((\forall (n0: nat).(lt n0 (next_plus g (next 
55 g n0) n))))).(\lambda (n0: nat).(eq_ind nat (next_plus g (next g (next g n0)) 
56 n) (\lambda (n1: nat).(lt n0 n1)) (lt_trans n0 (next g n0) (next_plus g (next 
57 g (next g n0)) n) (next_lt g n0) (H (next g n0))) (next g (next_plus g (next 
58 g n0) n)) (next_plus_next g (next g n0) n))))) h)).
59