Read about our upcoming Code of Conduct on this issue

Commit 6bcdf09b by Lawrence Paulson

Writing less_sets as an infix

parent 3f8b18dd1a65
 ... ... @@ -227,7 +227,7 @@ text \The ``remark'' of Erdős and E. C. Milner, Canad. Math. Bull. Vol. 1 proposition indecomposable_imp_Ex_less_sets: assumes indec: "indecomposable \" and "\ > 1" and A: "tp A = \" "small A" "A \ ON" and "x \ A" and A1: "tp A1 = \" "A1 \ A" obtains A2 where "tp A2 = \" "A2 \ A1" "less_sets {x} A2" obtains A2 where "tp A2 = \" "A2 \ A1" "{x} \ A2" proof - have "Ord \" using indec indecomposable_imp_Ord by blast ... ... @@ -275,7 +275,7 @@ proof - qed ultimately show "tp (A1 - B) = \" using A1 by blast show "less_sets {x} (A1 - B)" show "{x} \ (A1 - B)" proof (clarsimp simp: less_sets_def B_def simp del: elts_succ) fix y assume "y \ A1" and y: "y \ \ ` elts (succ \)" ... ... @@ -888,7 +888,7 @@ next \ (\\ \ elts \. \ \) \ KI 1 (x ` {.. strict_mono_sets (elts \) \" define \ where "\ \ \n::nat. \g \ \' xn. g \ elts \ \ elts \ \ strict_mono_on g (elts \) \ (\i\n. g (\ i) = \ i) \ (\\ \ elts \. \' \ \ K 1 xn \ \ (g \)) \ less_sets {xn} (\' (\ n)) \ xn \ \ (\ n)" \ {xn} \ (\' (\ n)) \ xn \ \ (\ n)" let ?\0 = "\\. plus (\ * \) ` elts \" have base: "\ 0 ?\0 x" for x by (auto simp: \_def add_mult_less add_mult_less_add_mult ordertype_image_plus strict_mono_sets_def less_sets_def) ... ... @@ -922,7 +922,7 @@ next by (auto simp: \) obtain "small (\ (\ n))" "\ (\ n) \ ON" by (meson \sub ord down elts_subset_ON subset_trans) then obtain A2 where A2: "tp A2 = \" "A2 \ K 1 xn \ \ (\ n)" "less_sets {xn} A2" then obtain A2 where A2: "tp A2 = \" "A2 \ K 1 xn \ \ (\ n)" "{xn} \ A2" using indecomposable_imp_Ex_less_sets [OF indec \\ > 1\ tp2] by (metis \_in_\ atMost_iff image_eqI inf_le2 le_refl xn tp1 g_\) then have A2_sub: "A2 \ \ (\ n)" by simp ... ... @@ -973,7 +973,7 @@ next using H_imp_\ [of n] that by (force simp: \_def \_def x_def g_def) then have x14: "\ (Suc n) \ \ \ n (g n \)" if "\ \ elts \" for \ n using that by blast have 15: "x n \ \ n (\ n)" and 16: "less_sets {x n} (\ (Suc n) (\ n))" for n have 15: "x n \ \ n (\ n)" and 16: "{x n} \ (\ (Suc n) (\ n))" for n using H_imp_\ [of n] by (force simp: \_def \_def x_def)+ have \_\\: "\ n \ \ elts (\ * \)" if "\ \ elts \" for \ n using H_imp_\ [of n] that by (auto simp: \_def \_def split: prod.split) ... ... @@ -1039,17 +1039,17 @@ next by (metis (no_types, lifting) "17" \_in_\ less_V_def order_refl sm_\ strict_mono_on_def) have eq: "\ i j (\ j) = \ i \ \ j = \ i" for i j by (metis eq_refl le less less_le) have 18: "less_sets (\ m (\ m)) (\ n (\ n)) \ \ m < \ n" for m n have 18: "\ m (\ m) \ \ n (\ n) \ \ m < \ n" for m n proof (cases n m rule: linorder_cases) case less show ?thesis proof (intro iffI) assume "less_sets (\ m (\ m)) (\ n (\ n))" assume "\ m (\ m) \ \ n (\ n)" moreover have "\ less_sets (\ m (\ m)) (\ n (\ n))" if "\ n = \ m" have "\ \ m (\ m) \ \ n (\ n)" if "\ n = \ m" by (metis "*" "15" eq less less_V_def less_sets_def less_sets_weaken2 that) moreover have "\ less_sets (\ m (\ m)) (\ n (\ n))" if "\ n < \ m" have "\ \ m (\ m) \ \ n (\ n)" if "\ n < \ m" using that 12 15 * [OF less] apply (clarsimp simp: less_sets_def strict_mono_sets_def) by (metis Ord_in_Ord Ord_linear2 \_in_\ \_in_\ \Ord \\ le leD less_asym subsetD) ... ... @@ -1057,9 +1057,9 @@ next by (meson Ord_in_Ord Ord_linear_lt \_in_\ \Ord \\) next assume "\ m < \ n" then have "less_sets (\ n (\ n m (\ m))) (\ n (\ n))" then have "\ n (\ n m (\ m)) \ \ n (\ n)" by (metis "12" \_in_\ \_in_\ eq le less_V_def strict_mono_sets_def) then show "less_sets (\ m (\ m)) (\ n (\ n))" then show "\ m (\ m) \ \ n (\ n)" by (meson *[OF less] less_sets_weaken1) qed next ... ... @@ -1069,12 +1069,12 @@ next case greater show ?thesis proof (intro iffI) assume "less_sets (\ m (\ m)) (\ n (\ n))" assume "\ m (\ m) \ \ n (\ n)" moreover have "\ less_sets (\ m (\ m)) (\ n (\ n))" if "\ n = \ m" have "\ \ m (\ m) \ \ n (\ n)" if "\ n = \ m" by (metis "*" "15" disjnt_iff eq greater in_mono less_sets_imp_disjnt that) moreover have "\ less_sets (\ m (\ m)) (\ n (\ n))" if "\ n < \ m" have "\ \ m (\ m) \ \ n (\ n)" if "\ n < \ m" using that 12 15 * [OF greater] apply (clarsimp simp: less_sets_def strict_mono_sets_def) by (meson \_in_\ \_in_\ in_mono less less_asym) ... ... @@ -1082,9 +1082,9 @@ next by (meson Ord_\ Ord_linear_lt) next assume "\ m < \ n" then have "less_sets (\ m (\ m)) (\ m (\ m n (\ n)))" then have "\ m (\ m) \ (\ m (\ m n (\ n)))" by (meson 12 Ord_in_Ord Ord_linear2 \_in_\ \_in_\ le leD ord(2) strict_mono_sets_def) then show "less_sets (\ m (\ m)) (\ n (\ n))" then show "\ m (\ m) \ \ n (\ n)" by (meson "*" greater less_sets_weaken2) qed qed ... ... @@ -1299,7 +1299,7 @@ next by simp also have "\ \ Suc (k * n)" using False by auto finally have "1 + (n - 1) * (k - 1) \ (n*k)" finally have "1 + (n - 1) * (k - 1) \ n*k" using False by (auto simp: algebra_simps) then have "(1 + ord_of_nat (n - 1) * ord_of_nat (k - 1)) \ ord_of_nat(n*k)" by (metis (mono_tags, lifting) One_nat_def one_V_def ord_of_nat.simps ord_of_nat_add ord_of_nat_mono_iff ord_of_nat_mult) ... ... @@ -1307,7 +1307,7 @@ next by (simp add: oexp_mono_le) then have "partn_lst_VWF (\\(n*k)) [\ \ (1 + ord_of_nat (n-1)), ord_of_nat (2 ^ (k-1))] 2" by (metis PV partn_lst_two_swap Partitions.partn_lst_greater_resource less_eq_V_def) moreover have "(1 + ord_of_nat (n-1)) = ord_of_nat n" moreover have "(1 + ord_of_nat (n-1)) = n" using ord_of_minus_1 [OF \n > 0\] by (simp add: one_V_def) ultimately have "partn_lst_VWF (\\(n*k)) [\ \ n, ord_of_nat (2 ^ (k-1))] 2" ... ...
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment