diff -r 14f469e70eab -r 39acdf031548 src/HOL/ex/ApproximationEx.thy --- a/src/HOL/ex/ApproximationEx.thy Wed Mar 11 08:45:46 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -(* Title: HOL/ex/ApproximationEx.thy - Author: Johannes Hoelzl 2009 -*) - -theory ApproximationEx -imports "~~/src/HOL/Decision_Procs/Approximation" -begin - -text {* - -Here are some examples how to use the approximation method. - -The parameter passed to the method specifies the precision used by the computations, it is specified -as number of bits to calculate. When a variable is used it needs to be bounded by an interval. This -interval is specified as a conjunction of the lower and upper bound. It must have the form -@{text "\ l\<^isub>1 \ x\<^isub>1 \ x\<^isub>1 \ u\<^isub>1 ; \ ; l\<^isub>n \ x\<^isub>n \ x\<^isub>n \ u\<^isub>n \ \ F"} where @{term F} is the formula, and -@{text "x\<^isub>1, \, x\<^isub>n"} are the variables. The lower bounds @{text "l\<^isub>1, \, l\<^isub>n"} and the upper bounds -@{text "u\<^isub>1, \, u\<^isub>n"} must either be integer numerals, floating point numbers or of the form -@{term "m * pow2 e"} to specify a exact floating point value. - -*} - -section "Compute some transcendental values" - -lemma "\ ln 2 - 544531980202654583340825686620847 / 785593587443817081832229725798400 \ < inverse (2^51) " - by (approximation 80) - -lemma "\ exp 1.626 - 5.083499996273 \ < (inverse 10 ^ 10 :: real)" - by (approximation 80) - -lemma "\ sqrt 2 - 1.4142135623730951 \ < inverse 10 ^ 16" - by (approximation 80) - -lemma "\ pi - 3.1415926535897932385 \ < inverse 10 ^ 18" - by (approximation 80) - -section "Use variable ranges" - -lemma "0.5 \ x \ x \ 4.5 \ \ arctan x - 0.91 \ < 0.455" - by (approximation 10) - -lemma "0.49 \ x \ x \ 4.49 \ \ arctan x - 0.91 \ < 0.455" - by (approximation 20) - -lemma "1 * pow2 -1 \ x \ x \ 9 * pow2 -1 \ \ arctan x - 0.91 \ < 0.455" - by (approximation 10) - -lemma "0 \ x \ x \ 1 \ 0 \ sin x" - by (approximation 10) - -end -