-
Andre Maroneze authoredAndre Maroneze authored
gen_bts1324.c 3.51 KiB
/* Generated by Frama-C */
#include "stdlib.h"
/*@ behavior yes:
assumes ∀ int i; 0 < i < n ⇒ *(t + (i - 1)) ≤ *(t + i);
ensures \result ≡ 1;
*/
int __gen_e_acsl_sorted(int *t, int n);
/*@ behavior yes:
assumes ∀ int i; 0 < i < n ⇒ *(t + (i - 1)) ≤ *(t + i);
ensures \result ≡ 1;
*/
int sorted(int *t, int n)
{
int __retres;
int b;
b = 1;
if (n <= 1) {
__retres = 1;
goto return_label;
}
b = 1;
while (b < n) {
if (*(t + (b - 1)) > *(t + b)) {
__retres = 0;
goto return_label;
}
b ++;
}
__retres = 1;
return_label: return __retres;
}
int main(void)
{
int __retres;
int t[7];
int n;
__e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
__e_acsl_store_block((void *)(t),(size_t)28);
__e_acsl_initialize((void *)(t),sizeof(int));
t[0] = 1;
__e_acsl_initialize((void *)(& t[1]),sizeof(int));
t[1] = 4;
__e_acsl_initialize((void *)(& t[2]),sizeof(int));
t[2] = 4;
__e_acsl_initialize((void *)(& t[3]),sizeof(int));
t[3] = 5;
__e_acsl_initialize((void *)(& t[4]),sizeof(int));
t[4] = 5;
__e_acsl_initialize((void *)(& t[5]),sizeof(int));
t[5] = 5;
__e_acsl_initialize((void *)(& t[6]),sizeof(int));
t[6] = 7;
n = __gen_e_acsl_sorted(t,7);
/*@ assert n ≡ 1; */
__e_acsl_assert(n == 1,(char *)"Assertion",(char *)"main",(char *)"n == 1",
23);
__retres = 0;
__e_acsl_delete_block((void *)(t));
__e_acsl_memory_clean();
return __retres;
}
/*@ behavior yes:
assumes ∀ int i; 0 < i < n ⇒ *(t + (i - 1)) ≤ *(t + i);
ensures \result ≡ 1;
*/
int __gen_e_acsl_sorted(int *t, int n)
{
int __gen_e_acsl_at;
int __retres;
__e_acsl_store_block((void *)(& t),(size_t)8);
{
int __gen_e_acsl_forall;
int __gen_e_acsl_i;
__gen_e_acsl_forall = 1;
__gen_e_acsl_i = 0 + 1;
while (1) {
if (__gen_e_acsl_i < n) ; else break;
{
int __gen_e_acsl_valid_read;
int __gen_e_acsl_valid_read_2;
__gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(t + __gen_e_acsl_i),
sizeof(int));
__e_acsl_assert(__gen_e_acsl_valid_read,(char *)"RTE",
(char *)"sorted",
(char *)"mem_access: \\valid_read(t + __gen_e_acsl_i)",
6);
__gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(t + (
__gen_e_acsl_i - 1L)),
sizeof(int));
__e_acsl_assert(__gen_e_acsl_valid_read_2,(char *)"RTE",
(char *)"sorted",
(char *)"mem_access: \\valid_read(t + (long)(__gen_e_acsl_i - 1))",
6);
if (*(t + (__gen_e_acsl_i - 1L)) <= *(t + __gen_e_acsl_i)) ;
else {
__gen_e_acsl_forall = 0;
goto e_acsl_end_loop1;
}
}
__gen_e_acsl_i = (int)(__gen_e_acsl_i + 1L);
}
e_acsl_end_loop1: ;
__gen_e_acsl_at = __gen_e_acsl_forall;
}
__retres = sorted(t,n);
{
int __gen_e_acsl_implies;
if (! __gen_e_acsl_at) __gen_e_acsl_implies = 1;
else __gen_e_acsl_implies = __retres == 1;
__e_acsl_assert(__gen_e_acsl_implies,(char *)"Postcondition",
(char *)"sorted",
(char *)"\\old(\\forall int i; 0 < i < n ==> *(t + (i - 1)) <= *(t + i)) ==>\n\\result == 1",
7);
__e_acsl_delete_block((void *)(& t));
return __retres;
}
}