Mentions légales du service
Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
why3
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Container registry
Monitor
Service Desk
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Why3
why3
Commits
e46f0376
Commit
e46f0376
authored
13 years ago
by
MARCHE Claude
Browse files
Options
Downloads
Patches
Plain Diff
playing with bitvectors
parent
351a654c
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
tests/bitvector.why
+263
-0
263 additions, 0 deletions
tests/bitvector.why
tests/bitvector/bitvector_TestBv32_to_int_0x80000000_1.v
+190
-0
190 additions, 0 deletions
tests/bitvector/bitvector_TestBv32_to_int_0x80000000_1.v
tests/bitvector/why3session.xml
+538
-0
538 additions, 0 deletions
tests/bitvector/why3session.xml
with
991 additions
and
0 deletions
tests/bitvector.why
0 → 100644
+
263
−
0
View file @
e46f0376
theory BitVector
use export bool.Bool
use import int.Int
function size : int
type bv
function nth bv int: bool
function bvzero : bv
axiom Nth_zero:
forall n:int. 0 <= n < size -> nth bvzero n = False
function bvone : bv
axiom Nth_one:
forall n:int. 0 <= n < size -> nth bvone n = True
predicate eq (v1 v2 : bv) =
forall n:int. 0 <= n < size -> nth v1 n = nth v2 n
axiom extensionality:
forall v1 v2 : bv. eq v1 v2 -> v1 = v2
function bw_and (v1 v2 : bv) : bv
axiom Nth_bw_and:
forall v1 v2:bv, n:int. 0 <= n < size ->
nth (bw_and v1 v2) n = andb (nth v1 n) (nth v2 n)
function bw_or (v1 v2 : bv) : bv
axiom Nth_bw_or:
forall v1 v2:bv, n:int. 0 <= n < size ->
nth (bw_or v1 v2) n = orb (nth v1 n) (nth v2 n)
function bw_xor (v1 v2 : bv) : bv
axiom Nth_bw_xor:
forall v1 v2:bv, n:int. 0 <= n < size ->
nth (bw_xor v1 v2) n = xorb (nth v1 n) (nth v2 n)
function bw_not (v : bv) : bv
axiom Nth_bw_not:
forall v:bv, n:int. 0 <= n < size ->
nth (bw_not v) n = notb (nth v n)
(* logical shift right *)
function lsr bv int : bv
axiom lsr_nth_low:
forall b:bv, n s:int.
0 <= n < size -> 0 <= s ->
n+s < size -> nth (lsr b s) n = nth b (n+s)
axiom lsr_nth_high:
forall b:bv, n s:int.
0 <= n < size -> 0 <= s ->
n+s >= size -> nth (lsr b s) n = False
(* arithmetic shift right *)
function asr bv int : bv
axiom asr_nth_low:
forall b:bv, n s:int.
0 <= n < size -> 0 <= s ->
n+s < size -> nth (asr b s) n = nth b (n+s)
axiom asr_nth_high:
forall b:bv, n s:int.
0 <= n < size -> 0 <= s ->
n+s >= size -> nth (asr b s) n = nth b (size-1)
(* logical shift left *)
function lsl bv int : bv
axiom lsl_nth_high:
forall b:bv, n s:int.
0 <= n < size -> 0 <= s ->
0 <= n-s -> nth (lsl b s) n = nth b (n-s)
axiom lsl_nth_low:
forall b:bv, n s:int.
0 <= n < size -> 0 <= s ->
0 > n-s -> nth (lsl b s) n = False
(* conversion to/from integers *)
function to_nat_aux bv int : int
(* (to_nat_aux b i) returns the non-negative integer whose
binary repr is b[size-1..i] *)
axiom to_nat_aux_zero :
forall b:bv, i:int.
0 <= i < size ->
nth b i = False ->
to_nat_aux b i = 2 * to_nat_aux b (i+1)
axiom to_nat_aux_one :
forall b:bv, i:int.
0 <= i < size ->
nth b i = True ->
to_nat_aux b i = 1 + 2 * to_nat_aux b (i+1)
axiom to_nat_aux_high :
forall b:bv, i:int.
i >= size ->
to_nat_aux b i = 0
function to_nat (b:bv) : int = to_nat_aux b 0
function to_int_aux bv int : int
(* (to_int_aux b i) returns the integer whose
2-complement binary repr is b[size-1..i] *)
axiom to_int_aux_zero :
forall b:bv, i:int.
0 <= i < size-1 ->
nth b i = False ->
to_int_aux b i = 2 * to_int_aux b (i+1)
axiom to_int_aux_one :
forall b:bv, i:int.
0 <= i < size-1 ->
nth b i = True ->
to_int_aux b i = 1 + 2 * to_int_aux b (i+1)
axiom to_int_aux_pos :
forall b:bv. nth b (size-1) = False ->
to_int_aux b (size-1) = 0
axiom to_int_aux_neg :
forall b:bv. nth b (size-1) = True ->
to_int_aux b (size-1) = -1
function to_int (b:bv) : int = to_int_aux b 0
end
theory BV32
function size : int = 32
clone export BitVector with function size = size
end
theory TestBv32
use import BV32
use import int.Int
goal Test1:
let b = bw_and bvzero bvone in nth b 1 = False
goal Test2:
let b = lsr bvone 16 in nth b 15 = True
goal Test3:
let b = lsr bvone 16 in nth b 16 = False
goal Test4:
let b = asr bvone 16 in nth b 15 = True
goal Test5:
let b = asr bvone 16 in nth b 16 = True
goal Test6:
let b = asr (lsr bvone 1) 16 in nth b 16 = False
goal to_nat_0x00000000:
to_nat bvzero = 0
goal to_nat_0x0000000F:
to_nat (lsr bvone 28) = 15
goal to_nat_0x0000001F:
to_nat (lsr bvone 27) = 31
goal to_nat_0x0000003F:
to_nat (lsr bvone 26) = 63
goal to_nat_0x0000007F:
to_nat (lsr bvone 25) = 127
goal to_nat_0x000000FF:
to_nat (lsr bvone 24) = 255
goal to_nat_0x000001FF:
to_nat (lsr bvone 23) = 511
goal to_nat_0x000003FF:
to_nat (lsr bvone 22) = 1023
goal to_nat_0x000007FF:
to_nat (lsr bvone 21) = 2047
goal to_nat_0x00000FFF:
to_nat (lsr bvone 20) = 4095
goal to_nat_0x00001FFF:
to_nat (lsr bvone 19) = 8191
goal to_nat_0x00003FFF:
to_nat (lsr bvone 18) = 16383
goal to_nat_0x00007FFF:
to_nat (lsr bvone 17) = 32767
goal to_nat_0x0000FFFF:
to_nat (lsr bvone 16) = 65535
(*
goal to_nat_smoke:
to_nat (lsr bvone 16) = 65536
*)
goal to_nat_0x0001FFFF:
to_nat (lsr bvone 15) = 131071
goal to_nat_0x0003FFFF:
to_nat (lsr bvone 14) = 262143
goal to_nat_0x0007FFFF:
to_nat (lsr bvone 13) = 524287
goal to_nat_0x000FFFFF:
to_nat (lsr bvone 12) = 1048575
goal to_nat_0x00FFFFFF:
to_nat (lsr bvone 8) = 16777215
goal to_nat_0xFFFFFFFF:
to_nat bvone = 4294967295
goal to_int_0x00000000:
to_int bvzero = 0
goal to_int_0xFFFFFFFF:
to_int bvone = -1
goal to_int_0x7FFFFFFF:
to_int (lsr bvone 1) = 2147483647
goal to_int_0x80000000:
to_int (lsl bvone 31) = -2147483648
goal to_int_0x0000FFFF:
to_int (lsr bvone 16) = 65535
goal to_int_smoke:
to_int (lsr bvone 16) = 65536
end
(*
Local Variables:
compile-command: "why3ide bitvector.why"
End:
*)
This diff is collapsed.
Click to expand it.
tests/bitvector/bitvector_TestBv32_to_int_0x80000000_1.v
0 → 100644
+
190
−
0
View file @
e46f0376
(
*
This
file
is
generated
by
Why3
'
s
Coq
driver
*
)
(
*
Beware
!
Only
edit
allowed
sections
below
*
)
Require
Import
ZArith
.
Require
Import
Rbase
.
Parameter
bv
:
Type
.
Parameter
nth
:
bv
->
Z
->
bool
.
Parameter
bvzero
:
bv
.
Axiom
Nth_zero
:
forall
(
n
:
Z
),
((
0
%
Z
<=
n
)
%
Z
/
\
(
n
<
32
%
Z
)
%
Z
)
->
((
nth
bvzero
n
)
=
false
).
Parameter
bvone
:
bv
.
Axiom
Nth_one
:
forall
(
n
:
Z
),
((
0
%
Z
<=
n
)
%
Z
/
\
(
n
<
32
%
Z
)
%
Z
)
->
((
nth
bvone
n
)
=
true
).
Definition
eq
(
v1
:
bv
)
(
v2
:
bv
)
:
Prop
:=
forall
(
n
:
Z
),
((
0
%
Z
<=
n
)
%
Z
/
\
(
n
<
32
%
Z
)
%
Z
)
->
((
nth
v1
n
)
=
(
nth
v2
n
)).
Axiom
extensionality
:
forall
(
v1
:
bv
)
(
v2
:
bv
),
(
eq
v1
v2
)
->
(
v1
=
v2
).
Parameter
bw_and
:
bv
->
bv
->
bv
.
Axiom
Nth_bw_and
:
forall
(
v1
:
bv
)
(
v2
:
bv
)
(
n
:
Z
),
((
0
%
Z
<=
n
)
%
Z
/
\
(
n
<
32
%
Z
)
%
Z
)
->
((
nth
(
bw_and
v1
v2
)
n
)
=
(
andb
(
nth
v1
n
)
(
nth
v2
n
))).
Parameter
bw_or
:
bv
->
bv
->
bv
.
Axiom
Nth_bw_or
:
forall
(
v1
:
bv
)
(
v2
:
bv
)
(
n
:
Z
),
((
0
%
Z
<=
n
)
%
Z
/
\
(
n
<
32
%
Z
)
%
Z
)
->
((
nth
(
bw_or
v1
v2
)
n
)
=
(
orb
(
nth
v1
n
)
(
nth
v2
n
))).
Parameter
bw_xor
:
bv
->
bv
->
bv
.
Axiom
Nth_bw_xor
:
forall
(
v1
:
bv
)
(
v2
:
bv
)
(
n
:
Z
),
((
0
%
Z
<=
n
)
%
Z
/
\
(
n
<
32
%
Z
)
%
Z
)
->
((
nth
(
bw_xor
v1
v2
)
n
)
=
(
xorb
(
nth
v1
n
)
(
nth
v2
n
))).
Parameter
bw_not
:
bv
->
bv
.
Axiom
Nth_bw_not
:
forall
(
v
:
bv
)
(
n
:
Z
),
((
0
%
Z
<=
n
)
%
Z
/
\
(
n
<
32
%
Z
)
%
Z
)
->
((
nth
(
bw_not
v
)
n
)
=
(
negb
(
nth
v
n
))).
Parameter
lsr
:
bv
->
Z
->
bv
.
Axiom
lsr_nth_low
:
forall
(
b
:
bv
)
(
n
:
Z
)
(
s
:
Z
),
((
0
%
Z
<=
n
)
%
Z
/
\
(
n
<
32
%
Z
)
%
Z
)
->
((
0
%
Z
<=
s
)
%
Z
->
(((
n
+
s
)
%
Z
<
32
%
Z
)
%
Z
->
((
nth
(
lsr
b
s
)
n
)
=
(
nth
b
(
n
+
s
)
%
Z
)))).
Axiom
lsr_nth_high
:
forall
(
b
:
bv
)
(
n
:
Z
)
(
s
:
Z
),
((
0
%
Z
<=
n
)
%
Z
/
\
(
n
<
32
%
Z
)
%
Z
)
->
((
0
%
Z
<=
s
)
%
Z
->
((
32
%
Z
<=
(
n
+
s
)
%
Z
)
%
Z
->
((
nth
(
lsr
b
s
)
n
)
=
false
))).
Parameter
asr
:
bv
->
Z
->
bv
.
Axiom
asr_nth_low
:
forall
(
b
:
bv
)
(
n
:
Z
)
(
s
:
Z
),
((
0
%
Z
<=
n
)
%
Z
/
\
(
n
<
32
%
Z
)
%
Z
)
->
((
0
%
Z
<=
s
)
%
Z
->
(((
n
+
s
)
%
Z
<
32
%
Z
)
%
Z
->
((
nth
(
asr
b
s
)
n
)
=
(
nth
b
(
n
+
s
)
%
Z
)))).
Axiom
asr_nth_high
:
forall
(
b
:
bv
)
(
n
:
Z
)
(
s
:
Z
),
((
0
%
Z
<=
n
)
%
Z
/
\
(
n
<
32
%
Z
)
%
Z
)
->
((
0
%
Z
<=
s
)
%
Z
->
((
32
%
Z
<=
(
n
+
s
)
%
Z
)
%
Z
->
((
nth
(
asr
b
s
)
n
)
=
(
nth
b
(
32
%
Z
-
1
%
Z
)
%
Z
)))).
Parameter
lsl
:
bv
->
Z
->
bv
.
Axiom
lsl_nth_high
:
forall
(
b
:
bv
)
(
n
:
Z
)
(
s
:
Z
),
((
0
%
Z
<=
n
)
%
Z
/
\
(
n
<
32
%
Z
)
%
Z
)
->
((
0
%
Z
<=
s
)
%
Z
->
((
0
%
Z
<=
(
n
-
s
)
%
Z
)
%
Z
->
((
nth
(
lsl
b
s
)
n
)
=
(
nth
b
(
n
-
s
)
%
Z
)))).
Axiom
lsl_nth_low
:
forall
(
b
:
bv
)
(
n
:
Z
)
(
s
:
Z
),
((
0
%
Z
<=
n
)
%
Z
/
\
(
n
<
32
%
Z
)
%
Z
)
->
((
0
%
Z
<=
s
)
%
Z
->
(((
n
-
s
)
%
Z
<
0
%
Z
)
%
Z
->
((
nth
(
lsl
b
s
)
n
)
=
false
))).
Parameter
to_nat_aux
:
bv
->
Z
->
Z
.
Axiom
to_nat_aux_zero
:
forall
(
b
:
bv
)
(
i
:
Z
),
((
0
%
Z
<=
i
)
%
Z
/
\
(
i
<
32
%
Z
)
%
Z
)
->
(((
nth
b
i
)
=
false
)
->
((
to_nat_aux
b
i
)
=
(
2
%
Z
*
(
to_nat_aux
b
(
i
+
1
%
Z
)
%
Z
))
%
Z
)).
Axiom
to_nat_aux_one
:
forall
(
b
:
bv
)
(
i
:
Z
),
((
0
%
Z
<=
i
)
%
Z
/
\
(
i
<
32
%
Z
)
%
Z
)
->
(((
nth
b
i
)
=
true
)
->
((
to_nat_aux
b
i
)
=
(
1
%
Z
+
(
2
%
Z
*
(
to_nat_aux
b
(
i
+
1
%
Z
)
%
Z
))
%
Z
)
%
Z
)).
Axiom
to_nat_aux_high
:
forall
(
b
:
bv
)
(
i
:
Z
),
(
32
%
Z
<=
i
)
%
Z
->
((
to_nat_aux
b
i
)
=
0
%
Z
).
Parameter
to_int_aux
:
bv
->
Z
->
Z
.
Axiom
to_int_aux_zero
:
forall
(
b
:
bv
)
(
i
:
Z
),
((
0
%
Z
<=
i
)
%
Z
/
\
(
i
<
(
32
%
Z
-
1
%
Z
)
%
Z
)
%
Z
)
->
(((
nth
b
i
)
=
false
)
->
((
to_int_aux
b
i
)
=
(
2
%
Z
*
(
to_int_aux
b
(
i
+
1
%
Z
)
%
Z
))
%
Z
)).
Axiom
to_int_aux_one
:
forall
(
b
:
bv
)
(
i
:
Z
),
((
0
%
Z
<=
i
)
%
Z
/
\
(
i
<
(
32
%
Z
-
1
%
Z
)
%
Z
)
%
Z
)
->
(((
nth
b
i
)
=
true
)
->
((
to_int_aux
b
i
)
=
(
1
%
Z
+
(
2
%
Z
*
(
to_int_aux
b
(
i
+
1
%
Z
)
%
Z
))
%
Z
)
%
Z
)).
Axiom
to_int_aux_pos
:
forall
(
b
:
bv
),
((
nth
b
(
32
%
Z
-
1
%
Z
)
%
Z
)
=
false
)
->
((
to_int_aux
b
(
32
%
Z
-
1
%
Z
)
%
Z
)
=
0
%
Z
).
Axiom
to_int_aux_neg
:
forall
(
b
:
bv
),
((
nth
b
(
32
%
Z
-
1
%
Z
)
%
Z
)
=
true
)
->
((
to_int_aux
b
(
32
%
Z
-
1
%
Z
)
%
Z
)
=
(
-
1
%
Z
)
%
Z
).
(
*
YOU
MAY
EDIT
THE
CONTEXT
BELOW
*
)
(
*
DO
NOT
EDIT
BELOW
*
)
Theorem
to_int_0x80000000
:
((
to_int_aux
(
lsl
bvone
31
%
Z
)
0
%
Z
)
=
(
-
2147483648
%
Z
)
%
Z
).
(
*
YOU
MAY
EDIT
THE
PROOF
BELOW
*
)
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_zero
;
auto
with
zarith
.
2
:
rewrite
lsl_nth_low
;
auto
with
zarith
.
rewrite
to_int_aux_neg
;
auto
with
zarith
.
rewrite
lsl_nth_high
;
auto
with
zarith
.
rewrite
Nth_one
;
auto
with
zarith
.
Qed
.
(
*
DO
NOT
EDIT
BELOW
*
)
This diff is collapsed.
Click to expand it.
tests/bitvector/why3session.xml
0 → 100644
+
538
−
0
View file @
e46f0376
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE why3session SYSTEM "why3session.dtd">
<why3session
name=
"bitvector/why3session.xml"
>
<prover
id=
"alt-ergo"
name=
"Alt-Ergo"
version=
"0.93"
/>
<prover
id=
"coq"
name=
"Coq"
version=
"8.2pl1"
/>
<prover
id=
"cvc3"
name=
"CVC3"
version=
"2.2"
/>
<prover
id=
"eprover"
name=
"Eprover"
version=
"1.4 Namring"
/>
<prover
id=
"gappa"
name=
"Gappa"
version=
"0.15.1"
/>
<prover
id=
"simplify"
name=
"Simplify"
version=
"1.5.4"
/>
<prover
id=
"spass"
name=
"Spass"
version=
"3.7"
/>
<prover
id=
"vampire"
name=
"Vampire"
version=
"0.6"
/>
<prover
id=
"verit"
name=
"veriT"
version=
"dev"
/>
<prover
id=
"yices"
name=
"Yices"
version=
"1.0.25"
/>
<prover
id=
"z3"
name=
"Z3"
version=
"2.19"
/>
<file
name=
"../bitvector.why"
verified=
"false"
expanded=
"true"
>
<theory
name=
"BitVector"
verified=
"true"
expanded=
"true"
>
</theory>
<theory
name=
"BV32"
verified=
"true"
expanded=
"true"
>
</theory>
<theory
name=
"TestBv32"
verified=
"false"
expanded=
"true"
>
<goal
name=
"Test1"
sum=
"081a5423810d47ab1fe2b0a82b35eb24"
proved=
"true"
expanded=
"true"
shape=
"Labw_andabvzeroabvoneainfix =anthV0c1aFalse"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"0.02"
/>
</proof>
</goal>
<goal
name=
"Test2"
sum=
"0dfd1f488bc3a073e572644d428b8479"
proved=
"true"
expanded=
"true"
shape=
"Lalsrabvonec16ainfix =anthV0c15aTrue"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"0.02"
/>
</proof>
</goal>
<goal
name=
"Test3"
sum=
"3d3025e93d04d19b4a65c7e91de25997"
proved=
"true"
expanded=
"true"
shape=
"Lalsrabvonec16ainfix =anthV0c16aFalse"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"0.03"
/>
</proof>
</goal>
<goal
name=
"Test4"
sum=
"8f1766048b98478855859610a82ced71"
proved=
"true"
expanded=
"true"
shape=
"Laasrabvonec16ainfix =anthV0c15aTrue"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"0.03"
/>
</proof>
</goal>
<goal
name=
"Test5"
sum=
"7f73dfdaefe18506af991f371f3f457b"
proved=
"true"
expanded=
"true"
shape=
"Laasrabvonec16ainfix =anthV0c16aTrue"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"0.04"
/>
</proof>
</goal>
<goal
name=
"Test6"
sum=
"b191056321013bfe380ec980009cccc9"
proved=
"true"
expanded=
"true"
shape=
"Laasralsrabvonec1c16ainfix =anthV0c16aFalse"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"0.03"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x00000000"
sum=
"3ee0fe188bb040f08b4279f413f39835"
proved=
"true"
expanded=
"true"
shape=
"ainfix =ato_natabvzeroc0"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"0.39"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x0000000F"
sum=
"fb89baa5a9ff9705440a2ec8e5599398"
proved=
"false"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec28c15"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"60.15"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x0000001F"
sum=
"6e0fb9b6b86dd2e94af40ec0a80b4a58"
proved=
"false"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec27c31"
>
<proof
prover=
"z3"
timelimit=
"60"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"60.15"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x0000003F"
sum=
"122cf1440c33fffe9ddb16ae7e8819c9"
proved=
"false"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec26c63"
>
<proof
prover=
"z3"
timelimit=
"60"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"60.05"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x0000007F"
sum=
"b509cc35c184038ba6cff7c07f17834d"
proved=
"false"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec25c127"
>
<proof
prover=
"z3"
timelimit=
"60"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"60.09"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x000000FF"
sum=
"807b63c6feb2d47472dc142d58ab099d"
proved=
"false"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec24c255"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"60.09"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x000001FF"
sum=
"786fa4285e60143b7c2e29b9abb612a7"
proved=
"false"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec23c511"
>
<proof
prover=
"z3"
timelimit=
"60"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"60.09"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x000003FF"
sum=
"18f97e041d6198984ab8fb7066f768c5"
proved=
"true"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec22c1023"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"7.05"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x000007FF"
sum=
"72aca8f2d706a6e73f0d8c2cced5e2ef"
proved=
"false"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec21c2047"
>
<proof
prover=
"z3"
timelimit=
"60"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"60.13"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x00000FFF"
sum=
"b4ea4d76ba6dc41af9643cb2f42ab39e"
proved=
"true"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec20c4095"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"4.88"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x00001FFF"
sum=
"067985c11f18ce7ab4bcc254515b87ae"
proved=
"true"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec19c8191"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"1.48"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x00003FFF"
sum=
"105f55630dc561de4d3a055aab69dc72"
proved=
"true"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec18c16383"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"2.05"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x00007FFF"
sum=
"4a874d91c8315f4d53804f68617e471f"
proved=
"true"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec17c32767"
>
<proof
prover=
"z3"
timelimit=
"60"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"2.38"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x0000FFFF"
sum=
"e46d6ab315bd19684656be9b766d2458"
proved=
"true"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec16c65535"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"2.18"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x0001FFFF"
sum=
"eeb0c825010f74e0c8d8d239cdda9b51"
proved=
"true"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec15c131071"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"8.78"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x0003FFFF"
sum=
"824f93245a9d850c4ca4b985258b4efd"
proved=
"false"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec14c262143"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"60.03"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x000FFFFF"
sum=
"d04683dfab1c0c421bcf4fb8f45dce6a"
proved=
"false"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec12c1048575"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"60.13"
/>
</proof>
</goal>
<goal
name=
"to_nat_0x00FFFFFF"
sum=
"902cfbbedcb85d73bd0b09d2b7a6f5ff"
proved=
"false"
expanded=
"true"
shape=
"ainfix =ato_natalsrabvonec8c16777215"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"60.04"
/>
</proof>
</goal>
<goal
name=
"to_nat_0xFFFFFFFF"
sum=
"c70042c7154928630e1b273268a7183e"
proved=
"false"
expanded=
"true"
shape=
"ainfix =ato_natabvonec4294967295"
>
<proof
prover=
"cvc3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"10.07"
/>
</proof>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"60.14"
/>
</proof>
</goal>
<goal
name=
"to_int_0x00000000"
sum=
"4c23b9ed9193d3c37ef9e733540a327c"
proved=
"true"
expanded=
"true"
shape=
"ainfix =ato_intabvzeroc0"
>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"0.66"
/>
</proof>
</goal>
<goal
name=
"to_int_0xFFFFFFFF"
sum=
"b67e811fa21693b3e83d2f78ad81e595"
proved=
"false"
expanded=
"true"
shape=
"ainfix =ato_intabvoneaprefix -c1"
>
<proof
prover=
"cvc3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"10.12"
/>
</proof>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"60.24"
/>
</proof>
</goal>
<goal
name=
"to_int_0x7FFFFFFF"
sum=
"b43f3227975796a99b4c5d89bb68e71d"
proved=
"false"
expanded=
"true"
shape=
"ainfix =ato_intalsrabvonec1c2147483647"
>
<proof
prover=
"cvc3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"10.01"
/>
</proof>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"60.07"
/>
</proof>
</goal>
<goal
name=
"to_int_0x80000000"
sum=
"90671c46d5853282c420d64d5e4b54ea"
proved=
"true"
expanded=
"true"
shape=
"ainfix =ato_intalslabvonec31aprefix -c2147483648"
>
<proof
prover=
"coq"
timelimit=
"60"
edited=
"bitvector_TestBv32_to_int_0x80000000_1.v"
obsolete=
"false"
>
<result
status=
"valid"
time=
"2.14"
/>
</proof>
</goal>
<goal
name=
"to_int_0x0000FFFF"
sum=
"a192b2b655efc71ff855dbb9ca06c3e8"
proved=
"true"
expanded=
"true"
shape=
"ainfix =ato_intalsrabvonec16c65535"
>
<proof
prover=
"cvc3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"10.07"
/>
</proof>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"valid"
time=
"2.52"
/>
</proof>
</goal>
<goal
name=
"to_int_smoke"
sum=
"10a66934825245363a2f0b4459f03657"
proved=
"false"
expanded=
"true"
shape=
"ainfix =ato_intalsrabvonec16c65536"
>
<proof
prover=
"cvc3"
timelimit=
"10"
edited=
""
obsolete=
"false"
>
<result
status=
"timeout"
time=
"10.07"
/>
</proof>
<proof
prover=
"z3"
timelimit=
"10"
edited=
""
obsolete=
"false"
><undone/>
</proof>
</goal>
</theory>
</file>
</why3session>
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment