src/sml/IsacKnowledge/Integrate.ML
branchstart_Take
changeset 584 77cbff73a3ef
parent 536 ad867391489c
child 594 d626a1c05cfc
     1.1 --- a/src/sml/IsacKnowledge/Integrate.ML	Fri Jul 14 18:20:42 2006 +0200
     1.2 +++ b/src/sml/IsacKnowledge/Integrate.ML	Mon Jul 17 10:17:33 2006 +0200
     1.3 @@ -176,6 +176,20 @@
     1.4     This is a copy from 'make_ratpoly_in' with respective reduction of rules and
     1.5     *1* expand the term, ie. distribute * and / over +
     1.6  .*)
     1.7 +val separate_bdv2 =
     1.8 +    append_rls "separate_bdv2"
     1.9 +	       collect_bdv
    1.10 +	       [Thm ("separate_bdv", num_str separate_bdv),
    1.11 +		(*"?a * ?bdv / ?b = ?a / ?b * ?bdv"*)
    1.12 +		Thm ("separate_bdv_n", num_str separate_bdv_n),
    1.13 +		Thm ("separate_1_bdv", num_str separate_1_bdv),
    1.14 +		(*"?bdv / ?b = (1 / ?b) * ?bdv"*)
    1.15 +		Thm ("separate_1_bdv_n", num_str separate_1_bdv_n)(*,
    1.16 +			  (*"?bdv ^^^ ?n / ?b = 1 / ?b * ?bdv ^^^ ?n"*)
    1.17 +			  *****Thm ("real_add_divide_distrib", 
    1.18 +			  *****num_str real_add_divide_distrib)
    1.19 +			  (*"(?x + ?y) / ?z = ?x / ?z + ?y / ?z"*)----------*)
    1.20 +		];
    1.21  val simplify_Integral = 
    1.22    Seq {id = "simplify_Integral", preconds = []:term list, 
    1.23         rew_ord = ("dummy_ord", dummy_ord),
    1.24 @@ -190,19 +204,7 @@
    1.25  	       Rls_ order_add_mult_in,
    1.26  	       Rls_ discard_parentheses,
    1.27  	       (*Rls_ collect_bdv, from make_polynomial_in*)
    1.28 -	       Rls_ (append_rls "separate_bdv"
    1.29 -			 collect_bdv
    1.30 -			 [Thm ("separate_bdv", num_str separate_bdv),
    1.31 -			  (*"?a * ?bdv / ?b = ?a / ?b * ?bdv"*)
    1.32 -			  Thm ("separate_bdv_n", num_str separate_bdv_n),
    1.33 -			  Thm ("separate_1_bdv", num_str separate_1_bdv),
    1.34 -			  (*"?bdv / ?b = (1 / ?b) * ?bdv"*)
    1.35 -			  Thm ("separate_1_bdv_n", num_str separate_1_bdv_n)(*,
    1.36 -			  (*"?bdv ^^^ ?n / ?b = 1 / ?b * ?bdv ^^^ ?n"*)
    1.37 -			  *****Thm ("real_add_divide_distrib", 
    1.38 -			  *****num_str real_add_divide_distrib)
    1.39 -			  (*"(?x + ?y) / ?z = ?x / ?z + ?y / ?z"*)----------*)
    1.40 -			  ]),
    1.41 +	       Rls_ separate_bdv2,
    1.42  	       Calc ("HOL.divide"  ,eval_cancel "#divide_")
    1.43  	       ],
    1.44        scr = EmptyScr}:rls;      
    1.45 @@ -268,7 +270,12 @@
    1.46  	    [("integration_rules", prep_rls integration_rules),
    1.47  	     ("add_new_c", prep_rls add_new_c),
    1.48  	     ("simplify_Integral", prep_rls simplify_Integral),
    1.49 -	     ("integration", prep_rls integration)]);
    1.50 +	     ("integration", prep_rls integration),
    1.51 +	     ("separate_bdv2", separate_bdv2),
    1.52 +	     ("norm_Rational_noadd_fractions", norm_Rational_noadd_fractions),
    1.53 +	     ("norm_Rational_rls_noadd_fractions", 
    1.54 +	      norm_Rational_rls_noadd_fractions)
    1.55 +	     ]);
    1.56  
    1.57  (** problems **)
    1.58