author | Cezary Kaliszyk <kaliszyk@in.tum.de> |
Wed, 17 Mar 2010 11:11:42 +0100 | |
changeset 1475 | 975d44e867be |
parent 1474 | 8a03753e0e02 (current diff) |
parent 1473 | b4216d0e109a (diff) |
child 1476 | e911dae20737 |
--- a/Nominal/Test.thy Wed Mar 17 11:11:25 2010 +0100 +++ b/Nominal/Test.thy Wed Mar 17 11:11:42 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 =