# HG changeset patch # User Cezary Kaliszyk # Date 1269330308 -3600 # Node ID af34dd3418fe7dacf4e0b1dd9ec327cafa33ea66 # Parent c69d9fb1678526d67df0766bf144f6a36b890d8b Move example3 out. diff -r c69d9fb16785 -r af34dd3418fe Nominal/Ex3.thy --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Nominal/Ex3.thy Tue Mar 23 08:45:08 2010 +0100 @@ -0,0 +1,35 @@ +theory Ex3 +imports "Parser" +begin + +atom_decl name + +ML {* val _ = recursive := false *} +nominal_datatype trm0 = + Var0 "name" +| App0 "trm0" "trm0" +| Lam0 x::"name" t::"trm0" bind x in t +| Let0 p::"pat0" "trm0" t::"trm0" bind "f0 p" in t +and pat0 = + PN0 +| PS0 "name" +| PD0 "pat0" "pat0" +binder + f0::"pat0 \ atom set" +where + "f0 PN0 = {}" +| "f0 (PS0 x) = {atom x}" +| "f0 (PD0 p1 p2) = (f0 p1) \ (f0 p2)" + +thm trm0_pat0.fv +thm trm0_pat0.eq_iff +thm trm0_pat0.bn +thm trm0_pat0.perm +thm trm0_pat0.induct +thm trm0_pat0.distinct +thm trm0_pat0.fv[simplified trm0_pat0.supp,no_vars] + +end + + + diff -r c69d9fb16785 -r af34dd3418fe Nominal/Test.thy --- a/Nominal/Test.thy Tue Mar 23 08:42:02 2010 +0100 +++ b/Nominal/Test.thy Tue Mar 23 08:45:08 2010 +0100 @@ -6,30 +6,6 @@ ML {* val _ = recursive := false *} -nominal_datatype trm0 = - Var0 "name" -| App0 "trm0" "trm0" -| Lam0 x::"name" t::"trm0" bind x in t -| Let0 p::"pat0" "trm0" t::"trm0" bind "f0 p" in t -and pat0 = - PN0 -| PS0 "name" -| PD0 "pat0" "pat0" -binder - f0::"pat0 \ atom set" -where - "f0 PN0 = {}" -| "f0 (PS0 x) = {atom x}" -| "f0 (PD0 p1 p2) = (f0 p1) \ (f0 p2)" - -thm trm0_pat0.fv -thm trm0_pat0.eq_iff -thm trm0_pat0.bn -thm trm0_pat0.perm -thm trm0_pat0.induct -thm trm0_pat0.distinct -thm trm0_pat0.fv[simplified trm0_pat0.supp,no_vars] - (* example 1 from Terms.thy *) nominal_datatype trm1 =