]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/tests/tacticals.ma
restructuring
[helm.git] / matita / matita / tests / tacticals.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
16
17 inductive myand (A, B: Prop) : Prop \def
18  | myconj : ∀a:A.∀b:B. myand A B. 
19  
20 lemma prova: 
21   ∀A,B,C,D:Prop.∀a:A.∀b:B.∀c:C.∀d:D.myand (myand A B) (myand C D).
22   intros; try (apply myconj); try assumption; try (apply myconj);
23   try assumption.
24 qed.
25
26 lemma prova2: 
27   ∀A,B,C,D:Prop.∀a:A.∀b:B.∀c:C.∀d:D.myand (myand A B) (myand C D).
28   intros; progress (apply myconj; apply myconj);
29   solve [assumption].
30 qed.  
31
32 lemma prova3: 
33   ∀A,B,C,D:Prop.∀a:A.∀b:B.∀c:C.∀d:D.myand (myand A B) (myand C D).
34   intros; repeat first [ assumption | apply myconj].
35 qed.
36
37 lemma prova4: 
38  ∀A,B,C,D:Prop.∀a:A.∀b:B.∀c:C.∀d:D.myand (myand A B) (myand C D).
39   intros;
40   repeat apply myconj;
41   assumption.
42 qed.
43
44 lemma prova6: 
45   ∀A,B,C,D:Prop.∀a:A.∀b:B.∀c:C.∀d:D.myand (myand A B) (myand C D).
46   intros; apply myconj;  
47   [1:repeat (constructor 1; try assumption)
48   |2:repeat (constructor 1; try assumption)
49   ]
50 qed.