src/HOL/Library/Multiset.thy
changeset 76682 e260dabc88e6
parent 76611 a7d2a7a737b8
child 76700 c48fe2be847f
child 76749 11a24dab1880
equal deleted inserted replaced
76676:f572f5525e4b 76682:e260dabc88e6
  3401     "a \<notin># K" "\<And>b. b \<in># K \<Longrightarrow> r b a"
  3401     "a \<notin># K" "\<And>b. b \<in># K \<Longrightarrow> r b a"
  3402 proof -
  3402 proof -
  3403   from assms obtain a M0 K where "M = add_mset a M0" "N = M0 + K" and
  3403   from assms obtain a M0 K where "M = add_mset a M0" "N = M0 + K" and
  3404     *: "b \<in># K \<Longrightarrow> r b a" for b by (blast elim: mult1E)
  3404     *: "b \<in># K \<Longrightarrow> r b a" for b by (blast elim: mult1E)
  3405   moreover from * [of a] have "a \<notin># K"
  3405   moreover from * [of a] have "a \<notin># K"
  3406     using \<open>asymp r\<close> by (meson asymp.cases)
  3406     using \<open>asymp r\<close> by (meson asympD)
  3407   ultimately show thesis by (auto intro: that)
  3407   ultimately show thesis by (auto intro: that)
  3408 qed
  3408 qed
  3409 
  3409 
  3410 lemma trans_mult: "trans r \<Longrightarrow> trans (mult r)"
  3410 lemma trans_mult: "trans r \<Longrightarrow> trans (mult r)"
  3411   by (simp add: mult_def)
  3411   by (simp add: mult_def)