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
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
21 alias plus_n_O /Coq/Init/Peano/plus_n_O.con
23 !n:nat.!m:nat.(le n m)->(le (mult (S (S O)) n) (mult (S (S O)) m))
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: *)
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 *)