
diff -r 4fa5365cd871 -r b4216d0e109a Nominal/Test.thy
--- a/Nominal/Test.thy	Wed Mar 17 09:57:54 2010 +0100
+++ b/Nominal/Test.thy	Wed Mar 17 10:34:25 2010 +0100
@@ -332,6 +332,43 @@
 thm t_tyS_induct
 thm t_tyS_distinct
 
+ML {* Sign.of_sort @{theory} (@{typ t}, @{sort fs}) *}
+ML {* Sign.of_sort @{theory} (@{typ tyS}, @{sort fs}) *}
+
+lemma supp_fv_t_tyS:
+  shows "supp T = fv_t T" 
+  and   "supp S = fv_tyS S"
+apply(induct T and S rule: t_tyS_inducts)
+apply(simp_all add: t_tyS_fv)
+(* VarTS case *)
+apply(simp only: supp_def)
+apply(simp only: t_tyS_perm)
+apply(simp only: t_tyS_inject)
+apply(simp only: supp_def[symmetric])
+apply(simp only: supp_at_base)
+(* FunTS case *)
+apply(simp only: supp_def)
+apply(simp only: t_tyS_perm)
+apply(simp only: t_tyS_inject)
+apply(simp only: de_Morgan_conj)
+apply(simp only: Collect_disj_eq)
+apply(simp only: infinite_Un)
+apply(simp only: Collect_disj_eq)
+(* All case *)
+apply(rule_tac t="supp (All fun t_raw)" and s="supp (Abs (atom ` fun) t_raw)" in subst)
+apply(simp (no_asm) only: supp_def)
+apply(simp only: t_tyS_perm)
+apply(simp only: permute_ABS)
+apply(simp only: t_tyS_inject)
+apply(simp only: Abs_eq_iff)
+apply(simp only: insert_eqvt atom_eqvt empty_eqvt image_eqvt atom_eqvt_raw)
+apply(simp only: alpha_gen)
+apply(simp only: supp_eqvt[symmetric])
+apply(simp only: eqvts)
+oops
+(*apply(simp only: supp_Abs)
+done*)
+
 (* example 1 from Terms.thy *)
 
 nominal_datatype trm1 =




