Newer
Older
/*@ requires \valid(Mtmax_in);
requires \valid(Mwmax);
requires \valid(Mtmax_out);
behavior OverEstimate_Motoring:
assumes \true;
ensures
*\old(Mtmax_out) ≡
*\old(Mtmax_in) + (5 - ((5 / 80) * *\old(Mwmax)) * 0.4);
*/
void __gen_e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out);
/*@ requires \valid(Mtmax_in);
requires \valid(Mwmax);
requires \valid(Mtmax_out);
behavior OverEstimate_Motoring:
assumes \true;
*\old(Mtmax_out) ≡
*\old(Mtmax_in) + (5 - ((5 / 80) * *\old(Mwmax)) * 0.4);
void foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out)

Julien Signoles
committed
{
__e_acsl_store_block((void *)(& Mtmax_in),(size_t)8);
__e_acsl_store_block((void *)(& Mwmax),(size_t)8);
__e_acsl_store_block((void *)(& Mtmax_out),(size_t)8);
__e_acsl_initialize((void *)Mtmax_out,sizeof(float));

Julien Signoles
committed
*Mtmax_out = (float)((double)*Mtmax_in + ((double)5 - (double)((float)(
5 / 80) * *Mwmax) * 0.4));
__e_acsl_delete_block((void *)(& Mtmax_in));
__e_acsl_delete_block((void *)(& Mwmax));
__e_acsl_delete_block((void *)(& Mtmax_out));

Julien Signoles
committed
return;
}
/*@ requires \valid(Mtmin_in);
requires \valid(Mwmin);
requires \valid(Mtmin_out);

Julien Signoles
committed
behavior UnderEstimate_Motoring:

Julien Signoles
committed
assumes \true;
ensures
*\old(Mtmin_out) ≡ *\old(Mtmin_in) < 0.85 * *\old(Mwmin)?
*\old(Mtmin_in) ≢ 0.:

Julien Signoles
committed
*/
void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out);
/*@ requires \valid(Mtmin_in);
requires \valid(Mwmin);
requires \valid(Mtmin_out);
behavior UnderEstimate_Motoring:
assumes \true;
*\old(Mtmin_out) ≡ *\old(Mtmin_in) < 0.85 * *\old(Mwmin)?
*\old(Mtmin_in) ≢ 0.:
void bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out)

Julien Signoles
committed
{
__e_acsl_store_block((void *)(& Mtmin_in),(size_t)8);
__e_acsl_store_block((void *)(& Mwmin),(size_t)8);
__e_acsl_store_block((void *)(& Mtmin_out),(size_t)8);
__e_acsl_initialize((void *)Mtmin_out,sizeof(float));

Julien Signoles
committed
*Mtmin_out = (float)(0.85 * (double)*Mwmin);
__e_acsl_delete_block((void *)(& Mtmin_in));
__e_acsl_delete_block((void *)(& Mwmin));
__e_acsl_delete_block((void *)(& Mtmin_out));

Julien Signoles
committed
return;
}
int main(void)
{
int __retres;
float f;
float g;
float h;
__e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
__e_acsl_store_block((void *)(& h),(size_t)4);
__e_acsl_store_block((void *)(& g),(size_t)4);
__e_acsl_store_block((void *)(& f),(size_t)4);
__e_acsl_full_init((void *)(& f));
f = (float)1.0;
__e_acsl_full_init((void *)(& g));
g = (float)1.0;
__gen_e_acsl_foo(& f,& g,& h);
__gen_e_acsl_bar(& f,& g,& h);
__retres = 0;
__e_acsl_delete_block((void *)(& h));
__e_acsl_delete_block((void *)(& g));
__e_acsl_delete_block((void *)(& f));
__e_acsl_memory_clean();
return __retres;
}

Julien Signoles
committed
/*@ requires \valid(Mtmin_in);
requires \valid(Mwmin);
requires \valid(Mtmin_out);
behavior UnderEstimate_Motoring:
assumes \true;
ensures
*\old(Mtmin_out) ≡ *\old(Mtmin_in) < 0.85 * *\old(Mwmin)?

Julien Signoles
committed
*\old(Mtmin_in) ≢ 0.:

Julien Signoles
committed
*/
void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out)
float *__gen_e_acsl_at_6;
float *__gen_e_acsl_at_5;
float *__gen_e_acsl_at_4;
float *__gen_e_acsl_at_3;
float *__gen_e_acsl_at_2;
float *__gen_e_acsl_at;
int __gen_e_acsl_valid;
int __gen_e_acsl_valid_2;
int __gen_e_acsl_valid_3;
__e_acsl_store_block((void *)(& Mtmin_in),(size_t)8);
__e_acsl_store_block((void *)(& Mwmin),(size_t)8);
__e_acsl_store_block((void *)(& Mtmin_out),(size_t)8);
__gen_e_acsl_valid = __e_acsl_valid((void *)Mtmin_in,sizeof(float));
__e_acsl_assert(__gen_e_acsl_valid,(char *)"Precondition",(char *)"bar",
(char *)"\\valid(Mtmin_in)",17);
__gen_e_acsl_valid_2 = __e_acsl_valid((void *)Mwmin,sizeof(float));
__e_acsl_assert(__gen_e_acsl_valid_2,(char *)"Precondition",
(char *)"bar",(char *)"\\valid(Mwmin)",18);
__gen_e_acsl_valid_3 = __e_acsl_valid((void *)Mtmin_out,sizeof(float));
__e_acsl_assert(__gen_e_acsl_valid_3,(char *)"Precondition",
(char *)"bar",(char *)"\\valid(Mtmin_out)",19);
__gen_e_acsl_at_6 = Mwmin;
__gen_e_acsl_at_5 = Mtmin_in;
__gen_e_acsl_at_4 = Mwmin;
__gen_e_acsl_at_3 = Mtmin_in;
__gen_e_acsl_at_2 = Mtmin_in;
__gen_e_acsl_at = Mtmin_out;

