Skip to content

Commit f0dab2a

Browse files
committed
fixed some obsolete proof sessions
1 parent a674190 commit f0dab2a

File tree

3 files changed

+29
-48
lines changed

3 files changed

+29
-48
lines changed

examples/mutualExclusionToken/selfstab-ring.mlw

+5-12
Original file line numberDiff line numberDiff line change
@@ -33,24 +33,17 @@ module SelfStab_Ring
3333

3434

3535
let rec lemma first_last_fl (w:world) (n:int)
36-
requires { n<=n_nodes }
37-
ensures { n>=0 -> (forall j :int. 0<j<=n -> w.ring[j] = w.ring[j-1]) ->
38-
w.ring[0] = w.ring[n] }
36+
requires { 0<n<=n_nodes }
37+
requires { forall j :int. 0<j<n -> w.ring[j] = w.ring[j-1] }
38+
ensures { w.ring[0] = w.ring[n-1] }
3939
variant { n }
40-
= if n>0 then first_last_fl w (n-1)
40+
= if n>1 then first_last_fl w (n-1)
4141
else ()
4242

43-
44-
(* crucial lemma to achieve an unbounded proof *)
45-
(* of the atLeastOneTokenLm lemma *)
46-
(* lemma first_last : forall n: int, lS :map node state. *)
47-
(* n >= 0 -> *)
48-
(* (forall j :int. 0<j<=n -> lS j = lS (j-1)) -> *)
49-
(* lS 0 = lS n *)
50-
5143
(* lemma atLeastOneTokenLm : forall w :world. atLeastOneToken (refn w) n_nodes *)
5244

5345

46+
5447
predicate inv (w:world) =
5548
forall n :int. validNd n -> 0 <= w.ring[n] < k_states
5649
/\

examples/mutualExclusionToken/selfstab-ring/why3session.xml

