diff -r bb18eed53ed6 -r a1119cf551e8 src/HOL/Metis_Examples/Big_O.thy --- a/src/HOL/Metis_Examples/Big_O.thy Tue Aug 13 14:20:22 2013 +0200 +++ b/src/HOL/Metis_Examples/Big_O.thy Tue Aug 13 16:25:47 2013 +0200 @@ -42,20 +42,20 @@ proof - fix c :: 'a and x :: 'b assume A1: "\x. \h x\ \ c * \f x\" - have F1: "\x\<^isub>1\'a\linordered_idom. 0 \ \x\<^isub>1\" by (metis abs_ge_zero) - have F2: "\x\<^isub>1\'a\linordered_idom. 1 * x\<^isub>1 = x\<^isub>1" by (metis mult_1) - have F3: "\x\<^isub>1 x\<^isub>3. x\<^isub>3 \ \h x\<^isub>1\ \ x\<^isub>3 \ c * \f x\<^isub>1\" by (metis A1 order_trans) - have F4: "\x\<^isub>2 x\<^isub>3\'a\linordered_idom. \x\<^isub>3\ * \x\<^isub>2\ = \x\<^isub>3 * x\<^isub>2\" + have F1: "\x\<^sub>1\'a\linordered_idom. 0 \ \x\<^sub>1\" by (metis abs_ge_zero) + have F2: "\x\<^sub>1\'a\linordered_idom. 1 * x\<^sub>1 = x\<^sub>1" by (metis mult_1) + have F3: "\x\<^sub>1 x\<^sub>3. x\<^sub>3 \ \h x\<^sub>1\ \ x\<^sub>3 \ c * \f x\<^sub>1\" by (metis A1 order_trans) + have F4: "\x\<^sub>2 x\<^sub>3\'a\linordered_idom. \x\<^sub>3\ * \x\<^sub>2\ = \x\<^sub>3 * x\<^sub>2\" by (metis abs_mult) - have F5: "\x\<^isub>3 x\<^isub>1\'a\linordered_idom. 0 \ x\<^isub>1 \ \x\<^isub>3 * x\<^isub>1\ = \x\<^isub>3\ * x\<^isub>1" + have F5: "\x\<^sub>3 x\<^sub>1\'a\linordered_idom. 0 \ x\<^sub>1 \ \x\<^sub>3 * x\<^sub>1\ = \x\<^sub>3\ * x\<^sub>1" by (metis abs_mult_pos) - hence "\x\<^isub>1\0. \x\<^isub>1\'a\linordered_idom\ = \1\ * x\<^isub>1" by (metis F2) - hence "\x\<^isub>1\0. \x\<^isub>1\'a\linordered_idom\ = x\<^isub>1" by (metis F2 abs_one) - hence "\x\<^isub>3. 0 \ \h x\<^isub>3\ \ \c * \f x\<^isub>3\\ = c * \f x\<^isub>3\" by (metis F3) - hence "\x\<^isub>3. \c * \f x\<^isub>3\\ = c * \f x\<^isub>3\" by (metis F1) - hence "\x\<^isub>3. (0\'a) \ \f x\<^isub>3\ \ c * \f x\<^isub>3\ = \c\ * \f x\<^isub>3\" by (metis F5) - hence "\x\<^isub>3. (0\'a) \ \f x\<^isub>3\ \ c * \f x\<^isub>3\ = \c * f x\<^isub>3\" by (metis F4) - hence "\x\<^isub>3. c * \f x\<^isub>3\ = \c * f x\<^isub>3\" by (metis F1) + hence "\x\<^sub>1\0. \x\<^sub>1\'a\linordered_idom\ = \1\ * x\<^sub>1" by (metis F2) + hence "\x\<^sub>1\0. \x\<^sub>1\'a\linordered_idom\ = x\<^sub>1" by (metis F2 abs_one) + hence "\x\<^sub>3. 0 \ \h x\<^sub>3\ \ \c * \f x\<^sub>3\\ = c * \f x\<^sub>3\" by (metis F3) + hence "\x\<^sub>3. \c * \f x\<^sub>3\\ = c * \f x\<^sub>3\" by (metis F1) + hence "\x\<^sub>3. (0\'a) \ \f x\<^sub>3\ \ c * \f x\<^sub>3\ = \c\ * \f x\<^sub>3\" by (metis F5) + hence "\x\<^sub>3. (0\'a) \ \f x\<^sub>3\ \ c * \f x\<^sub>3\ = \c * f x\<^sub>3\" by (metis F4) + hence "\x\<^sub>3. c * \f x\<^sub>3\ = \c * f x\<^sub>3\" by (metis F1) hence "\h x\ \ \c * f x\" by (metis A1) thus "\h x\ \ \c\ * \f x\" by (metis F4) qed @@ -73,12 +73,12 @@ proof - fix c :: 'a and x :: 'b assume A1: "\x. \h x\ \ c * \f x\" - have F1: "\x\<^isub>1\'a\linordered_idom. 1 * x\<^isub>1 = x\<^isub>1" by (metis mult_1) - have F2: "\x\<^isub>2 x\<^isub>3\'a\linordered_idom. \x\<^isub>3\ * \x\<^isub>2\ = \x\<^isub>3 * x\<^isub>2\" + have F1: "\x\<^sub>1\'a\linordered_idom. 1 * x\<^sub>1 = x\<^sub>1" by (metis mult_1) + have F2: "\x\<^sub>2 x\<^sub>3\'a\linordered_idom. \x\<^sub>3\ * \x\<^sub>2\ = \x\<^sub>3 * x\<^sub>2\" by (metis abs_mult) - have "\x\<^isub>1\0. \x\<^isub>1\'a\linordered_idom\ = x\<^isub>1" by (metis F1 abs_mult_pos abs_one) - hence "\x\<^isub>3. \c * \f x\<^isub>3\\ = c * \f x\<^isub>3\" by (metis A1 abs_ge_zero order_trans) - hence "\x\<^isub>3. 0 \ \f x\<^isub>3\ \ c * \f x\<^isub>3\ = \c * f x\<^isub>3\" by (metis F2 abs_mult_pos) + have "\x\<^sub>1\0. \x\<^sub>1\'a\linordered_idom\ = x\<^sub>1" by (metis F1 abs_mult_pos abs_one) + hence "\x\<^sub>3. \c * \f x\<^sub>3\\ = c * \f x\<^sub>3\" by (metis A1 abs_ge_zero order_trans) + hence "\x\<^sub>3. 0 \ \f x\<^sub>3\ \ c * \f x\<^sub>3\ = \c * f x\<^sub>3\" by (metis F2 abs_mult_pos) hence "\h x\ \ \c * f x\" by (metis A1 abs_ge_zero) thus "\h x\ \ \c\ * \f x\" by (metis F2) qed @@ -96,10 +96,10 @@ proof - fix c :: 'a and x :: 'b assume A1: "\x. \h x\ \ c * \f x\" - have F1: "\x\<^isub>1\'a\linordered_idom. 1 * x\<^isub>1 = x\<^isub>1" by (metis mult_1) - have F2: "\x\<^isub>3 x\<^isub>1\'a\linordered_idom. 0 \ x\<^isub>1 \ \x\<^isub>3 * x\<^isub>1\ = \x\<^isub>3\ * x\<^isub>1" by (metis abs_mult_pos) - hence "\x\<^isub>1\0. \x\<^isub>1\'a\linordered_idom\ = x\<^isub>1" by (metis F1 abs_one) - hence "\x\<^isub>3. 0 \ \f x\<^isub>3\ \ c * \f x\<^isub>3\ = \c\ * \f x\<^isub>3\" by (metis F2 A1 abs_ge_zero order_trans) + have F1: "\x\<^sub>1\'a\linordered_idom. 1 * x\<^sub>1 = x\<^sub>1" by (metis mult_1) + have F2: "\x\<^sub>3 x\<^sub>1\'a\linordered_idom. 0 \ x\<^sub>1 \ \x\<^sub>3 * x\<^sub>1\ = \x\<^sub>3\ * x\<^sub>1" by (metis abs_mult_pos) + hence "\x\<^sub>1\0. \x\<^sub>1\'a\linordered_idom\ = x\<^sub>1" by (metis F1 abs_one) + hence "\x\<^sub>3. 0 \ \f x\<^sub>3\ \ c * \f x\<^sub>3\ = \c\ * \f x\<^sub>3\" by (metis F2 A1 abs_ge_zero order_trans) thus "\h x\ \ \c\ * \f x\" by (metis A1 abs_ge_zero) qed @@ -116,8 +116,8 @@ proof - fix c :: 'a and x :: 'b assume A1: "\x. \h x\ \ c * \f x\" - have "\x\<^isub>1\'a\linordered_idom. 1 * x\<^isub>1 = x\<^isub>1" by (metis mult_1) - hence "\x\<^isub>3. \c * \f x\<^isub>3\\ = c * \f x\<^isub>3\" + have "\x\<^sub>1\'a\linordered_idom. 1 * x\<^sub>1 = x\<^sub>1" by (metis mult_1) + hence "\x\<^sub>3. \c * \f x\<^sub>3\\ = c * \f x\<^sub>3\" by (metis A1 abs_ge_zero order_trans abs_mult_pos abs_one) hence "\h x\ \ \c * f x\" by (metis A1 abs_ge_zero abs_mult_pos abs_mult) thus "\h x\ \ \c\ * \f x\" by (metis abs_mult) @@ -459,11 +459,11 @@ have "(0\'a) < \c\ \ (0\'a) < \inverse c\" using F1 by (metis positive_imp_inverse_positive) hence "(0\'a) < \inverse c\" using F2 by metis hence F3: "(0\'a) \ \inverse c\" by (metis order_le_less) - have "\(u\'a) SKF\<^isub>7\'a \ 'b. \g (SKF\<^isub>7 (\inverse c\ * u))\ \ u * \f (SKF\<^isub>7 (\inverse c\ * u))\" + have "\(u\'a) SKF\<^sub>7\'a \ 'b. \g (SKF\<^sub>7 (\inverse c\ * u))\ \ u * \f (SKF\<^sub>7 (\inverse c\ * u))\" using A2 by metis - hence F4: "\(u\'a) SKF\<^isub>7\'a \ 'b. \g (SKF\<^isub>7 (\inverse c\ * u))\ \ u * \f (SKF\<^isub>7 (\inverse c\ * u))\ \ (0\'a) \ \inverse c\" + hence F4: "\(u\'a) SKF\<^sub>7\'a \ 'b. \g (SKF\<^sub>7 (\inverse c\ * u))\ \ u * \f (SKF\<^sub>7 (\inverse c\ * u))\ \ (0\'a) \ \inverse c\" using F3 by metis - hence "\(v\'a) (u\'a) SKF\<^isub>7\'a \ 'b. \inverse c\ * \g (SKF\<^isub>7 (u * v))\ \ u * (v * \f (SKF\<^isub>7 (u * v))\)" + hence "\(v\'a) (u\'a) SKF\<^sub>7\'a \ 'b. \inverse c\ * \g (SKF\<^sub>7 (u * v))\ \ u * (v * \f (SKF\<^sub>7 (u * v))\)" by (metis comm_mult_left_mono) thus "\ca\'a. \x\'b. \inverse c\ * \g x\ \ ca * \f x\" using A2 F4 by (metis ab_semigroup_mult_class.mult_ac(1) comm_mult_left_mono)