# HG changeset patch # User Christian Urban # Date 1271002208 -7200 # Node ID 81b171e2d6d57f9af983e3be96872731c105f97f # Parent ed46cf122016485268a9abc5f0599367eaec4377 added eqvt rules that are more standard diff -r ed46cf122016 -r 81b171e2d6d5 Nominal/Abs.thy --- a/Nominal/Abs.thy Sun Apr 11 18:08:57 2010 +0200 +++ b/Nominal/Abs.thy Sun Apr 11 18:10:08 2010 +0200 @@ -1,10 +1,10 @@ theory Abs -imports "Nominal2_Atoms" - "Nominal2_Eqvt" - "Nominal2_Supp" - "Nominal2_FSet" - "../Quotient" - "../Quotient_Product" +imports "../Nominal-General/Nominal2_Atoms" + "../Nominal-General/Nominal2_Eqvt" + "../Nominal-General/Nominal2_Supp" + "../Nominal-General/Nominal2_FSet" + "Quotient" + "Quotient_Product" begin fun @@ -761,6 +761,20 @@ unfolding alphas fresh_star_def by (simp_all add: fresh_plus_perm) + +(* PROBLEM: this should be the real eqvt lemma for the alphas *) +lemma alpha_gen_real_eqvt: + shows "(bs, x) \gen R f q (cs, y) \ (p \ bs, p \ x) \gen (p \ R) (p \ f) (p \ q) (p \ cs, p \ y)" + and "(bs, x) \res R f q (cs, y) \ (p \ bs, p \ x) \res (p \ R) (p \ f) (p \ q) (p \ cs, p \ y)" + and "(ds, x) \lst R f q (es, y) \ (p \ ds, p \ x) \lst (p \ R) (p \ f) (p \ q) (p \ es, p \ y)" + unfolding alphas + unfolding permute_eqvt[symmetric] + unfolding set_eqvt[symmetric] + unfolding permute_fun_app_eq[symmetric] + unfolding Diff_eqvt[symmetric] + by (auto simp add: permute_bool_def fresh_star_permute_iff) + + lemma alpha_gen_eqvt: assumes a: "R (q \ x) y \ R (p \ (q \ x)) (p \ y)" and b: "p \ (f x) = f (p \ x)"