X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Ftests%2Finjection.ma;h=929e63cd5296fadb329a6b806a731667ac377741;hb=630e4146e14848db27b89d1467c5120d46530bce;hp=7f79ef3867146f4e77bd5513811178a5d09551d4;hpb=ab16e7b1f7976674e6a4cb1043cd05f2c7f5ad20;p=helm.git diff --git a/matita/tests/injection.ma b/matita/tests/injection.ma index 7f79ef386..929e63cd5 100644 --- a/matita/tests/injection.ma +++ b/matita/tests/injection.ma @@ -12,9 +12,9 @@ (* *) (**************************************************************************) -set "baseuri" "cic:/matita/test/injection/". +set "baseuri" "cic:/matita/tests/injection". -include "legacy/coq.ma". +include "../legacy/coq.ma". alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)". alias id "bool" = "cic:/Coq/Init/Datatypes/bool.ind#xpointer(1/1)". @@ -26,7 +26,7 @@ inductive t0 : Type := theorem injection_test0: ∀n,n',m,m'. k0 n m = k0 n' m' → m = m'. intros; - injection H; + destruct H; assumption. qed. @@ -36,7 +36,7 @@ inductive t : Type → Type := theorem injection_test1: ∀n,n'. k n = k n' → n = n'. intros; - injection H; + destruct H; assumption. qed. @@ -46,7 +46,7 @@ inductive tt (A:Type) : Type -> Type := theorem injection_test2: ∀n,n',m,m'. k1 bool n n' = k1 bool m m' → n' = m'. intros; - injection H; + destruct H; assumption. qed. @@ -54,31 +54,9 @@ inductive ttree : Type → Type := tempty: ttree nat | tnode : ∀A. ttree A → ttree A → ttree A. -(* CSC: there is an undecidable unification problem here: - consider a constructor k : \forall x. f x -> i (g x) - The head of the outtype of the injection MutCase should be (f ?1) - such that (f ?1) unifies with (g d) [ where d is the Rel that binds - the corresponding right parameter in the outtype ] - Coq dodges the problem by generating an equality between sigma-types - (that state the existence of a ?1 such that ...) -theorem injection_test3: - ∀t,t'. tnode nat t tempty = tnode nat t' tempty → t = t'. - intros; - injection H; - assumption. -qed. - -theorem injection_test3: - ∀t,t'. - tnode nat (tnode nat t t') tempty = tnode nat (tnode nat t' tempty) tempty → - t = t'. - intros; - injection H; -*) - theorem injection_test4: - ∀n,n',m,m'. k1 bool (S n) (S m) = k1 bool (S n') (S (S m')) → m = S m'. + ∀n,n',m,m'. k1 bool (S n) (S (S m)) = k1 bool (S n') (S (S (S m'))) → m = S m'. intros; - injection H; + destruct H; assumption. -qed. \ No newline at end of file +qed.