From b284adfa2d25b21b7c7e6d298eb4cce04fba7d39 Mon Sep 17 00:00:00 2001 From: Claude Marche <Claude.Marche@inria.fr> Date: Tue, 3 Nov 2015 15:54:33 +0100 Subject: [PATCH] Support for PolyPaver prover --- drivers/polypaver.drv | 12 +++------ examples/tests-provers/polypaver.mlw | 23 ++++++++++++++++++ examples/tests-provers/polypaver.why | 15 ++++++++++-- .../tests-provers/polypaver/why3session.xml | 19 +++++++++++++++ .../tests-provers/polypaver/why3shapes.gz | Bin 0 -> 198 bytes 5 files changed, 59 insertions(+), 10 deletions(-) create mode 100644 examples/tests-provers/polypaver.mlw create mode 100644 examples/tests-provers/polypaver/why3session.xml create mode 100644 examples/tests-provers/polypaver/why3shapes.gz diff --git a/drivers/polypaver.drv b/drivers/polypaver.drv index 09319af48..624ddb9ac 100644 --- a/drivers/polypaver.drv +++ b/drivers/polypaver.drv @@ -4,15 +4,11 @@ printer "metitarski" filename "%f-%t-%g.tptp" -valid "^SZS status Theorem" -valid "^SZS status Unsatisfiable" -unknown "^SZS status CounterSatisfiable" "" -unknown "^SZS status Satisfiable" "" -timeout "^SZS status Timeout" -unknown "^SZS status GaveUp" "" -fail "^SZS status Error" "" - +valid 0 +invalid 111 +timeout "Gave up on deciding conjecture: TIMED OUT" time "why3cpulimit time : %s s" +unknown 1 "toto" (* to be improved *) diff --git a/examples/tests-provers/polypaver.mlw b/examples/tests-provers/polypaver.mlw new file mode 100644 index 000000000..5980c290d --- /dev/null +++ b/examples/tests-provers/polypaver.mlw @@ -0,0 +1,23 @@ + +module TestFloat + + use import floating_point.Double + + function Sqrt (X : in Float) return Float + +pre 1.0 <= X and X <= 2.0; + --# return R => + --# R <= (1.0+4.0*PolyPaver.Floats.Eps_Rel)*PolyPaver.Exact.Sqrt(X); + is + R,S : Float; + begin + S := X; + R := PolyPaver.Floats.Add(PolyPaver.Floats.Multiply(0.5,X),0.5); + while R /= s loop + --# assert R in -0.25*X**2+X .. 0.25*X**2+1.0 ; + S := r; + R := PolyPaver.Floats.Multiply(0.5, + PolyPaver.Floats.Add(S,PolyPaver.Floats.Divide(X,S))); + end loop; + return R; + end Sqrt; diff --git a/examples/tests-provers/polypaver.why b/examples/tests-provers/polypaver.why index 753d06793..203f451cc 100644 --- a/examples/tests-provers/polypaver.why +++ b/examples/tests-provers/polypaver.why @@ -1,5 +1,5 @@ -theory Test +theory TestReal (* @@ -8,11 +8,22 @@ theory Test *) use import real.Real + + goal add1 : 1.0 + 2.0 = 3.0 + + goal add2 : 1.2 + 3.4 = 5.6 + + use import real.Square use import real.ExpLog + goal exp_hyp: + forall x:real. 0.01 < X < 5.1785 -> + (3.0 + sqr x / 11.0) * ((exp x - exp (-x))/2.0) < + x * (2.0 + (exp x + exp (-x))/2.0 + sqr x / 11.0) + goal g1: forall a b:real. -10.0 <= a <= 10.0 /\ -10.0 <= b <= 10.0 /\ b > a + 0.1 -> - exp a - exp b > (b-a) * exp ((a + b) / 2.0) + exp b - exp a > (b-a) * exp ((a + b) / 2.0) end diff --git a/examples/tests-provers/polypaver/why3session.xml b/examples/tests-provers/polypaver/why3session.xml new file mode 100644 index 000000000..549d2d47d --- /dev/null +++ b/examples/tests-provers/polypaver/why3session.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN" +"http://why3.lri.fr/why3session.dtd"> +<why3session shape_version="4"> +<prover id="0" name="PolyPaver" version="0.3" timelimit="3600" memlimit="1000"/> +<file name="../polypaver.why" expanded="true"> +<theory name="Test" sum="2676ef260e99a1019e7c4dfb35399b4f" expanded="true"> + <goal name="add1" expanded="true"> + <proof prover="0" edited="polypaver-Test-add1_1.tptp"><result status="unknown" time="0.01"/></proof> + </goal> + <goal name="add2" expanded="true"> + <proof prover="0" timelimit="5"><result status="unknown" time="0.01"/></proof> + </goal> + <goal name="g1" expanded="true"> + <proof prover="0"><result status="valid" time="626.99"/></proof> + </goal> +</theory> +</file> +</why3session> diff --git a/examples/tests-provers/polypaver/why3shapes.gz b/examples/tests-provers/polypaver/why3shapes.gz new file mode 100644 index 0000000000000000000000000000000000000000..12049943f92903fe0b1e78fcab9e698c3c71ea82 GIT binary patch literal 198 zcmb2|=3oGW|FwPAd`yZ0ZNF`gUXv<pGw+;rV@3tzuf&EF>CGEI{dm+C%AL$O`R6}& zmTywptkPLrQ?pK;Qq(xVK=#xTW#8>qw#Sm^N4qiV+zw=FI}~D@sqVc^CA4ToNv=TA zwIJy~Q>W>!yvboLk)Pra#<*5{&DxI#PfzJqexJK=!!rNccPnh3b)4p%n;WK^l<fQR zcU`Ta(~;}->$4-ZE4+D_&ez(?%ocP!z<!}d-}~pG$J<5!ML#sMVSJeB#~H=QzyJVe C_Em!b literal 0 HcmV?d00001 -- GitLab