Frama-C-discuss mailing list archives
This page gathers the archives of the old Frama-C-discuss archives, that was hosted by Inria's gforge before its demise at the end of 2020. To search for mails newer than September 2020, please visit the page of the new mailing list on Renater.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Frama-c-discuss] problem with \old()
- Subject: [Frama-c-discuss] problem with \old()
- From: pascal.cuoq at gmail.com (Pascal Cuoq)
- Date: Tue, 9 Nov 2010 19:20:01 +0100
- In-reply-to: <20101109175343.GA3719@opentech.at>
- References: <20101109151407.GB20224@opentech.at> <AANLkTi=e_D8=6yN4+XMUL0Zred3dex16wNE-RYrpSP58@mail.gmail.com> <20101109175343.GA3719@opentech.at>
On 11/9/10, Nicholas Mc Guire <der.herr at hofr.at> wrote: > well I get the same with -val oswell as when running with jessie / alt-ergo > so I assumed that is not the cause. Yes, the value analysis' weakness when it comes to \old constructs is the cause. It just seems that option -users is all the rage these days, but it's supposed to be undocumented. This is what I would like to fix. Even if you are interested by both the value analysis and Jessie, I would recommend that you use the options in separate invocations of Frama-C. > the problem with that is that frama-c -jessie inc2.c will try to start the > gui - but I can't use the gui so I was trying to get it to work in console > mode. If you write the following to a C file, you will be able to verify it using Jessie in command-line mode: /*@ requires \valid(p) ; requires 0 <= *p < 2000000000 ; ensures \old(*p) < *p ; */ void fun(int *p) { unsigned int t=*p; t++; *p=t; } Use the command-line: frama-c -jessie -jessie-atp alt-ergo inc2.c You should get: (. = valid * = invalid ? = unknown # = timeout ! = failure) why/inc2_why.why : ........ (8/0/0/0/0) But I used to GUI to understand the missing annotations. I do not know how to debug code or specification using only the command-line. If you want to remove the 0 <= *p precondition, the cast from int to unsigned int can perhaps be handled by adding the line: #pragma JessieIntegerModel(modulo) to the file, but that makes things more complicated for provers. Regards, Pascal
- Follow-Ups:
- [Frama-c-discuss] problem with \old()
- From: der.herr at hofr.at (Nicholas Mc Guire)
- [Frama-c-discuss] problem with \old()
- References:
- [Frama-c-discuss] problem with \old()
- From: der.herr at hofr.at (Nicholas Mc Guire)
- [Frama-c-discuss] problem with \old()
- From: pascal.cuoq at gmail.com (Pascal Cuoq)
- [Frama-c-discuss] problem with \old()
- From: der.herr at hofr.at (Nicholas Mc Guire)
- [Frama-c-discuss] problem with \old()
- Prev by Date: [Frama-c-discuss] problem with \old()
- Next by Date: [Frama-c-discuss] problem with \old()
- Previous by thread: [Frama-c-discuss] problem with \old()
- Next by thread: [Frama-c-discuss] problem with \old()
- Index(es):