src/HOL/Big_Operators.thy
changeset 54147 97a8ff4e4ac9
parent 53374 a14d2a854c02
child 54230 b1d955791529
equal deleted inserted replaced
54146:97f69d44f732 54147:97a8ff4e4ac9
  1997 context
  1997 context
  1998   fixes A :: "'a set"
  1998   fixes A :: "'a set"
  1999   assumes fin_nonempty: "finite A" "A \<noteq> {}"
  1999   assumes fin_nonempty: "finite A" "A \<noteq> {}"
  2000 begin
  2000 begin
  2001 
  2001 
  2002 lemma Min_ge_iff [simp, no_atp]:
  2002 lemma Min_ge_iff [simp]:
  2003   "x \<le> Min A \<longleftrightarrow> (\<forall>a\<in>A. x \<le> a)"
  2003   "x \<le> Min A \<longleftrightarrow> (\<forall>a\<in>A. x \<le> a)"
  2004   using fin_nonempty by (fact Min.bounded_iff)
  2004   using fin_nonempty by (fact Min.bounded_iff)
  2005 
  2005 
  2006 lemma Max_le_iff [simp, no_atp]:
  2006 lemma Max_le_iff [simp]:
  2007   "Max A \<le> x \<longleftrightarrow> (\<forall>a\<in>A. a \<le> x)"
  2007   "Max A \<le> x \<longleftrightarrow> (\<forall>a\<in>A. a \<le> x)"
  2008   using fin_nonempty by (fact Max.bounded_iff)
  2008   using fin_nonempty by (fact Max.bounded_iff)
  2009 
  2009 
  2010 lemma Min_gr_iff [simp, no_atp]:
  2010 lemma Min_gr_iff [simp]:
  2011   "x < Min A \<longleftrightarrow> (\<forall>a\<in>A. x < a)"
  2011   "x < Min A \<longleftrightarrow> (\<forall>a\<in>A. x < a)"
  2012   using fin_nonempty  by (induct rule: finite_ne_induct) simp_all
  2012   using fin_nonempty  by (induct rule: finite_ne_induct) simp_all
  2013 
  2013 
  2014 lemma Max_less_iff [simp, no_atp]:
  2014 lemma Max_less_iff [simp]:
  2015   "Max A < x \<longleftrightarrow> (\<forall>a\<in>A. a < x)"
  2015   "Max A < x \<longleftrightarrow> (\<forall>a\<in>A. a < x)"
  2016   using fin_nonempty by (induct rule: finite_ne_induct) simp_all
  2016   using fin_nonempty by (induct rule: finite_ne_induct) simp_all
  2017 
  2017 
  2018 lemma Min_le_iff [no_atp]:
  2018 lemma Min_le_iff:
  2019   "Min A \<le> x \<longleftrightarrow> (\<exists>a\<in>A. a \<le> x)"
  2019   "Min A \<le> x \<longleftrightarrow> (\<exists>a\<in>A. a \<le> x)"
  2020   using fin_nonempty by (induct rule: finite_ne_induct) (simp_all add: min_le_iff_disj)
  2020   using fin_nonempty by (induct rule: finite_ne_induct) (simp_all add: min_le_iff_disj)
  2021 
  2021 
  2022 lemma Max_ge_iff [no_atp]:
  2022 lemma Max_ge_iff:
  2023   "x \<le> Max A \<longleftrightarrow> (\<exists>a\<in>A. x \<le> a)"
  2023   "x \<le> Max A \<longleftrightarrow> (\<exists>a\<in>A. x \<le> a)"
  2024   using fin_nonempty by (induct rule: finite_ne_induct) (simp_all add: le_max_iff_disj)
  2024   using fin_nonempty by (induct rule: finite_ne_induct) (simp_all add: le_max_iff_disj)
  2025 
  2025 
  2026 lemma Min_less_iff [no_atp]:
  2026 lemma Min_less_iff:
  2027   "Min A < x \<longleftrightarrow> (\<exists>a\<in>A. a < x)"
  2027   "Min A < x \<longleftrightarrow> (\<exists>a\<in>A. a < x)"
  2028   using fin_nonempty by (induct rule: finite_ne_induct) (simp_all add: min_less_iff_disj)
  2028   using fin_nonempty by (induct rule: finite_ne_induct) (simp_all add: min_less_iff_disj)
  2029 
  2029 
  2030 lemma Max_gr_iff [no_atp]:
  2030 lemma Max_gr_iff:
  2031   "x < Max A \<longleftrightarrow> (\<exists>a\<in>A. x < a)"
  2031   "x < Max A \<longleftrightarrow> (\<exists>a\<in>A. x < a)"
  2032   using fin_nonempty by (induct rule: finite_ne_induct) (simp_all add: less_max_iff_disj)
  2032   using fin_nonempty by (induct rule: finite_ne_induct) (simp_all add: less_max_iff_disj)
  2033 
  2033 
  2034 end
  2034 end
  2035 
  2035