
diff -r d59f851926c5 -r 7e28654a760a Nominal/Test.thy
--- a/Nominal/Test.thy	Thu Mar 11 15:10:07 2010 +0100
+++ b/Nominal/Test.thy	Thu Mar 11 16:12:15 2010 +0100
@@ -15,21 +15,18 @@
 where
   "bi (BP x t) = {atom x}"
 
+thm lam_bp_fv
+thm lam_bp_inject
+thm lam_bp_bn
+thm lam_bp_perm
+thm lam_bp_induct
+thm lam_bp_distinct
+
 (* compat should be
 compat (BP x t) pi (BP x' t')
   \<equiv> alpha_trm t t' \<and> pi o x = x'
 *)
 
-typ lam_raw
-term VAR_raw
-term APP_raw
-term LET_raw
-term Test.BP_raw
-thm bi_raw.simps
-thm permute_lam_raw_permute_bp_raw.simps
-thm alpha_lam_raw_alpha_bp_raw_alpha_bi_raw.intros[no_vars]
-thm fv_lam_raw_fv_bp_raw.simps[no_vars]
-
 text {* example 2 *}
 
 nominal_datatype trm' =
@@ -48,6 +45,12 @@
 | "f (PD x y) = {atom x, atom y}"
 | "f (PS x) = {atom x}"
 
+thm trm'_pat'_fv
+thm trm'_pat'_inject
+thm trm'_pat'_bn
+thm trm'_pat'_perm
+thm trm'_pat'_induct
+thm trm'_pat'_distinct
 
 (* compat should be
 compat (PN) pi (PN) == True
@@ -55,16 +58,6 @@
 compat (PD p1 p2) pi (PD p1' p2') == compat p1 pi p1' & compat p2 pi p2'
 *)
 
-
-thm alpha_trm'_raw_alpha_pat'_raw_alpha_f_raw.intros[no_vars]
-thm fv_trm'_raw_fv_pat'_raw.simps[no_vars]
-thm f_raw.simps
-(*thm trm'_pat'_induct
-thm trm'_pat'_perm
-thm trm'_pat'_fv
-thm trm'_pat'_bn
-thm trm'_pat'_inject*)
-
 nominal_datatype trm0 =
   Var0 "name"
 | App0 "trm0" "trm0"
@@ -81,20 +74,28 @@
 | "f0 (PS0 x) = {atom x}"
 | "f0 (PD0 p1 p2) = (f0 p1) \<union> (f0 p2)"
 
-thm f0_raw.simps
-(*thm trm0_pat0_induct
+thm trm0_pat0_fv
+thm trm0_pat0_inject
+thm trm0_pat0_bn
 thm trm0_pat0_perm
-thm trm0_pat0_fv
-thm trm0_pat0_bn*)
+thm trm0_pat0_induct
+thm trm0_pat0_distinct
 
 text {* example type schemes *}
 
 nominal_datatype t =
-  Var "name"
-| Fun "t" "t"
+  VarTS "name"
+| FunTS "t" "t"
 and  tyS =
   All xs::"name set" ty::"t" bind xs in ty
 
+thm t_tyS_fv
+thm t_tyS_inject
+thm t_tyS_bn
+thm t_tyS_perm
+thm t_tyS_induct
+thm t_tyS_distinct
+
 (* example 1 from Terms.thy *)
 
 nominal_datatype trm1 =
@@ -113,8 +114,12 @@
 | "bv1 (BP1 bp1 bp2) = (bv1 bp1) \<union> (bv1 bp2)"
 | "bv1 (BV1 x) = {atom x}"
 
-
-thm bv1_raw.simps
+thm trm1_bp1_fv
+thm trm1_bp1_inject
+thm trm1_bp1_bn
+thm trm1_bp1_perm
+thm trm1_bp1_induct
+thm trm1_bp1_distinct
 
 text {* example 3 from Terms.thy *}
 
@@ -132,6 +137,12 @@
   "bv3 ANil = {}"
 | "bv3 (ACons x t as) = {atom x} \<union> (bv3 as)"
 
+thm trm3_rassigns3_fv
+thm trm3_rassigns3_inject
+thm trm3_rassigns3_bn
+thm trm3_rassigns3_perm
+thm trm3_rassigns3_induct
+thm trm3_rassigns3_distinct
 
 (* compat should be
 compat (ANil) pi (PNil) \<equiv> TRue
@@ -153,6 +164,13 @@
   "bv5 Lnil = {}"
 | "bv5 (Lcons n t ltl) = {atom n} \<union> (bv5 ltl)"
 
+thm trm5_lts_fv
+thm trm5_lts_inject
+thm trm5_lts_bn
+thm trm5_lts_perm
+thm trm5_lts_induct
+thm trm5_lts_distinct
+
 (* example from my PHD *)
 
 atom_decl coname
@@ -166,9 +184,12 @@
 |  ImpL c::"coname" t1::"phd" n::"name" t2::"phd" "name"        bind c in t1, bind n in t2
 |  ImpR c::"coname" n::"name" t::"phd" "coname"                 bind n in t, bind c in t
 
-thm alpha_phd_raw.intros[no_vars]
-thm fv_phd_raw.simps[no_vars]
-
+thm phd_fv
+thm phd_inject
+thm phd_bn
+thm phd_perm
+thm phd_induct
+thm phd_distinct
 
 (* example form Leroy 96 about modules; OTT *)
 
@@ -223,8 +244,15 @@
 | "Cbinders (SStru x S) = {atom x}"
 | "Cbinders (SVal v T) = {atom v}"
 
+thm mexp_body_defn_sexp_sbody_spec_tyty_path_trmtrm_fv
+thm mexp_body_defn_sexp_sbody_spec_tyty_path_trmtrm_inject
+thm mexp_body_defn_sexp_sbody_spec_tyty_path_trmtrm_bn
+thm mexp_body_defn_sexp_sbody_spec_tyty_path_trmtrm_perm
+thm mexp_body_defn_sexp_sbody_spec_tyty_path_trmtrm_induct
+thm mexp_body_defn_sexp_sbody_spec_tyty_path_trmtrm_distinct
 
 (* example 3 from Peter Sewell's bestiary *)
+
 nominal_datatype exp =
   VarP "name"
 | AppP "exp" "exp"
@@ -240,7 +268,13 @@
   "bp' (PVar x) = {atom x}"
 | "bp' (PUnit) = {}"
 | "bp' (PPair p1 p2) = bp' p1 \<union> bp' p2"
-thm alpha_exp_raw_alpha_pat3_raw_alpha_bp'_raw.intros
+
+thm exp_pat3_fv
+thm exp_pat3_inject
+thm exp_pat3_bn
+thm exp_pat3_perm
+thm exp_pat3_induct
+thm exp_pat3_distinct
 
 (* example 6 from Peter Sewell's bestiary *)
 nominal_datatype exp6 =
@@ -257,7 +291,13 @@
   "bp6 (PVar' x) = {atom x}"
 | "bp6 (PUnit') = {}"
 | "bp6 (PPair' p1 p2) = bp6 p1 \<union> bp6 p2"
-thm alpha_exp6_raw_alpha_pat6_raw_alpha_bp6_raw.intros
+
+thm exp6_pat6_fv
+thm exp6_pat6_inject
+thm exp6_pat6_bn
+thm exp6_pat6_perm
+thm exp6_pat6_induct
+thm exp6_pat6_distinct
 
 (* THE REST ARE NOT SUPPOSED TO WORK YET *)
 




