# HG changeset patch # User wenzelm # Date 1377290892 -7200 # Node ID 71a2702da5e03b0edd2da3173ce8b62b26807e87 # Parent b881bee69d3acd6047b55d17f3c23c3a21b37002 prefer plain subscript for notation; diff -r b881bee69d3a -r 71a2702da5e0 src/HOL/Big_Operators.thy --- a/src/HOL/Big_Operators.thy Fri Aug 23 21:59:29 2013 +0200 +++ b/src/HOL/Big_Operators.thy Fri Aug 23 22:48:12 2013 +0200 @@ -1681,11 +1681,11 @@ sets, to avoid garbage. *} -definition (in semilattice_inf) Inf_fin :: "'a set \ 'a" ("\\<^bsub>fin\<^esub>_" [900] 900) +definition (in semilattice_inf) Inf_fin :: "'a set \ 'a" ("\\<^sub>f\<^sub>i\<^sub>n_" [900] 900) where "Inf_fin = semilattice_set.F inf" -definition (in semilattice_sup) Sup_fin :: "'a set \ 'a" ("\\<^bsub>fin\<^esub>_" [900] 900) +definition (in semilattice_sup) Sup_fin :: "'a set \ 'a" ("\\<^sub>f\<^sub>i\<^sub>n_" [900] 900) where "Sup_fin = semilattice_set.F sup" @@ -1789,7 +1789,7 @@ context lattice begin -lemma Inf_le_Sup [simp]: "\ finite A; A \ {} \ \ \\<^bsub>fin\<^esub>A \ \\<^bsub>fin\<^esub>A" +lemma Inf_le_Sup [simp]: "\ finite A; A \ {} \ \ \\<^sub>f\<^sub>i\<^sub>nA \ \\<^sub>f\<^sub>i\<^sub>nA" apply(subgoal_tac "EX a. a:A") prefer 2 apply blast apply(erule exE) @@ -1799,13 +1799,13 @@ done lemma sup_Inf_absorb [simp]: - "finite A \ a \ A \ sup a (\\<^bsub>fin\<^esub>A) = a" + "finite A \ a \ A \ sup a (\\<^sub>f\<^sub>i\<^sub>nA) = a" apply(subst sup_commute) apply(simp add: sup_absorb2 Inf_fin.coboundedI) done lemma inf_Sup_absorb [simp]: - "finite A \ a \ A \ inf a (\\<^bsub>fin\<^esub>A) = a" + "finite A \ a \ A \ inf a (\\<^sub>f\<^sub>i\<^sub>nA) = a" by (simp add: inf_absorb1 Sup_fin.coboundedI) end @@ -1816,13 +1816,13 @@ lemma sup_Inf1_distrib: assumes "finite A" and "A \ {}" - shows "sup x (\\<^bsub>fin\<^esub>A) = \\<^bsub>fin\<^esub>{sup x a|a. a \ A}" + shows "sup x (\\<^sub>f\<^sub>i\<^sub>nA) = \\<^sub>f\<^sub>i\<^sub>n{sup x a|a. a \ A}" using assms by (simp add: image_def Inf_fin.hom_commute [where h="sup x", OF sup_inf_distrib1]) (rule arg_cong [where f="Inf_fin"], blast) lemma sup_Inf2_distrib: assumes A: "finite A" "A \ {}" and B: "finite B" "B \ {}" - shows "sup (\\<^bsub>fin\<^esub>A) (\\<^bsub>fin\<^esub>B) = \\<^bsub>fin\<^esub>{sup a b|a b. a \ A \ b \ B}" + shows "sup (\\<^sub>f\<^sub>i\<^sub>nA) (\\<^sub>f\<^sub>i\<^sub>nB) = \\<^sub>f\<^sub>i\<^sub>n{sup a b|a b. a \ A \ b \ B}" using A proof (induct rule: finite_ne_induct) case singleton then show ?case by (simp add: sup_Inf1_distrib [OF B]) @@ -1837,13 +1837,13 @@ thus ?thesis by(simp add: insert(1) B(1)) qed have ne: "{sup a b |a b. a \ A \ b \ B} \ {}" using insert B by blast - have "sup (\\<^bsub>fin\<^esub>(insert x A)) (\\<^bsub>fin\<^esub>B) = sup (inf x (\\<^bsub>fin\<^esub>A)) (\\<^bsub>fin\<^esub>B)" + have "sup (\\<^sub>f\<^sub>i\<^sub>n(insert x A)) (\\<^sub>f\<^sub>i\<^sub>nB) = sup (inf x (\\<^sub>f\<^sub>i\<^sub>nA)) (\\<^sub>f\<^sub>i\<^sub>nB)" using insert by simp - also have "\ = inf (sup x (\\<^bsub>fin\<^esub>B)) (sup (\\<^bsub>fin\<^esub>A) (\\<^bsub>fin\<^esub>B))" by(rule sup_inf_distrib2) - also have "\ = inf (\\<^bsub>fin\<^esub>{sup x b|b. b \ B}) (\\<^bsub>fin\<^esub>{sup a b|a b. a \ A \ b \ B})" + also have "\ = inf (sup x (\\<^sub>f\<^sub>i\<^sub>nB)) (sup (\\<^sub>f\<^sub>i\<^sub>nA) (\\<^sub>f\<^sub>i\<^sub>nB))" by(rule sup_inf_distrib2) + also have "\ = inf (\\<^sub>f\<^sub>i\<^sub>n{sup x b|b. b \ B}) (\\<^sub>f\<^sub>i\<^sub>n{sup a b|a b. a \ A \ b \ B})" using insert by(simp add:sup_Inf1_distrib[OF B]) - also have "\ = \\<^bsub>fin\<^esub>({sup x b |b. b \ B} \ {sup a b |a b. a \ A \ b \ B})" - (is "_ = \\<^bsub>fin\<^esub>?M") + also have "\ = \\<^sub>f\<^sub>i\<^sub>n({sup x b |b. b \ B} \ {sup a b |a b. a \ A \ b \ B})" + (is "_ = \\<^sub>f\<^sub>i\<^sub>n?M") using B insert by (simp add: Inf_fin.union [OF finB _ finAB ne]) also have "?M = {sup a b |a b. a \ insert x A \ b \ B}" @@ -1853,13 +1853,13 @@ lemma inf_Sup1_distrib: assumes "finite A" and "A \ {}" - shows "inf x (\\<^bsub>fin\<^esub>A) = \\<^bsub>fin\<^esub>{inf x a|a. a \ A}" + shows "inf x (\\<^sub>f\<^sub>i\<^sub>nA) = \\<^sub>f\<^sub>i\<^sub>n{inf x a|a. a \ A}" using assms by (simp add: image_def Sup_fin.hom_commute [where h="inf x", OF inf_sup_distrib1]) (rule arg_cong [where f="Sup_fin"], blast) lemma inf_Sup2_distrib: assumes A: "finite A" "A \ {}" and B: "finite B" "B \ {}" - shows "inf (\\<^bsub>fin\<^esub>A) (\\<^bsub>fin\<^esub>B) = \\<^bsub>fin\<^esub>{inf a b|a b. a \ A \ b \ B}" + shows "inf (\\<^sub>f\<^sub>i\<^sub>nA) (\\<^sub>f\<^sub>i\<^sub>nB) = \\<^sub>f\<^sub>i\<^sub>n{inf a b|a b. a \ A \ b \ B}" using A proof (induct rule: finite_ne_induct) case singleton thus ?case by(simp add: inf_Sup1_distrib [OF B]) @@ -1874,13 +1874,13 @@ thus ?thesis by(simp add: insert(1) B(1)) qed have ne: "{inf a b |a b. a \ A \ b \ B} \ {}" using insert B by blast - have "inf (\\<^bsub>fin\<^esub>(insert x A)) (\\<^bsub>fin\<^esub>B) = inf (sup x (\\<^bsub>fin\<^esub>A)) (\\<^bsub>fin\<^esub>B)" + have "inf (\\<^sub>f\<^sub>i\<^sub>n(insert x A)) (\\<^sub>f\<^sub>i\<^sub>nB) = inf (sup x (\\<^sub>f\<^sub>i\<^sub>nA)) (\\<^sub>f\<^sub>i\<^sub>nB)" using insert by simp - also have "\ = sup (inf x (\\<^bsub>fin\<^esub>B)) (inf (\\<^bsub>fin\<^esub>A) (\\<^bsub>fin\<^esub>B))" by(rule inf_sup_distrib2) - also have "\ = sup (\\<^bsub>fin\<^esub>{inf x b|b. b \ B}) (\\<^bsub>fin\<^esub>{inf a b|a b. a \ A \ b \ B})" + also have "\ = sup (inf x (\\<^sub>f\<^sub>i\<^sub>nB)) (inf (\\<^sub>f\<^sub>i\<^sub>nA) (\\<^sub>f\<^sub>i\<^sub>nB))" by(rule inf_sup_distrib2) + also have "\ = sup (\\<^sub>f\<^sub>i\<^sub>n{inf x b|b. b \ B}) (\\<^sub>f\<^sub>i\<^sub>n{inf a b|a b. a \ A \ b \ B})" using insert by(simp add:inf_Sup1_distrib[OF B]) - also have "\ = \\<^bsub>fin\<^esub>({inf x b |b. b \ B} \ {inf a b |a b. a \ A \ b \ B})" - (is "_ = \\<^bsub>fin\<^esub>?M") + also have "\ = \\<^sub>f\<^sub>i\<^sub>n({inf x b |b. b \ B} \ {inf a b |a b. a \ A \ b \ B})" + (is "_ = \\<^sub>f\<^sub>i\<^sub>n?M") using B insert by (simp add: Sup_fin.union [OF finB _ finAB ne]) also have "?M = {inf a b |a b. a \ insert x A \ b \ B}" @@ -1895,7 +1895,7 @@ lemma Inf_fin_Inf: assumes "finite A" and "A \ {}" - shows "\\<^bsub>fin\<^esub>A = Inf A" + shows "\\<^sub>f\<^sub>i\<^sub>nA = Inf A" proof - from assms obtain b B where "A = insert b B" and "finite B" by auto then show ?thesis @@ -1904,7 +1904,7 @@ lemma Sup_fin_Sup: assumes "finite A" and "A \ {}" - shows "\\<^bsub>fin\<^esub>A = Sup A" + shows "\\<^sub>f\<^sub>i\<^sub>nA = Sup A" proof - from assms obtain b B where "A = insert b B" and "finite B" by auto then show ?thesis