Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Why3
why3
Commits
2979d04c
Commit
2979d04c
authored
Sep 15, 2016
by
MARCHE Claude
Browse files
Driver Alt-Ergo: uap directly Euclidean div and mod to Alt-Ergo
parent
0c44fc48
Changes
31
Hide whitespace changes
Inline
Side-by-side
drivers/alt_ergo.drv
View file @
2979d04c
...
...
@@ -7,39 +7,6 @@ import "no-bv.gen"
valid "^Inconsistent assumption$"
theory int.EuclideanDivision
(* protection against wrong semantics for negative arguments
last checked on 1.20.prv: this is still needed
*)
prelude "logic safe_eucl_div: int, int -> int"
prelude "axiom safe_eucl_div_def: forall x, y:int. x >= 0 and y > 0 -> safe_eucl_div(x,y) = x / y"
prelude "logic safe_eucl_mod: int, int -> int"
prelude "axiom safe_eucl_mod_def: forall x, y:int. x >= 0 and y > 0 -> safe_eucl_mod(x,y) = x % y"
syntax function div "safe_eucl_div(%1,%2)"
syntax function mod "safe_eucl_mod(%1,%2)"
end
theory int.ComputerDivision
(* protection against wrong semantics for negative arguments
last checked on 1.20.prv: this is still needed
*)
prelude "logic safe_comp_div: int, int -> int"
prelude "axiom safe_comp_div_def: forall x, y:int. x >= 0 and y > 0 -> safe_comp_div(x,y) = x / y"
prelude "logic safe_comp_mod: int, int -> int"
prelude "axiom safe_comp_mod_def: forall x, y:int. x >= 0 and y > 0 -> safe_comp_mod(x,y) = x % y"
syntax function div "safe_comp_div(%1,%2)"
syntax function mod "safe_comp_mod(%1,%2)"
end
(*
...
...
drivers/alt_ergo_common.drv
View file @
2979d04c
...
...
@@ -88,6 +88,26 @@ theory int.Int
end
theory int.EuclideanDivision
syntax function div "(%1 / %2)"
syntax function mod "(%1 % %2)"
end
theory int.ComputerDivision
prelude "logic comp_div: int, int -> int"
prelude "axiom comp_div_def: forall x, y:int. x >= 0 and y > 0 -> comp_div(x,y) = x / y"
prelude "logic comp_mod: int, int -> int"
prelude "axiom comp_mod_def: forall x, y:int. x >= 0 and y > 0 -> comp_mod(x,y) = x % y"
syntax function div "comp_div(%1,%2)"
syntax function mod "comp_mod(%1,%2)"
end
theory real.Real
...
...
examples/WP_revisited/blocking_semantics5/why3session.xml
View file @
2979d04c
...
...
@@ -38,7 +38,7 @@
<proof
prover=
"0"
edited=
"blocking_semantics5_SemOp_steps_non_neg_1.v"
><result
status=
"valid"
time=
"0.80"
/></proof>
</goal>
</theory>
<theory
name=
"TestSemantics"
sum=
"
5386d426772b7907db51e574cfc3e48a
"
>
<theory
name=
"TestSemantics"
sum=
"
d19bd426b13b2949609e8ccb0829f621
"
>
<goal
name=
"Test13"
>
<proof
prover=
"9"
><result
status=
"valid"
time=
"0.02"
steps=
"16"
/></proof>
<proof
prover=
"10"
><result
status=
"valid"
time=
"0.03"
/></proof>
...
...
@@ -57,7 +57,7 @@
<proof
prover=
"9"
><result
status=
"valid"
time=
"0.05"
steps=
"107"
/></proof>
</goal>
<goal
name=
"If42"
>
<proof
prover=
"0"
timelimit=
"6"
edited=
"blocking_semantics5_TestSemantics_If42_1.v"
><result
status=
"valid"
time=
"1.
2
8"
/></proof>
<proof
prover=
"0"
timelimit=
"6"
edited=
"blocking_semantics5_TestSemantics_If42_1.v"
><result
status=
"valid"
time=
"1.
5
8"
/></proof>
</goal>
</theory>
<theory
name=
"Typing"
sum=
"d41d8cd98f00b204e9800998ecf8427e"
>
...
...
@@ -90,14 +90,14 @@
<proof
prover=
"9"
><result
status=
"valid"
time=
"0.08"
steps=
"143"
/></proof>
</goal>
<goal
name=
"eval_type_term.1.4"
expl=
"4."
>
<proof
prover=
"0"
edited=
"blocking_semantics5_TypingAndSemantics_eval_type_term_1.v"
><result
status=
"valid"
time=
"
1.57
"
/></proof>
<proof
prover=
"0"
edited=
"blocking_semantics5_TypingAndSemantics_eval_type_term_1.v"
><result
status=
"valid"
time=
"
2.24
"
/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal
name=
"type_preservation"
>
<proof
prover=
"0"
edited=
"blocking_semantics5_TypingAndSemantics_type_preservation_1.v"
><result
status=
"valid"
time=
"
1.87
"
/></proof>
<proof
prover=
"0"
edited=
"blocking_semantics5_TypingAndSemantics_type_preservation_1.v"
><result
status=
"valid"
time=
"
2.30
"
/></proof>
</goal>
</theory>
<theory
name=
"FreshVariables"
sum=
"490368b5a16b190f6c29edfc9b0d5a6b"
>
...
...
@@ -164,14 +164,14 @@
<proof
prover=
"9"
><result
status=
"valid"
time=
"0.03"
steps=
"79"
/></proof>
</goal>
<goal
name=
"eval_msubst.1.9"
expl=
"9."
>
<proof
prover=
"3"
><result
status=
"valid"
time=
"
3.56
"
/></proof>
<proof
prover=
"3"
><result
status=
"valid"
time=
"
4.08
"
/></proof>
<proof
prover=
"9"
timelimit=
"30"
><result
status=
"valid"
time=
"0.23"
steps=
"586"
/></proof>
</goal>
<goal
name=
"eval_msubst.1.10"
expl=
"10."
>
<proof
prover=
"9"
><result
status=
"valid"
time=
"0.30"
steps=
"655"
/></proof>
</goal>
<goal
name=
"eval_msubst.1.11"
expl=
"11."
>
<proof
prover=
"0"
edited=
"blocking_semantics5_FreshVariables_eval_msubst_2.v"
><result
status=
"valid"
time=
"1.
21
"
/></proof>
<proof
prover=
"0"
edited=
"blocking_semantics5_FreshVariables_eval_msubst_2.v"
><result
status=
"valid"
time=
"1.
54
"
/></proof>
</goal>
<goal
name=
"eval_msubst.1.12"
expl=
"12."
>
<proof
prover=
"9"
><result
status=
"valid"
time=
"0.30"
steps=
"561"
/></proof>
...
...
@@ -189,7 +189,7 @@
<proof
prover=
"9"
><result
status=
"valid"
time=
"0.04"
steps=
"12"
/></proof>
</goal>
<goal
name=
"eval_swap_term.1.2"
expl=
"2."
>
<proof
prover=
"0"
edited=
"blocking_semantics5_FreshVariables_eval_swap_term_1.v"
><result
status=
"valid"
time=
"1.
3
6"
/></proof>
<proof
prover=
"0"
edited=
"blocking_semantics5_FreshVariables_eval_swap_term_1.v"
><result
status=
"valid"
time=
"1.6
8
"
/></proof>
</goal>
<goal
name=
"eval_swap_term.1.3"
expl=
"3."
>
<proof
prover=
"3"
><result
status=
"valid"
time=
"0.05"
/></proof>
...
...
@@ -345,7 +345,7 @@
<proof
prover=
"3"
><result
status=
"valid"
time=
"0.24"
/></proof>
</goal>
<goal
name=
"skip_rule"
>
<proof
prover=
"0"
edited=
"blocking_semantics5_HoareLogic_skip_rule_1.v"
><result
status=
"valid"
time=
"
1.14
"
/></proof>
<proof
prover=
"0"
edited=
"blocking_semantics5_HoareLogic_skip_rule_1.v"
><result
status=
"valid"
time=
"
0.92
"
/></proof>
</goal>
<goal
name=
"assign_rule"
>
<proof
prover=
"0"
timelimit=
"12"
edited=
"blocking_semantics5_HoareLogic_assign_rule_1.v"
><result
status=
"valid"
time=
"1.86"
/></proof>
...
...
@@ -379,7 +379,7 @@
<proof
prover=
"12"
><result
status=
"valid"
time=
"0.10"
/></proof>
</goal>
<goal
name=
"monotonicity.1.2"
expl=
"2."
>
<proof
prover=
"0"
timelimit=
"30"
edited=
"blocking_semantics5_WP_monotonicity_1.v"
><result
status=
"valid"
time=
"1.
45
"
/></proof>
<proof
prover=
"0"
timelimit=
"30"
edited=
"blocking_semantics5_WP_monotonicity_1.v"
><result
status=
"valid"
time=
"1.
70
"
/></proof>
</goal>
<goal
name=
"monotonicity.1.3"
expl=
"3."
>
<proof
prover=
"3"
timelimit=
"5"
><result
status=
"valid"
time=
"0.14"
/></proof>
...
...
@@ -428,7 +428,7 @@
</transf>
</goal>
<goal
name=
"wp_preserved_by_reduction"
>
<proof
prover=
"0"
memlimit=
"4000"
edited=
"blocking_semantics5_WP_wp_preserved_by_reduction_4.v"
><result
status=
"valid"
time=
"2.
2
4"
/></proof>
<proof
prover=
"0"
memlimit=
"4000"
edited=
"blocking_semantics5_WP_wp_preserved_by_reduction_4.v"
><result
status=
"valid"
time=
"2.
8
4"
/></proof>
</goal>
<goal
name=
"progress"
>
<transf
name=
"induction_ty_lex"
>
...
...
examples/WP_revisited/blocking_semantics5/why3shapes.gz
View file @
2979d04c
No preview for this file type
examples/bitcount/why3session.xml
View file @
2979d04c
...
...
@@ -5,12 +5,13 @@
<prover
id=
"0"
name=
"Alt-Ergo"
version=
"0.99.1"
timelimit=
"5"
steplimit=
"0"
memlimit=
"1000"
/>
<prover
id=
"1"
name=
"CVC3"
version=
"2.4.1"
timelimit=
"30"
steplimit=
"0"
memlimit=
"1000"
/>
<prover
id=
"2"
name=
"CVC4"
version=
"1.4"
timelimit=
"5"
steplimit=
"0"
memlimit=
"1000"
/>
<prover
id=
"3"
name=
"Alt-Ergo"
version=
"1.01"
timelimit=
"1"
steplimit=
"0"
memlimit=
"1000"
/>
<prover
id=
"4"
name=
"Z3"
version=
"4.4.0"
timelimit=
"5"
steplimit=
"0"
memlimit=
"1000"
/>
<prover
id=
"5"
name=
"CVC4"
version=
"1.4"
alternative=
"noBV"
timelimit=
"30"
steplimit=
"0"
memlimit=
"1000"
/>
<file
name=
"../bitcount.mlw"
expanded=
"true"
>
<theory
name=
"BitCount8bit_fact"
sum=
"eb4b1bf6da7b0da8d18857818ce50281"
expanded=
"true"
>
<theory
name=
"BitCount8bit_fact"
sum=
"eb4b1bf6da7b0da8d18857818ce50281"
>
<goal
name=
"nth_as_bv_is_int"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.18"
steps=
"9
2
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.18"
steps=
"9
0
"
/></proof>
</goal>
<goal
name=
"WP_parameter step1"
expl=
"VC for step1"
>
<transf
name=
"split_goal_wp"
>
...
...
@@ -25,10 +26,10 @@
</transf>
</goal>
<goal
name=
"WP_parameter step1.2"
expl=
"2. postcondition"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"2.88"
steps=
"6
59
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"2.88"
steps=
"6
71
"
/></proof>
</goal>
<goal
name=
"WP_parameter step1.3"
expl=
"3. postcondition"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.50"
steps=
"18
5
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.50"
steps=
"18
7
"
/></proof>
</goal>
</transf>
</goal>
...
...
@@ -63,16 +64,16 @@
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.10"
steps=
"89"
/></proof>
</goal>
<goal
name=
"WP_parameter step2.5.2"
expl=
"2. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.65"
steps=
"14
9
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.65"
steps=
"14
7
"
/></proof>
</goal>
<goal
name=
"WP_parameter step2.5.3"
expl=
"3. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.
42
"
steps=
"14
2
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.
65
"
steps=
"14
8
"
/></proof>
</goal>
<goal
name=
"WP_parameter step2.5.4"
expl=
"4. assertion"
>
<proof
prover=
"2"
><result
status=
"valid"
time=
"0.07"
/></proof>
</goal>
<goal
name=
"WP_parameter step2.5.5"
expl=
"5. assertion"
>
<proof
prover=
"5"
><result
status=
"valid"
time=
"
5.20
"
/></proof>
<proof
prover=
"5"
><result
status=
"valid"
time=
"
6.12
"
/></proof>
</goal>
</transf>
</goal>
...
...
@@ -80,7 +81,7 @@
<proof
prover=
"2"
><result
status=
"valid"
time=
"0.05"
/></proof>
</goal>
<goal
name=
"WP_parameter step2.7"
expl=
"7. postcondition"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.32"
steps=
"1
31
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.32"
steps=
"1
40
"
/></proof>
</goal>
</transf>
</goal>
...
...
@@ -105,7 +106,7 @@
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.04"
steps=
"74"
/></proof>
</goal>
<goal
name=
"WP_parameter prove.7"
expl=
"7. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"1.10"
steps=
"19
6
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"1.10"
steps=
"19
9
"
/></proof>
</goal>
<goal
name=
"WP_parameter prove.8"
expl=
"8. postcondition"
>
<proof
prover=
"2"
><result
status=
"valid"
time=
"0.14"
/></proof>
...
...
@@ -137,20 +138,20 @@
</transf>
</goal>
</theory>
<theory
name=
"BitCounting32"
sum=
"26d2716fa6dd73aaa13932d1cc094aa4"
expanded=
"true"
>
<goal
name=
"WP_parameter proof0"
expl=
"VC for proof0"
expanded=
"true"
>
<transf
name=
"split_goal_wp"
expanded=
"true"
>
<theory
name=
"BitCounting32"
sum=
"26d2716fa6dd73aaa13932d1cc094aa4"
>
<goal
name=
"WP_parameter proof0"
expl=
"VC for proof0"
>
<transf
name=
"split_goal_wp"
>
<goal
name=
"WP_parameter proof0.1"
expl=
"1. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.04"
steps=
"80"
/></proof>
</goal>
<goal
name=
"WP_parameter proof0.2"
expl=
"2. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.03"
steps=
"7
8
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.03"
steps=
"7
9
"
/></proof>
</goal>
<goal
name=
"WP_parameter proof0.3"
expl=
"3. assertion"
expanded=
"true"
>
<transf
name=
"split_goal_wp"
expanded=
"true"
>
<goal
name=
"WP_parameter proof0.3.1"
expl=
"1. VC for proof0"
expanded=
"true"
>
<transf
name=
"introduce_premises"
expanded=
"true"
>
<goal
name=
"WP_parameter proof0.3.1.1"
expl=
"1. VC for proof0"
expanded=
"true"
>
<goal
name=
"WP_parameter proof0.3"
expl=
"3. assertion"
>
<transf
name=
"split_goal_wp"
>
<goal
name=
"WP_parameter proof0.3.1"
expl=
"1. VC for proof0"
>
<transf
name=
"introduce_premises"
>
<goal
name=
"WP_parameter proof0.3.1.1"
expl=
"1. VC for proof0"
>
<proof
prover=
"2"
><result
status=
"valid"
time=
"0.17"
/></proof>
</goal>
</transf>
...
...
@@ -159,7 +160,7 @@
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.04"
steps=
"109"
/></proof>
</goal>
<goal
name=
"WP_parameter proof0.3.3"
expl=
"3. VC for proof0"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.83"
steps=
"18
3
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.83"
steps=
"18
7
"
/></proof>
</goal>
</transf>
</goal>
...
...
@@ -186,18 +187,18 @@
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.04"
steps=
"87"
/></proof>
</goal>
<goal
name=
"WP_parameter proof1.6"
expl=
"6. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.63"
steps=
"14
6
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.63"
steps=
"14
4
"
/></proof>
</goal>
<goal
name=
"WP_parameter proof1.7"
expl=
"7. assertion"
>
<transf
name=
"split_goal_wp"
>
<goal
name=
"WP_parameter proof1.7.1"
expl=
"1. VC for proof1"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.03"
steps=
"8
3
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.03"
steps=
"8
4
"
/></proof>
</goal>
<goal
name=
"WP_parameter proof1.7.2"
expl=
"2. VC for proof1"
>
<proof
prover=
"2"
><result
status=
"valid"
time=
"0.05"
/></proof>
</goal>
<goal
name=
"WP_parameter proof1.7.3"
expl=
"3. VC for proof1"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.04"
steps=
"
87
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.04"
steps=
"
90
"
/></proof>
</goal>
</transf>
</goal>
...
...
@@ -227,24 +228,25 @@
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.04"
steps=
"75"
/></proof>
</goal>
<goal
name=
"WP_parameter proof2.7"
expl=
"7. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.06"
steps=
"9
0
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.06"
steps=
"9
1
"
/></proof>
</goal>
<goal
name=
"WP_parameter proof2.8"
expl=
"8. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.58"
steps=
"150"
/></proof>
</goal>
<goal
name=
"WP_parameter proof2.9"
expl=
"9. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.80"
steps=
"148"
/></proof>
<proof
prover=
"2"
timelimit=
"1"
><result
status=
"valid"
time=
"0.06"
/></proof>
<proof
prover=
"3"
><result
status=
"valid"
time=
"0.23"
steps=
"164"
/></proof>
</goal>
<goal
name=
"WP_parameter proof2.10"
expl=
"10. assertion"
>
<transf
name=
"split_goal_wp"
>
<goal
name=
"WP_parameter proof2.10.1"
expl=
"1. VC for proof2"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.03"
steps=
"8
6
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.03"
steps=
"8
7
"
/></proof>
</goal>
<goal
name=
"WP_parameter proof2.10.2"
expl=
"2. VC for proof2"
>
<proof
prover=
"2"
><result
status=
"valid"
time=
"0.07"
/></proof>
</goal>
<goal
name=
"WP_parameter proof2.10.3"
expl=
"3. VC for proof2"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.03"
steps=
"8
7
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.03"
steps=
"8
9
"
/></proof>
</goal>
</transf>
</goal>
...
...
@@ -280,24 +282,24 @@
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.04"
steps=
"76"
/></proof>
</goal>
<goal
name=
"WP_parameter proof3.9"
expl=
"9. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.05"
steps=
"9
2
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.05"
steps=
"9
3
"
/></proof>
</goal>
<goal
name=
"WP_parameter proof3.10"
expl=
"10. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.57"
steps=
"15
4
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.57"
steps=
"15
6
"
/></proof>
</goal>
<goal
name=
"WP_parameter proof3.11"
expl=
"11. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.06"
steps=
"9
2
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.06"
steps=
"9
3
"
/></proof>
</goal>
<goal
name=
"WP_parameter proof3.12"
expl=
"12. assertion"
>
<transf
name=
"split_goal_wp"
>
<goal
name=
"WP_parameter proof3.12.1"
expl=
"1. VC for proof3"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.04"
steps=
"8
8
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.04"
steps=
"8
9
"
/></proof>
</goal>
<goal
name=
"WP_parameter proof3.12.2"
expl=
"2. VC for proof3"
>
<proof
prover=
"2"
><result
status=
"valid"
time=
"0.07"
/></proof>
</goal>
<goal
name=
"WP_parameter proof3.12.3"
expl=
"3. VC for proof3"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.03"
steps=
"
8
9"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.03"
steps=
"9
1
"
/></proof>
</goal>
</transf>
</goal>
...
...
@@ -344,7 +346,7 @@
<proof
prover=
"2"
><result
status=
"valid"
time=
"0.04"
/></proof>
</goal>
<goal
name=
"WP_parameter prove.11.2"
expl=
"2. VC for prove"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.04"
steps=
"8
6
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.04"
steps=
"8
7
"
/></proof>
</goal>
</transf>
</goal>
...
...
@@ -382,11 +384,11 @@
</transf>
</goal>
</theory>
<theory
name=
"Hamming"
sum=
"2cd12bdbec0aedf67a99c522df3c7f59"
expanded=
"true"
>
<theory
name=
"Hamming"
sum=
"2cd12bdbec0aedf67a99c522df3c7f59"
>
<goal
name=
"WP_parameter hammingD"
expl=
"VC for hammingD"
>
<transf
name=
"split_goal_wp"
>
<goal
name=
"WP_parameter hammingD.1"
expl=
"1. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"1.00"
steps=
"
408
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"1.00"
steps=
"
382
"
/></proof>
</goal>
<goal
name=
"WP_parameter hammingD.2"
expl=
"2. postcondition"
>
<proof
prover=
"4"
><result
status=
"valid"
time=
"0.02"
/></proof>
...
...
@@ -402,7 +404,7 @@
<goal
name=
"WP_parameter separation"
expl=
"VC for separation"
>
<transf
name=
"split_goal_wp"
>
<goal
name=
"WP_parameter separation.1"
expl=
"1. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"1.
23
"
steps=
"4
7
4"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"1.
00
"
steps=
"44
7
"
/></proof>
</goal>
<goal
name=
"WP_parameter separation.2"
expl=
"2. postcondition"
>
<transf
name=
"split_goal_wp"
>
...
...
@@ -410,7 +412,7 @@
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.04"
steps=
"72"
/></proof>
</goal>
<goal
name=
"WP_parameter separation.2.2"
expl=
"2. VC for separation"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.65"
steps=
"32
5
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.65"
steps=
"32
2
"
/></proof>
</goal>
</transf>
</goal>
...
...
@@ -427,7 +429,7 @@
<proof
prover=
"2"
><result
status=
"valid"
time=
"0.04"
/></proof>
</goal>
</theory>
<theory
name=
"AsciiCode"
sum=
"40cee207ec73f2774d5dda1e1960e191"
expanded=
"true"
>
<theory
name=
"AsciiCode"
sum=
"40cee207ec73f2774d5dda1e1960e191"
>
<goal
name=
"WP_parameter bv_even"
expl=
"VC for bv_even"
>
<transf
name=
"split_goal_wp"
>
<goal
name=
"WP_parameter bv_even.1"
expl=
"1. assertion"
>
...
...
@@ -443,7 +445,7 @@
<proof
prover=
"1"
><result
status=
"valid"
time=
"0.42"
/></proof>
</goal>
<goal
name=
"WP_parameter bv_even.5"
expl=
"5. postcondition"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.09"
steps=
"11
4
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.09"
steps=
"11
5
"
/></proof>
</goal>
</transf>
</goal>
...
...
@@ -477,7 +479,7 @@
<goal
name=
"WP_parameter ascii"
expl=
"VC for ascii"
>
<transf
name=
"split_goal_wp"
>
<goal
name=
"WP_parameter ascii.1"
expl=
"1. precondition"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.30"
steps=
"2
48
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.30"
steps=
"2
35
"
/></proof>
<proof
prover=
"2"
><result
status=
"valid"
time=
"0.04"
/></proof>
</goal>
<goal
name=
"WP_parameter ascii.2"
expl=
"2. assertion"
>
...
...
@@ -499,10 +501,10 @@
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.08"
steps=
"93"
/></proof>
</goal>
<goal
name=
"WP_parameter ascii.4.2"
expl=
"2. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.19"
steps=
"11
8
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.19"
steps=
"11
6
"
/></proof>
</goal>
<goal
name=
"WP_parameter ascii.4.3"
expl=
"3. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.
55
"
steps=
"1
76
"
/></proof>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.
84
"
steps=
"1
94
"
/></proof>
</goal>
<goal
name=
"WP_parameter ascii.4.4"
expl=
"4. assertion"
>
<proof
prover=
"4"
><result
status=
"valid"
time=
"0.03"
/></proof>
...
...
examples/bitwalker/why3session.xml
View file @
2979d04c
...
...
@@ -9,6 +9,8 @@
<prover
id=
"4"
name=
"Alt-Ergo"
version=
"1.00.prv"
timelimit=
"5"
steplimit=
"0"
memlimit=
"1000"
/>
<prover
id=
"5"
name=
"Z3"
version=
"4.4.0"
timelimit=
"5"
steplimit=
"0"
memlimit=
"1000"
/>
<prover
id=
"6"
name=
"CVC4"
version=
"1.4"
alternative=
"noBV"
timelimit=
"5"
steplimit=
"0"
memlimit=
"1000"
/>
<prover
id=
"7"
name=
"Alt-Ergo"
version=
"1.01"
timelimit=
"5"
steplimit=
"0"
memlimit=
"1000"
/>
<prover
id=
"8"
name=
"Z3"
version=
"4.4.1"
timelimit=
"1"
steplimit=
"0"
memlimit=
"1000"
/>
<file
name=
"../bitwalker.mlw"
expanded=
"true"
>
<theory
name=
"Bitwalker"
sum=
"6755724df7c462879051ab2676cc5753"
expanded=
"true"
>
<goal
name=
"nth64"
>
...
...
@@ -162,8 +164,8 @@
</goal>
</transf>
</goal>
<goal
name=
"WP_parameter peek"
expl=
"VC for peek"
expanded=
"true"
>
<transf
name=
"split_goal_wp"
expanded=
"true"
>
<goal
name=
"WP_parameter peek"
expl=
"VC for peek"
>
<transf
name=
"split_goal_wp"
>
<goal
name=
"WP_parameter peek.1"
expl=
"1. precondition"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.06"
steps=
"79"
/></proof>
<proof
prover=
"3"
><result
status=
"valid"
time=
"0.03"
/></proof>
...
...
@@ -649,7 +651,8 @@
<proof
prover=
"3"
><result
status=
"valid"
time=
"0.08"
/></proof>
</goal>
<goal
name=
"WP_parameter pokethenpeek.9"
expl=
"9. assertion"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"1.00"
steps=
"341"
/></proof>
<proof
prover=
"7"
><result
status=
"valid"
time=
"3.54"
steps=
"212"
/></proof>
<proof
prover=
"8"
><result
status=
"valid"
time=
"0.02"
/></proof>
</goal>
<goal
name=
"WP_parameter pokethenpeek.10"
expl=
"10. postcondition"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.18"
steps=
"94"
/></proof>
...
...
examples/hashtbl_impl/why3session.xml
View file @
2979d04c
...
...
@@ -8,7 +8,7 @@
<prover
id=
"3"
name=
"Coq"
version=
"8.4pl6"
timelimit=
"5"
steplimit=
"0"
memlimit=
"1000"
/>
<prover
id=
"7"
name=
"Z3"
version=
"4.3.2"
timelimit=
"5"
steplimit=
"0"
memlimit=
"1000"
/>
<file
name=
"../hashtbl_impl.mlw"
expanded=
"true"
>
<theory
name=
"HashtblImpl"
sum=
"c
b495cd4418da69924cc3e0684ab0622
"
expanded=
"true"
>
<theory
name=
"HashtblImpl"
sum=
"c
0d16c1baac552217afa0ad022f76219
"
expanded=
"true"
>
<goal
name=
"bucket_bounds"
>
<proof
prover=
"0"
><result
status=
"valid"
time=
"0.03"
steps=
"16"
/></proof>
</goal>
...
...
@@ -236,7 +236,7 @@
<proof
prover=
"1"
><result
status=
"valid"
time=
"0.08"
/></proof>
</goal>
<goal
name=
"WP_parameter add.4"
expl=
"4. type invariant"
>
<proof
prover=
"3"
edited=
"hashtbl_impl_HashtblImpl_WP_parameter_add_1.v"
><result
status=
"valid"
time=
"
1.2
4"
/></proof>
<proof
prover=
"3"
edited=
"hashtbl_impl_HashtblImpl_WP_parameter_add_1.v"
><result
status=
"valid"
time=
"
2.7
4"
/></proof>
</goal>
<goal
name=
"WP_parameter add.5"
expl=
"5. type invariant"
>
<transf
name=
"inline_all"
>
...
...
examples/hashtbl_impl/why3shapes.gz
View file @
2979d04c
No preview for this file type
examples/linear_probing/why3session.xml
View file @
2979d04c
...
...
@@ -12,7 +12,7 @@
<proof
prover=
"6"
><result
status=
"valid"
time=
"0.01"
steps=
"8"
/></proof>
</goal>
</theory>
<theory
name=
"LinearProbing"
sum=
"
1cbb56a699a651dee5d971c187b7dba
9"
expanded=
"true"
>
<theory
name=
"LinearProbing"
sum=
"
0768e41be6d75fc5c0046b869102842
9"
expanded=
"true"
>
<goal
name=
"bucket_bounds"
>
<proof
prover=
"6"
><result
status=
"valid"
time=
"0.02"
steps=
"16"
/></proof>
</goal>
...
...
@@ -480,12 +480,12 @@
<ip_library
name=
"list"
/>
<ip_qualid
name=
"list"
/>
</ts_pos>
<ts_pos
name=
"ref"
arity=
"1"
id=
"466
9
"
<ts_pos
name=
"ref"
arity=
"1"
id=
"466
8
"
ip_theory=
"Ref"
>
<ip_library
name=
"ref"
/>
<ip_qualid
name=
"ref"
/>
</ts_pos>
<ts_pos
name=
"t"
arity=
"0"
id=
"685
8
"
<ts_pos
name=
"t"
arity=
"0"
id=
"685
7
"
ip_theory=
"LinearProbing"
>
<ip_qualid
name=
"t"
/>
</ts_pos>
...
...
@@ -574,26 +574,26 @@
<ip_library
name=
"map"
/>
<ip_qualid
name=
"mixfix [<-]"
/>
</ls_pos>
<ls_pos
name=
"prefix !"
id=
"467
5
"
<ls_pos
name=
"prefix !"
id=
"467
4
"
ip_theory=
"Ref"
>
<ip_library
name=
"ref"
/>
<ip_qualid
name=
"prefix !"
/>
</ls_pos>
<ls_pos
name=
"set"
id=
"484
2
"
<ls_pos
name=
"set"
id=
"484
1
"
ip_theory=
"Array"
>
<ip_library
name=
"array"
/>
<ip_qualid
name=
"set"
/>
</ls_pos>
<ls_pos
name=
"mixfix [<-]"
id=
"488
4
"
<ls_pos
name=
"mixfix [<-]"
id=
"488
3
"
ip_theory=
"Array"
>
<ip_library
name=
"array"
/>
<ip_qualid
name=
"mixfix [<-]"
/>
</ls_pos>
<ls_pos
name=
"numofd"
id=
"663
9
"
<ls_pos
name=
"numofd"
id=
"663
8
"
ip_theory=
"LinearProbing"
>
<ip_qualid
name=
"numofd"
/>
</ls_pos>
<ls_pos
name=
"next"
id=
"747
9
"
<ls_pos
name=
"next"
id=
"747
8
"
ip_theory=
"LinearProbing"
>
<ip_qualid
name=
"next"
/>
</ls_pos>
...
...
@@ -801,16 +801,16 @@
<ip_library
name=
"map"
/>
<ip_qualid
name=
"Select_neq"
/>
</pr_pos>
<pr_pos
name=
"bucket_bounds"
id=
"6
300
"
<pr_pos
name=
"bucket_bounds"
id=
"6
299
"
ip_theory=
"LinearProbing"
>
<ip_qualid
name=
"bucket_bounds"
/>
</pr_pos>
<pr_pos
name=
"numof_eq"
id=
"652
9
"
<pr_pos
name=
"numof_eq"
id=
"652
8
"
ip_theory=
"LinearProbing"
>
<ip_qualid
name=
"NumOfDummy"
/>
<ip_qualid
name=
"numof_eq"
/>
</pr_pos>
<pr_pos
name=
"dummy_const"
id=
"663
5
"
<pr_pos
name=
"dummy_const"
id=
"663
4
"
ip_theory=
"LinearProbing"
>
<ip_qualid
name=
"NumOfDummy"
/>
<ip_qualid
name=
"dummy_const"
/>
...
...
@@ -867,19 +867,19 @@
<meta_arg_ls
id=
"3301"
/>
</meta>
<meta
name=
"remove_logic"
>
<meta_arg_ls
id=
"467
5
"
/>
<meta_arg_ls
id=
"467
4
"
/>
</meta>
<meta
name=
"remove_logic"
>
<meta_arg_ls
id=
"484
2
"
/>
<meta_arg_ls
id=
"484
1
"
/>
</meta>
<meta
name=
"remove_logic"
>
<meta_arg_ls
id=
"488
4
"
/>
<meta_arg_ls
id=
"488
3
"
/>
</meta>
<meta
name=
"remove_logic"
>
<meta_arg_ls
id=
"663
9
"
/>
<meta_arg_ls
id=
"663
8
"
/>
</meta>
<meta
name=
"remove_logic"
>
<meta_arg_ls
id=
"747
9
"
/>
<meta_arg_ls
id=
"747
8
"
/>
</meta>
<meta
name=
"remove_prop"
>
<meta_arg_pr
id=
"1607"
/>
...
...
@@ -999,13 +999,13 @@
<meta_arg_pr
id=
"3323"
/>
</meta>
<meta
name=
"remove_prop"
>
<meta_arg_pr
id=
"6
300
"
/>
<meta_arg_pr
id=
"6
299
"
/>
</meta>
<meta
name=
"remove_prop"
>
<meta_arg_pr
id=
"652
9
"
/>
<meta_arg_pr
id=
"652
8
"
/>
</meta>
<meta
name=
"remove_prop"
>
<meta_arg_pr
id=
"663
5
"
/>
<meta_arg_pr
id=
"663
4
"
/>
</meta>
<meta
name=
"remove_type"
>
<meta_arg_ts
id=
"2600"
/>
...
...
@@ -1014,10 +1014,10 @@
<meta_arg_ts
id=
"2604"
/>
</meta>
<meta
name=
"remove_type"
>
<meta_arg_ts
id=
"466
9
"
/>
<meta_arg_ts
id=
"466
8
"
/>
</meta>
<meta
name=
"remove_type"
>
<meta_arg_ts
id=
"685
8
"
/>
<meta_arg_ts
id=
"685
7
"
/>
</meta>
<goal
name=
"WP_parameter copy.2"
expl=
"2. type invariant"
>
<proof
prover=
"4"
timelimit=
"5"
><result
status=
"valid"
time=
"0.19"
/></proof>
...
...
@@ -1025,7 +1025,7 @@
</metas>
</goal>
<goal
name=
"WP_parameter copy.3"
expl=
"3. type invariant"
>
<proof
prover=
"4"
><result
status=
"valid"
time=
"1.
26
"
/></proof>
<proof
prover=
"4"
><result
status=
"valid"
time=
"1.
49
"
/></proof>
</goal>
</transf>