Commit f88de190 authored by Clément Fumex's avatar Clément Fumex

+ use literals in ieee_float theory

+ add 'minInt and 'maxInt attributes for range types
+ add 'eb and 'sb attributes for float types
+ make ieee_float realization compatible with Coq 8.4
parent 76b65d70
......@@ -57,9 +57,8 @@ end
theory ieee_float.Float32
(* Part I *)
syntax type t "Float32"
syntax converter from_binary "((_ to_fp 8 24) ((_ int2bv 32) %1))"
syntax converter (!_) "((_ to_fp 8 24) %1 %2)"
meta "literal:keep" type t
syntax literal t "(fp #b%s1b #b%e8b #b%m23b)"
syntax function zeroF "((_ to_fp 8 24) #x00000000)"
......@@ -69,9 +68,8 @@ end
theory ieee_float.Float64
(* Part I *)
syntax type t "Float64"
syntax converter from_binary "((_ to_fp 11 53) ((_ int2bv 64) %1))"
syntax converter (!_) "((_ to_fp 11 53) %1 %2)"
meta "literal:keep" type t
syntax literal t "(fp #b%s1b #b%e11b #b%m52b)"
syntax function zeroF "((_ to_fp 11 53) #x0000000000000000)"
......
module TestIeeeFloat
theory A
use import ieee_float.Float32
use real.Abs
lemma Test00: forall x:t. abs x .<= (of_int RNE 2) -> .- (of_int RNE 3) .<= x
use ieee_float.Float32
use ieee_float.Float64
lemma Test01:
forall x:t.
.-(of_int RNE 2) .<= x .<= (of_int RNE 2) -> .- (of_int RNE 4) .<= x .* x .<= (of_int RNE 4)
lemma ebsb32 : Float32.t'eb = 8 /\ Float32.t'sb = 24
lemma ebsb64 : Float64.t'eb = 11 /\ Float64.t'sb = 53
end
......@@ -15,18 +12,18 @@ module M603_018
use import ieee_float.Float32
constant x : t = zeroF
constant y : t = of_int RNE 1
constant z : t = y ./ (of_int RNE 2)
constant t : t = (x .+ y) ./ (of_int RNE 2)
constant y : t = 1.0
constant z : t = y ./ (2.0:t)
constant t : t = (x .+ y) ./ (2.0:t)
let triplet (x y z : t)
requires { x .<= z /\ z .<= y }
requires { .-(of_int RNE 1) .<= x /\ x .<= (of_int RNE 10) }
requires { y .= x .+ (of_int RNE 1) }
requires { .-(1.0:t) .<= x /\ x .<= (10.0:t) }
requires { y .= x .+ (1.0:t) }
requires { roundToIntegral RTN z = x }
requires { roundToIntegral RTP z = y }
=
let t = (x .+ y) ./ (of_int RNE 2) in
let t = (x .+ y) ./ (2.0:t) in
assert { roundToIntegral RTN x .= x };
assert { roundToIntegral RTN y .= y };
assert { roundToIntegral RTN z .= x };
......@@ -60,40 +57,34 @@ module M121_039_nonlinear
use import ieee_float.Float32
constant max : t = of_int RNE 340282346638528859811704183484516925440
constant max : t = 340282346638528859811704183484516925440.0
constant min : t = .- max
constant one : t = of_int RNE 1
constant zero : t = zeroF
constant one : t = 1.0
predicate in_range (x :t) = min .<= x .<= max
(* predicate axiom_mult t t t *)
(* axiom axiom_mult : forall a b y. *)
(* axiom_mult a b y = if a .<= b /\ y .<= zero then a .* y .>= b .* y else false *)
predicate axiom_mult (a b y : t) =
if a .<= b /\ y .<= zero then a .* y .>= b .* y else false
if a .<= b /\ y .<= zeroF then a .* y .>= b .* y else false
let test (a x y:t)
requires { zero .<= a .<= one }
requires { zeroF .<= a .<= one }
requires { .- one .<= x .<= one }
requires { .- one .<= y .<= one }
requires { x .> zero /\ y .< zero /\ x .+ y .>= zero }
ensures { result .>= zero /\ result .<= (of_int RNE 2) }
requires { x .> zeroF /\ y .< zeroF /\ x .+ y .>= zeroF }
ensures { result .>= zeroF /\ result .<= (2.0:t) }
=
assert { axiom_mult a one y };
assert { a .>= zero };
assert { a .>= zeroF };
assert { a .<= one };
assert { x .> zero };
assert { y .<= zero };
assert { y .* a .<= zero };
assert { x .> zeroF };
assert { y .<= zeroF };
assert { y .* a .<= zeroF };
assert { y .* a .>= y .* one };
assert { x .+ y .* a .>= x .+ y };
assert { x .+ y .>= zero };
assert { x .+ y .* a .>= zero };
assert { x .+ y .>= zeroF };
assert { x .+ y .* a .>= zeroF };
x .+ y .* a
......@@ -113,12 +104,3 @@ module LB09_025_conversion
to_int RNE x
end
module Test
use import ieee_float.Float32
constant half : t = of_int RNE 1 ./ of_int RNE 2
goal G1: forall x. is_finite x -> x .- half .<= roundToIntegral RNA x .<= x .+ half
end
<?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="Z3" version="4.5.0" alternative="noBV" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="1" name="CVC4" version="1.4" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="2" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="3" name="Z3" version="4.5.0" timelimit="5" 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="5" steplimit="0" memlimit="1000"/>
<file name="../ieee_float.mlw" expanded="true">
<theory name="A" sum="11b8a18803e3f976dcc6f15eacb03d03">
<goal name="ebsb32">
<proof prover="0"><result status="valid" time="0.01"/></proof>
<proof prover="1"><result status="valid" time="0.06"/></proof>
<proof prover="2"><result status="valid" time="0.05" steps="78"/></proof>
<proof prover="3"><result status="valid" time="0.00"/></proof>
<proof prover="5"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="ebsb64">
<proof prover="0"><result status="valid" time="0.01"/></proof>
<proof prover="1"><result status="valid" time="0.06"/></proof>
<proof prover="2"><result status="valid" time="0.05" steps="78"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
<proof prover="5"><result status="valid" time="0.06"/></proof>
</goal>
</theory>
<theory name="M603_018" sum="c1f81e18bfb6e6c677b49d1d9f51b22c" expanded="true">
<goal name="WP_parameter triplet" expl="VC for triplet" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="WP_parameter triplet.1" expl="1. assertion" expanded="true">
<proof prover="3"><result status="valid" time="1.05"/></proof>
<proof prover="4"><result status="valid" time="2.65"/></proof>
</goal>
<goal name="WP_parameter triplet.2" expl="2. assertion" expanded="true">
<proof prover="2"><result status="valid" time="4.95" steps="10731"/></proof>
<proof prover="3"><result status="valid" time="1.86"/></proof>
<proof prover="4"><result status="valid" time="0.79"/></proof>
</goal>
<goal name="WP_parameter triplet.3" expl="3. assertion" expanded="true">
<proof prover="0"><result status="valid" time="0.64"/></proof>
<proof prover="1"><result status="valid" time="0.21"/></proof>
<proof prover="2"><result status="valid" time="0.08" steps="161"/></proof>
<proof prover="3"><result status="valid" time="0.06"/></proof>
<proof prover="5"><result status="valid" time="0.22"/></proof>
</goal>
<goal name="WP_parameter triplet.4" expl="4. assertion" expanded="true">
<proof prover="0"><result status="outofmemory" time="4.61"/></proof>
<proof prover="1"><result status="timeout" time="5.00"/></proof>
<proof prover="2"><result status="timeout" time="5.00"/></proof>
<proof prover="3"><result status="timeout" time="5.00"/></proof>
<proof prover="4"><result status="timeout" time="5.00"/></proof>
<proof prover="5"><result status="timeout" time="5.00"/></proof>
</goal>
<goal name="WP_parameter triplet.5" expl="5. assertion" expanded="true">
<proof prover="0"><result status="valid" time="0.64"/></proof>
<proof prover="1"><result status="valid" time="0.29"/></proof>
<proof prover="2"><result status="valid" time="1.13" steps="2244"/></proof>
<proof prover="3"><result status="valid" time="0.62"/></proof>
<proof prover="5"><result status="valid" time="0.30"/></proof>
</goal>
<goal name="WP_parameter triplet.6" expl="6. assertion" expanded="true">
<proof prover="3"><result status="valid" time="2.34"/></proof>
</goal>
<goal name="WP_parameter triplet.7" expl="7. assertion" expanded="true">
<proof prover="0"><result status="valid" time="0.64"/></proof>
<proof prover="1"><result status="valid" time="0.28"/></proof>
<proof prover="2"><result status="valid" time="0.08" steps="184"/></proof>
<proof prover="3"><result status="valid" time="0.12"/></proof>
<proof prover="4"><result status="valid" time="0.14"/></proof>
<proof prover="5"><result status="valid" time="0.29"/></proof>
</goal>
<goal name="WP_parameter triplet.8" expl="8. assertion" expanded="true">
<proof prover="0"><result status="timeout" time="5.00"/></proof>
<proof prover="1"><result status="timeout" time="5.00"/></proof>
<proof prover="2"><result status="timeout" time="5.00"/></proof>
<proof prover="3"><result status="timeout" time="5.00"/></proof>
<proof prover="4"><result status="timeout" time="5.00"/></proof>
<proof prover="5"><result status="timeout" time="5.00"/></proof>
</goal>
<goal name="WP_parameter triplet.9" expl="9. assertion" expanded="true">
<proof prover="0"><result status="valid" time="0.02"/></proof>
<proof prover="1"><result status="valid" time="0.06"/></proof>
<proof prover="2"><result status="valid" time="0.03" steps="94"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
<proof prover="4"><result status="valid" time="0.01"/></proof>
<proof prover="5"><result status="valid" time="0.07"/></proof>
</goal>
<goal name="WP_parameter triplet.10" expl="10. assertion" expanded="true">
<proof prover="0"><result status="timeout" time="5.00"/></proof>
<proof prover="1"><result status="timeout" time="5.00"/></proof>
<proof prover="2"><result status="timeout" time="5.01"/></proof>
<proof prover="3"><result status="timeout" time="5.00"/></proof>
<proof prover="4"><result status="timeout" time="5.00"/></proof>
<proof prover="5"><result status="timeout" time="5.00"/></proof>
</goal>
</transf>
</goal>
<goal name="G1" expanded="true">
<proof prover="0"><result status="valid" time="0.14"/></proof>
<proof prover="1"><result status="valid" time="0.06"/></proof>
<proof prover="2"><result status="valid" time="0.04" steps="74"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
<proof prover="5"><result status="valid" time="0.08"/></proof>
</goal>
<goal name="G2" expanded="true">
<proof prover="0"><result status="valid" time="3.34"/></proof>
<proof prover="1"><result status="valid" time="0.06"/></proof>
<proof prover="2"><result status="valid" time="0.24" steps="560"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
<proof prover="5"><result status="valid" time="0.08"/></proof>
</goal>
<goal name="G3" expanded="true">
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="G4" expanded="true">
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="G5" expanded="true">
<proof prover="0"><result status="valid" time="0.14"/></proof>
<proof prover="1"><result status="valid" time="0.06"/></proof>
<proof prover="2"><result status="valid" time="0.04" steps="74"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
<proof prover="5"><result status="valid" time="0.08"/></proof>
</goal>
<goal name="G6" expanded="true">
<proof prover="0"><result status="valid" time="3.31"/></proof>
<proof prover="1"><result status="valid" time="0.06"/></proof>
<proof prover="2"><result status="valid" time="0.12" steps="286"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
<proof prover="5"><result status="valid" time="0.07"/></proof>
</goal>
<goal name="G7" expanded="true">
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="G8" expanded="true">
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="G9" expanded="true">
<proof prover="2"><result status="valid" time="1.04" steps="2136"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="G10" expanded="true">
<proof prover="2"><result status="valid" time="2.36" steps="4829"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
</theory>
<theory name="M121_039_nonlinear" sum="419f288237e908f28fe9898d1fbeb90a" expanded="true">
<goal name="WP_parameter test" expl="VC for test" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="WP_parameter test.1" expl="1. assertion" expanded="true">
<proof prover="0"><result status="timeout" time="5.00"/></proof>
<proof prover="1"><result status="timeout" time="5.00"/></proof>
<proof prover="2"><result status="timeout" time="5.00"/></proof>
<proof prover="3"><result status="timeout" time="5.00"/></proof>
<proof prover="5"><result status="timeout" time="5.00"/></proof>
</goal>
<goal name="WP_parameter test.2" expl="2. assertion" expanded="true">
<proof prover="0"><result status="valid" time="0.01"/></proof>
<proof prover="1"><result status="valid" time="0.06"/></proof>
<proof prover="2"><result status="valid" time="0.03" steps="87"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
<proof prover="5"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="WP_parameter test.3" expl="3. assertion" expanded="true">
<proof prover="0"><result status="valid" time="0.01"/></proof>
<proof prover="1"><result status="valid" time="0.06"/></proof>
<proof prover="2"><result status="valid" time="0.03" steps="87"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
<proof prover="5"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="WP_parameter test.4" expl="4. assertion" expanded="true">
<proof prover="0"><result status="valid" time="0.01"/></proof>
<proof prover="1"><result status="valid" time="0.05"/></proof>
<proof prover="2"><result status="valid" time="0.03" steps="87"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
<proof prover="5"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="WP_parameter test.5" expl="5. assertion" expanded="true">
<proof prover="0"><result status="valid" time="0.15"/></proof>
<proof prover="1"><result status="valid" time="0.06"/></proof>
<proof prover="2"><result status="valid" time="0.03" steps="88"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
<proof prover="5"><result status="valid" time="0.09"/></proof>
</goal>
<goal name="WP_parameter test.6" expl="6. assertion" expanded="true">
<proof prover="0"><result status="timeout" time="5.00"/></proof>
<proof prover="1"><result status="unknown" time="4.98"/></proof>
<proof prover="2"><result status="timeout" time="5.00"/></proof>
<proof prover="3"><result status="valid" time="0.58"/></proof>
<proof prover="5"><result status="unknown" time="4.98"/></proof>
</goal>
<goal name="WP_parameter test.7" expl="7. assertion" expanded="true">
<proof prover="0"><result status="outofmemory" time="4.57"/></proof>
<proof prover="1"><result status="unknown" time="5.00"/></proof>
<proof prover="2"><result status="timeout" time="5.00"/></proof>
<proof prover="3"><result status="timeout" time="5.00"/></proof>
<proof prover="5"><result status="unknown" time="5.00"/></proof>
</goal>
<goal name="WP_parameter test.8" expl="8. assertion" expanded="true">
<proof prover="0"><result status="outofmemory" time="4.43"/></proof>
<proof prover="1"><result status="unknown" time="4.96"/></proof>
<proof prover="2"><result status="timeout" time="5.01"/></proof>
<proof prover="3"><result status="timeout" time="5.00"/></proof>
<proof prover="5"><result status="unknown" time="4.96"/></proof>
</goal>
<goal name="WP_parameter test.9" expl="9. assertion" expanded="true">
<proof prover="0"><result status="valid" time="0.01"/></proof>
<proof prover="1"><result status="valid" time="0.06"/></proof>
<proof prover="2"><result status="valid" time="0.04" steps="91"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
<proof prover="5"><result status="valid" time="0.07"/></proof>
</goal>
<goal name="WP_parameter test.10" expl="10. assertion" expanded="true">
<proof prover="0"><result status="timeout" time="5.00"/></proof>
<proof prover="1"><result status="valid" time="0.17"/></proof>
<proof prover="2"><result status="timeout" time="5.01"/></proof>
<proof prover="3"><result status="valid" time="0.10"/></proof>
<proof prover="5"><result status="valid" time="0.19"/></proof>
</goal>
<goal name="WP_parameter test.11" expl="11. postcondition" expanded="true">
<proof prover="0"><result status="outofmemory" time="4.39"/></proof>
<proof prover="1"><result status="unknown" time="4.96"/></proof>
<proof prover="2"><result status="timeout" time="5.00"/></proof>
<proof prover="3"><result status="valid" time="4.32"/></proof>
<proof prover="5"><result status="unknown" time="4.98"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="LB09_025_conversion" sum="28457788671e9639392ac3a0fb62e20b" expanded="true">
<goal name="WP_parameter fti" expl="VC for fti" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="WP_parameter fti.1" expl="1. postcondition">
<proof prover="0"><result status="timeout" time="5.00"/></proof>
<proof prover="1"><result status="timeout" time="5.00"/></proof>
<proof prover="2"><result status="timeout" time="5.01"/></proof>
<proof prover="3"><result status="timeout" time="5.00"/></proof>
<proof prover="5"><result status="timeout" time="5.00"/></proof>
</goal>
<goal name="WP_parameter fti.2" expl="2. postcondition">
<proof prover="0"><result status="timeout" time="5.00"/></proof>
<proof prover="1"><result status="timeout" time="5.00"/></proof>
<proof prover="2"><result status="timeout" time="5.00"/></proof>
<proof prover="3"><result status="timeout" time="5.00"/></proof>
<proof prover="5"><result status="timeout" time="5.00"/></proof>
</goal>
<goal name="WP_parameter fti.3" expl="3. postcondition">
<proof prover="0"><result status="valid" time="0.01"/></proof>
<proof prover="1"><result status="valid" time="0.04"/></proof>
<proof prover="2"><result status="valid" time="0.03" steps="73"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
<proof prover="5"><result status="valid" time="0.04"/></proof>
</goal>
</transf>
</goal>
</theory>
</file>
</why3session>
......@@ -2,19 +2,19 @@ theory CheckBV64
use import bv.BV64
use int.Int
constant one : t = of_int 1
constant two : t = of_int 2
constant one : t = 1
constant two : t = 2
constant sz : int = 64
constant mx : int = 0xFFFF_FFFF_FFFF_FFFF
constant md : int = 0x1_0000_0000_0000_0000
constant lastb : t = of_int 0x8000_0000_0000_0000
constant mx : int = 0xFFFF_FFFF_FFFF_FFFF
constant md : int = 0x1_0000_0000_0000_0000
constant lastb : t = 0x8000_0000_0000_0000
goal ok_zero : zeros = (of_int 0)
goal ok_zero : zeros = (0:t)
goal ok_ones : ones = (of_int mx)
goal ok_zero2 : t'int zeros = 0
goal ok_ones2 : t'int ones = mx
goal ok_zero2 : t'int zeros = 0
goal ok_ones2 : t'int ones = mx
goal ok_size : size = sz
goal ok_max : max_int = mx
goal ok_max : t'maxInt = mx
goal ok_tpsize : two_power_size = md
goal ok1 : add ones one = zeros
......@@ -57,15 +57,15 @@ theory CheckBV64
(* from example/logic/bitvectors.why *)
constant b0000 : t = of_int 0b0000
constant b0001 : t = of_int 0b0001
constant b0010 : t = of_int 0b0010
constant b0011 : t = of_int 0b0011
constant b0110 : t = of_int 0b0110
constant b0101 : t = of_int 0b0101
constant b0111 : t = of_int 0b0111
constant b1100 : t = of_int 0b1100
constant b11100 : t = of_int 0b11100
constant b0000 : t = 0b0000
constant b0001 : t = 0b0001
constant b0010 : t = 0b0010
constant b0011 : t = 0b0011
constant b0110 : t = 0b0110
constant b0101 : t = 0b0101
constant b0111 : t = 0b0111
constant b1100 : t = 0b1100
constant b11100 : t = 0b11100
constant size_sub_one : int = Int.(-) size 1
......@@ -76,23 +76,23 @@ theory CheckBV64
goal f2 : bw_or b0011 b0110 = b0110
goal g3 : bw_xor b0011 b0110 = b0101
goal g4 : bw_not b0011 = (of_int 0xFFFFFFFFFFFFFFFC)
goal g4 : bw_not b0011 = (0xFFFFFFFFFFFFFFFC:t)
goal g3a : lsr_bv b0111 (of_int 2) = b0001
goal g3a : lsr_bv b0111 (2:t) = b0001
goal g3b : lsr_bv ones (of_int size_sub_one) = b0001
goal f3 : lsr_bv ones (of_int 0x100000001) = (of_int 0x7FFFFFFF)
goal f3 : lsr_bv ones (0x100000001:t) = (0x7FFFFFFF:t)
goal g4a : lsl_bv b0111 (of_int 2) = b11100
goal g4b : lsl_bv b0001 (of_int 31) = (of_int 0x80000000)
goal g4a : lsl_bv b0111 (2:t) = b11100
goal g4b : lsl_bv b0001 (31:t) = (0x80000000:t)
goal g5a : asr_bv b0111 (of_int 2) = b0001
goal g5a : asr_bv b0111 (2:t) = b0001
goal g5b : asr_bv ones (of_int (Int.(-) size 1)) = ones
goal g7 : t'int b11100 = 28
goal f7 : t'int ones = Int.(-_) 1
goal g8a : nth_bv b0110 (of_int 2) = True
goal g8b : nth_bv b0110 (of_int 3) = False
goal g8a : nth_bv b0110 (2:t) = True
goal g8b : nth_bv b0110 (3:t) = False
goal Nth_Bv_bw_and:
forall v1 v2 n. ult n size_bv ->
......@@ -145,19 +145,19 @@ theory CheckBV32
use import bv.BV32
use int.Int
constant one : t = of_int 1
constant two : t = of_int 2
constant one : t = 1
constant two : t = 2
constant sz : int = 32
constant mx : int = 0xFFFFFFFF
constant md : int = 0x100000000
constant lastb : t = of_int 0x80000000
constant lastb : t = 0x80000000
goal ok_zero : zeros = (of_int 0)
goal ok_zero : zeros = (0:t)
goal ok_ones : ones = (of_int mx)
goal ok_zero2 : t'int zeros = 0
goal ok_ones2 : t'int ones = mx
goal ok_zero2 : t'int zeros = 0
goal ok_ones2 : t'int ones = mx
goal ok_size : size = sz
goal ok_max : max_int = mx
goal ok_max : t'maxInt = mx
goal ok_tpsize : two_power_size = md
goal ok1 : add ones one = zeros
......@@ -203,19 +203,19 @@ theory CheckBV16
use import bv.BV16
use int.Int
constant one : t = of_int 1
constant two : t = of_int 2
constant one : t = 1
constant two : t = 2
constant sz : int = 16
constant mx : int = 65535
constant md : int = 65536
constant lastb : t = of_int 32768
constant lastb : t = 32768
goal ok_zero : zeros = (of_int 0)
goal ok_zero : zeros = (0:t)
goal ok_ones : ones = (of_int mx)
goal ok_zero2 : t'int zeros = 0
goal ok_ones2 : t'int ones = mx
goal ok_zero2 : t'int zeros = 0
goal ok_ones2 : t'int ones = mx
goal ok_size : size = sz
goal ok_max : max_int = mx
goal ok_max : t'maxInt = mx
goal ok_tpsize : two_power_size = md
goal ok1 : add ones one = zeros
......@@ -261,19 +261,19 @@ theory CheckBV8
use import bv.BV8
use int.Int
constant one : t = of_int 1
constant two : t = of_int 2
constant one : t = 1
constant two : t = 2
constant sz : int = 8
constant mx : int = 255
constant md : int = 256
constant lastb : t = of_int 128
constant lastb : t = 128
goal ok_zero : zeros = (of_int 0)
goal ok_zero : zeros = (0:t)
goal ok_ones : ones = (of_int mx)
goal ok_zero2 : t'int zeros = 0
goal ok_ones2 : t'int ones = mx
goal ok_zero2 : t'int zeros = 0
goal ok_ones2 : t'int ones = mx
goal ok_size : size = sz
goal ok_max : max_int = mx
goal ok_max : t'maxInt = mx
goal ok_tpsize : two_power_size = md
goal ok1 : add ones one = zeros
......
<?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="1" name="Z3" version="4.4.2" timelimit="11" steplimit="0" memlimit="4000"/>
<prover id="2" name="CVC4" version="1.4" timelimit="11" steplimit="0" memlimit="4000"/>
<prover id="3" name="Alt-Ergo" version="1.01" timelimit="11" steplimit="0" memlimit="4000"/>
<file name="../ieee_float.mlw" expanded="true">
<theory name="TestIeeeFloat" sum="9626577688521ad42852a971b5d056ff" expanded="true">
<goal name="Test00" expanded="true">
<proof prover="1"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="Test01" expanded="true">
<proof prover="1"><result status="valid" time="12.50"/></proof>
</goal>
</theory>
<theory name="M603_018" sum="edea63e177c099c0def0aaed6f99c750" expanded="true">
<goal name="WP_parameter triplet" expl="VC for triplet" expanded="true">
<proof prover="1"><result status="timeout" time="10.56"/></proof>
<proof prover="2"><result status="unknown" time="5.39"/></proof>
<proof prover="3"><result status="highfailure" time="9.25"/></proof>
</goal>
<goal name="G1" expanded="true">
<proof prover="1"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="G2" expanded="true">
<proof prover="1"><result status="valid" time="0.01"/></proof>
<proof prover="2"><result status="valid" time="0.08"/></proof>
<proof prover="3"><result status="valid" time="0.03" steps="14"/></proof>
</goal>
<goal name="G3" expanded="true">
<proof prover="1"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="G4" expanded="true">
<proof prover="1"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="G5" expanded="true">
<proof prover="1"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="G6" expanded="true">
<proof prover="1"><result status="valid" time="0.00"/></proof>
<proof prover="2"><result status="valid" time="0.08"/></proof>
<proof prover="3"><result status="valid" time="0.03" steps="14"/></proof>
</goal>
<goal name="G7" expanded="true">
<proof prover="1"><result status="valid" time="0.01"/></proof>