X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2Ftests%2Felim.ma;h=7c4031971307cd524eeca3379431c823ad7d2e1f;hb=33a02e0b639217093eb63f30169aaa6ac8c78907;hp=fcc130e9ecece535348456f59a0abe07b4ba549d;hpb=650e3b3c9ff0b9cafb76a0edf8139a53446937ba;p=helm.git diff --git a/helm/matita/tests/elim.ma b/helm/matita/tests/elim.ma index fcc130e9e..7c4031971 100644 --- a/helm/matita/tests/elim.ma +++ b/helm/matita/tests/elim.ma @@ -53,3 +53,27 @@ qed. theorem foo: let ax \def refl_equal ? 0 in t ax = t ax. elim t; reflexivity. qed. + +(* This test shows a bug where elim opens a new unus{ed,eful} goal *) + +alias symbol "eq" (instance 0) = "Coq's leibnitz's equality". +alias id "O" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1/1)". + +inductive sum (n:nat) : nat \to nat \to Set \def + k: \forall x,y. n = x + y \to sum n x y. + +theorem t: \forall x,y. \forall H: sum x y O. + match H with [ (k a b p) \Rightarrow a ] = x. + intros. + cut (y = y \to O = O \to match H with [ (k a b p) \Rightarrow a] = x). + apply Hcut; reflexivity. + apply + (sum_ind ? + (\lambda a,b,K. y=a \to O=b \to + match K with [ (k a b p) \Rightarrow a ] = x) + ? ? ? H). + simplify. intros. + generalize in match H1. + rewrite < H2; rewrite < H3.intro. + rewrite > H4.auto. +qed.