# HG changeset patch # User wenzelm # Date 1444497725 -7200 # Node ID 9f5145281888b637c3cc8e5669821d840356c44e # Parent 6762c84451385086855dd38354d804258b665176 prefer symbols; diff -r 6762c8445138 -r 9f5145281888 NEWS --- a/NEWS Sat Oct 10 16:40:43 2015 +0200 +++ b/NEWS Sat Oct 10 19:22:05 2015 +0200 @@ -251,6 +251,16 @@ type_notation Map.map (infixr "~=>" 0) notation Map.map_comp (infixl "o'_m" 55) + type_notation FinFun.finfun ("(_ =>f /_)" [22, 21] 21) + + notation FuncSet.funcset (infixr "->" 60) + notation FuncSet.extensional_funcset (infixr "->\<^sub>E" 60) + + notation Omega_Words_Fun.conc (infixr "conc" 65) + + notation Preorder.equiv ("op ~~") + and Preorder.equiv ("(_/ ~~ _)" [51, 51] 50) + * The alternative notation "\" for type and sort constraints has been removed: in LaTeX document output it looks the same as "::". INCOMPATIBILITY, use plain "::" instead. diff -r 6762c8445138 -r 9f5145281888 src/HOL/Algebra/FiniteProduct.thy --- a/src/HOL/Algebra/FiniteProduct.thy Sat Oct 10 16:40:43 2015 +0200 +++ b/src/HOL/Algebra/FiniteProduct.thy Sat Oct 10 19:22:05 2015 +0200 @@ -315,7 +315,7 @@ context comm_monoid begin lemma finprod_insert [simp]: - "[| finite F; a \ F; f \ F -> carrier G; f a \ carrier G |] ==> + "[| finite F; a \ F; f \ F \ carrier G; f a \ carrier G |] ==> finprod G f (insert a F) = f a \ finprod G f F" apply (rule trans) apply (simp add: finprod_def) @@ -337,13 +337,13 @@ case empty show ?case by simp next case (insert a A) - have "(%i. \) \ A -> carrier G" by auto + have "(%i. \) \ A \ carrier G" by auto with insert show ?case by simp qed simp lemma finprod_closed [simp]: fixes A - assumes f: "f \ A -> carrier G" + assumes f: "f \ A \ carrier G" shows "finprod G f A \ carrier G" using f proof (induct A rule: infinite_finite_induct) @@ -351,20 +351,20 @@ next case (insert a A) then have a: "f a \ carrier G" by fast - from insert have A: "f \ A -> carrier G" by fast + from insert have A: "f \ A \ carrier G" by fast from insert A a show ?case by simp qed simp lemma funcset_Int_left [simp, intro]: - "[| f \ A -> C; f \ B -> C |] ==> f \ A Int B -> C" + "[| f \ A \ C; f \ B \ C |] ==> f \ A Int B \ C" by fast lemma funcset_Un_left [iff]: - "(f \ A Un B -> C) = (f \ A -> C & f \ B -> C)" + "(f \ A Un B \ C) = (f \ A \ C & f \ B \ C)" by fast lemma finprod_Un_Int: - "[| finite A; finite B; g \ A -> carrier G; g \ B -> carrier G |] ==> + "[| finite A; finite B; g \ A \ carrier G; g \ B \ carrier G |] ==> finprod G g (A Un B) \ finprod G g (A Int B) = finprod G g A \ finprod G g B" -- \The reversed orientation looks more natural, but LOOPS as a simprule!\ @@ -373,46 +373,46 @@ next case (insert a A) then have a: "g a \ carrier G" by fast - from insert have A: "g \ A -> carrier G" by fast + from insert have A: "g \ A \ carrier G" by fast from insert A a show ?case by (simp add: m_ac Int_insert_left insert_absorb Int_mono2) qed lemma finprod_Un_disjoint: "[| finite A; finite B; A Int B = {}; - g \ A -> carrier G; g \ B -> carrier G |] + g \ A \ carrier G; g \ B \ carrier G |] ==> finprod G g (A Un B) = finprod G g A \ finprod G g B" apply (subst finprod_Un_Int [symmetric]) apply auto done lemma finprod_multf: - "[| f \ A -> carrier G; g \ A -> carrier G |] ==> + "[| f \ A \ carrier G; g \ A \ carrier G |] ==> finprod G (%x. f x \ g x) A = (finprod G f A \ finprod G g A)" proof (induct A rule: infinite_finite_induct) case empty show ?case by simp next case (insert a A) then - have fA: "f \ A -> carrier G" by fast + have fA: "f \ A \ carrier G" by fast from insert have fa: "f a \ carrier G" by fast - from insert have gA: "g \ A -> carrier G" by fast + from insert have gA: "g \ A \ carrier G" by fast from insert have ga: "g a \ carrier G" by fast - from insert have fgA: "(%x. f x \ g x) \ A -> carrier G" + from insert have fgA: "(%x. f x \ g x) \ A \ carrier G" by (simp add: Pi_def) show ?case by (simp add: insert fA fa gA ga fgA m_ac) qed simp lemma finprod_cong': - "[| A = B; g \ B -> carrier G; + "[| A = B; g \ B \ carrier G; !!i. i \ B ==> f i = g i |] ==> finprod G f A = finprod G g B" proof - - assume prems: "A = B" "g \ B -> carrier G" + assume prems: "A = B" "g \ B \ carrier G" "!!i. i \ B ==> f i = g i" show ?thesis proof (cases "finite B") case True - then have "!!A. [| A = B; g \ B -> carrier G; + then have "!!A. [| A = B; g \ B \ carrier G; !!i. i \ B ==> f i = g i |] ==> finprod G f A = finprod G g B" proof induct case empty thus ?case by simp @@ -427,7 +427,7 @@ next assume "x ~: B" "!!i. i \ insert x B \ f i = g i" "g \ insert x B \ carrier G" - thus "f \ B -> carrier G" by fastforce + thus "f \ B \ carrier G" by fastforce next assume "x ~: B" "!!i. i \ insert x B \ f i = g i" "g \ insert x B \ carrier G" @@ -445,13 +445,13 @@ qed lemma finprod_cong: - "[| A = B; f \ B -> carrier G = True; + "[| A = B; f \ B \ carrier G = True; !!i. i \ B =simp=> f i = g i |] ==> finprod G f A = finprod G g B" (* This order of prems is slightly faster (3%) than the last two swapped. *) by (rule finprod_cong') (auto simp add: simp_implies_def) text \Usually, if this rule causes a failed congruence proof error, - the reason is that the premise @{text "g \ B -> carrier G"} cannot be shown. + the reason is that the premise @{text "g \ B \ carrier G"} cannot be shown. Adding @{thm [source] Pi_def} to the simpset is often useful. For this reason, @{thm [source] finprod_cong} is not added to the simpset by default. @@ -465,16 +465,16 @@ context comm_monoid begin lemma finprod_0 [simp]: - "f \ {0::nat} -> carrier G ==> finprod G f {..0} = f 0" + "f \ {0::nat} \ carrier G ==> finprod G f {..0} = f 0" by (simp add: Pi_def) lemma finprod_Suc [simp]: - "f \ {..Suc n} -> carrier G ==> + "f \ {..Suc n} \ carrier G ==> finprod G f {..Suc n} = (f (Suc n) \ finprod G f {..n})" by (simp add: Pi_def atMost_Suc) lemma finprod_Suc2: - "f \ {..Suc n} -> carrier G ==> + "f \ {..Suc n} \ carrier G ==> finprod G f {..Suc n} = (finprod G (%i. f (Suc i)) {..n} \ f 0)" proof (induct n) case 0 thus ?case by (simp add: Pi_def) @@ -483,7 +483,7 @@ qed lemma finprod_mult [simp]: - "[| f \ {..n} -> carrier G; g \ {..n} -> carrier G |] ==> + "[| f \ {..n} \ carrier G; g \ {..n} \ carrier G |] ==> finprod G (%i. f i \ g i) {..n::nat} = finprod G f {..n} \ finprod G g {..n}" by (induct n) (simp_all add: m_ac Pi_def) diff -r 6762c8445138 -r 9f5145281888 src/HOL/Algebra/Group.thy --- a/src/HOL/Algebra/Group.thy Sat Oct 10 16:40:43 2015 +0200 +++ b/src/HOL/Algebra/Group.thy Sat Oct 10 19:22:05 2015 +0200 @@ -576,7 +576,7 @@ definition hom :: "_ => _ => ('a => 'b) set" where "hom G H = - {h. h \ carrier G -> carrier H & + {h. h \ carrier G \ carrier H & (\x \ carrier G. \y \ carrier G. h (x \\<^bsub>G\<^esub> y) = h x \\<^bsub>H\<^esub> h y)}" lemma (in group) hom_compose: diff -r 6762c8445138 -r 9f5145281888 src/HOL/Algebra/Ring.thy --- a/src/HOL/Algebra/Ring.thy Sat Oct 10 16:40:43 2015 +0200 +++ b/src/HOL/Algebra/Ring.thy Sat Oct 10 19:22:05 2015 +0200 @@ -141,7 +141,7 @@ lemmas finsum_cong = add.finprod_cong text \Usually, if this rule causes a failed congruence proof error, - the reason is that the premise @{text "g \ B -> carrier G"} cannot be shown. + the reason is that the premise @{text "g \ B \ carrier G"} cannot be shown. Adding @{thm [source] Pi_def} to the simpset is often useful.\ lemmas finsum_reindex = add.finprod_reindex @@ -490,7 +490,7 @@ subsubsection \Sums over Finite Sets\ lemma (in semiring) finsum_ldistr: - "[| finite A; a \ carrier R; f \ A -> carrier R |] ==> + "[| finite A; a \ carrier R; f \ A \ carrier R |] ==> finsum R f A \ a = finsum R (%i. f i \ a) A" proof (induct set: finite) case empty then show ?case by simp @@ -499,7 +499,7 @@ qed lemma (in semiring) finsum_rdistr: - "[| finite A; a \ carrier R; f \ A -> carrier R |] ==> + "[| finite A; a \ carrier R; f \ A \ carrier R |] ==> a \ finsum R f A = finsum R (%i. a \ f i) A" proof (induct set: finite) case empty then show ?case by simp @@ -609,7 +609,7 @@ definition ring_hom :: "[('a, 'm) ring_scheme, ('b, 'n) ring_scheme] => ('a => 'b) set" where "ring_hom R S = - {h. h \ carrier R -> carrier S & + {h. h \ carrier R \ carrier S & (ALL x y. x \ carrier R & y \ carrier R --> h (x \\<^bsub>R\<^esub> y) = h x \\<^bsub>S\<^esub> h y & h (x \\<^bsub>R\<^esub> y) = h x \\<^bsub>S\<^esub> h y) & h \\<^bsub>R\<^esub> = \\<^bsub>S\<^esub>}" @@ -675,12 +675,12 @@ qed lemma (in ring_hom_cring) hom_finsum [simp]: - "f \ A -> carrier R ==> + "f \ A \ carrier R ==> h (finsum R f A) = finsum S (h o f) A" by (induct A rule: infinite_finite_induct, auto simp: Pi_def) lemma (in ring_hom_cring) hom_finprod: - "f \ A -> carrier R ==> + "f \ A \ carrier R ==> h (finprod R f A) = finprod S (h o f) A" by (induct A rule: infinite_finite_induct, auto simp: Pi_def) diff -r 6762c8445138 -r 9f5145281888 src/HOL/Algebra/UnivPoly.thy --- a/src/HOL/Algebra/UnivPoly.thy Sat Oct 10 16:40:43 2015 +0200 +++ b/src/HOL/Algebra/UnivPoly.thy Sat Oct 10 19:22:05 2015 +0200 @@ -54,7 +54,7 @@ definition up :: "('a, 'm) ring_scheme => (nat => 'a) set" - where "up R = {f. f \ UNIV -> carrier R & (EX n. bound \\<^bsub>R\<^esub> n f)}" + where "up R = {f. f \ UNIV \ carrier R & (EX n. bound \\<^bsub>R\<^esub> n f)}" definition UP :: "('a, 'm) ring_scheme => ('a, nat => 'a) up_ring" where "UP R = \ @@ -309,8 +309,8 @@ fix n { fix k and a b c :: "nat=>'a" - assume R: "a \ UNIV -> carrier R" "b \ UNIV -> carrier R" - "c \ UNIV -> carrier R" + assume R: "a \ UNIV \ carrier R" "b \ UNIV \ carrier R" + "c \ UNIV \ carrier R" then have "k <= n ==> (\j \ {..k}. (\i \ {..j}. a i \ b (j-i)) \ c (n-j)) = (\j \ {..k}. a j \ (\i \ {..k-j}. b i \ c (n-j-i)))" @@ -409,7 +409,7 @@ fix n { fix k and a b :: "nat=>'a" - assume R: "a \ UNIV -> carrier R" "b \ UNIV -> carrier R" + assume R: "a \ UNIV \ carrier R" "b \ UNIV \ carrier R" then have "k <= n ==> (\i \ {..k}. a i \ b (n-i)) = (\i \ {..k}. a (k-i) \ b (i+n-k))" (is "_ \ ?eq k") @@ -956,7 +956,7 @@ lemma coeff_finsum: assumes fin: "finite A" - shows "p \ A -> carrier P ==> + shows "p \ A \ carrier P ==> coeff P (finsum P p A) k = (\i \ A. coeff P (p i) k)" using fin by induct (auto simp: Pi_def) @@ -1095,11 +1095,11 @@ begin theorem diagonal_sum: - "[| f \ {..n + m::nat} -> carrier R; g \ {..n + m} -> carrier R |] ==> + "[| f \ {..n + m::nat} \ carrier R; g \ {..n + m} \ carrier R |] ==> (\k \ {..n + m}. \i \ {..k}. f i \ g (k - i)) = (\k \ {..n + m}. \i \ {..n + m - k}. f k \ g i)" proof - - assume Rf: "f \ {..n + m} -> carrier R" and Rg: "g \ {..n + m} -> carrier R" + assume Rf: "f \ {..n + m} \ carrier R" and Rg: "g \ {..n + m} \ carrier R" { fix j have "j <= n + m ==> @@ -1129,7 +1129,7 @@ theorem cauchy_product: assumes bf: "bound \ n f" and bg: "bound \ m g" - and Rf: "f \ {..n} -> carrier R" and Rg: "g \ {..m} -> carrier R" + and Rf: "f \ {..n} \ carrier R" and Rg: "g \ {..m} \ carrier R" shows "(\k \ {..n + m}. \i \ {..k}. f i \ g (k - i)) = (\i \ {..n}. f i) \ (\i \ {..m}. g i)" (* State reverse direction? *) proof - @@ -1208,7 +1208,7 @@ maybe it is not that necessary.\ lemma (in ring_hom_ring) hom_finsum [simp]: - "f \ A -> carrier R ==> + "f \ A \ carrier R ==> h (finsum R f A) = finsum S (h o f) A" by (induct A rule: infinite_finite_induct, auto simp: Pi_def) diff -r 6762c8445138 -r 9f5145281888 src/HOL/Library/Extended_Nat.thy --- a/src/HOL/Library/Extended_Nat.thy Sat Oct 10 16:40:43 2015 +0200 +++ b/src/HOL/Library/Extended_Nat.thy Sat Oct 10 19:22:05 2015 +0200 @@ -10,10 +10,7 @@ begin class infinity = - fixes infinity :: "'a" - -notation (xsymbols) - infinity ("\") + fixes infinity :: "'a" ("\") subsection \Type definition\ diff -r 6762c8445138 -r 9f5145281888 src/HOL/Library/FinFun.thy --- a/src/HOL/Library/FinFun.thy Sat Oct 10 16:40:43 2015 +0200 +++ b/src/HOL/Library/FinFun.thy Sat Oct 10 19:22:05 2015 +0200 @@ -76,7 +76,7 @@ definition "finfun = {f::'a\'b. \b. finite {a. f a \ b}}" -typedef ('a,'b) finfun ("(_ =>f /_)" [22, 21] 21) = "finfun :: ('a => 'b) set" +typedef ('a,'b) finfun ("(_ \f /_)" [22, 21] 21) = "finfun :: ('a => 'b) set" morphisms finfun_apply Abs_finfun proof - have "\f. finite {x. f x \ undefined}" @@ -1528,9 +1528,6 @@ text \Deactivate syntax again. Import theory @{text FinFun_Syntax} to reactivate it again\ no_type_notation - finfun ("(_ =>f /_)" [22, 21] 21) - -no_type_notation (xsymbols) finfun ("(_ \f /_)" [22, 21] 21) no_notation diff -r 6762c8445138 -r 9f5145281888 src/HOL/Library/FinFun_Syntax.thy --- a/src/HOL/Library/FinFun_Syntax.thy Sat Oct 10 16:40:43 2015 +0200 +++ b/src/HOL/Library/FinFun_Syntax.thy Sat Oct 10 19:22:05 2015 +0200 @@ -7,9 +7,6 @@ begin type_notation - finfun ("(_ =>f /_)" [22, 21] 21) - -type_notation (xsymbols) finfun ("(_ \f /_)" [22, 21] 21) notation diff -r 6762c8445138 -r 9f5145281888 src/HOL/Library/FuncSet.thy --- a/src/HOL/Library/FuncSet.thy Sat Oct 10 16:40:43 2015 +0200 +++ b/src/HOL/Library/FuncSet.thy Sat Oct 10 19:22:05 2015 +0200 @@ -17,11 +17,8 @@ definition "restrict" :: "('a \ 'b) \ 'a set \ 'a \ 'b" where "restrict f A = (\x. if x \ A then f x else undefined)" -abbreviation funcset :: "'a set \ 'b set \ ('a \ 'b) set" (infixr "->" 60) - where "A -> B \ Pi A (\_. B)" - -notation (xsymbols) - funcset (infixr "\" 60) +abbreviation funcset :: "'a set \ 'b set \ ('a \ 'b) set" (infixr "\" 60) + where "A \ B \ Pi A (\_. B)" syntax "_Pi" :: "pttrn \ 'a set \ 'b set \ ('a \ 'b) set" ("(3PI _:_./ _)" 10) @@ -356,11 +353,8 @@ "_PiE" :: "pttrn \ 'a set \ 'b set \ ('a \ 'b) set" ("(3\\<^sub>E _\_./ _)" 10) translations "\\<^sub>E x\A. B" \ "CONST Pi\<^sub>E A (\x. B)" -abbreviation extensional_funcset :: "'a set \ 'b set \ ('a \ 'b) set" (infixr "->\<^sub>E" 60) - where "A ->\<^sub>E B \ (\\<^sub>E i\A. B)" - -notation (xsymbols) - extensional_funcset (infixr "\\<^sub>E" 60) +abbreviation extensional_funcset :: "'a set \ 'b set \ ('a \ 'b) set" (infixr "\\<^sub>E" 60) + where "A \\<^sub>E B \ (\\<^sub>E i\A. B)" lemma extensional_funcset_def: "extensional_funcset S T = (S \ T) \ extensional S" by (simp add: PiE_def) diff -r 6762c8445138 -r 9f5145281888 src/HOL/Library/Omega_Words_Fun.thy --- a/src/HOL/Library/Omega_Words_Fun.thy Sat Oct 10 16:40:43 2015 +0200 +++ b/src/HOL/Library/Omega_Words_Fun.thy Sat Oct 10 19:22:05 2015 +0200 @@ -44,17 +44,13 @@ \ definition - conc :: "['a list, 'a word] \ 'a word" (infixr "conc" 65) - where "w conc x == \n. if n < length w then w!n else x (n - length w)" + conc :: "['a list, 'a word] \ 'a word" (infixr "\" 65) + where "w \ x == \n. if n < length w then w!n else x (n - length w)" definition - iter :: "'a list \ 'a word" + iter :: "'a list \ 'a word" ("(_\<^sup>\)" [1000]) where "iter w == if w = [] then undefined else (\n. w!(n mod (length w)))" -notation (xsymbols) - conc (infixr "\" 65) and - iter ("(_\<^sup>\)" [1000]) - lemma conc_empty[simp]: "[] \ w = w" unfolding conc_def by auto diff -r 6762c8445138 -r 9f5145281888 src/HOL/Library/Preorder.thy --- a/src/HOL/Library/Preorder.thy Sat Oct 10 16:40:43 2015 +0200 +++ b/src/HOL/Library/Preorder.thy Sat Oct 10 19:22:05 2015 +0200 @@ -13,10 +13,6 @@ "equiv x y \ x \ y \ y \ x" notation - equiv ("op ~~") and - equiv ("(_/ ~~ _)" [51, 51] 50) - -notation (xsymbols) equiv ("op \") and equiv ("(_/ \ _)" [51, 51] 50) diff -r 6762c8445138 -r 9f5145281888 src/HOL/Metis_Examples/Abstraction.thy --- a/src/HOL/Metis_Examples/Abstraction.thy Sat Oct 10 16:40:43 2015 +0200 +++ b/src/HOL/Metis_Examples/Abstraction.thy Sat Oct 10 19:22:05 2015 +0200 @@ -142,8 +142,8 @@ by auto lemma - "map (\w. (w -> w, w \ w)) xs = - zip (map (\w. w -> w) xs) (map (\w. w \ w) xs)" + "map (\w. (w \ w, w \ w)) xs = + zip (map (\w. w \ w) xs) (map (\w. w \ w) xs)" apply (induct xs) apply (metis list.map(1) zip_Nil) by auto diff -r 6762c8445138 -r 9f5145281888 src/HOL/Metis_Examples/Tarski.thy --- a/src/HOL/Metis_Examples/Tarski.thy Sat Oct 10 16:40:43 2015 +0200 +++ b/src/HOL/Metis_Examples/Tarski.thy Sat Oct 10 19:22:05 2015 +0200 @@ -97,7 +97,7 @@ definition CLF_set :: "('a potype * ('a => 'a)) set" where "CLF_set = (SIGMA cl: CompleteLattice. - {f. f: pset cl -> pset cl & monotone f (pset cl) (order cl)})" + {f. f: pset cl \ pset cl & monotone f (pset cl) (order cl)})" locale CLF = CL + fixes f :: "'a => 'a" @@ -402,7 +402,7 @@ declare (in CLF) f_cl [simp] lemma (in CLF) [simp]: - "f: pset cl -> pset cl & monotone f (pset cl) (order cl)" + "f: pset cl \ pset cl & monotone f (pset cl) (order cl)" proof - have "\u v. (v, u) \ CLF_set \ u \ {R \ pset v \ pset v. monotone R (pset v) (order v)}" unfolding CLF_set_def using SigmaE2 by blast @@ -415,7 +415,7 @@ using F1 by metis qed -lemma (in CLF) f_in_funcset: "f \ A -> A" +lemma (in CLF) f_in_funcset: "f \ A \ A" by (simp add: A_def) lemma (in CLF) monotone_f: "monotone f A r" @@ -904,7 +904,7 @@ done -lemma (in Tarski) intY1_func: "(%x: intY1. f x) \ intY1 -> intY1" +lemma (in Tarski) intY1_func: "(%x: intY1. f x) \ intY1 \ intY1" apply (rule restrict_in_funcset) apply (metis intY1_f_closed restrict_in_funcset) done diff -r 6762c8445138 -r 9f5145281888 src/HOL/Probability/Sigma_Algebra.thy --- a/src/HOL/Probability/Sigma_Algebra.thy Sat Oct 10 16:40:43 2015 +0200 +++ b/src/HOL/Probability/Sigma_Algebra.thy Sat Oct 10 19:22:05 2015 +0200 @@ -1697,7 +1697,7 @@ subsubsection {* Measurable functions *} definition measurable :: "'a measure \ 'b measure \ ('a \ 'b) set" where - "measurable A B = {f \ space A -> space B. \y \ sets B. f -` y \ space A \ sets A}" + "measurable A B = {f \ space A \ space B. \y \ sets B. f -` y \ space A \ sets A}" lemma measurableI: "(\x. x \ space M \ f x \ space N) \ (\A. A \ sets N \ f -` A \ space M \ sets M) \ diff -r 6762c8445138 -r 9f5145281888 src/HOL/ex/Tarski.thy --- a/src/HOL/ex/Tarski.thy Sat Oct 10 16:40:43 2015 +0200 +++ b/src/HOL/ex/Tarski.thy Sat Oct 10 19:22:05 2015 +0200 @@ -84,7 +84,7 @@ definition CLF_set :: "('a potype * ('a => 'a)) set" where "CLF_set = (SIGMA cl: CompleteLattice. - {f. f: pset cl -> pset cl & monotone f (pset cl) (order cl)})" + {f. f: pset cl \ pset cl & monotone f (pset cl) (order cl)})" definition induced :: "['a set, ('a * 'a) set] => ('a *'a)set" where @@ -445,7 +445,7 @@ \ lemma (in CLF) [simp]: - "f: pset cl -> pset cl & monotone f (pset cl) (order cl)" + "f: pset cl \ pset cl & monotone f (pset cl) (order cl)" apply (insert f_cl) apply (simp add: CLF_set_def) done @@ -453,7 +453,7 @@ declare (in CLF) f_cl [simp] -lemma (in CLF) f_in_funcset: "f \ A -> A" +lemma (in CLF) f_in_funcset: "f \ A \ A" by (simp add: A_def) lemma (in CLF) monotone_f: "monotone f A r"