# HG changeset patch # User Christian Urban <urbanc@in.tum.de> # Date 1271233796 -7200 # Node ID ac8cb569a17bcaf70cff48f8ee7a362c42df13d0 # Parent f374ffd50c7c5fabe9de95a37df3422be77bb6b9# Parent faa7e6033f2e5fef09df5a9b5d511f0eadf4b900 merged diff -r f374ffd50c7c -r ac8cb569a17b Nominal/FSet.thy --- a/Nominal/FSet.thy Wed Apr 14 10:29:34 2010 +0200 +++ b/Nominal/FSet.thy Wed Apr 14 10:29:56 2010 +0200 @@ -245,9 +245,9 @@ "x # x # xs \<approx> x # xs" by auto -lemma none_mem_nil: - "(\<forall>x. x \<notin> set xs) = (xs \<approx> [])" - by simp +lemma none_memb_nil: + "(\<forall>x. \<not> memb x xs) = (xs \<approx> [])" + by (simp add: memb_def) lemma fset_raw_strong_cases: "(xs = []) \<or> (\<exists>x ys. ((\<not> memb x ys) \<and> (xs \<approx> x # ys)))" @@ -278,6 +278,10 @@ "memb x (delete_raw xs y) = (memb x xs \<and> x \<noteq> y)" by (induct xs arbitrary: x y) (auto simp add: memb_def) +lemma delete_raw_rsp: + "l \<approx> r \<Longrightarrow> delete_raw l x \<approx> delete_raw r x" + by (simp add: memb_def[symmetric] memb_delete_raw) + lemma [quot_respect]: "(op \<approx> ===> op = ===> op \<approx>) delete_raw delete_raw" by (simp add: memb_def[symmetric] memb_delete_raw) @@ -339,7 +343,7 @@ lemma ffold_raw_rsp_pre: "\<forall>e. memb e a = memb e b \<Longrightarrow> ffold_raw f z a = ffold_raw f z b" apply (induct a arbitrary: b) - apply (simp add: hd_in_set memb_absorb memb_def none_mem_nil) + apply (simp add: hd_in_set memb_absorb memb_def none_memb_nil) apply (simp add: ffold_raw.simps) apply (rule conjI) apply (rule_tac [!] impI) @@ -479,15 +483,13 @@ "fset_to_set (finsert (h :: 'a) t) = insert h (fset_to_set t)" by (lifting set.simps) -thm memb_def[symmetric, THEN meta_eq_to_obj_eq] - lemma in_fset_to_set: "x \<in> fset_to_set S \<equiv> x |\<in>| S" by (lifting memb_def[symmetric]) lemma none_fin_fempty: - "(\<forall>x. x \<notin> fset_to_set S) = (S = {||})" - by (lifting none_mem_nil) + "(\<forall>x. x |\<notin>| S) = (S = {||})" + by (lifting none_memb_nil) lemma fset_cong: "(fset_to_set S = fset_to_set T) = (S = T)"