Floating-point computations with trigonometric functions
These are examples of floating-point computations involving trigonometric functions. They are presented in details in the technical report Generating and Certifying Accuracy Properties of Floating-Point Programs.
Authors: Claude Marché / Paul Bonnot
Topics: Floating-Point Computations / Non-linear Arithmetic
Tools: Why3
see also the index (by topic, by tool, by reference, by year)
download ZIP archive
The following provides the WhyML code where the programs are specified and implemented. After are given the prover results on each verification conditions.
module SinCosSingle use real.RealInfix use real.Abs use ufloat.USingle use ufloat.USingleLemmas use real.Trigonometry constant sin_rel_err:real axiom sin_rel_err_range : 0.0 <=. sin_rel_err constant sin_abs_err:real axiom sin_abs_err_range : 0. <=. sin_abs_err constant sin_max:real axiom sin_max_range : 0.0 <=. sin_max val sin_approx (x:usingle) : usingle requires { abs (to_real x) <=. sin_max } ensures { abs (to_real result -. sin (to_real x)) <=. sin_rel_err *. abs (sin (to_real x)) +. sin_abs_err } constant cos_rel_err:real axiom cos_rel_err_range : 0. <=. cos_rel_err constant cos_abs_err:real axiom cos_abs_err_range : 0. <=. cos_abs_err constant cos_max:real axiom cos_max_range : 0.0 <=. cos_max val cos_approx (x:usingle) : usingle requires { abs (to_real x) <=. cos_max } ensures { abs (to_real result -. cos (to_real x)) <=. cos_rel_err *. abs (cos (to_real x)) +. cos_abs_err } let sin_simple_example (a b :usingle) requires { abs (to_real a) <=. 0.25 *. sin_max } requires { abs (to_real b) <=. 0.25 *. sin_max } ensures { abs (to_real result -. sin(to_real a +. to_real b)) <=. sin_rel_err *. abs (sin (to_real a +. to_real b)) +. eps *. abs (to_real a +. to_real b) *. (1. +. sin_rel_err) +. sin_abs_err } = sin_approx(a ++. b) let cos_simple_example (a b :usingle) requires { abs (to_real a) <=. 0.25 *. cos_max } requires { abs (to_real b) <=. 0.25 *. cos_max } ensures { abs (to_real result -. cos(to_real a -. to_real b)) <=. cos_rel_err *. abs (cos (to_real a -. to_real b)) +. eps *. abs (to_real a -. to_real b) *. (1. +. cos_rel_err) +. cos_abs_err } = cos_approx(a --. b) (* Example from the report *) let r_cos_theta (r theta : usingle) (ghost r_exact theta_exact r_err theta_err :real) requires { cos_max >=. 3.1416 } requires { 0.0 <=. to_real r <=. 1.0 } requires { 0.0 <=. r_exact <=. 1.0 } requires { -3.1416 <=. to_real theta <=. 3.1416 } requires { -3.1416 <=. theta_exact <=. 3.1416 } requires { abs(to_real r -. r_exact) <=. r_err } requires { abs(to_real theta -. theta_exact) <=. theta_err } ensures { let t1 = 1.0 +. eps in let t3 = theta_err *. (1.0 +. cos_rel_err) +. cos_abs_err in abs (to_real result -. r_exact *. cos theta_exact) <=. (* relative error *) (eps +. cos_rel_err *. t1) *. abs (r_exact *. cos theta_exact) +. (* absolute error *) (t3 *. abs r_exact +. (r_err +. r_err *. cos_rel_err) *. abs (cos theta_exact) +. r_err *. t3) *. t1 +. eta } = r **. cos_approx theta lemma cos_square_plus_sine_square : forall x. cos x *. cos x +. sin x *. sin x = 1. let cos_and_sine_example (a :usingle) requires { abs (to_real a) <=. sin_max } requires { abs (to_real a) <=. cos_max } ensures { let a = to_real a in let sa = sin a in let ca = cos a in let t = 1.0 +. eps in let s2a = sa *. sa in let c2a = ca *. ca in let crerr = eps +. (((cos_rel_err +. cos_rel_err) +. (cos_rel_err *. cos_rel_err)) *. t) in let srerr = eps +. (((sin_rel_err +. sin_rel_err) +. (sin_rel_err *. sin_rel_err)) *. t) in let ccerr = (t *. (cos_abs_err +. (cos_abs_err *. cos_rel_err))) *. abs ca in let scerr = (t *. (sin_abs_err +. (sin_abs_err *. sin_rel_err))) *. abs sa in abs (to_real result -. 1.0) <=. ((((crerr +. srerr) +. eps) *. (abs c2a +. abs s2a)) +. (((t +. srerr) *. ((2.0 *. ccerr +. (t *. (cos_abs_err *. cos_abs_err))) +. eta)) +. ((t +. crerr) *. ((2.0 *. scerr +. (t *. (sin_abs_err *. sin_abs_err))) +. eta)))) } = cos_approx a **. cos_approx a ++. sin_approx a **. sin_approx a val exact_cte (x:real) : usingle ensures { to_real result = x } (* Kinematics example *) let kinematics (theta1 theta2:usingle) requires { abs (to_real theta1) <=. 0.25 *. sin_max } requires { abs (to_real theta2) <=. 0.25 *. sin_max } ensures { let theta1 = to_real theta1 in let theta2 = to_real theta2 in let t1 = 1.0 +. eps in let t2 = eps +. sin_rel_err *. t1 in abs (to_real result -. (0.5 *. sin theta1 +. 2.5 *. sin (theta1 +. theta2))) <=. (* Relative part of the error *) (2.0 *. t2 +. eps) *. (0.5 *. abs (sin theta1) +. 2.5 *. abs (sin (theta1 +. theta2))) (* Absolute part of the error *) +. (t1 +. t2) *. (t1 *. (0.5 *. sin_abs_err +. 2.5 *. (eps *. abs (theta1 +. theta2) *. (1.0 +. sin_rel_err) +. sin_abs_err)) +. 2.0 *. eta) } = exact_cte 0.5 **. sin_approx (theta1) ++. exact_cte 2.5 **. sin_approx(theta1 ++. theta2) (* Raytracer example *) let raytracer (theta phi nx ny nz:usingle) requires { abs (to_real phi) <=. sin_max } requires { abs (to_real phi) <=. cos_max } requires { abs (to_real theta) <=. sin_max } requires { abs (to_real theta) <=. cos_max } ensures { let nz = to_real nz in let ny = to_real ny in let nx = to_real nx in let phi = to_real phi in let theta = to_real theta in let t1 = 1.0 +. eps in let t2c = eps +. cos_rel_err *. t1 in let t2s = eps +. sin_rel_err *. t1 in let t3c = eps +. (t2c +. cos_rel_err +. t2c *. cos_rel_err) *. t1 in let t3s = eps +. (t2c +. sin_rel_err +. t2c *. sin_rel_err) *. t1 in let t4 = t3c +. t2s +. eps in abs (to_real result -. (nx *. cos theta *. cos phi +. ny *. sin theta +. nz *. cos theta *. sin phi)) <=. (* Relative part of the error *) (t4 +. t3s +. eps) *. (abs (nx *. cos theta *. cos phi) +. abs (ny *. sin theta) +. abs (nz *. cos theta *. sin phi)) (* Absolute part of the error *) +. (t1 +. t3s) *. ((t1 +. t2s) *. (t1 *. (cos_abs_err *. (1.0 +. t2c) *. abs (nx *. cos theta) +. (t1 *. cos_abs_err *. abs nx +. eta) *. ((1.0 +. cos_rel_err) *. abs (cos phi) +. cos_abs_err)) +. eta) +. (t1 +. t3c) *. (t1 *. sin_abs_err *. abs ny +. eta)) +. (t1 +. t4) *. (t1 *. (sin_abs_err *. (1.0 +. t2c) *. abs (nz *. cos theta) +. (t1 *. cos_abs_err *. abs nz +. eta) *. ((1.0 +. sin_rel_err) *. abs (sin phi) +. sin_abs_err)) +. eta) } = nx **. cos_approx theta **. cos_approx phi ++. ny **. sin_approx theta ++. nz **. cos_approx theta **. sin_approx phi end module SinCosDouble use real.RealInfix use real.Abs use ufloat.UDouble use ufloat.UDoubleLemmas use real.Trigonometry constant sin_rel_err:real axiom sin_rel_err_range : 0.0 <=. sin_rel_err constant sin_abs_err:real axiom sin_abs_err_range : 0. <=. sin_abs_err constant sin_max:real axiom sin_max_range : 0.0 <=. sin_max val sin_approx (x:udouble) : udouble requires { abs (to_real x) <=. sin_max } ensures { abs (to_real result -. sin (to_real x)) <=. sin_rel_err *. abs (sin (to_real x)) +. sin_abs_err } constant cos_rel_err:real axiom cos_rel_err_range : 0. <=. cos_rel_err constant cos_abs_err:real axiom cos_abs_err_range : 0. <=. cos_abs_err constant cos_max:real axiom cos_max_range : 0.0 <=. cos_max val cos_approx (x:udouble) : udouble requires { abs (to_real x) <=. cos_max } ensures { abs (to_real result -. cos (to_real x)) <=. cos_rel_err *. abs (cos (to_real x)) +. cos_abs_err } let sin_simple_example (a b :udouble) requires { abs (to_real a) <=. 0.25 *. sin_max } requires { abs (to_real b) <=. 0.25 *. sin_max } ensures { abs (to_real result -. sin(to_real a +. to_real b)) <=. sin_rel_err *. abs (sin (to_real a +. to_real b)) +. eps *. abs (to_real a +. to_real b) *. (1. +. sin_rel_err) +. sin_abs_err } = sin_approx(a ++. b) let cos_simple_example (a b :udouble) requires { abs (to_real a) <=. 0.25 *. cos_max } requires { abs (to_real b) <=. 0.25 *. cos_max } ensures { abs (to_real result -. cos(to_real a -. to_real b)) <=. cos_rel_err *. abs (cos (to_real a -. to_real b)) +. eps *. abs (to_real a -. to_real b) *. (1. +. cos_rel_err) +. cos_abs_err } = cos_approx(a --. b) let cos_and_sine_example (a :udouble) requires { abs (to_real a) <=. sin_max } requires { abs (to_real a) <=. cos_max } ensures { let a = to_real a in let t = 1.0 +. eps in let crel = eps +. cos_rel_err *. (2.0 +. cos_rel_err) *. t in let srel = eps +. sin_rel_err *. (2.0 +. sin_rel_err) *. t in abs (to_real result -. 1.0) <=. crel +. srel +. eps +. (t +. srel) *. (t *. cos_abs_err *. (2.0 *. (1.0 +. cos_rel_err) *. abs (cos a) +. cos_abs_err) +. eta) +. (t +. crel) *. (t *. sin_abs_err *. (2.0 *. (1.0 +. sin_rel_err) *. abs (sin a) +. sin_abs_err) +. eta) by cos a *. cos a +. sin a *. sin a = 1.0 so abs (cos a *. cos a) +. abs (sin a *. sin a) = 1.0 so (crel +. srel +. eps) *. (abs (sin a *. sin a) +. abs (cos a *. cos a)) = crel +. srel +. eps } = cos_approx a **. cos_approx a ++. sin_approx a **. sin_approx a val exact_cte (x:real) : udouble ensures { to_real result = x } (* Kinematics example *) let kinematics (theta1 theta2:udouble) requires { abs (to_real theta1) <=. 0.25 *. sin_max } requires { abs (to_real theta2) <=. 0.25 *. sin_max } ensures { let theta1 = to_real theta1 in let theta2 = to_real theta2 in let t1 = 1.0 +. eps in let t2 = eps +. sin_rel_err *. t1 in abs (to_real result -. (0.5 *. sin theta1 +. 2.5 *. sin (theta1 +. theta2))) <=. (* Relative part of the error *) (2.0 *. t2 +. eps) *. (0.5 *. abs (sin theta1) +. 2.5 *. abs (sin (theta1 +. theta2))) (* Absolute part of the error *) +. (t1 +. t2) *. (t1 *. (0.5 *. sin_abs_err +. 2.5 *. (eps *. abs (theta1 +. theta2) *. (1.0 +. sin_rel_err) +. sin_abs_err)) +. 2.0 *. eta) } = exact_cte 0.5 **. sin_approx (theta1) ++. exact_cte 2.5 **. sin_approx(theta1 ++. theta2) (* Raytracer example *) let raytracer (theta phi nx ny nz:udouble) requires { abs (to_real phi) <=. sin_max } requires { abs (to_real phi) <=. cos_max } requires { abs (to_real theta) <=. sin_max } requires { abs (to_real theta) <=. cos_max } ensures { let nz = to_real nz in let ny = to_real ny in let nx = to_real nx in let phi = to_real phi in let theta = to_real theta in let t1 = 1.0 +. eps in let t2c = eps +. cos_rel_err *. t1 in let t2s = eps +. sin_rel_err *. t1 in let t3c = eps +. (t2c +. cos_rel_err +. t2c *. cos_rel_err) *. t1 in let t3s = eps +. (t2c +. sin_rel_err +. t2c *. sin_rel_err) *. t1 in let t4 = t3c +. t2s +. eps in abs (to_real result -. (nx *. cos theta *. cos phi +. ny *. sin theta +. nz *. cos theta *. sin phi)) <=. (* Relative part of the error *) (t4 +. t3s +. eps) *. (abs (nx *. cos theta *. cos phi) +. abs (ny *. sin theta) +. abs (nz *. cos theta *. sin phi)) (* Absolute part of the error *) +. (t1 +. t3s) *. ((t1 +. t2s) *. (t1 *. (cos_abs_err *. (1.0 +. t2c) *. abs (nx *. cos theta) +. (t1 *. cos_abs_err *. abs nx +. eta) *. ((1.0 +. cos_rel_err) *. abs (cos phi) +. cos_abs_err)) +. eta) +. (t1 +. t3c) *. (t1 *. sin_abs_err *. abs ny +. eta)) +. (t1 +. t4) *. (t1 *. (sin_abs_err *. (1.0 +. t2c) *. abs (nz *. cos theta) +. (t1 *. cos_abs_err *. abs nz +. eta) *. ((1.0 +. sin_rel_err) *. abs (sin phi) +. sin_abs_err)) +. eta) } = nx **. cos_approx theta **. cos_approx phi ++. ny **. sin_approx theta ++. nz **. cos_approx theta **. sin_approx phi end
The following table lists all the verification conditions generated and tell which prover proved which.
Why3 Proof Results for Project "sin_cos"
Theory "sin_cos.SinCosSingle": fully verified
| Obligations | Alt-Ergo 2.5.4 | Alt-Ergo 2.5.4 (FPA) | CVC4 1.8 | CVC5 1.0.5 | Z3 4.12.2 | ||||||||||||
| VC for sin_simple_example | --- | --- | --- | --- | --- | ||||||||||||
| split_vc | |||||||||||||||||
| precondition | --- | 0.21 | --- | --- | --- | ||||||||||||
| postcondition | --- | --- | --- | --- | --- | ||||||||||||
| assert let t = to_real a +. to_real b in let t1 = sin t in abs (to_real result -. t1) <=. ((abs t1 *. sin_rel_err) +. (((eps *. abs t) *. (1.0 +. sin_rel_err)) +. sin_abs_err)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. sin (to_real a +. to_real b)) <=. ((abs (sin (to_real a +. to_real b)) *. sin_rel_err) +. (((eps *. abs (to_real a +. to_real b)) *. (1.0 +. sin_rel_err)) +. sin_abs_err)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. sin (to_real a +. to_real b)) <=. ((sin_rel_err *. abs (sin (to_real a +. to_real b))) +. ((((eps *. abs (to_real a +. to_real b)) +. 0.0) *. (1.0 +. sin_rel_err)) +. sin_abs_err)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply sin_single_error_propagation with a ++. b | |||||||||||||||||
| apply premises | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (a ++. b) -. (to_real a +. to_real b)) <=. (eps *. abs (to_real a +. to_real b)) | |||||||||||||||||
| asserted formula | 0.22 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.07 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | 0.07 | --- | ||||||||||||
| apply premises | --- | --- | 0.07 | --- | --- | ||||||||||||
| asserted formula | --- | --- | --- | --- | 0.02 | ||||||||||||
| asserted formula | --- | --- | --- | 0.08 | --- | ||||||||||||
| postcondition | --- | --- | --- | 0.08 | --- | ||||||||||||
| VC for cos_simple_example | --- | --- | --- | --- | --- | ||||||||||||
| split_vc | |||||||||||||||||
| precondition | --- | 0.16 | --- | --- | --- | ||||||||||||
| postcondition | --- | --- | --- | --- | --- | ||||||||||||
| assert let t = to_real a -. to_real b in let t1 = cos t in abs (to_real result -. t1) <=. ((abs t1 *. cos_rel_err) +. (((eps *. abs t) *. (1.0 +. cos_rel_err)) +. cos_abs_err)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. cos (to_real a -. to_real b)) <=. ((abs (cos (to_real a -. to_real b)) *. cos_rel_err) +. (((eps *. abs (to_real a -. to_real b)) *. (1.0 +. cos_rel_err)) +. cos_abs_err)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. cos (to_real a -. to_real b)) <=. ((cos_rel_err *. abs (cos (to_real a -. to_real b))) +. ((((eps *. abs (to_real a -. to_real b)) +. 0.0) *. (1.0 +. cos_rel_err)) +. cos_abs_err)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply cos_single_error_propagation with a --. b | |||||||||||||||||
| apply premises | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (a --. b) -. (to_real a -. to_real b)) <=. (eps *. abs (to_real a -. to_real b)) | |||||||||||||||||
| asserted formula | 0.22 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | --- | --- | --- | 0.07 | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.06 | --- | --- | ||||||||||||
| asserted formula | --- | --- | --- | --- | 0.02 | ||||||||||||
| asserted formula | --- | --- | --- | 0.07 | --- | ||||||||||||
| postcondition | --- | --- | --- | 0.07 | --- | ||||||||||||
| VC for r_cos_theta | --- | --- | --- | --- | --- | ||||||||||||
| split_vc | |||||||||||||||||
| precondition | --- | --- | 0.08 | --- | --- | ||||||||||||
| postcondition | --- | --- | --- | --- | --- | ||||||||||||
| assert let t = cos theta_exact in let t1 = 1.0 +. eps in let t2 = r_exact *. t in let t3 = (theta_err *. (1.0 +. cos_rel_err)) +. cos_abs_err in abs (to_real result -. t2) <=. (((eps +. (((0.0 +. cos_rel_err) +. (0.0 *. cos_rel_err)) *. t1)) *. abs t2) +. ((((((t3 +. (t3 *. 0.0)) *. abs r_exact) +. ((r_err +. (r_err *. cos_rel_err)) *. abs t)) +. (r_err *. t3)) *. t1) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. (r_exact *. cos theta_exact)) <=. (((eps +. (((0.0 +. cos_rel_err) +. (0.0 *. cos_rel_err)) *. (1.0 +. eps))) *. abs (r_exact *. cos theta_exact)) +. ((((((((theta_err *. (1.0 +. cos_rel_err)) +. cos_abs_err) +. (((theta_err *. (1.0 +. cos_rel_err)) +. cos_abs_err) *. 0.0)) *. abs r_exact) +. ((r_err +. (r_err *. cos_rel_err)) *. abs (cos theta_exact))) +. (r_err *. ((theta_err *. (1.0 +. cos_rel_err)) +. cos_abs_err))) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. (r_exact *. cos theta_exact)) <=. (((eps +. (((0.0 +. cos_rel_err) +. (0.0 *. cos_rel_err)) *. (1.0 +. eps))) *. (abs r_exact *. abs (cos theta_exact))) +. ((((((((theta_err *. (1.0 +. cos_rel_err)) +. cos_abs_err) +. (((theta_err *. (1.0 +. cos_rel_err)) +. cos_abs_err) *. 0.0)) *. abs r_exact) +. ((r_err +. (r_err *. cos_rel_err)) *. abs (cos theta_exact))) +. (r_err *. ((theta_err *. (1.0 +. cos_rel_err)) +. cos_abs_err))) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply umul_single_error_propagation with r,o | |||||||||||||||||
| apply premises | --- | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real o -. cos theta_exact) <=. ((abs (cos theta_exact) *. cos_rel_err) +. ((theta_err *. (1.0 +. cos_rel_err)) +. cos_abs_err)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real o -. cos theta_exact) <=. ((cos_rel_err *. abs (cos theta_exact)) +. ((((0.0 *. abs theta_exact) +. theta_err) *. (1.0 +. cos_rel_err)) +. cos_abs_err)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply cos_single_error_propagation with theta | |||||||||||||||||
| apply premises | 0.05 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.09 | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.10 | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| asserted formula | --- | --- | 0.06 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | --- | --- | 0.06 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.09 | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.15 | --- | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.07 | --- | --- | ||||||||||||
| asserted formula | 0.13 | --- | --- | --- | --- | ||||||||||||
| asserted formula | --- | --- | --- | 0.08 | --- | ||||||||||||
| postcondition | --- | --- | --- | --- | 0.02 | ||||||||||||
| cos_square_plus_sine_square | --- | 1.73 | --- | --- | --- | ||||||||||||
| VC for cos_and_sine_example | --- | --- | --- | --- | --- | ||||||||||||
| split_vc | |||||||||||||||||
| precondition | --- | 0.05 | --- | --- | --- | ||||||||||||
| precondition | --- | 0.05 | --- | --- | --- | ||||||||||||
| precondition | --- | 0.04 | --- | --- | --- | ||||||||||||
| precondition | --- | 0.05 | --- | --- | --- | ||||||||||||
| postcondition | --- | --- | --- | --- | --- | ||||||||||||
| assert let t1 = to_real a1 in let t2 = sin t1 in let t3 = cos t1 in let t4 = 1.0 +. eps in let t5 = t2 *. t2 in let t6 = t3 *. t3 in let t7 = eps +. (((cos_rel_err +. cos_rel_err) +. (cos_rel_err *. cos_rel_err)) *. t4) in let t8 = eps +. (((sin_rel_err +. sin_rel_err) +. (sin_rel_err *. sin_rel_err)) *. t4) in let t9 = (t4 *. (cos_abs_err +. (cos_abs_err *. cos_rel_err))) *. abs t3 in let t10 = (t4 *. (sin_abs_err +. (sin_abs_err *. sin_rel_err))) *. abs t2 in abs (to_real result -. (t6 +. t5)) <=. ((((t7 +. t8) +. eps) *. (abs t6 +. abs t5)) +. (((t4 +. t8) *. (((t9 +. t9) +. (t4 *. (cos_abs_err *. cos_abs_err))) +. eta)) +. ((t4 +. t7) *. (((t10 +. t10) +. (t4 *. (sin_abs_err *. sin_abs_err))) +. eta)))) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. ((cos (to_real a1) *. cos (to_real a1)) +. (sin (to_real a1) *. sin (to_real a1)))) <=. (((((eps +. (((cos_rel_err +. cos_rel_err) +. (cos_rel_err *. cos_rel_err)) *. (1.0 +. eps))) +. (eps +. (((sin_rel_err +. sin_rel_err) +. (sin_rel_err *. sin_rel_err)) *. (1.0 +. eps)))) +. eps) *. (abs (cos (to_real a1) *. cos (to_real a1)) +. abs (sin (to_real a1) *. sin (to_real a1)))) +. ((((1.0 +. eps) +. (eps +. (((sin_rel_err +. sin_rel_err) +. (sin_rel_err *. sin_rel_err)) *. (1.0 +. eps)))) *. ((((((1.0 +. eps) *. (cos_abs_err +. (cos_abs_err *. cos_rel_err))) *. abs (cos (to_real a1))) +. (((1.0 +. eps) *. (cos_abs_err +. (cos_abs_err *. cos_rel_err))) *. abs (cos (to_real a1)))) +. ((1.0 +. eps) *. (cos_abs_err *. cos_abs_err))) +. eta)) +. (((1.0 +. eps) +. (eps +. (((cos_rel_err +. cos_rel_err) +. (cos_rel_err *. cos_rel_err)) *. (1.0 +. eps)))) *. ((((((1.0 +. eps) *. (sin_abs_err +. (sin_abs_err *. sin_rel_err))) *. abs (sin (to_real a1))) +. (((1.0 +. eps) *. (sin_abs_err +. (sin_abs_err *. sin_rel_err))) *. abs (sin (to_real a1)))) +. ((1.0 +. eps) *. (sin_abs_err *. sin_abs_err))) +. eta)))) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply uadd_single_error_propagation with o **. o1,o2 **. o3 | |||||||||||||||||
| apply premises | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o **. o1) -. (cos (to_real a1) *. cos (to_real a1))) <=. (((eps +. (((cos_rel_err +. cos_rel_err) +. (cos_rel_err *. cos_rel_err)) *. (1.0 +. eps))) *. abs (cos (to_real a1) *. cos (to_real a1))) +. ((((((cos_abs_err +. (cos_abs_err *. cos_rel_err)) *. abs (cos (to_real a1))) +. ((cos_abs_err +. (cos_abs_err *. cos_rel_err)) *. abs (cos (to_real a1)))) +. (cos_abs_err *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o **. o1) -. (cos (to_real a1) *. cos (to_real a1))) <=. (((eps +. (((cos_rel_err +. cos_rel_err) +. (cos_rel_err *. cos_rel_err)) *. (1.0 +. eps))) *. (abs (cos (to_real a1)) *. abs (cos (to_real a1)))) +. ((((((cos_abs_err +. (cos_abs_err *. cos_rel_err)) *. abs (cos (to_real a1))) +. ((cos_abs_err +. (cos_abs_err *. cos_rel_err)) *. abs (cos (to_real a1)))) +. (cos_abs_err *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply umul_single_error_propagation with o,o1 | |||||||||||||||||
| apply premises | --- | --- | 0.06 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.07 | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.11 | --- | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.07 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.13 | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.13 | --- | ||||||||||||
| apply premises | --- | --- | 0.08 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.08 | --- | ||||||||||||
| asserted formula | 0.15 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.09 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o2 **. o3) -. (sin (to_real a1) *. sin (to_real a1))) <=. (((eps +. (((sin_rel_err +. sin_rel_err) +. (sin_rel_err *. sin_rel_err)) *. (1.0 +. eps))) *. abs (sin (to_real a1) *. sin (to_real a1))) +. ((((((sin_abs_err +. (sin_abs_err *. sin_rel_err)) *. abs (sin (to_real a1))) +. ((sin_abs_err +. (sin_abs_err *. sin_rel_err)) *. abs (sin (to_real a1)))) +. (sin_abs_err *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o2 **. o3) -. (sin (to_real a1) *. sin (to_real a1))) <=. (((eps +. (((sin_rel_err +. sin_rel_err) +. (sin_rel_err *. sin_rel_err)) *. (1.0 +. eps))) *. (abs (sin (to_real a1)) *. abs (sin (to_real a1)))) +. ((((((sin_abs_err +. (sin_abs_err *. sin_rel_err)) *. abs (sin (to_real a1))) +. ((sin_abs_err +. (sin_abs_err *. sin_rel_err)) *. abs (sin (to_real a1)))) +. (sin_abs_err *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply umul_single_error_propagation with o2,o3 | |||||||||||||||||
| apply premises | --- | --- | 0.09 | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.06 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | --- | --- | 0.09 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.03 | ||||||||||||
| asserted formula | 0.08 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.07 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.07 | --- | --- | ||||||||||||
| asserted formula | --- | --- | --- | --- | 0.02 | ||||||||||||
| postcondition | --- | --- | --- | 4.20 | --- | ||||||||||||
| VC for kinematics | --- | --- | --- | --- | --- | ||||||||||||
| split_vc | |||||||||||||||||
| precondition | --- | 0.18 | --- | --- | --- | ||||||||||||
| precondition | --- | 0.05 | --- | --- | --- | ||||||||||||
| postcondition | --- | --- | --- | --- | --- | ||||||||||||
| assert let t = to_real o in let t3 = to_real o2 in let t4 = to_real theta11 in let t5 = 1.0 +. eps in let t6 = t4 +. to_real theta21 in let t7 = t *. sin t4 in let t8 = eps +. (sin_rel_err *. t5) in let t9 = t3 *. sin t6 in let t10 = t5 +. t8 in abs (to_real result -. (t7 +. t9)) <=. ((((t8 +. t8) +. eps) *. (abs t7 +. abs t9)) +. ((t10 *. (((t5 *. sin_abs_err) *. abs t) +. eta)) +. (t10 *. (((t5 *. (((eps *. abs t6) *. (1.0 +. sin_rel_err)) +. sin_abs_err)) *. abs t3) +. eta)))) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. ((to_real o *. sin (to_real theta11)) +. (to_real o2 *. sin (to_real theta11 +. to_real theta21)))) <=. (((((eps +. (sin_rel_err *. (1.0 +. eps))) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) +. eps) *. (abs (to_real o *. sin (to_real theta11)) +. abs (to_real o2 *. sin (to_real theta11 +. to_real theta21)))) +. ((((1.0 +. eps) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) *. ((((1.0 +. eps) *. sin_abs_err) *. abs (to_real o)) +. eta)) +. (((1.0 +. eps) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) *. ((((1.0 +. eps) *. (((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err)) *. abs (to_real o2)) +. eta)))) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply uadd_single_error_propagation with o **. o1,o2 **. o3 | |||||||||||||||||
| apply premises | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o **. o1) -. (to_real o *. sin (to_real theta11))) <=. (((eps +. (((0.0 +. sin_rel_err) +. (0.0 *. sin_rel_err)) *. (1.0 +. eps))) *. abs (to_real o *. sin (to_real theta11))) +. ((((((sin_abs_err +. (sin_abs_err *. 0.0)) *. abs (to_real o)) +. ((0.0 +. (0.0 *. sin_rel_err)) *. abs (sin (to_real theta11)))) +. (0.0 *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o **. o1) -. (to_real o *. sin (to_real theta11))) <=. (((eps +. (((0.0 +. sin_rel_err) +. (0.0 *. sin_rel_err)) *. (1.0 +. eps))) *. (abs (to_real o) *. abs (sin (to_real theta11)))) +. ((((((sin_abs_err +. (sin_abs_err *. 0.0)) *. abs (to_real o)) +. ((0.0 +. (0.0 *. sin_rel_err)) *. abs (sin (to_real theta11)))) +. (0.0 *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply umul_single_error_propagation with o,o1 | |||||||||||||||||
| apply premises | --- | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.04 | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.09 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | --- | --- | 0.09 | --- | --- | ||||||||||||
| asserted formula | 0.05 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o2 **. o3) -. (to_real o2 *. sin (to_real theta11 +. to_real theta21))) <=. (((eps +. (((0.0 +. sin_rel_err) +. (0.0 *. sin_rel_err)) *. (1.0 +. eps))) *. abs (to_real o2 *. sin (to_real theta11 +. to_real theta21))) +. (((((((((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err) +. ((((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err) *. 0.0)) *. abs (to_real o2)) +. ((0.0 +. (0.0 *. sin_rel_err)) *. abs (sin (to_real theta11 +. to_real theta21)))) +. (0.0 *. (((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err))) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o2 **. o3) -. (to_real o2 *. sin (to_real theta11 +. to_real theta21))) <=. (((eps +. (((0.0 +. sin_rel_err) +. (0.0 *. sin_rel_err)) *. (1.0 +. eps))) *. (abs (to_real o2) *. abs (sin (to_real theta11 +. to_real theta21)))) +. (((((((((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err) +. ((((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err) *. 0.0)) *. abs (to_real o2)) +. ((0.0 +. (0.0 *. sin_rel_err)) *. abs (sin (to_real theta11 +. to_real theta21)))) +. (0.0 *. (((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err))) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply umul_single_error_propagation with o2,o3 | |||||||||||||||||
| apply premises | --- | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real o3 -. sin (to_real theta11 +. to_real theta21)) <=. ((abs (sin (to_real theta11 +. to_real theta21)) *. sin_rel_err) +. (((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real o3 -. sin (to_real theta11 +. to_real theta21)) <=. ((sin_rel_err *. abs (sin (to_real theta11 +. to_real theta21))) +. ((((eps *. abs (to_real theta11 +. to_real theta21)) +. 0.0) *. (1.0 +. sin_rel_err)) +. sin_abs_err)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply sin_single_error_propagation with theta11 ++. theta21 | |||||||||||||||||
| apply premises | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (theta11 ++. theta21) -. (to_real theta11 +. to_real theta21)) <=. (eps *. abs (to_real theta11 +. to_real theta21)) | |||||||||||||||||
| asserted formula | 0.41 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | 0.15 | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| asserted formula | --- | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.06 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | 0.07 | --- | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.04 | ||||||||||||
| asserted formula | 0.11 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.06 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | 0.07 | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.08 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | --- | ||||||||||||
| asserted formula | --- | --- | 0.08 | --- | --- | ||||||||||||
| postcondition | 0.41 | --- | --- | --- | --- | ||||||||||||
| VC for raytracer | --- | --- | --- | --- | --- | ||||||||||||
| split_vc | |||||||||||||||||
| precondition | --- | 0.04 | --- | --- | --- | ||||||||||||
| precondition | --- | 0.04 | --- | --- | --- | ||||||||||||
| precondition | --- | 0.05 | --- | --- | --- | ||||||||||||
| precondition | --- | 0.05 | --- | --- | --- | ||||||||||||
| precondition | --- | 0.04 | --- | --- | --- | ||||||||||||
| postcondition | --- | --- | --- | --- | --- | ||||||||||||
| assert let t = to_real nz1 in let t2 = to_real ny1 in let t3 = to_real nx1 in let t5 = to_real phi1 in let t6 = to_real theta1 in let t7 = sin t5 in let t8 = cos t5 in let t9 = cos t6 in let t10 = 1.0 +. eps in let t11 = t10 *. cos_abs_err in let t12 = t *. t9 in let t13 = t2 *. sin t6 in let t14 = t3 *. t9 in let t15 = eps +. (cos_rel_err *. t10) in let t16 = eps +. (sin_rel_err *. t10) in let t17 = t12 *. t7 in let t18 = t14 *. t8 in let t19 = (t11 *. abs t) +. eta in let t20 = (t11 *. abs t3) +. eta in let t21 = eps +. (((t15 +. cos_rel_err) +. (t15 *. cos_rel_err)) *. t10) in let t22 = eps +. (((t15 +. sin_rel_err) +. (t15 *. sin_rel_err)) *. t10) in let t23 = (t21 +. t16) +. eps in abs (to_real result -. ((t18 +. t13) +. t17)) <=. ((((t23 +. t22) +. eps) *. ((abs t18 +. abs t13) +. abs t17)) +. (((t10 +. t22) *. (((t10 +. t16) *. (((((t10 *. (cos_abs_err +. (cos_abs_err *. t15))) *. abs t14) +. ((t10 *. (t20 +. (t20 *. cos_rel_err))) *. abs t8)) +. (t10 *. (t20 *. cos_abs_err))) +. eta)) +. ((t10 +. t21) *. (((t10 *. sin_abs_err) *. abs t2) +. eta)))) +. ((t10 +. t23) *. (((((t10 *. (sin_abs_err +. (sin_abs_err *. t15))) *. abs t12) +. ((t10 *. (t19 +. (t19 *. sin_rel_err))) *. abs t7)) +. (t10 *. (t19 *. sin_abs_err))) +. eta)))) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. ((((to_real nx1 *. cos (to_real theta1)) *. cos (to_real phi1)) +. (to_real ny1 *. sin (to_real theta1))) +. ((to_real nz1 *. cos (to_real theta1)) *. sin (to_real phi1)))) <=. (((((((eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. cos_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. cos_rel_err)) *. (1.0 +. eps))) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) +. eps) +. (eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. sin_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. sin_rel_err)) *. (1.0 +. eps)))) +. eps) *. ((abs ((to_real nx1 *. cos (to_real theta1)) *. cos (to_real phi1)) +. abs (to_real ny1 *. sin (to_real theta1))) +. abs ((to_real nz1 *. cos (to_real theta1)) *. sin (to_real phi1)))) +. ((((1.0 +. eps) +. (eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. sin_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. sin_rel_err)) *. (1.0 +. eps)))) *. ((((1.0 +. eps) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) *. ((((((1.0 +. eps) *. (cos_abs_err +. (cos_abs_err *. (eps +. (cos_rel_err *. (1.0 +. eps)))))) *. abs (to_real nx1 *. cos (to_real theta1))) +. (((1.0 +. eps) *. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_rel_err))) *. abs (cos (to_real phi1)))) +. ((1.0 +. eps) *. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_abs_err))) +. eta)) +. (((1.0 +. eps) +. (eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. cos_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. cos_rel_err)) *. (1.0 +. eps)))) *. ((((1.0 +. eps) *. sin_abs_err) *. abs (to_real ny1)) +. eta)))) +. (((1.0 +. eps) +. (((eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. cos_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. cos_rel_err)) *. (1.0 +. eps))) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) +. eps)) *. ((((((1.0 +. eps) *. (sin_abs_err +. (sin_abs_err *. (eps +. (cos_rel_err *. (1.0 +. eps)))))) *. abs (to_real nz1 *. cos (to_real theta1))) +. (((1.0 +. eps) *. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) *. sin_rel_err))) *. abs (sin (to_real phi1)))) +. ((1.0 +. eps) *. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) *. sin_abs_err))) +. eta)))) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply uadd_single_error_propagation with ((nx1 **. o) **. o1) ++. (ny1 **. o2),(nz1 **. o3) **. o4 | |||||||||||||||||
| apply premises | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (((nx1 **. o) **. o1) ++. (ny1 **. o2)) -. (((to_real nx1 *. cos (to_real theta1)) *. cos (to_real phi1)) +. (to_real ny1 *. sin (to_real theta1)))) <=. (((((eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. cos_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. cos_rel_err)) *. (1.0 +. eps))) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) +. eps) *. (abs ((to_real nx1 *. cos (to_real theta1)) *. cos (to_real phi1)) +. abs (to_real ny1 *. sin (to_real theta1)))) +. ((((1.0 +. eps) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) *. ((((((1.0 +. eps) *. (cos_abs_err +. (cos_abs_err *. (eps +. (cos_rel_err *. (1.0 +. eps)))))) *. abs (to_real nx1 *. cos (to_real theta1))) +. (((1.0 +. eps) *. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_rel_err))) *. abs (cos (to_real phi1)))) +. ((1.0 +. eps) *. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_abs_err))) +. eta)) +. (((1.0 +. eps) +. (eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. cos_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. cos_rel_err)) *. (1.0 +. eps)))) *. ((((1.0 +. eps) *. sin_abs_err) *. abs (to_real ny1)) +. eta)))) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply uadd_single_error_propagation with (nx1 **. o) **. o1,ny1 **. o2 | |||||||||||||||||
| apply premises | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real ((nx1 **. o) **. o1) -. ((to_real nx1 *. cos (to_real theta1)) *. cos (to_real phi1))) <=. (((eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. cos_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. cos_rel_err)) *. (1.0 +. eps))) *. abs ((to_real nx1 *. cos (to_real theta1)) *. cos (to_real phi1))) +. ((((((cos_abs_err +. (cos_abs_err *. (eps +. (cos_rel_err *. (1.0 +. eps))))) *. abs (to_real nx1 *. cos (to_real theta1))) +. ((((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_rel_err)) *. abs (cos (to_real phi1)))) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real ((nx1 **. o) **. o1) -. ((to_real nx1 *. cos (to_real theta1)) *. cos (to_real phi1))) <=. (((eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. cos_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. cos_rel_err)) *. (1.0 +. eps))) *. (abs (to_real nx1 *. cos (to_real theta1)) *. abs (cos (to_real phi1)))) +. ((((((cos_abs_err +. (cos_abs_err *. (eps +. (cos_rel_err *. (1.0 +. eps))))) *. abs (to_real nx1 *. cos (to_real theta1))) +. ((((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_rel_err)) *. abs (cos (to_real phi1)))) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply umul_single_error_propagation with nx1 **. o,o1 | |||||||||||||||||
| apply premises | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (nx1 **. o) -. (to_real nx1 *. cos (to_real theta1))) <=. (((eps +. (((0.0 +. cos_rel_err) +. (0.0 *. cos_rel_err)) *. (1.0 +. eps))) *. abs (to_real nx1 *. cos (to_real theta1))) +. ((((((cos_abs_err +. (cos_abs_err *. 0.0)) *. abs (to_real nx1)) +. ((0.0 +. (0.0 *. cos_rel_err)) *. abs (cos (to_real theta1)))) +. (0.0 *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (nx1 **. o) -. (to_real nx1 *. cos (to_real theta1))) <=. (((eps +. (((0.0 +. cos_rel_err) +. (0.0 *. cos_rel_err)) *. (1.0 +. eps))) *. (abs (to_real nx1) *. abs (cos (to_real theta1)))) +. ((((((cos_abs_err +. (cos_abs_err *. 0.0)) *. abs (to_real nx1)) +. ((0.0 +. (0.0 *. cos_rel_err)) *. abs (cos (to_real theta1)))) +. (0.0 *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply umul_single_error_propagation with nx1,o | |||||||||||||||||
| apply premises | 0.04 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.11 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | 0.02 | --- | --- | --- | --- | ||||||||||||
| asserted formula | 0.17 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | --- | --- | 0.06 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.10 | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.06 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | --- | ||||||||||||
| asserted formula | 1.28 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.07 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (ny1 **. o2) -. (to_real ny1 *. sin (to_real theta1))) <=. (((eps +. (((0.0 +. sin_rel_err) +. (0.0 *. sin_rel_err)) *. (1.0 +. eps))) *. abs (to_real ny1 *. sin (to_real theta1))) +. ((((((sin_abs_err +. (sin_abs_err *. 0.0)) *. abs (to_real ny1)) +. ((0.0 +. (0.0 *. sin_rel_err)) *. abs (sin (to_real theta1)))) +. (0.0 *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (ny1 **. o2) -. (to_real ny1 *. sin (to_real theta1))) <=. (((eps +. (((0.0 +. sin_rel_err) +. (0.0 *. sin_rel_err)) *. (1.0 +. eps))) *. (abs (to_real ny1) *. abs (sin (to_real theta1)))) +. ((((((sin_abs_err +. (sin_abs_err *. 0.0)) *. abs (to_real ny1)) +. ((0.0 +. (0.0 *. sin_rel_err)) *. abs (sin (to_real theta1)))) +. (0.0 *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply umul_single_error_propagation with ny1,o2 | |||||||||||||||||
| apply premises | --- | --- | 0.07 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.01 | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.01 | ||||||||||||
| apply premises | --- | --- | 0.08 | --- | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.07 | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | --- | ||||||||||||
| asserted formula | 0.09 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.01 | ||||||||||||
| apply premises | 0.06 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.06 | --- | --- | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.04 | ||||||||||||
| apply premises | 0.26 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real ((nz1 **. o3) **. o4) -. ((to_real nz1 *. cos (to_real theta1)) *. sin (to_real phi1))) <=. (((eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. sin_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. sin_rel_err)) *. (1.0 +. eps))) *. abs ((to_real nz1 *. cos (to_real theta1)) *. sin (to_real phi1))) +. ((((((sin_abs_err +. (sin_abs_err *. (eps +. (cos_rel_err *. (1.0 +. eps))))) *. abs (to_real nz1 *. cos (to_real theta1))) +. ((((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) *. sin_rel_err)) *. abs (sin (to_real phi1)))) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real ((nz1 **. o3) **. o4) -. ((to_real nz1 *. cos (to_real theta1)) *. sin (to_real phi1))) <=. (((eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. sin_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. sin_rel_err)) *. (1.0 +. eps))) *. (abs (to_real nz1 *. cos (to_real theta1)) *. abs (sin (to_real phi1)))) +. ((((((sin_abs_err +. (sin_abs_err *. (eps +. (cos_rel_err *. (1.0 +. eps))))) *. abs (to_real nz1 *. cos (to_real theta1))) +. ((((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) *. sin_rel_err)) *. abs (sin (to_real phi1)))) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply umul_single_error_propagation with nz1 **. o3,o4 | |||||||||||||||||
| apply premises | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (nz1 **. o3) -. (to_real nz1 *. cos (to_real theta1))) <=. (((eps +. (((0.0 +. cos_rel_err) +. (0.0 *. cos_rel_err)) *. (1.0 +. eps))) *. abs (to_real nz1 *. cos (to_real theta1))) +. ((((((cos_abs_err +. (cos_abs_err *. 0.0)) *. abs (to_real nz1)) +. ((0.0 +. (0.0 *. cos_rel_err)) *. abs (cos (to_real theta1)))) +. (0.0 *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (nz1 **. o3) -. (to_real nz1 *. cos (to_real theta1))) <=. (((eps +. (((0.0 +. cos_rel_err) +. (0.0 *. cos_rel_err)) *. (1.0 +. eps))) *. (abs (to_real nz1) *. abs (cos (to_real theta1)))) +. ((((((cos_abs_err +. (cos_abs_err *. 0.0)) *. abs (to_real nz1)) +. ((0.0 +. (0.0 *. cos_rel_err)) *. abs (cos (to_real theta1)))) +. (0.0 *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | |||||||||||||||||
| asserted formula | --- | --- | --- | --- | --- | ||||||||||||
| apply umul_single_error_propagation with nz1,o3 | |||||||||||||||||
| apply premises | --- | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | --- | --- | 0.06 | --- | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.07 | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.07 | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.07 | --- | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | --- | ||||||||||||
| asserted formula | 0.17 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.07 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.07 | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.04 | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.01 | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | 0.06 | --- | --- | ||||||||||||
| asserted formula | 1.40 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.14 | --- | ||||||||||||
| apply premises | --- | --- | 0.11 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.06 | --- | --- | --- | --- | ||||||||||||
| apply premises | 1.02 | --- | --- | --- | --- | ||||||||||||
| apply premises | 0.26 | --- | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.11 | --- | ||||||||||||
| asserted formula | --- | --- | 0.09 | --- | --- | ||||||||||||
| postcondition | --- | --- | --- | --- | 0.05 | ||||||||||||
Theory "sin_cos.SinCosDouble": fully verified
| Obligations | Alt-Ergo 2.5.4 | CVC4 1.8 | CVC5 1.0.5 | Z3 4.12.2 | ||||||||||||
| VC for sin_simple_example | --- | --- | --- | --- | ||||||||||||
| split_vc | ||||||||||||||||
| precondition | 0.15 | --- | --- | --- | ||||||||||||
| postcondition | --- | --- | --- | --- | ||||||||||||
| assert let t = to_real a +. to_real b in let t1 = sin t in abs (to_real result -. t1) <=. ((abs t1 *. sin_rel_err) +. (((eps *. abs t) *. (1.0 +. sin_rel_err)) +. sin_abs_err)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. sin (to_real a +. to_real b)) <=. ((abs (sin (to_real a +. to_real b)) *. sin_rel_err) +. (((eps *. abs (to_real a +. to_real b)) *. (1.0 +. sin_rel_err)) +. sin_abs_err)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. sin (to_real a +. to_real b)) <=. ((sin_rel_err *. abs (sin (to_real a +. to_real b))) +. ((((eps *. abs (to_real a +. to_real b)) +. 0.0) *. (1.0 +. sin_rel_err)) +. sin_abs_err)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply sin_double_error_propagation with a ++. b | ||||||||||||||||
| apply premises | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (a ++. b) -. (to_real a +. to_real b)) <=. (eps *. abs (to_real a +. to_real b)) | ||||||||||||||||
| asserted formula | 0.21 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.03 | ||||||||||||
| asserted formula | --- | --- | 0.13 | --- | ||||||||||||
| asserted formula | --- | --- | 0.11 | --- | ||||||||||||
| postcondition | 0.05 | --- | --- | --- | ||||||||||||
| VC for cos_simple_example | --- | --- | --- | --- | ||||||||||||
| split_vc | ||||||||||||||||
| precondition | 0.17 | --- | --- | --- | ||||||||||||
| postcondition | --- | --- | --- | --- | ||||||||||||
| assert let t = to_real a -. to_real b in let t1 = cos t in abs (to_real result -. t1) <=. ((abs t1 *. cos_rel_err) +. (((eps *. abs t) *. (1.0 +. cos_rel_err)) +. cos_abs_err)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. cos (to_real a -. to_real b)) <=. ((abs (cos (to_real a -. to_real b)) *. cos_rel_err) +. (((eps *. abs (to_real a -. to_real b)) *. (1.0 +. cos_rel_err)) +. cos_abs_err)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. cos (to_real a -. to_real b)) <=. ((cos_rel_err *. abs (cos (to_real a -. to_real b))) +. ((((eps *. abs (to_real a -. to_real b)) +. 0.0) *. (1.0 +. cos_rel_err)) +. cos_abs_err)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply cos_double_error_propagation with a --. b | ||||||||||||||||
| apply premises | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (a --. b) -. (to_real a -. to_real b)) <=. (eps *. abs (to_real a -. to_real b)) | ||||||||||||||||
| asserted formula | 0.23 | --- | --- | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.03 | ||||||||||||
| asserted formula | 0.04 | --- | --- | --- | ||||||||||||
| asserted formula | --- | 0.06 | --- | --- | ||||||||||||
| postcondition | 0.06 | --- | --- | --- | ||||||||||||
| VC for cos_and_sine_example | --- | --- | --- | --- | ||||||||||||
| split_vc | ||||||||||||||||
| precondition | --- | --- | 0.09 | --- | ||||||||||||
| precondition | --- | --- | 0.09 | --- | ||||||||||||
| precondition | --- | --- | 0.09 | --- | ||||||||||||
| precondition | --- | 0.06 | --- | --- | ||||||||||||
| postcondition | --- | --- | --- | --- | ||||||||||||
| split_vc | ||||||||||||||||
| postcondition | --- | --- | --- | 0.13 | ||||||||||||
| VC for cos_and_sine_example | 0.03 | --- | --- | --- | ||||||||||||
| VC for cos_and_sine_example | 0.04 | --- | --- | --- | ||||||||||||
| VC for cos_and_sine_example | --- | --- | --- | --- | ||||||||||||
| assert let t1 = to_real a1 in let t2 = sin t1 in let t3 = cos t1 in let t4 = 1.0 +. eps in let t5 = t2 *. t2 in let t6 = t3 *. t3 in let t7 = eps +. (((cos_rel_err +. cos_rel_err) +. (cos_rel_err *. cos_rel_err)) *. t4) in let t8 = eps +. (((sin_rel_err +. sin_rel_err) +. (sin_rel_err *. sin_rel_err)) *. t4) in let t9 = (t4 *. (cos_abs_err +. (cos_abs_err *. cos_rel_err))) *. abs t3 in let t10 = (t4 *. (sin_abs_err +. (sin_abs_err *. sin_rel_err))) *. abs t2 in abs (to_real result -. (t6 +. t5)) <=. ((((t7 +. t8) +. eps) *. (abs t6 +. abs t5)) +. (((t4 +. t8) *. (((t9 +. t9) +. (t4 *. (cos_abs_err *. cos_abs_err))) +. eta)) +. ((t4 +. t7) *. (((t10 +. t10) +. (t4 *. (sin_abs_err *. sin_abs_err))) +. eta)))) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. ((cos (to_real a1) *. cos (to_real a1)) +. (sin (to_real a1) *. sin (to_real a1)))) <=. (((((eps +. (((cos_rel_err +. cos_rel_err) +. (cos_rel_err *. cos_rel_err)) *. (1.0 +. eps))) +. (eps +. (((sin_rel_err +. sin_rel_err) +. (sin_rel_err *. sin_rel_err)) *. (1.0 +. eps)))) +. eps) *. (abs (cos (to_real a1) *. cos (to_real a1)) +. abs (sin (to_real a1) *. sin (to_real a1)))) +. ((((1.0 +. eps) +. (eps +. (((sin_rel_err +. sin_rel_err) +. (sin_rel_err *. sin_rel_err)) *. (1.0 +. eps)))) *. ((((((1.0 +. eps) *. (cos_abs_err +. (cos_abs_err *. cos_rel_err))) *. abs (cos (to_real a1))) +. (((1.0 +. eps) *. (cos_abs_err +. (cos_abs_err *. cos_rel_err))) *. abs (cos (to_real a1)))) +. ((1.0 +. eps) *. (cos_abs_err *. cos_abs_err))) +. eta)) +. (((1.0 +. eps) +. (eps +. (((cos_rel_err +. cos_rel_err) +. (cos_rel_err *. cos_rel_err)) *. (1.0 +. eps)))) *. ((((((1.0 +. eps) *. (sin_abs_err +. (sin_abs_err *. sin_rel_err))) *. abs (sin (to_real a1))) +. (((1.0 +. eps) *. (sin_abs_err +. (sin_abs_err *. sin_rel_err))) *. abs (sin (to_real a1)))) +. ((1.0 +. eps) *. (sin_abs_err *. sin_abs_err))) +. eta)))) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply uadd_double_error_propagation with o **. o1,o2 **. o3 | ||||||||||||||||
| apply premises | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o **. o1) -. (cos (to_real a1) *. cos (to_real a1))) <=. (((eps +. (((cos_rel_err +. cos_rel_err) +. (cos_rel_err *. cos_rel_err)) *. (1.0 +. eps))) *. abs (cos (to_real a1) *. cos (to_real a1))) +. ((((((cos_abs_err +. (cos_abs_err *. cos_rel_err)) *. abs (cos (to_real a1))) +. ((cos_abs_err +. (cos_abs_err *. cos_rel_err)) *. abs (cos (to_real a1)))) +. (cos_abs_err *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o **. o1) -. (cos (to_real a1) *. cos (to_real a1))) <=. (((eps +. (((cos_rel_err +. cos_rel_err) +. (cos_rel_err *. cos_rel_err)) *. (1.0 +. eps))) *. (abs (cos (to_real a1)) *. abs (cos (to_real a1)))) +. ((((((cos_abs_err +. (cos_abs_err *. cos_rel_err)) *. abs (cos (to_real a1))) +. ((cos_abs_err +. (cos_abs_err *. cos_rel_err)) *. abs (cos (to_real a1)))) +. (cos_abs_err *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply umul_double_error_propagation with o,o1 | ||||||||||||||||
| apply premises | --- | --- | --- | 0.04 | ||||||||||||
| apply premises | --- | 0.07 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | --- | --- | 0.11 | --- | ||||||||||||
| apply premises | --- | 0.06 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | 0.06 | --- | --- | ||||||||||||
| asserted formula | 0.18 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.11 | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o2 **. o3) -. (sin (to_real a1) *. sin (to_real a1))) <=. (((eps +. (((sin_rel_err +. sin_rel_err) +. (sin_rel_err *. sin_rel_err)) *. (1.0 +. eps))) *. abs (sin (to_real a1) *. sin (to_real a1))) +. ((((((sin_abs_err +. (sin_abs_err *. sin_rel_err)) *. abs (sin (to_real a1))) +. ((sin_abs_err +. (sin_abs_err *. sin_rel_err)) *. abs (sin (to_real a1)))) +. (sin_abs_err *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o2 **. o3) -. (sin (to_real a1) *. sin (to_real a1))) <=. (((eps +. (((sin_rel_err +. sin_rel_err) +. (sin_rel_err *. sin_rel_err)) *. (1.0 +. eps))) *. (abs (sin (to_real a1)) *. abs (sin (to_real a1)))) +. ((((((sin_abs_err +. (sin_abs_err *. sin_rel_err)) *. abs (sin (to_real a1))) +. ((sin_abs_err +. (sin_abs_err *. sin_rel_err)) *. abs (sin (to_real a1)))) +. (sin_abs_err *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply umul_double_error_propagation with o2,o3 | ||||||||||||||||
| apply premises | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | 0.06 | --- | --- | --- | ||||||||||||
| apply premises | 0.06 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | 0.04 | ||||||||||||
| asserted formula | 0.09 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.17 | --- | ||||||||||||
| apply premises | --- | --- | 0.11 | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | 0.06 | --- | --- | --- | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | ||||||||||||
| apply premises | 0.10 | --- | --- | --- | ||||||||||||
| apply premises | 0.06 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| asserted formula | --- | 0.06 | --- | --- | ||||||||||||
| VC for cos_and_sine_example | --- | 0.09 | --- | --- | ||||||||||||
| VC for kinematics | --- | --- | --- | --- | ||||||||||||
| split_vc | ||||||||||||||||
| precondition | 0.15 | --- | --- | --- | ||||||||||||
| precondition | --- | --- | --- | 0.04 | ||||||||||||
| postcondition | --- | --- | --- | --- | ||||||||||||
| assert let t = to_real o in let t3 = to_real o2 in let t4 = to_real theta11 in let t5 = 1.0 +. eps in let t6 = t4 +. to_real theta21 in let t7 = t *. sin t4 in let t8 = eps +. (sin_rel_err *. t5) in let t9 = t3 *. sin t6 in let t10 = t5 +. t8 in abs (to_real result -. (t7 +. t9)) <=. ((((t8 +. t8) +. eps) *. (abs t7 +. abs t9)) +. ((t10 *. (((t5 *. sin_abs_err) *. abs t) +. eta)) +. (t10 *. (((t5 *. (((eps *. abs t6) *. (1.0 +. sin_rel_err)) +. sin_abs_err)) *. abs t3) +. eta)))) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. ((to_real o *. sin (to_real theta11)) +. (to_real o2 *. sin (to_real theta11 +. to_real theta21)))) <=. (((((eps +. (sin_rel_err *. (1.0 +. eps))) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) +. eps) *. (abs (to_real o *. sin (to_real theta11)) +. abs (to_real o2 *. sin (to_real theta11 +. to_real theta21)))) +. ((((1.0 +. eps) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) *. ((((1.0 +. eps) *. sin_abs_err) *. abs (to_real o)) +. eta)) +. (((1.0 +. eps) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) *. ((((1.0 +. eps) *. (((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err)) *. abs (to_real o2)) +. eta)))) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply uadd_double_error_propagation with o **. o1,o2 **. o3 | ||||||||||||||||
| apply premises | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o **. o1) -. (to_real o *. sin (to_real theta11))) <=. (((eps +. (((0.0 +. sin_rel_err) +. (0.0 *. sin_rel_err)) *. (1.0 +. eps))) *. abs (to_real o *. sin (to_real theta11))) +. ((((((sin_abs_err +. (sin_abs_err *. 0.0)) *. abs (to_real o)) +. ((0.0 +. (0.0 *. sin_rel_err)) *. abs (sin (to_real theta11)))) +. (0.0 *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o **. o1) -. (to_real o *. sin (to_real theta11))) <=. (((eps +. (((0.0 +. sin_rel_err) +. (0.0 *. sin_rel_err)) *. (1.0 +. eps))) *. (abs (to_real o) *. abs (sin (to_real theta11)))) +. ((((((sin_abs_err +. (sin_abs_err *. 0.0)) *. abs (to_real o)) +. ((0.0 +. (0.0 *. sin_rel_err)) *. abs (sin (to_real theta11)))) +. (0.0 *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply umul_double_error_propagation with o,o1 | ||||||||||||||||
| apply premises | --- | --- | --- | 0.06 | ||||||||||||
| apply premises | 0.06 | --- | --- | --- | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | 0.08 | --- | --- | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.11 | --- | ||||||||||||
| apply premises | --- | 0.10 | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.08 | --- | ||||||||||||
| asserted formula | 0.08 | --- | --- | --- | ||||||||||||
| apply premises | --- | 0.07 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o2 **. o3) -. (to_real o2 *. sin (to_real theta11 +. to_real theta21))) <=. (((eps +. (((0.0 +. sin_rel_err) +. (0.0 *. sin_rel_err)) *. (1.0 +. eps))) *. abs (to_real o2 *. sin (to_real theta11 +. to_real theta21))) +. (((((((((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err) +. ((((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err) *. 0.0)) *. abs (to_real o2)) +. ((0.0 +. (0.0 *. sin_rel_err)) *. abs (sin (to_real theta11 +. to_real theta21)))) +. (0.0 *. (((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err))) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (o2 **. o3) -. (to_real o2 *. sin (to_real theta11 +. to_real theta21))) <=. (((eps +. (((0.0 +. sin_rel_err) +. (0.0 *. sin_rel_err)) *. (1.0 +. eps))) *. (abs (to_real o2) *. abs (sin (to_real theta11 +. to_real theta21)))) +. (((((((((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err) +. ((((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err) *. 0.0)) *. abs (to_real o2)) +. ((0.0 +. (0.0 *. sin_rel_err)) *. abs (sin (to_real theta11 +. to_real theta21)))) +. (0.0 *. (((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err))) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply umul_double_error_propagation with o2,o3 | ||||||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real o3 -. sin (to_real theta11 +. to_real theta21)) <=. ((abs (sin (to_real theta11 +. to_real theta21)) *. sin_rel_err) +. (((eps *. abs (to_real theta11 +. to_real theta21)) *. (1.0 +. sin_rel_err)) +. sin_abs_err)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real o3 -. sin (to_real theta11 +. to_real theta21)) <=. ((sin_rel_err *. abs (sin (to_real theta11 +. to_real theta21))) +. ((((eps *. abs (to_real theta11 +. to_real theta21)) +. 0.0) *. (1.0 +. sin_rel_err)) +. sin_abs_err)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply sin_double_error_propagation with theta11 ++. theta21 | ||||||||||||||||
| apply premises | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (theta11 ++. theta21) -. (to_real theta11 +. to_real theta21)) <=. (eps *. abs (to_real theta11 +. to_real theta21)) | ||||||||||||||||
| asserted formula | 0.39 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | 0.06 | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.08 | --- | ||||||||||||
| asserted formula | --- | --- | 0.13 | --- | ||||||||||||
| apply premises | --- | 0.06 | --- | --- | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | ||||||||||||
| apply premises | --- | 0.11 | --- | --- | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | --- | --- | 0.10 | --- | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.11 | --- | ||||||||||||
| asserted formula | 0.11 | --- | --- | --- | ||||||||||||
| apply premises | --- | 0.07 | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.01 | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.04 | ||||||||||||
| apply premises | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| asserted formula | --- | 0.06 | --- | --- | ||||||||||||
| postcondition | 0.47 | --- | --- | --- | ||||||||||||
| VC for raytracer | --- | --- | --- | --- | ||||||||||||
| split_vc | ||||||||||||||||
| precondition | --- | --- | 0.07 | --- | ||||||||||||
| precondition | --- | --- | 0.08 | --- | ||||||||||||
| precondition | --- | --- | 0.08 | --- | ||||||||||||
| precondition | --- | --- | 0.08 | --- | ||||||||||||
| precondition | --- | --- | 0.09 | --- | ||||||||||||
| postcondition | --- | --- | --- | --- | ||||||||||||
| assert let t = to_real nz1 in let t2 = to_real ny1 in let t3 = to_real nx1 in let t5 = to_real phi1 in let t6 = to_real theta1 in let t7 = sin t5 in let t8 = cos t5 in let t9 = cos t6 in let t10 = 1.0 +. eps in let t11 = t10 *. cos_abs_err in let t12 = t *. t9 in let t13 = t2 *. sin t6 in let t14 = t3 *. t9 in let t15 = eps +. (cos_rel_err *. t10) in let t16 = eps +. (sin_rel_err *. t10) in let t17 = t12 *. t7 in let t18 = t14 *. t8 in let t19 = (t11 *. abs t) +. eta in let t20 = (t11 *. abs t3) +. eta in let t21 = eps +. (((t15 +. cos_rel_err) +. (t15 *. cos_rel_err)) *. t10) in let t22 = eps +. (((t15 +. sin_rel_err) +. (t15 *. sin_rel_err)) *. t10) in let t23 = (t21 +. t16) +. eps in abs (to_real result -. ((t18 +. t13) +. t17)) <=. ((((t23 +. t22) +. eps) *. ((abs t18 +. abs t13) +. abs t17)) +. (((t10 +. t22) *. (((t10 +. t16) *. (((((t10 *. (cos_abs_err +. (cos_abs_err *. t15))) *. abs t14) +. ((t10 *. (t20 +. (t20 *. cos_rel_err))) *. abs t8)) +. (t10 *. (t20 *. cos_abs_err))) +. eta)) +. ((t10 +. t21) *. (((t10 *. sin_abs_err) *. abs t2) +. eta)))) +. ((t10 +. t23) *. (((((t10 *. (sin_abs_err +. (sin_abs_err *. t15))) *. abs t12) +. ((t10 *. (t19 +. (t19 *. sin_rel_err))) *. abs t7)) +. (t10 *. (t19 *. sin_abs_err))) +. eta)))) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real result -. ((((to_real nx1 *. cos (to_real theta1)) *. cos (to_real phi1)) +. (to_real ny1 *. sin (to_real theta1))) +. ((to_real nz1 *. cos (to_real theta1)) *. sin (to_real phi1)))) <=. (((((((eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. cos_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. cos_rel_err)) *. (1.0 +. eps))) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) +. eps) +. (eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. sin_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. sin_rel_err)) *. (1.0 +. eps)))) +. eps) *. ((abs ((to_real nx1 *. cos (to_real theta1)) *. cos (to_real phi1)) +. abs (to_real ny1 *. sin (to_real theta1))) +. abs ((to_real nz1 *. cos (to_real theta1)) *. sin (to_real phi1)))) +. ((((1.0 +. eps) +. (eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. sin_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. sin_rel_err)) *. (1.0 +. eps)))) *. ((((1.0 +. eps) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) *. ((((((1.0 +. eps) *. (cos_abs_err +. (cos_abs_err *. (eps +. (cos_rel_err *. (1.0 +. eps)))))) *. abs (to_real nx1 *. cos (to_real theta1))) +. (((1.0 +. eps) *. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_rel_err))) *. abs (cos (to_real phi1)))) +. ((1.0 +. eps) *. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_abs_err))) +. eta)) +. (((1.0 +. eps) +. (eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. cos_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. cos_rel_err)) *. (1.0 +. eps)))) *. ((((1.0 +. eps) *. sin_abs_err) *. abs (to_real ny1)) +. eta)))) +. (((1.0 +. eps) +. (((eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. cos_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. cos_rel_err)) *. (1.0 +. eps))) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) +. eps)) *. ((((((1.0 +. eps) *. (sin_abs_err +. (sin_abs_err *. (eps +. (cos_rel_err *. (1.0 +. eps)))))) *. abs (to_real nz1 *. cos (to_real theta1))) +. (((1.0 +. eps) *. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) *. sin_rel_err))) *. abs (sin (to_real phi1)))) +. ((1.0 +. eps) *. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) *. sin_abs_err))) +. eta)))) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply uadd_double_error_propagation with ((nx1 **. o) **. o1) ++. (ny1 **. o2),(nz1 **. o3) **. o4 | ||||||||||||||||
| apply premises | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (((nx1 **. o) **. o1) ++. (ny1 **. o2)) -. (((to_real nx1 *. cos (to_real theta1)) *. cos (to_real phi1)) +. (to_real ny1 *. sin (to_real theta1)))) <=. (((((eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. cos_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. cos_rel_err)) *. (1.0 +. eps))) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) +. eps) *. (abs ((to_real nx1 *. cos (to_real theta1)) *. cos (to_real phi1)) +. abs (to_real ny1 *. sin (to_real theta1)))) +. ((((1.0 +. eps) +. (eps +. (sin_rel_err *. (1.0 +. eps)))) *. ((((((1.0 +. eps) *. (cos_abs_err +. (cos_abs_err *. (eps +. (cos_rel_err *. (1.0 +. eps)))))) *. abs (to_real nx1 *. cos (to_real theta1))) +. (((1.0 +. eps) *. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_rel_err))) *. abs (cos (to_real phi1)))) +. ((1.0 +. eps) *. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_abs_err))) +. eta)) +. (((1.0 +. eps) +. (eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. cos_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. cos_rel_err)) *. (1.0 +. eps)))) *. ((((1.0 +. eps) *. sin_abs_err) *. abs (to_real ny1)) +. eta)))) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply uadd_double_error_propagation with (nx1 **. o) **. o1,ny1 **. o2 | ||||||||||||||||
| apply premises | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real ((nx1 **. o) **. o1) -. ((to_real nx1 *. cos (to_real theta1)) *. cos (to_real phi1))) <=. (((eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. cos_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. cos_rel_err)) *. (1.0 +. eps))) *. abs ((to_real nx1 *. cos (to_real theta1)) *. cos (to_real phi1))) +. ((((((cos_abs_err +. (cos_abs_err *. (eps +. (cos_rel_err *. (1.0 +. eps))))) *. abs (to_real nx1 *. cos (to_real theta1))) +. ((((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_rel_err)) *. abs (cos (to_real phi1)))) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real ((nx1 **. o) **. o1) -. ((to_real nx1 *. cos (to_real theta1)) *. cos (to_real phi1))) <=. (((eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. cos_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. cos_rel_err)) *. (1.0 +. eps))) *. (abs (to_real nx1 *. cos (to_real theta1)) *. abs (cos (to_real phi1)))) +. ((((((cos_abs_err +. (cos_abs_err *. (eps +. (cos_rel_err *. (1.0 +. eps))))) *. abs (to_real nx1 *. cos (to_real theta1))) +. ((((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_rel_err)) *. abs (cos (to_real phi1)))) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nx1)) +. eta) *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply umul_double_error_propagation with nx1 **. o,o1 | ||||||||||||||||
| apply premises | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (nx1 **. o) -. (to_real nx1 *. cos (to_real theta1))) <=. (((eps +. (((0.0 +. cos_rel_err) +. (0.0 *. cos_rel_err)) *. (1.0 +. eps))) *. abs (to_real nx1 *. cos (to_real theta1))) +. ((((((cos_abs_err +. (cos_abs_err *. 0.0)) *. abs (to_real nx1)) +. ((0.0 +. (0.0 *. cos_rel_err)) *. abs (cos (to_real theta1)))) +. (0.0 *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (nx1 **. o) -. (to_real nx1 *. cos (to_real theta1))) <=. (((eps +. (((0.0 +. cos_rel_err) +. (0.0 *. cos_rel_err)) *. (1.0 +. eps))) *. (abs (to_real nx1) *. abs (cos (to_real theta1)))) +. ((((((cos_abs_err +. (cos_abs_err *. 0.0)) *. abs (to_real nx1)) +. ((0.0 +. (0.0 *. cos_rel_err)) *. abs (cos (to_real theta1)))) +. (0.0 *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply umul_double_error_propagation with nx1,o | ||||||||||||||||
| apply premises | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | ||||||||||||
| apply premises | 0.06 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.10 | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | ||||||||||||
| asserted formula | 0.18 | --- | --- | --- | ||||||||||||
| apply premises | 0.06 | --- | --- | --- | ||||||||||||
| apply premises | --- | 0.09 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | --- | 0.09 | --- | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.09 | --- | ||||||||||||
| apply premises | 0.03 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.10 | --- | ||||||||||||
| apply premises | --- | --- | 0.11 | --- | ||||||||||||
| asserted formula | 1.36 | --- | --- | --- | ||||||||||||
| apply premises | --- | 0.08 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (ny1 **. o2) -. (to_real ny1 *. sin (to_real theta1))) <=. (((eps +. (((0.0 +. sin_rel_err) +. (0.0 *. sin_rel_err)) *. (1.0 +. eps))) *. abs (to_real ny1 *. sin (to_real theta1))) +. ((((((sin_abs_err +. (sin_abs_err *. 0.0)) *. abs (to_real ny1)) +. ((0.0 +. (0.0 *. sin_rel_err)) *. abs (sin (to_real theta1)))) +. (0.0 *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (ny1 **. o2) -. (to_real ny1 *. sin (to_real theta1))) <=. (((eps +. (((0.0 +. sin_rel_err) +. (0.0 *. sin_rel_err)) *. (1.0 +. eps))) *. (abs (to_real ny1) *. abs (sin (to_real theta1)))) +. ((((((sin_abs_err +. (sin_abs_err *. 0.0)) *. abs (to_real ny1)) +. ((0.0 +. (0.0 *. sin_rel_err)) *. abs (sin (to_real theta1)))) +. (0.0 *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply umul_double_error_propagation with ny1,o2 | ||||||||||||||||
| apply premises | --- | 0.06 | --- | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | 0.07 | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.01 | ||||||||||||
| apply premises | --- | --- | --- | 0.03 | ||||||||||||
| asserted formula | 0.10 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.04 | ||||||||||||
| apply premises | --- | 0.08 | --- | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.13 | --- | ||||||||||||
| apply premises | 0.26 | --- | --- | --- | ||||||||||||
| apply premises | 0.06 | --- | --- | --- | ||||||||||||
| apply premises | 0.06 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real ((nz1 **. o3) **. o4) -. ((to_real nz1 *. cos (to_real theta1)) *. sin (to_real phi1))) <=. (((eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. sin_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. sin_rel_err)) *. (1.0 +. eps))) *. abs ((to_real nz1 *. cos (to_real theta1)) *. sin (to_real phi1))) +. ((((((sin_abs_err +. (sin_abs_err *. (eps +. (cos_rel_err *. (1.0 +. eps))))) *. abs (to_real nz1 *. cos (to_real theta1))) +. ((((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) *. sin_rel_err)) *. abs (sin (to_real phi1)))) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real ((nz1 **. o3) **. o4) -. ((to_real nz1 *. cos (to_real theta1)) *. sin (to_real phi1))) <=. (((eps +. ((((eps +. (cos_rel_err *. (1.0 +. eps))) +. sin_rel_err) +. ((eps +. (cos_rel_err *. (1.0 +. eps))) *. sin_rel_err)) *. (1.0 +. eps))) *. (abs (to_real nz1 *. cos (to_real theta1)) *. abs (sin (to_real phi1)))) +. ((((((sin_abs_err +. (sin_abs_err *. (eps +. (cos_rel_err *. (1.0 +. eps))))) *. abs (to_real nz1 *. cos (to_real theta1))) +. ((((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) *. sin_rel_err)) *. abs (sin (to_real phi1)))) +. (((((1.0 +. eps) *. cos_abs_err) *. abs (to_real nz1)) +. eta) *. sin_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply umul_double_error_propagation with nz1 **. o3,o4 | ||||||||||||||||
| apply premises | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (nz1 **. o3) -. (to_real nz1 *. cos (to_real theta1))) <=. (((eps +. (((0.0 +. cos_rel_err) +. (0.0 *. cos_rel_err)) *. (1.0 +. eps))) *. abs (to_real nz1 *. cos (to_real theta1))) +. ((((((cos_abs_err +. (cos_abs_err *. 0.0)) *. abs (to_real nz1)) +. ((0.0 +. (0.0 *. cos_rel_err)) *. abs (cos (to_real theta1)))) +. (0.0 *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| assert abs (to_real (nz1 **. o3) -. (to_real nz1 *. cos (to_real theta1))) <=. (((eps +. (((0.0 +. cos_rel_err) +. (0.0 *. cos_rel_err)) *. (1.0 +. eps))) *. (abs (to_real nz1) *. abs (cos (to_real theta1)))) +. ((((((cos_abs_err +. (cos_abs_err *. 0.0)) *. abs (to_real nz1)) +. ((0.0 +. (0.0 *. cos_rel_err)) *. abs (cos (to_real theta1)))) +. (0.0 *. cos_abs_err)) *. (1.0 +. eps)) +. eta)) | ||||||||||||||||
| asserted formula | --- | --- | --- | --- | ||||||||||||
| apply umul_double_error_propagation with nz1,o3 | ||||||||||||||||
| apply premises | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | 0.10 | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | 0.02 | --- | --- | --- | ||||||||||||
| asserted formula | 0.10 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.08 | --- | ||||||||||||
| apply premises | --- | --- | 0.11 | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.01 | ||||||||||||
| apply premises | 0.06 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.04 | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | ||||||||||||
| apply premises | 0.04 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | 0.09 | --- | ||||||||||||
| apply premises | --- | 0.08 | --- | --- | ||||||||||||
| asserted formula | 1.39 | --- | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.03 | ||||||||||||
| apply premises | --- | 0.08 | --- | --- | ||||||||||||
| apply premises | --- | --- | --- | 0.02 | ||||||||||||
| apply premises | 0.05 | --- | --- | --- | ||||||||||||
| apply premises | 0.06 | --- | --- | --- | ||||||||||||
| apply premises | 1.10 | --- | --- | --- | ||||||||||||
| apply premises | 0.29 | --- | --- | --- | ||||||||||||
| apply premises | --- | 0.07 | --- | --- | ||||||||||||
| asserted formula | --- | 0.11 | --- | --- | ||||||||||||
| postcondition | --- | 0.07 | --- | --- | ||||||||||||