--- layout: fc_discuss_archives title: Message 28 from Frama-C-discuss on September 2009 ---
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Frama-c-discuss] Beryllium Jessie - Type Invariants



Hello,

I have a question regarding the new Beryllium-implementation.
Since in the ACSL-Beryllium-document data invariants are not marked as
"experimental" I wonder if they are supposed to work.
Trying to use them I realized global invariants work, but type invariants
unfortunately do not. 
I tried the temperature example, which is delivered in the document, but
unsuccessfully.(I send the code below)
Anyway, there are syntax errors when using the strength modifiers weak or
strong. (using both - global or type invariants)
Is this a case for a bug report or is it supposed to not work yet? 
And if so, do you know already if and when this feature is planned to work?
Just asking because I would find it very useful. 

Thank you in advance,
Kerstin

--------------
/* not working with type invariants*/
typedef double temperature; 
//@ type invariant temp_in_celsius(temperature t) = t >= -273.15;

//@ ensures \result >= -273.15;
double test(temperature t) {
  return t;
}
---------------
/* working with global invariants*/
static double temperature;
//@ global invariant temperature_in_celsius :  temperature >= -273.15;

//@ ensures \result >= -273.15;
double test() {
  return temperature;
}