Julien Signoles
committed
bar(Mtmin_in,Mwmin,Mtmin_out);
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
int __gen_e_acsl_valid_read;
int __gen_e_acsl_valid_read_2;
int __gen_e_acsl_and;
int __gen_e_acsl_if;
__gen_e_acsl_valid_read = __e_acsl_valid_read((void *)__gen_e_acsl_at_2,
sizeof(float));
__e_acsl_assert(__gen_e_acsl_valid_read,(char *)"RTE",(char *)"bar",
(char *)"mem_access: \\valid_read(__gen_e_acsl_at_2)",23);
__gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)__gen_e_acsl_at,
sizeof(float));
__e_acsl_assert(__gen_e_acsl_valid_read_2,(char *)"RTE",(char *)"bar",
(char *)"mem_access: \\valid_read(__gen_e_acsl_at)",23);
if (*__gen_e_acsl_at == *__gen_e_acsl_at_2) {
int __gen_e_acsl_valid_read_3;
int __gen_e_acsl_valid_read_4;
__gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)__gen_e_acsl_at_4,
sizeof(float));
__e_acsl_assert(__gen_e_acsl_valid_read_3,(char *)"RTE",(char *)"bar",
(char *)"mem_access: \\valid_read(__gen_e_acsl_at_4)",
23);
__gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)__gen_e_acsl_at_3,
sizeof(float));
__e_acsl_assert(__gen_e_acsl_valid_read_4,(char *)"RTE",(char *)"bar",
(char *)"mem_access: \\valid_read(__gen_e_acsl_at_3)",
23);
__gen_e_acsl_and = *__gen_e_acsl_at_3 < 0.85 * *__gen_e_acsl_at_4;

Julien Signoles
committed
}
else __gen_e_acsl_and = 0;
if (__gen_e_acsl_and) {
int __gen_e_acsl_valid_read_5;
__gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)__gen_e_acsl_at_5,
sizeof(float));
__e_acsl_assert(__gen_e_acsl_valid_read_5,(char *)"RTE",(char *)"bar",
(char *)"mem_access: \\valid_read(__gen_e_acsl_at_5)",
23);
__gen_e_acsl_if = *__gen_e_acsl_at_5 != 0.;

Julien Signoles
committed
}
else {
int __gen_e_acsl_valid_read_6;
__gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)__gen_e_acsl_at_6,
sizeof(float));
__e_acsl_assert(__gen_e_acsl_valid_read_6,(char *)"RTE",(char *)"bar",
(char *)"mem_access: \\valid_read(__gen_e_acsl_at_6)",
23);
__gen_e_acsl_if = 0.85 * *__gen_e_acsl_at_6 != 0.;

