src/HOL/Big_Operators.thy
changeset 44921 58eef4843641
parent 44918 6a80fbc4e72c
child 44937 22c0857b8aab
--- a/src/HOL/Big_Operators.thy	Tue Sep 13 08:21:51 2011 -0700
+++ b/src/HOL/Big_Operators.thy	Tue Sep 13 17:07:33 2011 -0700
@@ -1394,7 +1394,7 @@
   shows "inf (\<Squnion>\<^bsub>fin\<^esub>A) (\<Squnion>\<^bsub>fin\<^esub>B) = \<Squnion>\<^bsub>fin\<^esub>{inf a b|a b. a \<in> A \<and> b \<in> B}"
 using A proof (induct rule: finite_ne_induct)
   case singleton thus ?case
-    by(simp add: inf_Sup1_distrib [OF B] fold1_singleton_def [OF Sup_fin_def])
+    by(simp add: inf_Sup1_distrib [OF B])
 next
   case (insert x A)
   have finB: "finite {inf x b |b. b \<in> B}"
@@ -1608,11 +1608,7 @@
 lemma Max_ge [simp]:
   assumes "finite A" and "x \<in> A"
   shows "x \<le> Max A"
-proof -
-  interpret semilattice_inf max "op \<ge>" "op >"
-    by (rule max_lattice)
-  from assms show ?thesis by (simp add: Max_def fold1_belowI)
-qed
+  by (simp add: Max_def semilattice_inf.fold1_belowI [OF max_lattice] assms)
 
 lemma Min_ge_iff [simp, no_atp]:
   assumes "finite A" and "A \<noteq> {}"
@@ -1622,11 +1618,7 @@
 lemma Max_le_iff [simp, no_atp]:
   assumes "finite A" and "A \<noteq> {}"
   shows "Max A \<le> x \<longleftrightarrow> (\<forall>a\<in>A. a \<le> x)"
-proof -
-  interpret semilattice_inf max "op \<ge>" "op >"
-    by (rule max_lattice)
-  from assms show ?thesis by (simp add: Max_def below_fold1_iff)
-qed
+  by (simp add: Max_def semilattice_inf.below_fold1_iff [OF max_lattice] assms)
 
 lemma Min_gr_iff [simp, no_atp]:
   assumes "finite A" and "A \<noteq> {}"
@@ -1636,12 +1628,8 @@
 lemma Max_less_iff [simp, no_atp]:
   assumes "finite A" and "A \<noteq> {}"
   shows "Max A < x \<longleftrightarrow> (\<forall>a\<in>A. a < x)"
-proof -
-  interpret dual: linorder "op \<ge>" "op >"
-    by (rule dual_linorder)
-  from assms show ?thesis
-    by (simp add: Max_def dual.strict_below_fold1_iff [folded dual.dual_max])
-qed
+  by (simp add: Max_def linorder.dual_max [OF dual_linorder]
+    linorder.strict_below_fold1_iff [OF dual_linorder] assms)
 
 lemma Min_le_iff [no_atp]:
   assumes "finite A" and "A \<noteq> {}"
@@ -1651,12 +1639,8 @@
 lemma Max_ge_iff [no_atp]:
   assumes "finite A" and "A \<noteq> {}"
   shows "x \<le> Max A \<longleftrightarrow> (\<exists>a\<in>A. x \<le> a)"
-proof -
-  interpret dual: linorder "op \<ge>" "op >"
-    by (rule dual_linorder)
-  from assms show ?thesis
-    by (simp add: Max_def dual.fold1_below_iff [folded dual.dual_max])
-qed
+  by (simp add: Max_def linorder.dual_max [OF dual_linorder]
+    linorder.fold1_below_iff [OF dual_linorder] assms)
 
 lemma Min_less_iff [no_atp]:
   assumes "finite A" and "A \<noteq> {}"
@@ -1666,12 +1650,8 @@
 lemma Max_gr_iff [no_atp]:
   assumes "finite A" and "A \<noteq> {}"
   shows "x < Max A \<longleftrightarrow> (\<exists>a\<in>A. x < a)"
-proof -
-  interpret dual: linorder "op \<ge>" "op >"
-    by (rule dual_linorder)
-  from assms show ?thesis
-    by (simp add: Max_def dual.fold1_strict_below_iff [folded dual.dual_max])
-qed
+  by (simp add: Max_def linorder.dual_max [OF dual_linorder]
+    linorder.fold1_strict_below_iff [OF dual_linorder] assms)
 
 lemma Min_eqI:
   assumes "finite A"
@@ -1705,12 +1685,8 @@
 lemma Max_mono:
   assumes "M \<subseteq> N" and "M \<noteq> {}" and "finite N"
   shows "Max M \<le> Max N"
-proof -
-  interpret dual: linorder "op \<ge>" "op >"
-    by (rule dual_linorder)
-  from assms show ?thesis
-    by (simp add: Max_def dual.fold1_antimono [folded dual.dual_max])
-qed
+  by (simp add: Max_def linorder.dual_max [OF dual_linorder]
+    linorder.fold1_antimono [OF dual_linorder] assms)
 
 lemma finite_linorder_max_induct[consumes 1, case_names empty insert]:
  assumes fin: "finite A"