diff -r c8acaded1777 -r 4a00077c008f Nominal/Ex/TypeSchemes.thy --- a/Nominal/Ex/TypeSchemes.thy Tue Jul 19 19:09:06 2011 +0100 +++ b/Nominal/Ex/TypeSchemes.thy Fri Jul 22 11:37:16 2011 +0100 @@ -288,26 +288,6 @@ termination (eqvt) by lexicographic_order -thm subst_substs.eqvt[no_vars] -thm subst_def -thm substs_def -thm Sum_Type.Projr.simps - -lemma - shows "(p \ subst x y) = subst (p \ x) (p \ y)" - and "(p \ substs x' y') = substs (p \ x') (p \ y')" -unfolding subst_def substs_def -thm permute_fun_app_eq -thm Sum_Type.Projl_def sum_rec_def -apply(simp add: permute_fun_def) -unfolding subst_substs_sumC_def -thm subst_substs.eqvt -apply(case_tac x) -apply(simp) -apply(case_tac a) -apply(simp) -thm subst_def -apply(simp) section {* defined as two separate nominal datatypes *} @@ -383,17 +363,24 @@ apply (rule, perm_simp, rule) apply auto[2] apply (rule_tac y="b" and c="a" in tys2.strong_exhaust) - apply auto + apply auto[1] + apply(simp) + apply(erule conjE) apply (erule Abs_res_fcb) apply (simp add: Abs_fresh_iff) - apply (simp add: Abs_fresh_iff) - apply auto[1] - apply (simp add: fresh_def fresh_star_def) - apply (rule contra_subsetD[OF supp_subst]) - apply simp - apply blast + apply(simp add: fresh_def) + apply(simp add: supp_Abs) + apply(rule impI) + apply(subgoal_tac "x \ supp \") + prefer 2 + apply(auto simp add: fresh_star_def fresh_def)[1] + apply(subgoal_tac "x \ supp t") + using supp_subst + apply(blast) + using supp_subst + apply(blast) apply clarify - apply (simp add: subst_eqvt) + apply (simp add: subst2.eqvt) apply (subst Abs_eq_iff) apply (rule_tac x="0::perm" in exI) apply (subgoal_tac "p \ \' = \'") @@ -415,7 +402,6 @@ apply blast done - text {* Some Tests about Alpha-Equality *} lemma