Julien Signoles
committed
}
__e_acsl_assert(__gen_e_acsl_if,(char *)"Postcondition",(char *)"bar",
(char *)"*\\old(Mtmin_out) == *\\old(Mtmin_in) < 0.85 * *\\old(Mwmin)?\n *\\old(Mtmin_in) != 0.:\n 0.85 * *\\old(Mwmin) != 0.",
__e_acsl_delete_block((void *)(& Mtmin_in));
__e_acsl_delete_block((void *)(& Mwmin));
__e_acsl_delete_block((void *)(& Mtmin_out));
/*@ requires \valid(Mtmax_in);
requires \valid(Mwmax);
requires \valid(Mtmax_out);
behavior OverEstimate_Motoring:
assumes \true;
ensures
*\old(Mtmax_out) ≡
*\old(Mtmax_in) + (5 - ((5 / 80) * *\old(Mwmax)) * 0.4);
*/
void __gen_e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out)
float *__gen_e_acsl_at_3;
float *__gen_e_acsl_at_2;
float *__gen_e_acsl_at;
{
int __gen_e_acsl_valid;
int __gen_e_acsl_valid_2;
int __gen_e_acsl_valid_3;
__e_acsl_store_block((void *)(& Mtmax_in),(size_t)8);
__e_acsl_store_block((void *)(& Mwmax),(size_t)8);
__e_acsl_store_block((void *)(& Mtmax_out),(size_t)8);
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
__gen_e_acsl_valid = __e_acsl_valid((void *)Mtmax_in,sizeof(float));
__e_acsl_assert(__gen_e_acsl_valid,(char *)"Precondition",(char *)"foo",
(char *)"\\valid(Mtmax_in)",5);
__gen_e_acsl_valid_2 = __e_acsl_valid((void *)Mwmax,sizeof(float));
__e_acsl_assert(__gen_e_acsl_valid_2,(char *)"Precondition",
(char *)"foo",(char *)"\\valid(Mwmax)",6);
__gen_e_acsl_valid_3 = __e_acsl_valid((void *)Mtmax_out,sizeof(float));
__e_acsl_assert(__gen_e_acsl_valid_3,(char *)"Precondition",
(char *)"foo",(char *)"\\valid(Mtmax_out)",7);
__gen_e_acsl_at_3 = Mwmax;
__gen_e_acsl_at_2 = Mtmax_in;
__gen_e_acsl_at = Mtmax_out;
foo(Mtmax_in,Mwmax,Mtmax_out);
}
{
int __gen_e_acsl_valid_read;
int __gen_e_acsl_valid_read_2;
int __gen_e_acsl_valid_read_3;
__gen_e_acsl_valid_read = __e_acsl_valid_read((void *)__gen_e_acsl_at_3,
sizeof(float));
__e_acsl_assert(__gen_e_acsl_valid_read,(char *)"RTE",(char *)"foo",
(char *)"mem_access: \\valid_read(__gen_e_acsl_at_3)",11);
__gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)__gen_e_acsl_at_2,
sizeof(float));
__e_acsl_assert(__gen_e_acsl_valid_read_2,(char *)"RTE",(char *)"foo",
(char *)"mem_access: \\valid_read(__gen_e_acsl_at_2)",11);
__gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)__gen_e_acsl_at,
sizeof(float));
__e_acsl_assert(__gen_e_acsl_valid_read_3,(char *)"RTE",(char *)"foo",
(char *)"mem_access: \\valid_read(__gen_e_acsl_at)",11);

Julien Signoles
committed
__e_acsl_assert(*__gen_e_acsl_at == *__gen_e_acsl_at_2 + ((long double)5 -
((long double)(
5 / 80) * *__gen_e_acsl_at_3) * 0.4),
(char *)"Postcondition",(char *)"foo",
(char *)"*\\old(Mtmax_out) == *\\old(Mtmax_in) + (5 - ((5 / 80) * *\\old(Mwmax)) * 0.4)",
11);
__e_acsl_delete_block((void *)(& Mtmax_in));
__e_acsl_delete_block((void *)(& Mwmax));
__e_acsl_delete_block((void *)(& Mtmax_out));
return;
}