Bug #4678
hifrog: ../../../src/common/FastRational.h:768: FastRational FastRational::inverse() const: Assertion `num != 0' failed.
0%
Description
karinek@karinek-VirtualBox:~/workspace/tools/hi-bench$ ./../hifrog_theory_ref/hifrog/trunk/cprover/src/funfrog/hifrog --logic qflra main-bench/arithmetic/SimpleArith_Real_3.c --unwind 1 --no-itp
Loading `main-bench/arithmetic/SimpleArith_Real_3.c' ...
Parsing main-bench/arithmetic/SimpleArith_Real_3.c
file <command-line> line 0: <command-line>:0:0: warning: "__STDC_VERSION__" redefined
<built-in>: note: this is the location of the previous definition
Converting
Type-checking SimpleArith_Real_3
file main-bench/arithmetic/SimpleArith_Real_3.c line 2 function main: function `nondetFloat' is not declared
file main-bench/arithmetic/SimpleArith_Real_3.c line 9 function main: function `assert' is not declared
Generating GOTO Program
Adding CPROVER library
Function Pointer Removal
Partial Inlining
Generic Property Instrumentation
LOAD Time: 0.208 sec.
Checking claims in program...
; Warning: disabling SATElite preprocessing to track proof
Last assertion location: 26 / 34 ( 3)
- INLINING function: __CPROVER_initialize
- INLINING function: main
Processing a deferred function: __CPROVER_initialize
Processing a deferred function: main- WARNING: no body for function nondetFloat
SYMEX TIME: 0.004
All SSA steps: 50
Ignored SSA steps after slice: 34
SLICER TIME: 0
hifrog: ../../../src/common/FastRational.h:768: FastRational FastRational::inverse() const: Assertion `num != 0' failed.
Aborted (core dumped) ====
- WARNING: no body for function nondetFloat
On Benchmarks:
--logic qflra main-bench/arithmetic/SimpleArith_Real_3.c --unwind 1 --no-itp
History
#1 Updated by Karine Even Mendoza about 7 years ago
- Assignee set to Antti Hyvärinen
Any idea why OpenSMT fails?
Antti, if you can state the reason and then pass it to me, as what we did with r < rs bug.
Thanks!
#2 Updated by Antti Hyvärinen about 7 years ago
Is there an explicit division by zero in the code?
#3 Updated by Antti Hyvärinen about 7 years ago
- Status changed from New to Feedback
Ok, I "fixed" this one in a way. It's about the floats being given in the form "3.593100e+0" but the "e-notation" is not supported by OpenSMT, so I just throw an exception in that case. If the exception is not caught, then you can see where it originates.
Another question is whether this e-notation should be supported by opensmt, and at the moment it is not. Let me know what you think.
#4 Updated by Karine Even Mendoza about 7 years ago
Thanks Antti, and yes this is better.
Can you add also the wrong data?
terminate called after throwing an instance of 'opensmt::strConvException' on 3.593100e+0
is it possible?
#5 Updated by Karine Even Mendoza about 7 years ago
- Status changed from Feedback to Closed
See to be fine now.
CONVERSION TIME: 0
SOLVER TIME: 0.003
RESULT: SAT - doesn't hold
WARNING: Use over approximation. Cannot create an error trace.
Use --logic with Different Logic to Try Creating an Error Trace.
VERIFICATION FAILED
A bug found.
WARNING: Possibly due to the Theory conversion.
Initial unwinding bound: 1
Total number of steps: 1
TOTAL TIME FOR CHECKING THIS CLAIM: 0.006
#X: Done.