X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2Ftests%2Ffguidi.ma;h=567f15c97c88ca976c0ecf8b71b389df700da752;hb=97c2d258a5c524eb5c4b85208899d80751a2c82f;hp=7681a7ad4e8429b17c3da11072b862eb7889ea74;hpb=b42c305a6f7dd0d0495afd442af0653df8f35d85;p=helm.git diff --git a/helm/matita/tests/fguidi.ma b/helm/matita/tests/fguidi.ma index 7681a7ad4..567f15c97 100644 --- a/helm/matita/tests/fguidi.ma +++ b/helm/matita/tests/fguidi.ma @@ -1,4 +1,19 @@ +(**************************************************************************) +(* ___ *) +(* ||M|| *) +(* ||A|| A project by Andrea Asperti *) +(* ||T|| *) +(* ||I|| Developers: *) +(* ||T|| The HELM team. *) +(* ||A|| http://helm.cs.unibo.it *) +(* \ / *) +(* \ / This file is distributed under the terms of the *) +(* v GNU General Public License Version 2 *) +(* *) +(**************************************************************************) + set "baseuri" "cic:/matita/tests/fguidi/". +include "coq.ma". alias id "O" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1/1)". alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)". @@ -10,9 +25,9 @@ alias id "ex_intro" = "cic:/Coq/Init/Logic/ex.ind#xpointer(1/1/1)". alias id "False" = "cic:/Coq/Init/Logic/False.ind#xpointer(1/1)". alias id "True" = "cic:/Coq/Init/Logic/True.ind#xpointer(1/1)". -alias symbol "and" (instance 0) = "logical and". -alias symbol "eq" (instance 0) = "leibnitz's equality". -alias symbol "exists" (instance 0) = "exists". +alias symbol "and" (instance 0) = "Coq's logical and". +alias symbol "eq" (instance 0) = "Coq's leibnitz's equality". +alias symbol "exists" (instance 0) = "Coq's exists". definition is_S: nat \to Prop \def \lambda n. match n with @@ -27,7 +42,7 @@ definition pred: nat \to nat \def ]. theorem eq_gen_S_O: \forall x. (S x = O) \to \forall P:Prop. P. -intros. apply False_ind. cut (is_S O). auto. elim H. exact I. +intros. apply False_ind. cut (is_S O). auto paramodulation. elim H. exact I. qed. theorem eq_gen_S_O_cc: (\forall P:Prop. P) \to \forall x. (S x = O). @@ -35,12 +50,12 @@ intros. auto. qed. theorem eq_gen_S_S: \forall m,n. (S m) = (S n) \to m = n. -intros. cut (pred (S m)) = (pred (S n)). -assumption. elim H. auto. +intros. cut ((pred (S m)) = (pred (S n))). +assumption. elim H. auto paramodulation. qed. theorem eq_gen_S_S_cc: \forall m,n. m = n \to (S m) = (S n). -intros. elim H. auto. +intros. elim H. auto paramodulation. qed. inductive le: nat \to nat \to Prop \def @@ -48,37 +63,37 @@ inductive le: nat \to nat \to Prop \def | le_succ: \forall m, n. (le m n) \to (le (S m) (S n)). theorem le_refl: \forall x. (le x x). -intros. elim x. auto. auto. +intros. elim x. auto paramodulation. auto paramodulation. qed. theorem le_gen_x_O_aux: \forall x, y. (le x y) \to (y =O) \to (x = O). -intros 3. elim H. auto. apply eq_gen_S_O. exact e3. auto. +intros 3. elim H. auto paramodulation. apply eq_gen_S_O. exact n1. auto paramodulation. qed. theorem le_gen_x_O: \forall x. (le x O) \to (x = O). -intros. apply le_gen_x_O_aux. exact O. auto. auto. +intros. apply le_gen_x_O_aux. exact O. auto paramodulation. auto paramodulation. qed. theorem le_gen_x_O_cc: \forall x. (x = O) \to (le x O). -intros. elim H. auto. +intros. elim H. auto paramodulation. qed. theorem le_gen_S_x_aux: \forall m,x,y. (le y x) \to (y = S m) \to (\exists n. x = (S n) \land (le m n)). intros 4. elim H. -apply eq_gen_S_O. exact m. elim H1. auto. -cut e4 = m. elim Hcut. apply ex_intro. exact e3. auto. auto. +apply eq_gen_S_O. exact m. elim H1. auto paramodulation. +cut (n = m). elim Hcut. apply ex_intro. exact n1. auto paramodulation. auto. (* paramodulation non trova la prova *) qed. theorem le_gen_S_x: \forall m,x. (le (S m) x) \to (\exists n. x = (S n) \land (le m n)). -intros. apply le_gen_S_x_aux. exact (S m). auto. auto. +intros. apply le_gen_S_x_aux. exact (S m). auto paramodulation. auto paramodulation. qed. theorem le_gen_S_x_cc: \forall m,x. (\exists n. x = (S n) \land (le m n)) \to (le (S m) x). -intros. elim H. elim H1. cut (S x1) = x. elim Hcut. auto. elim H2. auto. +intros. elim H. elim H1. cut ((S x1) = x). elim Hcut. auto paramodulation. elim H2. auto paramodulation. qed. theorem le_gen_S_S: \forall m,n. (le (S m) (S n)) \to (le m n). @@ -88,12 +103,12 @@ lapply eq_gen_S_S to H2 using H4. rewrite > H4. assumption. qed. theorem le_gen_S_S_cc: \forall m,n. (le m n) \to (le (S m) (S n)). -intros. auto. +intros. auto paramodulation. qed. (* theorem le_trans: \forall x,y. (le x y) \to \forall z. (le y z) \to (le x z). intros 1. elim x; clear H. clear x. -auto. +auto paramodulation. fwd H1 [H]. decompose H. *)