# HG changeset patch # User wenzelm # Date 1451326995 -3600 # Node ID 1d43f86f48be3f67a85df6354fdb3a4e5fd5f397 # Parent 7247cb62406ca55d8a559cfdd1ce8fc344c9a129 more symbols; diff -r 7247cb62406c -r 1d43f86f48be src/HOL/GCD.thy --- a/src/HOL/GCD.thy Mon Dec 28 18:03:26 2015 +0100 +++ b/src/HOL/GCD.thy Mon Dec 28 19:23:15 2015 +0100 @@ -1489,14 +1489,14 @@ gcd_commute_int [of "n - 1" n] by auto lemma setprod_coprime_nat [rule_format]: - "(ALL i: A. coprime (f i) (x::nat)) --> coprime (PROD i:A. f i) x" + "(ALL i: A. coprime (f i) (x::nat)) --> coprime (\i\A. f i) x" apply (case_tac "finite A") apply (induct set: finite) apply (auto simp add: gcd_mult_cancel_nat) done lemma setprod_coprime_int [rule_format]: - "(ALL i: A. coprime (f i) (x::int)) --> coprime (PROD i:A. f i) x" + "(ALL i: A. coprime (f i) (x::int)) --> coprime (\i\A. f i) x" apply (case_tac "finite A") apply (induct set: finite) apply (auto simp add: gcd_mult_cancel_int) diff -r 7247cb62406c -r 1d43f86f48be src/HOL/Library/Indicator_Function.thy --- a/src/HOL/Library/Indicator_Function.thy Mon Dec 28 18:03:26 2015 +0100 +++ b/src/HOL/Library/Indicator_Function.thy Mon Dec 28 19:23:15 2015 +0100 @@ -72,7 +72,7 @@ lemma setsum_indicator_eq_card: assumes "finite A" - shows "(SUM x : A. indicator B x) = card (A Int B)" + shows "(\x \ A. indicator B x) = card (A Int B)" using setsum_mult_indicator[OF assms, of "%x. 1::nat"] unfolding card_eq_setsum by simp diff -r 7247cb62406c -r 1d43f86f48be src/HOL/MacLaurin.thy --- a/src/HOL/MacLaurin.thy Mon Dec 28 18:03:26 2015 +0100 +++ b/src/HOL/MacLaurin.thy Mon Dec 28 19:23:15 2015 +0100 @@ -223,7 +223,7 @@ have "(- 1) ^ n * diff n (- t) * (- h) ^ n / (fact n) = diff n (- t) * h ^ n / (fact n)" by (auto simp add: power_mult_distrib[symmetric]) moreover - have "(SUM mmm - t < 0 \ diff -r 7247cb62406c -r 1d43f86f48be src/HOL/Metis_Examples/Big_O.thy --- a/src/HOL/Metis_Examples/Big_O.thy Mon Dec 28 18:03:26 2015 +0100 +++ b/src/HOL/Metis_Examples/Big_O.thy Mon Dec 28 19:23:15 2015 +0100 @@ -493,7 +493,7 @@ lemma bigo_setsum_main: "\x. \y \ A x. 0 <= h x y \ \c. \x. \y \ A x. \f x y\ <= c * (h x y) \ - (\x. SUM y : A x. f x y) =o O(\x. SUM y : A x. h x y)" + (\x. \y \ A x. f x y) =o O(\x. \y \ A x. h x y)" apply (auto simp add: bigo_def) apply (rule_tac x = "\c\" in exI) apply (subst abs_of_nonneg) back back @@ -508,18 +508,18 @@ lemma bigo_setsum1: "\x y. 0 <= h x y \ \c. \x y. \f x y\ <= c * (h x y) \ - (\x. SUM y : A x. f x y) =o O(\x. SUM y : A x. h x y)" + (\x. \y \ A x. f x y) =o O(\x. \y \ A x. h x y)" by (metis (no_types) bigo_setsum_main) lemma bigo_setsum2: "\y. 0 <= h y \ \c. \y. \f y\ <= c * (h y) \ - (\x. SUM y : A x. f y) =o O(\x. SUM y : A x. h y)" + (\x. \y \ A x. f y) =o O(\x. \y \ A x. h y)" apply (rule bigo_setsum1) by metis+ lemma bigo_setsum3: "f =o O(h) \ - (\x. SUM y : A x. (l x y) * f(k x y)) =o - O(\x. SUM y : A x. \l x y * h(k x y)\)" + (\x. \y \ A x. (l x y) * f(k x y)) =o + O(\x. \y \ A x. \l x y * h(k x y)\)" apply (rule bigo_setsum1) apply (rule allI)+ apply (rule abs_ge_zero) @@ -528,9 +528,9 @@ by (metis abs_ge_zero mult.left_commute mult_left_mono) lemma bigo_setsum4: "f =o g +o O(h) \ - (\x. SUM y : A x. l x y * f(k x y)) =o - (\x. SUM y : A x. l x y * g(k x y)) +o - O(\x. SUM y : A x. \l x y * h(k x y)\)" + (\x. \y \ A x. l x y * f(k x y)) =o + (\x. \y \ A x. l x y * g(k x y)) +o + O(\x. \y \ A x. \l x y * h(k x y)\)" apply (rule set_minus_imp_plus) apply (subst fun_diff_def) apply (subst setsum_subtractf [symmetric]) @@ -540,10 +540,10 @@ lemma bigo_setsum5: "f =o O(h) \ \x y. 0 <= l x y \ \x. 0 <= h x \ - (\x. SUM y : A x. (l x y) * f(k x y)) =o - O(\x. SUM y : A x. (l x y) * h(k x y))" -apply (subgoal_tac "(\x. SUM y : A x. (l x y) * h(k x y)) = - (\x. SUM y : A x. \(l x y) * h(k x y)\)") + (\x. \y \ A x. (l x y) * f(k x y)) =o + O(\x. \y \ A x. (l x y) * h(k x y))" +apply (subgoal_tac "(\x. \y \ A x. (l x y) * h(k x y)) = + (\x. \y \ A x. \(l x y) * h(k x y)\)") apply (erule ssubst) apply (erule bigo_setsum3) apply (rule ext) @@ -553,9 +553,9 @@ lemma bigo_setsum6: "f =o g +o O(h) \ \x y. 0 <= l x y \ \x. 0 <= h x \ - (\x. SUM y : A x. (l x y) * f(k x y)) =o - (\x. SUM y : A x. (l x y) * g(k x y)) +o - O(\x. SUM y : A x. (l x y) * h(k x y))" + (\x. \y \ A x. (l x y) * f(k x y)) =o + (\x. \y \ A x. (l x y) * g(k x y)) +o + O(\x. \y \ A x. (l x y) * h(k x y))" apply (rule set_minus_imp_plus) apply (subst fun_diff_def) apply (subst setsum_subtractf [symmetric]) diff -r 7247cb62406c -r 1d43f86f48be src/HOL/Number_Theory/Cong.thy --- a/src/HOL/Number_Theory/Cong.thy Mon Dec 28 18:03:26 2015 +0100 +++ b/src/HOL/Number_Theory/Cong.thy Mon Dec 28 19:23:15 2015 +0100 @@ -178,32 +178,32 @@ by (induct k) (auto simp add: cong_mult_int) lemma cong_setsum_nat [rule_format]: - "(ALL x: A. [((f x)::nat) = g x] (mod m)) \ - [(SUM x:A. f x) = (SUM x:A. g x)] (mod m)" + "(\x\A. [((f x)::nat) = g x] (mod m)) \ + [(\x\A. f x) = (\x\A. g x)] (mod m)" apply (cases "finite A") apply (induct set: finite) apply (auto intro: cong_add_nat) done lemma cong_setsum_int [rule_format]: - "(ALL x: A. [((f x)::int) = g x] (mod m)) \ - [(SUM x:A. f x) = (SUM x:A. g x)] (mod m)" + "(\x\A. [((f x)::int) = g x] (mod m)) \ + [(\x\A. f x) = (\x\A. g x)] (mod m)" apply (cases "finite A") apply (induct set: finite) apply (auto intro: cong_add_int) done lemma cong_setprod_nat [rule_format]: - "(ALL x: A. [((f x)::nat) = g x] (mod m)) \ - [(PROD x:A. f x) = (PROD x:A. g x)] (mod m)" + "(\x\A. [((f x)::nat) = g x] (mod m)) \ + [(\x\A. f x) = (\x\A. g x)] (mod m)" apply (cases "finite A") apply (induct set: finite) apply (auto intro: cong_mult_nat) done lemma cong_setprod_int [rule_format]: - "(ALL x: A. [((f x)::int) = g x] (mod m)) \ - [(PROD x:A. f x) = (PROD x:A. g x)] (mod m)" + "(\x\A. [((f x)::int) = g x] (mod m)) \ + [(\x\A. f x) = (\x\A. g x)] (mod m)" apply (cases "finite A") apply (induct set: finite) apply (auto intro: cong_mult_int) @@ -566,18 +566,18 @@ by (auto simp add: cong_altdef_int lcm_least_int) [1] lemma cong_cong_setprod_coprime_nat [rule_format]: "finite A \ - (ALL i:A. (ALL j:A. i \ j \ coprime (m i) (m j))) \ - (ALL i:A. [(x::nat) = y] (mod m i)) \ - [x = y] (mod (PROD i:A. m i))" + (\i\A. (\j\A. i \ j \ coprime (m i) (m j))) \ + (\i\A. [(x::nat) = y] (mod m i)) \ + [x = y] (mod (\i\A. m i))" apply (induct set: finite) apply auto apply (metis One_nat_def coprime_cong_mult_nat gcd.commute setprod_coprime_nat) done lemma cong_cong_setprod_coprime_int [rule_format]: "finite A \ - (ALL i:A. (ALL j:A. i \ j \ coprime (m i) (m j))) \ - (ALL i:A. [(x::int) = y] (mod m i)) \ - [x = y] (mod (PROD i:A. m i))" + (\i\A. (\j\A. i \ j \ coprime (m i) (m j))) \ + (\i\A. [(x::int) = y] (mod m i)) \ + [x = y] (mod (\i\A. m i))" apply (induct set: finite) apply auto apply (metis coprime_cong_mult_int gcd.commute setprod_coprime_int) @@ -758,18 +758,18 @@ and m :: "'a \ nat" assumes fin: "finite A" and cop: "ALL i : A. (ALL j : A. i \ j \ coprime (m i) (m j))" - shows "EX b. (ALL i : A. [b i = 1] (mod m i) \ [b i = 0] (mod (PROD j : A - {i}. m j)))" + shows "EX b. (ALL i : A. [b i = 1] (mod m i) \ [b i = 0] (mod (\j \ A - {i}. m j)))" proof (rule finite_set_choice, rule fin, rule ballI) fix i assume "i : A" - with cop have "coprime (PROD j : A - {i}. m j) (m i)" + with cop have "coprime (\j \ A - {i}. m j) (m i)" by (intro setprod_coprime_nat, auto) - then have "EX x. [(PROD j : A - {i}. m j) * x = 1] (mod m i)" + then have "EX x. [(\j \ A - {i}. m j) * x = 1] (mod m i)" by (elim cong_solve_coprime_nat) - then obtain x where "[(PROD j : A - {i}. m j) * x = 1] (mod m i)" + then obtain x where "[(\j \ A - {i}. m j) * x = 1] (mod m i)" by auto - moreover have "[(PROD j : A - {i}. m j) * x = 0] - (mod (PROD j : A - {i}. m j))" + moreover have "[(\j \ A - {i}. m j) * x = 0] + (mod (\j \ A - {i}. m j))" by (subst mult.commute, rule cong_mult_self_nat) ultimately show "\a. [a = 1] (mod m i) \ [a = 0] (mod setprod m (A - {i}))" @@ -786,22 +786,22 @@ proof - from chinese_remainder_aux_nat [OF fin cop] obtain b where bprop: "ALL i:A. [b i = 1] (mod m i) \ - [b i = 0] (mod (PROD j : A - {i}. m j))" + [b i = 0] (mod (\j \ A - {i}. m j))" by blast - let ?x = "SUM i:A. (u i) * (b i)" + let ?x = "\i\A. (u i) * (b i)" show "?thesis" proof (rule exI, clarify) fix i assume a: "i : A" show "[?x = u i] (mod m i)" proof - - from fin a have "?x = (SUM j:{i}. u j * b j) + - (SUM j:A-{i}. u j * b j)" + from fin a have "?x = (\j \ {i}. u j * b j) + + (\j \ A - {i}. u j * b j)" by (subst setsum.union_disjoint [symmetric], auto intro: setsum.cong) - then have "[?x = u i * b i + (SUM j:A-{i}. u j * b j)] (mod m i)" + then have "[?x = u i * b i + (\j \ A - {i}. u j * b j)] (mod m i)" by auto - also have "[u i * b i + (SUM j:A-{i}. u j * b j) = - u i * 1 + (SUM j:A-{i}. u j * 0)] (mod m i)" + also have "[u i * b i + (\j \ A - {i}. u j * b j) = + u i * 1 + (\j \ A - {i}. u j * 0)] (mod m i)" apply (rule cong_add_nat) apply (rule cong_scalar2_nat) using bprop a apply blast @@ -822,9 +822,9 @@ qed lemma coprime_cong_prod_nat [rule_format]: "finite A \ - (ALL i: A. (ALL j: A. i \ j \ coprime (m i) (m j))) \ - (ALL i: A. [(x::nat) = y] (mod m i)) \ - [x = y] (mod (PROD i:A. m i))" + (\i\A. (\j\A. i \ j \ coprime (m i) (m j))) \ + (\i\A. [(x::nat) = y] (mod m i)) \ + [x = y] (mod (\i\A. m i))" apply (induct set: finite) apply auto apply (metis One_nat_def coprime_cong_mult_nat gcd.commute setprod_coprime_nat) @@ -835,17 +835,17 @@ and m :: "'a \ nat" and u :: "'a \ nat" assumes fin: "finite A" - and nz: "ALL i:A. m i \ 0" - and cop: "ALL i:A. (ALL j : A. i \ j \ coprime (m i) (m j))" - shows "EX! x. x < (PROD i:A. m i) \ (ALL i:A. [x = u i] (mod m i))" + and nz: "\i\A. m i \ 0" + and cop: "\i\A. (\j\A. i \ j \ coprime (m i) (m j))" + shows "EX! x. x < (\i\A. m i) \ (\i\A. [x = u i] (mod m i))" proof - from chinese_remainder_nat [OF fin cop] obtain y where one: "(ALL i:A. [y = u i] (mod m i))" by blast - let ?x = "y mod (PROD i:A. m i)" - from fin nz have prodnz: "(PROD i:A. m i) \ 0" + let ?x = "y mod (\i\A. m i)" + from fin nz have prodnz: "(\i\A. m i) \ 0" by auto - then have less: "?x < (PROD i:A. m i)" + then have less: "?x < (\i\A. m i)" by auto have cong: "ALL i:A. [?x = u i] (mod m i)" apply auto @@ -859,11 +859,11 @@ apply (rule fin) apply assumption done - have unique: "ALL z. z < (PROD i:A. m i) \ + have unique: "ALL z. z < (\i\A. m i) \ (ALL i:A. [z = u i] (mod m i)) \ z = ?x" proof (clarify) fix z - assume zless: "z < (PROD i:A. m i)" + assume zless: "z < (\i\A. m i)" assume zcong: "(ALL i:A. [z = u i] (mod m i))" have "ALL i:A. [?x = z] (mod m i)" apply clarify @@ -872,7 +872,7 @@ apply (rule cong_sym_nat) using zcong apply auto done - with fin cop have "[?x = z] (mod (PROD i:A. m i))" + with fin cop have "[?x = z] (mod (\i\A. m i))" apply (intro coprime_cong_prod_nat) apply auto done diff -r 7247cb62406c -r 1d43f86f48be src/HOL/Probability/Lebesgue_Measure.thy --- a/src/HOL/Probability/Lebesgue_Measure.thy Mon Dec 28 18:03:26 2015 +0100 +++ b/src/HOL/Probability/Lebesgue_Measure.thy Mon Dec 28 19:23:15 2015 +0100 @@ -226,15 +226,15 @@ apply (subgoal_tac "delta i > 0") apply arith by (rule deltai_gt0) - also have "... \ (SUM i : S. F(r i) - F(l i) + epsilon / 2^(i+2))" + also have "... \ (\i \ S. F(r i) - F(l i) + epsilon / 2^(i+2))" apply (rule setsum_mono) apply simp apply (rule order_trans) apply (rule less_imp_le) apply (rule deltai_prop) by auto - also have "... = (SUM i : S. F(r i) - F(l i)) + - (epsilon / 4) * (SUM i : S. (1 / 2)^i)" (is "_ = ?t + _") + also have "... = (\i \ S. F(r i) - F(l i)) + + (epsilon / 4) * (\i \ S. (1 / 2)^i)" (is "_ = ?t + _") by (subst setsum.distrib) (simp add: field_simps setsum_right_distrib) also have "... \ ?t + (epsilon / 4) * (\ i < Suc n. (1 / 2)^i)" apply (rule add_left_mono) diff -r 7247cb62406c -r 1d43f86f48be src/HOL/Proofs/Extraction/Euclid.thy --- a/src/HOL/Proofs/Extraction/Euclid.thy Mon Dec 28 18:03:26 2015 +0100 +++ b/src/HOL/Proofs/Extraction/Euclid.thy Mon Dec 28 19:23:15 2015 +0100 @@ -123,7 +123,7 @@ qed qed -lemma dvd_prod [iff]: "n dvd (PROD m::nat:#mset (n # ns). m)" +lemma dvd_prod [iff]: "n dvd (\m::nat \# mset (n # ns). m)" by (simp add: msetprod_Un msetprod_singleton) definition all_prime :: "nat list \ bool" where @@ -140,13 +140,13 @@ lemma split_all_prime: assumes "all_prime ms" and "all_prime ns" - shows "\qs. all_prime qs \ (PROD m::nat:#mset qs. m) = - (PROD m::nat:#mset ms. m) * (PROD m::nat:#mset ns. m)" (is "\qs. ?P qs \ ?Q qs") + shows "\qs. all_prime qs \ (\m::nat \# mset qs. m) = + (\m::nat \# mset ms. m) * (\m::nat \# mset ns. m)" (is "\qs. ?P qs \ ?Q qs") proof - from assms have "all_prime (ms @ ns)" by (simp add: all_prime_append) - moreover from assms have "(PROD m::nat:#mset (ms @ ns). m) = - (PROD m::nat:#mset ms. m) * (PROD m::nat:#mset ns. m)" + moreover from assms have "(\m::nat \# mset (ms @ ns). m) = + (\m::nat \# mset ms. m) * (\m::nat \# mset ns. m)" by (simp add: msetprod_Un) ultimately have "?P (ms @ ns) \ ?Q (ms @ ns)" .. then show ?thesis .. @@ -154,11 +154,11 @@ lemma all_prime_nempty_g_one: assumes "all_prime ps" and "ps \ []" - shows "Suc 0 < (PROD m::nat:#mset ps. m)" + shows "Suc 0 < (\m::nat \# mset ps. m)" using `ps \ []` `all_prime ps` unfolding One_nat_def [symmetric] by (induct ps rule: list_nonempty_induct) (simp_all add: all_prime_simps msetprod_singleton msetprod_Un prime_gt_1_nat less_1_mult del: One_nat_def) -lemma factor_exists: "Suc 0 < n \ (\ps. all_prime ps \ (PROD m::nat:#mset ps. m) = n)" +lemma factor_exists: "Suc 0 < n \ (\ps. all_prime ps \ (\m::nat \# mset ps. m) = n)" proof (induct n rule: nat_wf_ind) case (1 n) from `Suc 0 < n` @@ -169,21 +169,21 @@ assume "\m k. Suc 0 < m \ Suc 0 < k \ m < n \ k < n \ n = m * k" then obtain m k where m: "Suc 0 < m" and k: "Suc 0 < k" and mn: "m < n" and kn: "k < n" and nmk: "n = m * k" by iprover - from mn and m have "\ps. all_prime ps \ (PROD m::nat:#mset ps. m) = m" by (rule 1) - then obtain ps1 where "all_prime ps1" and prod_ps1_m: "(PROD m::nat:#mset ps1. m) = m" + from mn and m have "\ps. all_prime ps \ (\m::nat \# mset ps. m) = m" by (rule 1) + then obtain ps1 where "all_prime ps1" and prod_ps1_m: "(\m::nat \# mset ps1. m) = m" by iprover - from kn and k have "\ps. all_prime ps \ (PROD m::nat:#mset ps. m) = k" by (rule 1) - then obtain ps2 where "all_prime ps2" and prod_ps2_k: "(PROD m::nat:#mset ps2. m) = k" + from kn and k have "\ps. all_prime ps \ (\m::nat \# mset ps. m) = k" by (rule 1) + then obtain ps2 where "all_prime ps2" and prod_ps2_k: "(\m::nat \# mset ps2. m) = k" by iprover from `all_prime ps1` `all_prime ps2` - have "\ps. all_prime ps \ (PROD m::nat:#mset ps. m) = - (PROD m::nat:#mset ps1. m) * (PROD m::nat:#mset ps2. m)" + have "\ps. all_prime ps \ (\m::nat \# mset ps. m) = + (\m::nat \# mset ps1. m) * (\m::nat \# mset ps2. m)" by (rule split_all_prime) with prod_ps1_m prod_ps2_k nmk show ?thesis by simp next assume "prime n" then have "all_prime [n]" by (simp add: all_prime_simps) - moreover have "(PROD m::nat:#mset [n]. m) = n" by (simp add: msetprod_singleton) - ultimately have "all_prime [n] \ (PROD m::nat:#mset [n]. m) = n" .. + moreover have "(\m::nat \# mset [n]. m) = n" by (simp add: msetprod_singleton) + ultimately have "all_prime [n] \ (\m::nat \# mset [n]. m) = n" .. then show ?thesis .. qed qed @@ -193,7 +193,7 @@ shows "\p. prime p \ p dvd n" proof - from N obtain ps where "all_prime ps" - and prod_ps: "n = (PROD m::nat:#mset ps. m)" using factor_exists + and prod_ps: "n = (\m::nat \# mset ps. m)" using factor_exists by simp iprover with N have "ps \ []" by (auto simp add: all_prime_nempty_g_one msetprod_empty) diff -r 7247cb62406c -r 1d43f86f48be src/HOL/Taylor.thy --- a/src/HOL/Taylor.thy Mon Dec 28 18:03:26 2015 +0100 +++ b/src/HOL/Taylor.thy Mon Dec 28 19:23:15 2015 +0100 @@ -70,7 +70,7 @@ qed ultimately obtain x where "a - c < x & x < 0 & - f (a - c + c) = (SUM mm f a = (\m NbT + (SUM i: lessThan Nclients. (tokens o rel o sub i o client)s)}" + Always {s. (\i \ lessThan Nclients. (tokens o giv o sub i o client)s) + \ NbT + (\i \ lessThan Nclients. (tokens o rel o sub i o client)s)}" definition --{*spec (2)*} @@ -120,8 +120,8 @@ where "alloc_safety = (INT i : lessThan Nclients. Increasing (sub i o allocRel)) guarantees - Always {s. (SUM i: lessThan Nclients. (tokens o sub i o allocGiv)s) - \ NbT + (SUM i: lessThan Nclients. (tokens o sub i o allocRel)s)}" + Always {s. (\i \ lessThan Nclients. (tokens o sub i o allocGiv)s) + \ NbT + (\i \ lessThan Nclients. (tokens o sub i o allocRel)s)}" definition --{*spec (8)*} diff -r 7247cb62406c -r 1d43f86f48be src/HOL/UNITY/Comp/AllocImpl.thy --- a/src/HOL/UNITY/Comp/AllocImpl.thy Mon Dec 28 18:03:26 2015 +0100 +++ b/src/HOL/UNITY/Comp/AllocImpl.thy Mon Dec 28 19:23:15 2015 +0100 @@ -375,7 +375,7 @@ lemma alloc_refinement_lemma: "!!f::nat=>nat. (\i \ lessThan n. {s. f i \ g i s}) - \ {s. (SUM x: lessThan n. f x) \ (SUM x: lessThan n. g x s)}" + \ {s. (\x \ lessThan n. f x) \ (\x \ lessThan n. g x s)}" apply (induct_tac "n") apply (auto simp add: lessThan_Suc) done