X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2Ftests%2Fmatch_inference.ma;h=0e27ce4098d58eeee7276da93673e292b443d7df;hb=4167cea65ca58897d1a3dbb81ff95de5074700cc;hp=a84b3c373853fd6138d5dd525e3a1e3be9824ba3;hpb=ec6b4df6d02ff30a7a1cd784831017b05b1d46dd;p=helm.git diff --git a/helm/matita/tests/match_inference.ma b/helm/matita/tests/match_inference.ma index a84b3c373..0e27ce409 100644 --- a/helm/matita/tests/match_inference.ma +++ b/helm/matita/tests/match_inference.ma @@ -1,3 +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/match_inference/". + inductive pos: Set \def | one : pos | next : pos \to pos. @@ -6,12 +22,31 @@ inductive nat:Set \def | O : nat | S : nat \to nat. -inductive empty : Set \def . - definition pos2nat : pos \to nat \def \lambda x:pos . match x with [ one \Rightarrow O | (next z) \Rightarrow O]. -definition empty2nat : empty \to nat \def - \lambda x : empty . S (match x in empty with []). \ No newline at end of file +inductive empty (x:nat) : nat \to Set \def . + +definition empty2nat : (empty O O) \to nat \def + \lambda x : (empty O O). S (match x in empty with []). + +inductive le (n:nat) : nat \to Prop \def + | le_n : le n n + | le_S : \forall m:nat. le n m \to le n (S m). + +inductive True : Prop \def + I : True. + +definition r : True \def + match (le_n O) with + [ le_n \Rightarrow I + | (le_S y p') \Rightarrow I ]. + +inductive Prod (A,B:Set): Set \def +pair : A \to B \to Prod A B. + +definition fst : \forall A,B:Set. (Prod A B) \to A \def +\lambda A,B:Set. \lambda p:(Prod A B). match p with +[(pair a b) \Rightarrow a].