src/HOL/Library/Multiset_Order.thy
changeset 74806 ba59c691b3ee
parent 67020 c32254ab1901
child 74864 c256bba593f3
equal deleted inserted replaced
74805:b65336541c19 74806:ba59c691b3ee
    68   from step(3) have "M \<noteq> N" and
    68   from step(3) have "M \<noteq> N" and
    69     **: "\<And>y. count N y < count M y \<Longrightarrow> (\<exists>x>y. count M x < count N x)"
    69     **: "\<And>y. count N y < count M y \<Longrightarrow> (\<exists>x>y. count M x < count N x)"
    70     by (simp_all add: less_multiset\<^sub>H\<^sub>O_def)
    70     by (simp_all add: less_multiset\<^sub>H\<^sub>O_def)
    71   from step(2) obtain M0 a K where
    71   from step(2) obtain M0 a K where
    72     *: "P = add_mset a M0" "N = M0 + K" "a \<notin># K" "\<And>b. b \<in># K \<Longrightarrow> b < a"
    72     *: "P = add_mset a M0" "N = M0 + K" "a \<notin># K" "\<And>b. b \<in># K \<Longrightarrow> b < a"
    73     by (blast elim: mult1_lessE)
    73     by (auto elim: mult1_lessE)
    74   from \<open>M \<noteq> N\<close> ** *(1,2,3) have "M \<noteq> P" by (force dest: *(4) elim!: less_asym split: if_splits )
    74   from \<open>M \<noteq> N\<close> ** *(1,2,3) have "M \<noteq> P" by (force dest: *(4) elim!: less_asym split: if_splits )
    75   moreover
    75   moreover
    76   { assume "count P a \<le> count M a"
    76   { assume "count P a \<le> count M a"
    77     with \<open>a \<notin># K\<close> have "count N a < count M a" unfolding *(1,2)
    77     with \<open>a \<notin># K\<close> have "count N a < count M a" unfolding *(1,2)
    78       by (auto simp add: not_in_iff)
    78       by (auto simp add: not_in_iff)