]> matita.cs.unibo.it Git - helm.git/blob - helm/matita/tests/simpl.ma
ocaml 3.09 transition
[helm.git] / helm / matita / tests / simpl.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 set "baseuri" "cic:/matita/tests/simpl/".
16 include "coq.ma".
17
18 alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
19 alias id "plus" = "cic:/Coq/Init/Peano/plus.con".
20 alias id "S" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1/2)".
21 alias id "O" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1/1)".
22 alias id "not" = "cic:/Coq/Init/Logic/not.con".
23 alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
24 alias id "plus_comm" = "cic:/Coq/Arith/Plus/plus_comm.con".
25
26 theorem a : 
27  \forall A:Set.
28  \forall x,y : A.
29  not (x = y) \to not(y = x).
30 intros.
31 unfold not. (* simplify. *)
32 intro. apply H.
33 symmetry.
34 exact H1.
35 qed.
36
37 theorem t: let f \def \lambda x,y. x y in f (\lambda x.S x) O = S O.
38  intros. simplify. change in \vdash (? ? (? %) ?) with O. 
39  reflexivity. qed.
40  
41
42 theorem X: \forall x:nat. let myplus \def plus x in myplus (S O) = S x.
43  intros. simplify. change in \vdash (? ? (% ?) ?) with (plus x).
44
45 rewrite > plus_comm. reflexivity. qed.
46  
47 theorem R: \forall x:nat. let uno \def x + O in S O + uno = 1 + x.
48  intros. simplify.
49   change in \vdash (? ? (? %) ?) with (x + O).
50   rewrite > plus_comm. reflexivity. qed.
51