--- layout: fc_discuss_archives title: Message 61 from Frama-C-discuss on April 2013 ---
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Frama-c-discuss] New Frama-C version: Fluorine



Hi Claude,

Indeed inserting an //@assert \false; results it being proved. Why does
this happen with Z3 and not other provers?.

2013/4/22 Claude Marche <Claude.Marche at inria.fr>

>
> The fact that a prover "suddenly" proves everything when before it wasn't,
> may be the sign of an inconsistency in the context. A good practice in such
> a case is to try to insert a few "smoke detector" in your code. Typically,
> you may try to insert
>
> //@ assert \false;
>
> right before the return instruction. If this assertion is also proved,
> then you have found an inconsistency.
>
> Hope this helps,
>
> - Claude
>
>
> On 04/19/2013 09:34 PM, Cristiano Sousa wrote:
>
>> Ok, something really weird is happening. With z3 i'm able to prove
>> everything that i previously was not able. Either the POs always have
>> been correct and WP was limited, or why/z3 is experiencing some strange
>> behavior. I believe it's the latter
>>
>> On a side note related to the new memory model. What implications arise
>> from using the unsafe casts option?
>>
>>
>> 2013/4/19 Cristiano Sousa <cristiano.sousa126 at gmail.com
>> <mailto:cristiano.sousa126@**gmail.com <cristiano.sousa126 at gmail.com>>>
>>
>>
>>     Thanks,
>>
>>     the patch file however tries to patch various files in src/wp/test
>>     that do not exists (at least in the public release). Removing that
>>     solves the problem and why works again with the following warnings:
>>
>>     File "/Users/xxxx/.frama-c-wp/**typed/Axiomatic.why", line 16,
>>     characters 8-11: unused variable x_0
>>     File
>>     "/Users/xxxx/.frama-c-wp/**project.session/../typed/**
>> strlen_Why3_ide.why",
>>     line 22, characters 6-9: unused variable x_0
>>     File
>>     "/Users/xxxx/.frama-c-wp/**project.session/../typed/**
>> strlen_Why3_ide.why",
>>     line 65, characters 6-9: unused variable x_1
>>     File
>>     "/Users/xxxx/.frama-c-wp/**project.session/../typed/**
>> strlen_Why3_ide.why",
>>     line 64, characters 6-9: unused variable x_0
>>     File
>>     "/Users/xxxx/.frama-c-wp/**project.session/../typed/**
>> strlen_Why3_ide.why",
>>     line 108, characters 6-9: unused variable x_0
>>     File
>>     "/Users/xxxx/.frama-c-wp/**project.session/../typed/**
>> strlen_Why3_ide.why",
>>     line 141, characters 6-9: unused variable x_0
>>     File
>>     "/Users/xxxx/.frama-c-wp/**project.session/../typed/**
>> strlen_Why3_ide.why",
>>     line 186, characters 6-9: unused variable x_0
>>     File
>>     "/Users/xxxx/.frama-c-wp/**project.session/../typed/**
>> strlen_Why3_ide.why",
>>     line 223, characters 6-9: unused variable x_0
>>
>>     http://pastebin.com/ckjLNaGZ
>>
>>     curiously z3 is able to successfully prove everything in the
>>     original code (without the addition of BASE and END)
>>
>>
>>     2013/4/19 Lo?c Correnson <loic.correnson at cea.fr
>>     <mailto:loic.correnson at cea.fr>**>
>>
>>
>>         Missing an include.
>>
>>
>>
>>         Le 19 avr. 2013 ? 16:41, Cristiano Sousa a ?crit :
>>
>>          Hi,
>>>
>>>
>>>         2013/4/19 Lo?c Correnson <loic.correnson at cea.fr
>>>         <mailto:loic.correnson at cea.fr>**>
>>>
>>>
>>>             Thanks for the bug report.
>>>             Current status :
>>>
>>>             1. pointer comparison is actually missing in Why3 resources ;
>>>             2. pointer difference is incorrectly translated in WP ;
>>>
>>>
>>>         Even with the patch applied, is why3 still not supposed to work?
>>>
>>>         Error while reading file '../typed/strlen_Why3_ide.why'**: File
>>>         "/usr/local/share/frama-c/wp/**memory.why", line 36, characters
>>>         36-40: Unbound symbol 'bool'
>>>
>>>         --
>>>         Regards,
>>>         Cristiano Sousa
>>>         ______________________________**_________________
>>>         Frama-c-discuss mailing list
>>>         Frama-c-discuss at lists.gforge.**inria.fr<Frama-c-discuss at lists.gforge.inria.fr>
>>>         <mailto:Frama-c-discuss at lists.**gforge.inria.fr<Frama-c-discuss at lists.gforge.inria.fr>
>>> >
>>>         http://lists.gforge.inria.fr/**cgi-bin/mailman/listinfo/**
>>> frama-c-discuss<http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/frama-c-discuss>
>>>
>>
>>
>>         ______________________________**_________________
>>         Frama-c-discuss mailing list
>>         Frama-c-discuss at lists.gforge.**inria.fr<Frama-c-discuss at lists.gforge.inria.fr>
>>         <mailto:Frama-c-discuss at lists.**gforge.inria.fr<Frama-c-discuss at lists.gforge.inria.fr>
>> >
>>
>>         http://lists.gforge.inria.fr/**cgi-bin/mailman/listinfo/**
>> frama-c-discuss<http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/frama-c-discuss>
>>
>>
>>
>>
>>     --
>>     Cumprimentos,
>>     Cristiano Sousa
>>
>>
>>
>>
>> --
>> Cumprimentos,
>> Cristiano Sousa
>>
>>
>> ______________________________**_________________
>> Frama-c-discuss mailing list
>> Frama-c-discuss at lists.gforge.**inria.fr<Frama-c-discuss at lists.gforge.inria.fr>
>> http://lists.gforge.inria.fr/**cgi-bin/mailman/listinfo/**frama-c-discuss<http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/frama-c-discuss>
>>
>>
> ______________________________**_________________
> Frama-c-discuss mailing list
> Frama-c-discuss at lists.gforge.**inria.fr<Frama-c-discuss at lists.gforge.inria.fr>
> http://lists.gforge.inria.fr/**cgi-bin/mailman/listinfo/**frama-c-discuss<http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/frama-c-discuss>
>



-- 
Cumprimentos,
Cristiano Sousa
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gforge.inria.fr/pipermail/frama-c-discuss/attachments/20130424/16c7f185/attachment-0001.html>