+24-36
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
33
"https://www.why3.org/why3session.dtd">
44
<why3session shape_version="6">
5-
<prover id="0" name="Z3" version="4.11.2" timelimit="2000" steplimit="0" memlimit="10000"/>
5+
<prover id="0" name="Z3" version="4.11.2" timelimit="2000" steplimit="0" memlimit="5000"/>
66
<prover id="1" name="Alt-Ergo" version="2.4.2" timelimit="5" steplimit="0" memlimit="1000"/>
7+
<prover id="2" name="CVC4" version="1.8" timelimit="5" steplimit="0" memlimit="1000"/>
78
<file format="whyml" proved="true">
89
<path name=".."/><path name="selfstab-ring.mlw"/>
910
<theory name="SelfStab_Ring" proved="true">
@@ -14,55 +15,42 @@
1415
<proof prover="1"><result status="valid" time="0.010000" steps="63"/></proof>
1516
</goal>
1617
<goal name="trans&#39;vc" expl="VC for trans" proved="true">
17-
<transf name="unfold" proved="true" arg1="refn">
18-
<goal name="trans&#39;vc.0" expl="VC for trans" proved="true">
19-
<transf name="unfold" proved="true" arg1="inv">
20-
<goal name="trans&#39;vc.0.0" expl="VC for trans" proved="true">
21-
<transf name="split_all_full" proved="true" >
22-
<goal name="trans&#39;vc.0.0.0" expl="postcondition" proved="true">
23-
<proof prover="1" timelimit="2000" memlimit="10000"><result status="valid" time="0.677646" steps="32013"/></proof>
24-
</goal>
25-
<goal name="trans&#39;vc.0.0.1" expl="postcondition" proved="true">
26-
<proof prover="1" timelimit="2000" memlimit="10000"><result status="valid" time="0.006451" steps="8"/></proof>
27-
</goal>
28-
<goal name="trans&#39;vc.0.0.2" expl="postcondition" proved="true">
29-
<proof prover="0"><result status="valid" time="0.249825" steps="1869273"/></proof>
30-
</goal>
31-
<goal name="trans&#39;vc.0.0.3" expl="postcondition" proved="true">
32-
<proof prover="1" timelimit="2000" memlimit="10000"><result status="valid" time="0.629224" steps="24855"/></proof>
33-
</goal>
34-
<goal name="trans&#39;vc.0.0.4" expl="postcondition" proved="true">
35-
<proof prover="0" memlimit="5000"><result status="valid" time="0.021162" steps="79453"/></proof>
36-
</goal>
37-
<goal name="trans&#39;vc.0.0.5" expl="postcondition" proved="true">
38-
<proof prover="0"><result status="valid" time="0.061491" steps="356952"/></proof>
39-
</goal>
40-
<goal name="trans&#39;vc.0.0.6" expl="postcondition" proved="true">
41-
<proof prover="0"><result status="valid" time="3.168135" steps="36850612"/></proof>
42-
</goal>
43-
<goal name="trans&#39;vc.0.0.7" expl="postcondition" proved="true">
44-
<proof prover="1" timelimit="2000" memlimit="10000"><result status="valid" time="0.931713" steps="18109"/></proof>
45-
</goal>
46-
</transf>
18+
<transf name="split_vc" proved="true" >
19+
<goal name="trans&#39;vc.0" expl="postcondition" proved="true">
20+
<proof prover="0"><result status="valid" time="0.019041" steps="93182"/></proof>
21+
</goal>
22+
<goal name="trans&#39;vc.1" expl="postcondition" proved="true">
23+
<proof prover="0"><result status="valid" time="0.049745" steps="290026"/></proof>
24+
</goal>
25+
<goal name="trans&#39;vc.2" expl="postcondition" proved="true">
26+
<transf name="split_vc" proved="true" >
27+
<goal name="trans&#39;vc.2.0" expl="postcondition" proved="true">
28+
<proof prover="0"><result status="valid" time="0.055320" steps="382612"/></proof>
29+
</goal>
30+
<goal name="trans&#39;vc.2.1" expl="postcondition" proved="true">
31+
<proof prover="0"><result status="valid" time="0.197494" steps="1408637"/></proof>
4732
</goal>
4833
</transf>
4934
</goal>
35+
<goal name="trans&#39;vc.3" expl="postcondition" proved="true">
36+
<proof prover="1" timelimit="1"><result status="valid" time="0.044877" steps="1205"/></proof>
37+
</goal>
5038
</transf>
5139
</goal>
5240
<goal name="Refinement.initWorldA&#39;refn&#39;vc" expl="VC for initWorldA&#39;refn" proved="true">
53-
<proof prover="1"><result status="valid" time="0.020000" steps="146"/></proof>
41+
<proof prover="1" timelimit="2000" memlimit="5000"><result status="valid" time="0.017978" steps="146"/></proof>
5442
</goal>
5543
<goal name="Refinement.initWorldC&#39;refn&#39;vc" expl="VC for initWorldC&#39;refn" proved="true">
56-
<proof prover="1"><result status="valid" time="0.100000" steps="1225"/></proof>
44+
<proof prover="1"><result status="valid" time="0.100000" steps="1181"/></proof>
5745
</goal>
5846
<goal name="Refinement.stepA&#39;refn&#39;vc" expl="VC for stepA&#39;refn" proved="true">
59-
<proof prover="1"><result status="valid" time="0.010000" steps="27"/></proof>
47+
<proof prover="2"><result status="valid" time="0.035030" steps="27441"/></proof>
6048
</goal>
6149
<goal name="Refinement.stepC&#39;refn&#39;vc" expl="VC for stepC&#39;refn" proved="true">
62-
<proof prover="1"><result status="valid" time="0.010000" steps="72"/></proof>
50+
<proof prover="1"><result status="valid" time="0.010000" steps="73"/></proof>
6351
</goal>
6452
<goal name="oneToken" proved="true">
65-
<proof prover="1"><result status="valid" time="0.010000" steps="23"/></proof>
53+
<proof prover="1" timelimit="2000" memlimit="5000"><result status="valid" time="0.008986" steps="23"/></proof>
6654
</goal>
6755
</theory>
6856
</file>
Binary file not shown.

0 commit comments

Comments
 (0)