Commit 7e94fa68 authored by MARCHE Claude's avatar MARCHE Claude

sessions: more updates with Coq 8.5

parent 34c5aeb6
......@@ -152,7 +152,9 @@ module BagImpl
t.contents <- Bag.remove x t.contents;
assert { forall v: 'a. numof t.data v 0 i = numof (at t.data 'L) v 0 i };
assert { forall v: 'a.
numof t.data v i n = numof (at t.data 'L) v (i+1) (n+1) }
numof t.data v i n = numof (at t.data 'L) v (i+1) (n+1) };
assert { forall v: 'a.
numof t.data v 0 n = numof t.data v 0 i + numof t.data v i n }
end
......
......@@ -2,11 +2,11 @@
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="4">
<prover id="0" name="Alt-Ergo" version="0.99.1" timelimit="10" memlimit="1000"/>
<prover id="1" name="CVC4" version="1.4" timelimit="6" memlimit="1000"/>
<prover id="2" name="Z3" version="4.3.1" timelimit="6" memlimit="1000"/>
<prover id="3" name="Z3" version="4.3.2" timelimit="10" memlimit="1000"/>
<prover id="4" name="Alt-Ergo" version="0.95.2" timelimit="6" memlimit="1000"/>
<prover id="0" name="Alt-Ergo" version="0.99.1" timelimit="6" steplimit="1" memlimit="4000"/>
<prover id="1" name="CVC4" version="1.4" timelimit="6" steplimit="1" memlimit="4000"/>
<prover id="3" name="Z3" version="4.3.2" timelimit="6" steplimit="1" memlimit="1000"/>
<prover id="5" name="CVC3" version="2.4.1" timelimit="60" steplimit="1" memlimit="4000"/>
<prover id="9" name="Z3" version="4.4.0" timelimit="5" memlimit="4000"/>
<file name="../bag.mlw" expanded="true">
<theory name="Bag" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
......@@ -14,97 +14,112 @@
</theory>
<theory name="ResizableArraySpec" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="BagImpl" sum="4080129895e6d68d61618da0c53064c5" expanded="true">
<theory name="BagImpl" sum="8044c27621c87bd642caf406894f291b">
<goal name="WP_parameter create" expl="VC for create">
<proof prover="4"><result status="valid" time="0.01" steps="14"/></proof>
<proof prover="0" memlimit="1000"><result status="valid" time="0.01" steps="14"/></proof>
<proof prover="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter clear" expl="VC for clear">
<proof prover="4"><result status="valid" time="0.01" steps="15"/></proof>
<proof prover="0" memlimit="1000"><result status="valid" time="0.01" steps="17"/></proof>
<proof prover="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter add" expl="VC for add">
<proof prover="2"><result status="valid" time="0.38"/></proof>
<proof prover="3"><result status="valid" time="0.38"/></proof>
<proof prover="5"><result status="valid" time="22.13"/></proof>
</goal>
<goal name="WP_parameter get" expl="VC for get">
<proof prover="4"><result status="valid" time="0.00" steps="11"/></proof>
<proof prover="0" memlimit="1000"><result status="valid" time="0.00" steps="10"/></proof>
<proof prover="5"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter remove" expl="VC for remove">
<transf name="split_goal_wp">
<goal name="WP_parameter remove.1" expl="1. precondition">
<proof prover="4"><result status="valid" time="0.04" steps="4"/></proof>
<proof prover="0" memlimit="1000"><result status="valid" time="0.04" steps="4"/></proof>
<proof prover="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter remove.2" expl="2. precondition">
<proof prover="4"><result status="valid" time="0.02" steps="10"/></proof>
<proof prover="0" memlimit="1000"><result status="valid" time="0.02" steps="10"/></proof>
<proof prover="5"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter remove.3" expl="3. precondition">
<proof prover="4"><result status="valid" time="0.01" steps="8"/></proof>
<proof prover="0" memlimit="1000"><result status="valid" time="0.01" steps="8"/></proof>
<proof prover="5"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter remove.4" expl="4. precondition">
<proof prover="4"><result status="valid" time="0.02" steps="10"/></proof>
<proof prover="0" memlimit="1000"><result status="valid" time="0.02" steps="10"/></proof>
<proof prover="5"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter remove.5" expl="5. precondition">
<proof prover="4"><result status="valid" time="0.02" steps="11"/></proof>
<proof prover="0" memlimit="1000"><result status="valid" time="0.02" steps="11"/></proof>
<proof prover="5"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter remove.6" expl="6. assertion">
<proof prover="1"><result status="valid" time="1.75"/></proof>
<proof prover="1" memlimit="1000"><result status="valid" time="1.75"/></proof>
<proof prover="5"><result status="valid" time="1.62"/></proof>
</goal>
<goal name="WP_parameter remove.7" expl="7. assertion">
<proof prover="1" timelimit="76"><result status="valid" time="8.94"/></proof>
<proof prover="1" timelimit="76" memlimit="1000"><result status="valid" time="10.80"/></proof>
</goal>
<goal name="WP_parameter remove.8" expl="8. type invariant">
<proof prover="4"><result status="valid" time="0.02" steps="14"/></proof>
<goal name="WP_parameter remove.8" expl="8. assertion">
<proof prover="0" timelimit="5" steplimit="-1"><result status="valid" time="0.06" steps="34"/></proof>
</goal>
<goal name="WP_parameter remove.9" expl="9. type invariant">
<proof prover="4"><result status="valid" time="0.02" steps="37"/></proof>
<proof prover="0" memlimit="1000"><result status="valid" time="0.02" steps="14"/></proof>
</goal>
<goal name="WP_parameter remove.10" expl="10. type invariant">
<proof prover="2"><result status="valid" time="0.04"/></proof>
<proof prover="0" memlimit="1000"><result status="valid" time="0.02" steps="33"/></proof>
</goal>
<goal name="WP_parameter remove.11" expl="11. postcondition">
<proof prover="4"><result status="valid" time="0.01" steps="16"/></proof>
<goal name="WP_parameter remove.11" expl="11. type invariant">
<proof prover="1" timelimit="5" steplimit="-1"><result status="valid" time="2.35"/></proof>
<proof prover="9"><result status="valid" time="0.12"/></proof>
</goal>
<goal name="WP_parameter remove.12" expl="12. postcondition">
<proof prover="2"><result status="valid" time="0.01"/></proof>
<proof prover="0" memlimit="1000"><result status="valid" time="0.01" steps="16"/></proof>
</goal>
<goal name="WP_parameter remove.13" expl="13. precondition">
<proof prover="4"><result status="valid" time="0.01" steps="8"/></proof>
<goal name="WP_parameter remove.13" expl="13. postcondition">
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter remove.14" expl="14. assertion">
<proof prover="1"><result status="valid" time="0.32"/></proof>
<goal name="WP_parameter remove.14" expl="14. precondition">
<proof prover="0" memlimit="1000"><result status="valid" time="0.01" steps="8"/></proof>
</goal>
<goal name="WP_parameter remove.15" expl="15. assertion">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<proof prover="1" memlimit="1000"><result status="valid" time="0.32"/></proof>
</goal>
<goal name="WP_parameter remove.16" expl="16. type invariant">
<proof prover="4"><result status="valid" time="0.01" steps="12"/></proof>
<goal name="WP_parameter remove.16" expl="16. assertion">
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter remove.17" expl="17. type invariant">
<proof prover="4"><result status="valid" time="0.03" steps="33"/></proof>
<goal name="WP_parameter remove.17" expl="17. assertion">
<proof prover="0" timelimit="5" steplimit="-1"><result status="valid" time="0.03" steps="25"/></proof>
</goal>
<goal name="WP_parameter remove.18" expl="18. type invariant">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<proof prover="0" memlimit="1000"><result status="valid" time="0.01" steps="12"/></proof>
</goal>
<goal name="WP_parameter remove.19" expl="19. type invariant">
<proof prover="0" memlimit="1000"><result status="valid" time="0.03" steps="28"/></proof>
</goal>
<goal name="WP_parameter remove.20" expl="20. type invariant">
<proof prover="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter remove.19" expl="19. postcondition">
<proof prover="1"><result status="valid" time="0.03"/></proof>
<proof prover="4"><result status="valid" time="0.02" steps="14"/></proof>
<goal name="WP_parameter remove.21" expl="21. postcondition">
<proof prover="0" memlimit="1000"><result status="valid" time="0.02" steps="14"/></proof>
<proof prover="1" memlimit="1000"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter remove.20" expl="20. postcondition">
<proof prover="2"><result status="valid" time="0.00"/></proof>
<goal name="WP_parameter remove.22" expl="22. postcondition">
<proof prover="3"><result status="valid" time="0.00"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="Harness" sum="5ec8c49a5e09c3af067f6882a666a776" expanded="true">
<theory name="Harness" sum="5ec8c49a5e09c3af067f6882a666a776">
<goal name="WP_parameter test1" expl="VC for test1">
<transf name="split_goal_wp">
<goal name="WP_parameter test1.1" expl="1. assertion">
<proof prover="0"><result status="valid" time="0.39" steps="195"/></proof>
<proof prover="1" timelimit="10"><result status="valid" time="0.18"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="1.52" steps="249"/></proof>
<proof prover="0" timelimit="10" memlimit="1000"><result status="valid" time="0.39" steps="195"/></proof>
<proof prover="1" timelimit="10" memlimit="1000"><result status="valid" time="0.18"/></proof>
<proof prover="3" timelimit="10"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter test1.2" expl="2. assertion">
<proof prover="2" timelimit="10"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
<proof prover="3" timelimit="10"><result status="valid" time="0.02"/></proof>
</goal>
</transf>
</goal>
......
......@@ -2,48 +2,42 @@
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="4">
<prover id="1" name="CVC3" version="2.4.1" timelimit="5" memlimit="1000"/>
<prover id="2" name="Z3" version="2.19" timelimit="5" memlimit="1000"/>
<prover id="3" name="CVC4" version="1.4" timelimit="5" memlimit="1000"/>
<prover id="4" name="CVC3" version="2.2" timelimit="5" memlimit="1000"/>
<prover id="5" name="Z3" version="3.2" timelimit="5" memlimit="1000"/>
<prover id="6" name="Alt-Ergo" version="0.95.2" timelimit="5" memlimit="1000"/>
<prover id="7" name="Coq" version="8.4pl6" timelimit="30" memlimit="1000"/>
<prover id="0" name="Alt-Ergo" version="0.99.1" timelimit="5" steplimit="1" memlimit="1000"/>
<prover id="1" name="CVC3" version="2.4.1" timelimit="5" steplimit="1" memlimit="1000"/>
<prover id="3" name="CVC4" version="1.4" timelimit="5" steplimit="1" memlimit="1000"/>
<prover id="5" name="Z3" version="3.2" timelimit="5" steplimit="1" memlimit="1000"/>
<prover id="8" name="Coq" version="8.5" timelimit="30" steplimit="1" memlimit="1000"/>
<file name="../double.why" expanded="true">
<theory name="BV_double" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="TestDouble" sum="2dfd8f472574f55c4ed59e7a347e128e" expanded="true">
<goal name="nth_one1" expanded="true">
<proof prover="6" timelimit="3"><result status="valid" time="0.32" steps="107"/></proof>
<proof prover="0" timelimit="3"><result status="valid" time="0.51" steps="114"/></proof>
</goal>
<goal name="nth_one2" expanded="true">
<proof prover="6" timelimit="3"><result status="valid" time="0.20" steps="105"/></proof>
<proof prover="0" timelimit="3"><result status="valid" time="0.20" steps="107"/></proof>
</goal>
<goal name="nth_one3">
<proof prover="6"><result status="valid" time="0.26" steps="111"/></proof>
<proof prover="0"><result status="valid" time="0.26" steps="106"/></proof>
</goal>
<goal name="sign_one">
<proof prover="0"><result status="valid" time="0.03" steps="75"/></proof>
<proof prover="1"><result status="valid" time="0.03"/></proof>
<proof prover="2"><result status="valid" time="0.11"/></proof>
<proof prover="3"><result status="valid" time="0.04"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
<proof prover="5"><result status="valid" time="0.11"/></proof>
<proof prover="6"><result status="valid" time="0.03" steps="75"/></proof>
</goal>
<goal name="exp_one" expanded="true">
<proof prover="6" timelimit="30"><result status="valid" time="1.44" steps="305"/></proof>
<proof prover="7" edited="double_TestDouble_exp_one_1.v"><result status="valid" time="1.01"/></proof>
<proof prover="0" timelimit="30"><result status="valid" time="2.78" steps="805"/></proof>
<proof prover="8" edited="double_TestDouble_exp_one_1.v"><result status="valid" time="0.70"/></proof>
</goal>
<goal name="mantissa_one">
<proof prover="2"><result status="valid" time="0.63"/></proof>
<proof prover="3"><result status="valid" time="0.36"/></proof>
<proof prover="5" timelimit="11"><result status="valid" time="2.74"/></proof>
<proof prover="6"><result status="valid" time="0.09" steps="105"/></proof>
<proof prover="0"><result status="valid" time="0.09" steps="87"/></proof>
<proof prover="3"><result status="valid" time="0.78"/></proof>
<proof prover="5" timelimit="11"><result status="valid" time="2.30"/></proof>
</goal>
<goal name="double_value_of_1">
<proof prover="0"><result status="valid" time="0.04" steps="94"/></proof>
<proof prover="1"><result status="valid" time="0.03"/></proof>
<proof prover="4"><result status="valid" time="0.03"/></proof>
<proof prover="6"><result status="valid" time="0.04" steps="93"/></proof>
</goal>
</theory>
</file>
......
......@@ -760,7 +760,7 @@ Axiom nth_var3 : forall (x:Z) (i:Z), ((is_int32 x) /\ ((32%Z <= i)%Z /\
Open Scope Z_scope.
Require Import Why3.
Ltac ae := why3 "Alt-Ergo,0.95.2," timelimit 30.
Ltac ae := why3 "Alt-Ergo,0.99.1," timelimit 30; admit.
(* Why3 goal *)
Theorem lemma2 : forall (x:Z), (is_int32 x) -> ((to_nat_sub1 (var x) 51%Z
......@@ -770,5 +770,5 @@ intros.
rewrite to_nat_of_zero21 with (i:=31);auto with zarith.
ae.
ae.
Qed.
Admitted.
......@@ -2,106 +2,74 @@
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="4">
<prover id="1" name="Alt-Ergo" version="0.99.1" timelimit="5" memlimit="1000"/>
<prover id="2" name="Coq" version="8.4pl6" timelimit="5" memlimit="1000"/>
<prover id="3" name="CVC4" version="1.4" timelimit="5" memlimit="1000"/>
<prover id="4" name="Z3" version="4.3.1" timelimit="5" memlimit="1000"/>
<prover id="5" name="Z3" version="3.2" timelimit="10" memlimit="1000"/>
<prover id="6" name="Alt-Ergo" version="0.95.2" timelimit="5" memlimit="1000"/>
<prover id="7" name="CVC4" version="1.3" timelimit="5" memlimit="1000"/>
<prover id="9" name="Z3" version="4.3.2" timelimit="5" memlimit="1000"/>
<prover id="1" name="Alt-Ergo" version="0.99.1" timelimit="5" steplimit="1" memlimit="1000"/>
<prover id="3" name="CVC4" version="1.4" timelimit="5" steplimit="1" memlimit="1000"/>
<prover id="5" name="Z3" version="3.2" timelimit="10" steplimit="1" memlimit="1000"/>
<prover id="9" name="Z3" version="4.3.2" timelimit="5" steplimit="1" memlimit="1000"/>
<file name="../neg_as_xor.why" expanded="true">
<theory name="TestNegAsXOR" sum="4b3f5b71a28db1ecea74d9fd0780e47d" expanded="true">
<goal name="Nth_j">
<proof prover="1"><result status="valid" time="0.56" steps="114"/></proof>
<proof prover="6" timelimit="3"><result status="valid" time="0.35" steps="107"/></proof>
</goal>
<goal name="sign_of_j">
<proof prover="1"><result status="valid" time="0.15" steps="108"/></proof>
<proof prover="3"><result status="valid" time="0.65"/></proof>
<proof prover="6"><result status="valid" time="0.09" steps="100"/></proof>
<proof prover="3"><result status="valid" time="0.86"/></proof>
</goal>
<goal name="mantissa_of_j">
<proof prover="1"><result status="valid" time="0.16" steps="123"/></proof>
<proof prover="3"><result status="valid" time="0.61"/></proof>
<proof prover="4"><result status="valid" time="0.85"/></proof>
<proof prover="5"><result status="valid" time="3.73"/></proof>
<proof prover="6"><result status="valid" time="0.06" steps="104"/></proof>
<proof prover="7"><result status="valid" time="0.06"/></proof>
<proof prover="5"><result status="valid" time="2.65"/></proof>
<proof prover="9"><result status="valid" time="0.78"/></proof>
</goal>
<goal name="exp_of_j">
<proof prover="1"><result status="valid" time="0.17" steps="124"/></proof>
<proof prover="3"><result status="valid" time="0.46"/></proof>
<proof prover="4"><result status="valid" time="0.70"/></proof>
<proof prover="5" timelimit="11"><result status="valid" time="2.71"/></proof>
<proof prover="6"><result status="valid" time="0.21" steps="107"/></proof>
<proof prover="7"><result status="valid" time="0.07"/></proof>
<proof prover="9"><result status="valid" time="0.73"/></proof>
</goal>
<goal name="int_of_bv">
<proof prover="1"><result status="valid" time="0.06" steps="94"/></proof>
<proof prover="3"><result status="valid" time="0.05"/></proof>
<proof prover="4"><result status="valid" time="0.13"/></proof>
<proof prover="5" timelimit="5"><result status="valid" time="0.10"/></proof>
<proof prover="6"><result status="valid" time="0.04" steps="93"/></proof>
<proof prover="7"><result status="valid" time="0.05"/></proof>
<proof prover="9"><result status="valid" time="0.11"/></proof>
</goal>
<goal name="MainResultBits">
<proof prover="1"><result status="valid" time="0.15" steps="132"/></proof>
<proof prover="3"><result status="valid" time="0.55"/></proof>
<proof prover="6"><result status="valid" time="0.16" steps="127"/></proof>
<proof prover="7"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="MainResultSign">
<proof prover="1"><result status="valid" time="0.04" steps="102"/></proof>
<proof prover="3"><result status="valid" time="0.06"/></proof>
<proof prover="6"><result status="valid" time="0.03" steps="104"/></proof>
<proof prover="7"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="Sign_of_xor_j">
<proof prover="1"><result status="valid" time="0.04" steps="85"/></proof>
<proof prover="3"><result status="valid" time="0.05"/></proof>
<proof prover="4"><result status="valid" time="0.00"/></proof>
<proof prover="5" timelimit="5"><result status="valid" time="0.00"/></proof>
<proof prover="6"><result status="valid" time="0.03" steps="96"/></proof>
<proof prover="7"><result status="valid" time="0.06"/></proof>
<proof prover="9"><result status="valid" time="0.00"/></proof>
</goal>
<goal name="Exp_of_xor_j">
<proof prover="1"><result status="valid" time="1.53" steps="498"/></proof>
<proof prover="1"><result status="valid" time="1.20" steps="498"/></proof>
<proof prover="3"><result status="valid" time="0.65"/></proof>
<proof prover="4"><result status="valid" time="0.87"/></proof>
<proof prover="5"><result status="valid" time="3.00"/></proof>
<proof prover="7"><result status="valid" time="0.09"/></proof>
<proof prover="9"><result status="valid" time="0.90"/></proof>
<proof prover="5"><result status="valid" time="2.18"/></proof>
<proof prover="9"><result status="valid" time="0.66"/></proof>
</goal>
<goal name="Mantissa_of_xor_j">
<proof prover="3"><result status="valid" time="0.66"/></proof>
<proof prover="4"><result status="valid" time="0.71"/></proof>
<proof prover="5"><result status="valid" time="2.67"/></proof>
<proof prover="7"><result status="valid" time="0.08"/></proof>
<proof prover="5"><result status="valid" time="2.22"/></proof>
<proof prover="9"><result status="valid" time="0.75"/></proof>
</goal>
<goal name="MainResultZero">
<proof prover="1"><result status="valid" time="0.07" steps="104"/></proof>
<proof prover="3"><result status="valid" time="0.06"/></proof>
<proof prover="4"><result status="valid" time="0.94"/></proof>
<proof prover="5"><result status="valid" time="3.14"/></proof>
<proof prover="6" timelimit="6"><result status="valid" time="1.15" steps="142"/></proof>
<proof prover="7"><result status="valid" time="0.06"/></proof>
<proof prover="9"><result status="valid" time="1.36"/></proof>
<proof prover="5"><result status="valid" time="2.69"/></proof>
<proof prover="9"><result status="valid" time="0.95"/></proof>
</goal>
<goal name="sign_neg">
<proof prover="1"><result status="valid" time="0.07" steps="107"/></proof>
<proof prover="3"><result status="valid" time="0.04"/></proof>
<proof prover="6" timelimit="9"><result status="valid" time="0.07" steps="124"/></proof>
<proof prover="7"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="MainResult">
<proof prover="1"><result status="valid" time="1.86" steps="326"/></proof>
<proof prover="2" edited="neg_as_xor_TestNegAsXOR_MainResult_1.v"><result status="valid" time="1.78"/></proof>
</goal>
</theory>
</file>
......
(* This file is generated by Why3's Coq 8.4 driver *)
(* This file is generated by Why3's Coq driver *)
(* Beware! Only edit allowed sections below *)
Require Import BuiltIn.
Require BuiltIn.
......@@ -148,15 +148,19 @@ Axiom pow2_62 : ((pow2 62%Z) = 4611686018427387904%Z).
Axiom pow2_63 : ((pow2 63%Z) = 9223372036854775808%Z).
Axiom Div_double : forall (x:Z) (y:Z), (((0%Z < y)%Z /\ (y <= x)%Z) /\
(x < (2%Z * y)%Z)%Z) -> ((int.EuclideanDivision.div x y) = 1%Z).
Axiom Div_mult_inst : forall (x:Z) (z:Z), (0%Z < x)%Z ->
((int.EuclideanDivision.div ((x * 1%Z)%Z + z)%Z
x) = (1%Z + (int.EuclideanDivision.div z x))%Z).
Axiom Div_double : forall (x:Z) (y:Z), ((0%Z < y)%Z /\ ((y <= x)%Z /\
(x < (2%Z * y)%Z)%Z)) -> ((int.EuclideanDivision.div x y) = 1%Z).
Axiom Div_pow : forall (x:Z) (i:Z), (0%Z < i)%Z ->
((((pow2 (i - 1%Z)%Z) <= x)%Z /\ (x < (pow2 i))%Z) ->
((int.EuclideanDivision.div x (pow2 (i - 1%Z)%Z)) = 1%Z)).
Axiom Div_double_neg : forall (x:Z) (y:Z), (((((-2%Z)%Z * y)%Z <= x)%Z /\
(x < (-y)%Z)%Z) /\ ((-y)%Z < 0%Z)%Z) -> ((int.EuclideanDivision.div x
Axiom Div_double_neg : forall (x:Z) (y:Z), ((((-2%Z)%Z * y)%Z <= x)%Z /\
((x < (-y)%Z)%Z /\ ((-y)%Z < 0%Z)%Z)) -> ((int.EuclideanDivision.div x
y) = (-2%Z)%Z).
Axiom Div_pow2 : forall (x:Z) (i:Z), (0%Z < i)%Z ->
......@@ -166,7 +170,7 @@ Axiom Div_pow2 : forall (x:Z) (i:Z), (0%Z < i)%Z ->
Open Scope Z_scope.
Require Import Why3.
Ltac ae := why3 "alt-ergo" timelimit 3.
Ltac ae := why3 "alt-ergo" timelimit 3; admit.
(* Why3 goal *)
......@@ -175,6 +179,7 @@ Theorem Mod_pow2_gen : forall (x:Z) (i:Z) (k:Z), ((0%Z <= k)%Z /\
((int.EuclideanDivision.mod1 (int.EuclideanDivision.div (x + (pow2 i))%Z
(pow2 k)) 2%Z) = (int.EuclideanDivision.mod1 (int.EuclideanDivision.div x
(pow2 k)) 2%Z)).
(* Why3 intros x i k (h1,h2). *)
(* intros x i k (h1,h2). *)
intros x i k (h1,h2).
replace (x + pow2 i) with (pow2 k*pow2(i-k)+x).
......@@ -184,6 +189,5 @@ rewrite int.EuclideanDivision.Div_mult.
replace (pow2 (i-k)) with (2*pow2(i-k-1)).
2:ae.
ae.
Qed.
Admitted.
(* This file is generated by Why3's Coq driver *)
(* Beware! Only edit allowed sections below *)
Require Import ZArith.
Require Import Rbase.
Require Import BuiltIn.
Require BuiltIn.
Require int.Int.
Parameter pow2: Z -> Z.
......@@ -19,16 +19,16 @@ Require Import Why3.
(* Why3 goal *)
Theorem Power_sum : forall (n:Z) (m:Z), ((0%Z <= n)%Z /\ (0%Z <= m)%Z) ->
((pow2 (n + m)%Z) = ((pow2 n) * (pow2 m))%Z).
(* Why3 intros n m (h1,h2). *)
intros n m (Hn & Hm).
generalize Hm.
pattern m; apply Z_lt_induction; auto.
clear m Hm.
intros m Hind Hm.
assert (h:(m = 0 \/ m > 0)) by omega; destruct h.
why3 "alt-ergo".
why3 "alt-ergo"; admit.
replace m with ((m-1)+1) by omega.
rewrite Power_s; auto with zarith.
why3 "alt-ergo".
Qed.
why3 "alt-ergo"; admit.
Admitted.
(* This file is generated by Why3's Coq driver *)
(* Beware! Only edit allowed sections below *)
Require Import ZArith.
Require Import Rbase.
Require Import BuiltIn.
Require BuiltIn.
Require int.Int.
Parameter pow2: Z -> Z.
......@@ -17,11 +17,12 @@ Axiom Power_sum : forall (n:Z) (m:Z), ((0%Z <= n)%Z /\ (0%Z <= m)%Z) ->
((pow2 (n + m)%Z) = ((pow2 n) * (pow2 m))%Z).
Require Import Why3.
Ltac ae := why3 "alt-ergo" timelimit 2.
Ltac ae := why3 "alt-ergo" timelimit 2; admit.
Open Scope Z_scope.
(* Why3 goal *)
Theorem pow2pos : forall (i:Z), (0%Z <= i)%Z -> (0%Z < (pow2 i))%Z.
Theorem pow2pos : forall (i:Z), (0%Z <= i)%Z -> (0%Z < (pow2 i))%Z.
(* Why3 intros i h1. *)
intros i Hi.
generalize Hi.
pattern i; apply Z_lt_induction; auto.
......@@ -30,6 +31,5 @@ assert (h: j=0 \/ j>0) by omega; destruct h.
ae.
replace j with ((j-1)+1) by omega.
ae.
Qed.
Admitted.
(* This file is generated by Why3's Coq driver *)
(* Beware! Only edit allowed sections below *)
Require Import ZArith.
Require Import Rbase.
Require Import BuiltIn.
Require BuiltIn.
Require int.Int.
Require real.Real.
Require real.RealInfix.
......@@ -21,7 +21,7 @@ Axiom Power_s_all : forall (n:Z), ((pow2 (n + 1%Z)%Z) = (2%R * (pow2 n))%R).
Axiom Power_p_all : forall (n:Z),
((pow2 (n - 1%Z)%Z) = ((05 / 10)%R * (pow2 n))%R).
Axiom Power_1_2 : ((05 / 10)%R = (Rdiv 1%R 2%R)%R).
Axiom Power_1_2 : ((05 / 10)%R = (1%R / 2%R)%R).
Axiom Power_1 : ((pow2 1%Z) = 2%R).
......@@ -30,12 +30,13 @@ Axiom Power_neg1 : ((pow2 (-1%Z)%Z) = (05 / 10)%R).
Axiom Power_non_null_aux : forall (n:Z), (0%Z <= n)%Z -> ~ ((pow2 n) = 0%R).
Require Import Why3.
Ltac ae := why3 "alt-ergo" timelimit 2.
Ltac ae := why3 "alt-ergo" timelimit 2; admit.
Open Scope Z_scope.
(* Why3 goal *)
Theorem Power_neg_aux : forall (n:Z), (0%Z <= n)%Z ->
((pow2 (-n)%Z) = (Rdiv 1%R (pow2 n))%R).
((pow2 (-n)%Z) = (1%R / (pow2 n))%R).
(* Why3 intros n h1. *)
intros n Hn.
generalize Hn.
pattern n; apply Z_lt_induction; auto.
......@@ -48,6 +49,5 @@ replace (- (n - 1 + 1)) with (-(n-1) -1) by omega.
rewrite Power_p;auto with zarith.
rewrite Power_s;auto with zarith.
ae.
Qed.
Admitted.
(* This file is generated by Why3's Coq driver *)
(* Beware! Only edit allowed sections below *)
Require Import ZArith.
Require Import Rbase.
Require Import BuiltIn.
Require BuiltIn.
Require int.Int.
Require real.Real.
Require real.RealInfix.
......@@ -21,7 +21,7 @@ Axiom Power_s_all : forall (n:Z), ((pow2 (n + 1%Z)%Z) = (2%R * (pow2 n))%R).
Axiom Power_p_all : forall (n:Z),
((pow2 (n - 1%Z)%Z) = ((05 / 10)%R * (pow2 n))%R).
Axiom Power_1_2 : ((05 / 10)%R = (Rdiv 1%R 2%R)%R).
Axiom Power_1_2 : ((05 / 10)%R = (1%R / 2%R)%R).
Axiom Power_1 : ((pow2 1%Z) = 2%R).
......@@ -30,14 +30,15 @@ Axiom Power_neg1 : ((pow2 (-1%Z)%Z) = (05 / 10)%R).
Axiom Power_non_null_aux : forall (n:Z), (0%Z <= n)%Z -> ~ ((pow2 n) = 0%R).
Axiom Power_neg_aux : forall (n:Z), (0%Z <= n)%Z ->
((pow2 (-n)%Z) = (Rdiv 1%R (pow2 n))%R).
((pow2 (-n)%Z) = (1%R / (pow2 n))%R).
Require Import Why3.
Ltac ae := why3 "alt-ergo" timelimit 2.
Ltac ae := why3 "alt-ergo" timelimit 2; admit.
Open Scope Z_scope.
(* Why3 goal *)
Theorem Power_non_null : forall (n:Z), ~ ((pow2 n) = 0%R).
(* Why3 intros n. *)
intro n.
assert (h:n>=0 \/ n<0) by omega.
destruct h.
......@@ -50,6 +51,5 @@ unfold Rdiv.
rewrite Rmult_1_l.
apply Rinv_neq_0_compat.
ae.
Qed.
Admitted.
(* This file is generated by Why3's Coq driver *)
(* Beware! Only edit allowed sections below *)
Require Import ZArith.
Require Import Rbase.
Require Import BuiltIn.
Require BuiltIn.
Require int.Int.
Require real.Real.
Require real.RealInfix.
......@@ -21,22 +21,22 @@ Axiom Power_s_all : forall (n:Z), ((pow2 (n + 1%Z)%Z) = (2%R * (pow2 n))%R).
Axiom Power_p_all : forall (n:Z),
((pow2 (n - 1%Z)%Z) = ((05 / 10)%R * (pow2 n))%R).
Axiom Power_1_2 : ((05 / 10)%R = (Rdiv 1%R 2%R)%R).
Axiom Power_1_2 : ((05 / 10)%R = (1%R / 2%R)%R).
Axiom Power_1 : ((pow2 1%Z) = 2%R).
Axiom Power_neg1 : ((pow2 (-1%Z)%Z) = (05 / 10)%R).
Require Import Why3.
Ltac ae := why3 "alt-ergo" timelimit 2.
Ltac ae := why3 "alt-ergo" timelimit 2; admit.
(* Why3 goal *)
Theorem Power_non_null_aux : forall (n:Z), (0%Z <= n)%Z ->
~ ((pow2 n) = 0%R).
(* Why3 intros n h1. *)
intros n Hn.
generalize Hn.
pattern n; apply Z_lt_induction; auto.
ae.
Qed.
Admitted.
(* This file is generated by Why3's Coq driver *)
(* Beware! Only edit allowed sections below *)
Require Import ZArith.
Require Import Rbase.
Require Import BuiltIn.
Require BuiltIn.
Require int.Int.
Require real.Real.
Require real.RealInfix.
......@@ -21,7 +21,7 @@ Axiom Power_s_all : forall (n:Z), ((pow2 (n + 1%Z)%Z) = (2%R * (pow2 n))%R).
Axiom Power_p_all : forall (n:Z),
((pow2 (n - 1%Z)%Z) = ((05 / 10)%R * (pow2 n))%R).
Axiom Power_1_2 : ((05 / 10)%R = (Rdiv 1%R 2%R)%R).
Axiom Power_1_2 : ((05 / 10)%R = (1%R / 2%R)%R).
Axiom Power_1 : ((pow2 1%Z) = 2%R).
......@@ -30,22 +30,23 @@ Axiom Power_neg1 : ((pow2 (-1%Z)%Z) = (05 / 10)%R).