-
Notifications
You must be signed in to change notification settings - Fork 27
Open
Description
Hi, I want to prove termination of the following C function:
int main()
{
float x = 1.4E-45;
while (x <= 3.4028233E38) {
x *= 2.0;
}
return x;
}
I use the command ./2ls-binary --all-functions --termination ../c_examples/main.c, where 2ls-binary is of version 0.10.0 (drawn precompiled from the last SV-COMP). 2LS answers:
** Termination:
[main]: unknown
[__CPROVER_initialize]: yes
[__CPROVER__start]: unknown
VERIFICATION INCONCLUSIVE
Is there an adaption to the command that enables a succesfull termination proof in this case? I observed that termination can be proven for smaller thresholds (e.g. 8.0E37 instead of 3.4028233E38, which is the maximal finite float value). However, this behaviour is not monotonic: For the even smaller threshold 4.0E37, termination cannot be shown.
Thanks for your help in advance!
Metadata
Metadata
Assignees
Labels
No labels