equal
deleted
inserted
replaced
243 |
243 |
244 lemma atLeastatMost_psubset_iff: |
244 lemma atLeastatMost_psubset_iff: |
245 "{a..b} < {c..d} \<longleftrightarrow> |
245 "{a..b} < {c..d} \<longleftrightarrow> |
246 ((\<not> a \<le> b) \<or> c \<le> a \<and> b \<le> d \<and> (c < a \<or> b < d)) \<and> c \<le> d" |
246 ((\<not> a \<le> b) \<or> c \<le> a \<and> b \<le> d \<and> (c < a \<or> b < d)) \<and> c \<le> d" |
247 by(simp add: psubset_eq set_eq_iff less_le_not_le)(blast intro: order_trans) |
247 by(simp add: psubset_eq set_eq_iff less_le_not_le)(blast intro: order_trans) |
|
248 |
|
249 lemma atLeastAtMost_subseteq_atLeastLessThan_iff: |
|
250 "{a..b} \<subseteq> {c ..< d} \<longleftrightarrow> (a \<le> b \<longrightarrow> c \<le> a \<and> b < d)" |
|
251 by auto (blast intro: local.order_trans local.le_less_trans elim: )+ |
248 |
252 |
249 lemma Icc_subset_Ici_iff[simp]: |
253 lemma Icc_subset_Ici_iff[simp]: |
250 "{l..h} \<subseteq> {l'..} = (\<not> l\<le>h \<or> l\<ge>l')" |
254 "{l..h} \<subseteq> {l'..} = (\<not> l\<le>h \<or> l\<ge>l')" |
251 by(auto simp: subset_eq intro: order_trans) |
255 by(auto simp: subset_eq intro: order_trans) |
252 |
256 |
406 lemma greaterThanLessThan_subseteq_atLeastAtMost_iff: |
410 lemma greaterThanLessThan_subseteq_atLeastAtMost_iff: |
407 "{a <..< b} \<subseteq> { c .. d } \<longleftrightarrow> (a < b \<longrightarrow> c \<le> a \<and> b \<le> d)" |
411 "{a <..< b} \<subseteq> { c .. d } \<longleftrightarrow> (a < b \<longrightarrow> c \<le> a \<and> b \<le> d)" |
408 using dense[of "a" "min c b"] dense[of "max a d" "b"] |
412 using dense[of "a" "min c b"] dense[of "max a d" "b"] |
409 by (force simp: subset_eq Ball_def not_less[symmetric]) |
413 by (force simp: subset_eq Ball_def not_less[symmetric]) |
410 |
414 |
411 lemma atLeastAtMost_subseteq_atLeastLessThan_iff: |
|
412 "{a .. b} \<subseteq> { c ..< d } \<longleftrightarrow> (a \<le> b \<longrightarrow> c \<le> a \<and> b < d)" |
|
413 using dense[of "max a d" "b"] |
|
414 by (force simp: subset_eq Ball_def not_less[symmetric]) |
|
415 |
|
416 lemma greaterThanLessThan_subseteq_greaterThanLessThan: |
415 lemma greaterThanLessThan_subseteq_greaterThanLessThan: |
417 "{a <..< b} \<subseteq> {c <..< d} \<longleftrightarrow> (a < b \<longrightarrow> a \<ge> c \<and> b \<le> d)" |
416 "{a <..< b} \<subseteq> {c <..< d} \<longleftrightarrow> (a < b \<longrightarrow> a \<ge> c \<and> b \<le> d)" |
418 using dense[of "a" "min c b"] dense[of "max a d" "b"] |
417 using dense[of "a" "min c b"] dense[of "max a d" "b"] |
419 by (force simp: subset_eq Ball_def not_less[symmetric]) |
418 by (force simp: subset_eq Ball_def not_less[symmetric]) |
420 |
419 |
461 |
460 |
462 lemma atLeastLessThan_inj: |
461 lemma atLeastLessThan_inj: |
463 fixes a b c d :: "'a::linorder" |
462 fixes a b c d :: "'a::linorder" |
464 assumes eq: "{a ..< b} = {c ..< d}" and "a < b" "c < d" |
463 assumes eq: "{a ..< b} = {c ..< d}" and "a < b" "c < d" |
465 shows "a = c" "b = d" |
464 shows "a = c" "b = d" |
466 using assms by (metis atLeastLessThan_subset_iff eq less_le_not_le linorder_antisym_conv2 subset_refl)+ |
465 using assms by (metis atLeastLessThan_subset_iff eq less_le_not_le antisym_conv2 subset_refl)+ |
467 |
466 |
468 lemma atLeastLessThan_eq_iff: |
467 lemma atLeastLessThan_eq_iff: |
469 fixes a b c d :: "'a::linorder" |
468 fixes a b c d :: "'a::linorder" |
470 assumes "a < b" "c < d" |
469 assumes "a < b" "c < d" |
471 shows "{a ..< b} = {c ..< d} \<longleftrightarrow> a = c \<and> b = d" |
470 shows "{a ..< b} = {c ..< d} \<longleftrightarrow> a = c \<and> b = d" |