]> matita.cs.unibo.it Git - helm.git/blob - helm/gTopLevel/esempi/evars.cic
ocaml 3.09 transition
[helm.git] / helm / gTopLevel / esempi / evars.cic
1 alias nat          /Coq/Init/Datatypes/nat.ind#1/1
2 alias eqT          /Coq/Init/Logic_Type/eqT.ind#1/1
3 alias eq           /Coq/Init/Logic/eq.ind#1/1
4 alias refl_equal   /Coq/Init/Logic/eq.ind#1/1/1
5 alias eq_ind       /Coq/Init/Logic/eq_ind.con
6 alias eq_ind_r     /Coq/Init/Logic/eq_ind_r.con
7 alias O            /Coq/Init/Datatypes/nat.ind#1/1/1
8 alias S            /Coq/Init/Datatypes/nat.ind#1/1/2
9 alias plus         /Coq/Init/Peano/plus.con
10 alias mult         /Coq/Init/Peano/mult.con
11 alias le           /Coq/Init/Peano/le.ind#1/1
12 alias lt           /Coq/Init/Peano/lt.con
13 alias not          /Coq/Init/Logic/not.con
14 alias f_equal      /Coq/Init/Logic/f_equal.con
15 alias le_trans     /Coq/Arith/Le/le_trans.con
16
17 alias le_plus_plus /Coq/Arith/Plus/le_plus_plus.con
18 alias le_reg_r     /Coq/Arith/Plus/le_reg_r.con
19 alias le_reg_l     /Coq/Arith/Plus/le_reg_l.con
20
21 alias plus_n_O     /Coq/Init/Peano/plus_n_O.con 
22
23 !n:nat.!m:nat.(le n m)->(le (mult (S (S O)) n) (mult (S (S O)) m))
24
25 (* Lo scopo dell'esercizio e' riuscire a effettuare la dimostrazione che *)
26 (* (n <= m) -> (2*n <= 2*m) come la si farebbe su carta, ovvero:         *)
27 (*                                                                       *)
28 (*     2 * n                                                             *)
29 (*  == n + n + 0     Simpl                                               *)
30 (*  <= m + n + 0     le_reg_r because n <= m because hypothesis          *)
31 (*  <= m + m + 0     le_reg_l because n + 0 <= m + 0 because le_reg_r    *)
32 (*                    because hypothesis                                 *)
33 (*  == 2 * m         Change                                              *)