Nominal/Nominal2_Base.thy
changeset 3197 25d11b449e92
parent 3195 deef21dc972f
child 3201 3e6f4320669f
equal deleted inserted replaced
3196:ca6ca6fc28af 3197:25d11b449e92
  2097 by (simp add: supp_set)
  2097 by (simp add: supp_set)
  2098 
  2098 
  2099 
  2099 
  2100 subsection {* Type @{typ "'a multiset"} is finitely supported *}
  2100 subsection {* Type @{typ "'a multiset"} is finitely supported *}
  2101 
  2101 
  2102 lemma set_of_eqvt[eqvt]:
  2102 lemma set_of_eqvt [eqvt]:
  2103   shows "p \<bullet> (set_of M) = set_of (p \<bullet> M)"
  2103   shows "p \<bullet> (set_of M) = set_of (p \<bullet> M)"
  2104 by (induct M) (simp_all add: insert_eqvt empty_eqvt)
  2104 by (induct M) (simp_all add: insert_eqvt empty_eqvt)
  2105 
  2105 
  2106 lemma supp_set_of:
  2106 lemma supp_set_of:
  2107   shows "supp (set_of M) \<subseteq> supp M"
  2107   shows "supp (set_of M) \<subseteq> supp M"
  2884 class at_base = pt +
  2884 class at_base = pt +
  2885   fixes atom :: "'a \<Rightarrow> atom"
  2885   fixes atom :: "'a \<Rightarrow> atom"
  2886   assumes atom_eq_iff [simp]: "atom a = atom b \<longleftrightarrow> a = b"
  2886   assumes atom_eq_iff [simp]: "atom a = atom b \<longleftrightarrow> a = b"
  2887   assumes atom_eqvt: "p \<bullet> (atom a) = atom (p \<bullet> a)"
  2887   assumes atom_eqvt: "p \<bullet> (atom a) = atom (p \<bullet> a)"
  2888 
  2888 
  2889 declare atom_eqvt[eqvt]
  2889 declare atom_eqvt [eqvt]
  2890 
  2890 
  2891 class at = at_base +
  2891 class at = at_base +
  2892   assumes sort_of_atom_eq [simp]: "sort_of (atom a) = sort_of (atom b)"
  2892   assumes sort_of_atom_eq [simp]: "sort_of (atom a) = sort_of (atom b)"
  2893 
  2893 
  2894 lemma sort_ineq [simp]:
  2894 lemma sort_ineq [simp]: