# HG changeset patch # User blanchet # Date 1330079016 -3600 # Node ID bd03e0890699239644906d170b10d40cdf5edfa8 # Parent a88bccd2b567d839d3abcdb0fa2d7e88345ce2fc rephrase some slow "metis" calls diff -r a88bccd2b567 -r bd03e0890699 src/HOL/Metis_Examples/Big_O.thy --- a/src/HOL/Metis_Examples/Big_O.thy Fri Feb 24 11:23:35 2012 +0100 +++ b/src/HOL/Metis_Examples/Big_O.thy Fri Feb 24 11:23:36 2012 +0100 @@ -100,7 +100,7 @@ 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) - thus "\h x\ \ \c\ * \f x\" by (metis A1 abs_mult abs_ge_zero) + thus "\h x\ \ \c\ * \f x\" by (metis A1 abs_ge_zero) qed sledgehammer_params [isar_proof, isar_shrink_factor = 4] @@ -211,8 +211,9 @@ defer 1 apply (metis abs_triangle_ineq) apply (metis add_nonneg_nonneg) -by (metis (no_types) add_mono le_maxI2 linorder_linear min_max.sup_absorb1 - mult_right_mono xt1(6)) +apply (rule add_mono) + apply (metis le_maxI2 linorder_linear min_max.sup_absorb1 mult_right_mono xt1(6)) +by (metis le_maxI2 linorder_not_le mult_le_cancel_right order_trans) lemma bigo_bounded_alt: "\x. 0 <= f x \ \x. f x <= c * g x \ f : O(g)" apply (auto simp add: bigo_def) @@ -383,7 +384,8 @@ lemma bigo_plus_absorb_lemma2: "f : O(g) \ O(g) \ f +o O(g)" by (metis (no_types) bigo_minus bigo_plus_absorb_lemma1 right_minus - set_plus_mono_b set_plus_rearrange2 set_zero_plus subsetI) + set_plus_mono set_plus_rearrange2 set_zero_plus subsetD subset_refl + subset_trans) lemma bigo_plus_absorb [simp]: "f : O(g) \ f +o O(g) = O(g)" by (metis bigo_plus_absorb_lemma1 bigo_plus_absorb_lemma2 order_eq_iff) @@ -669,31 +671,29 @@ apply (erule thin_rl) (* sledgehammer *) apply (case_tac "0 <= k x - g x") - apply (metis (hide_lams, no_types) abs_le_iff add_le_imp_le_right diff_minus le_less - le_max_iff_disj min_max.le_supE min_max.sup_absorb2 - min_max.sup_commute) + apply (metis (lifting) abs_le_D1 linorder_linear min_diff_distrib_left + min_max.inf_absorb1 min_max.inf_absorb2 min_max.sup_absorb1) by (metis abs_ge_zero le_cases min_max.sup_absorb2) lemma bigo_lesso3: "f =o g +o O(h) \ \x. 0 <= k x \ \x. g x <= k x \ f 'a=>'b\{linordered_field,number_ring}) \