X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Ftests%2Fdiscriminate.ma;h=81c2da87fbf381b9d8954088a41ee9ce44c465cb;hb=64d7a7dfa840d7279f9af64240ee1f8a69181801;hp=d8e4bf2e25a84951c358c1437551c0d5a971d105;hpb=55b82bd235d82ff7f0a40d980effe1efde1f5073;p=helm.git diff --git a/helm/software/matita/tests/discriminate.ma b/helm/software/matita/tests/discriminate.ma index d8e4bf2e2..81c2da87f 100644 --- a/helm/software/matita/tests/discriminate.ma +++ b/helm/software/matita/tests/discriminate.ma @@ -13,28 +13,59 @@ (**************************************************************************) set "baseuri" "cic:/matita/tests/discriminate". -include "legacy/coq.ma". +include "../legacy/coq.ma". alias id "not" = "cic:/Coq/Init/Logic/not.con". alias num (instance 0) = "natural number". alias symbol "eq" (instance 0) = "Coq's leibnitz's equality". +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 id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)". +alias id "bool" = "cic:/Coq/Init/Datatypes/bool.ind#xpointer(1/1)". +alias id "S" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1/2)". +alias id "O" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1/1)". inductive foo: Prop \def I_foo: foo. +alias num (instance 0) = "binary integer number". theorem stupid: 1 = 0 \to (\forall p:Prop. p \to not p). intros. generalize in match I_foo. - discriminate H. + destruct H. qed. inductive bar_list (A:Set): Set \def | bar_nil: bar_list A | bar_cons: A \to bar_list A \to bar_list A. -alias id "False" = "cic:/Coq/Init/Logic/False.ind#xpointer(1/1)". + theorem stupid2: \forall A:Set.\forall x:A.\forall l:bar_list A. bar_nil A = bar_cons A x l \to False. intros. - discriminate H. + destruct H. +qed. + +inductive dt (A:Type): Type \to Type \def + | k1: \forall T:Type. dt A T + | k2: \forall T:Type. \forall T':Type. dt A (T \to T'). + +theorem stupid3: + k1 False (False → True) = k2 False False True → False. + intros; + destruct H. +qed. + +inductive dddt (A:Type): Type \to Type \def + | kkk1: dddt A nat + | kkk2: dddt A nat. + +theorem stupid4: kkk1 False = kkk2 False \to False. + intros; + destruct H. +qed. + +theorem recursive: S (S (S O)) = S (S O) \to False. + intros; + destruct H. qed.