# Theory Approximation_Quickcheck_Ex

theory Approximation_Quickcheck_Ex
imports Approximation
```theory Approximation_Quickcheck_Ex
imports "../Approximation"
begin

lemma
fixes x::real and y::real
shows "sin x ≤ tan x"
using [[quickcheck_approximation_custom_seed = 1]]
quickcheck[approximation, expect=counterexample]
oops

lemma "x ≤ y ⟹ arctan y / y ≤ arctan x / x"
using [[quickcheck_approximation_custom_seed = 1]]
quickcheck[approximation, expect=counterexample]
oops

lemma "0 < x ⟹ x ≤ y ⟹ arctan y / y ≤ arctan x / x"
using [[quickcheck_approximation_custom_seed = 1]]
quickcheck[approximation, expect=no_counterexample]
by (rule arctan_divide_mono)

lemma
fixes x::real
shows "exp (exp x + exp y + sin x * sin y) - 0.4 > 0 ∨ 0.98 - sin x / (sin x * sin y + 2)^2 > 0"
using [[quickcheck_approximation_custom_seed = 1]]
quickcheck[approximation, expect=counterexample, size=10, iterations=1000, verbose]
oops

lemma
fixes x::real
shows "x > 1 ⟹ x ≤ 2 ^ 20 * log 2 x + 1 ∧ (sin x)⇧2 + (cos x)⇧2 = 1"
using [[quickcheck_approximation_custom_seed = 1]]
using [[quickcheck_approximation_epsilon = 0.00000001]]
― ‹avoids spurious counterexamples in approximate computation of @{term "(sin x)⇧2 + (cos x)⇧2"}
and therefore avoids expensive failing attempts for certification›
quickcheck[approximation, expect=counterexample, size=20]
oops

end
```