[kernel] Parsing FRAMAC_SHARE/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/aorai/assigns.c (with preprocessing)
[aorai] Welcome to the Aorai plugin
[kernel] Parsing FRAMAC_SHARE/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing /tmp/aorai_assigns1.i (no preprocessing)
/* Generated by Frama-C */
enum aorai_States {
    aorai_reject_state = -2,
    S1 = 0,
    S2 = 1,
    S_in_f = 2,
    Sf = 3,
    in_main = 4
};
enum aorai_ListOper {
    op_f = 1,
    op_main = 0
};
enum aorai_OpStatusList {
    aorai_Terminated = 1,
    aorai_Called = 0
};
/*@ lemma in_main_deterministic_trans{L}: \true;
 */
/*@ lemma Sf_deterministic_trans{L}: \true;
 */
/*@ lemma S_in_f_deterministic_trans{L}: \true;
 */
/*@ lemma S2_deterministic_trans{L}: \true;
 */
/*@ lemma S1_deterministic_trans{L}: \true;
 */
int X;
/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */
/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */
/*@ ghost int aorai_CurStates = S1; */
/*@ ensures aorai_CurOpStatus ≡ aorai_Called;
    ensures aorai_CurOperation ≡ op_f;
    assigns aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates;
    
    behavior buch_state_S1_out:
      ensures aorai_CurStates ≢ S1;
    
    behavior buch_state_S2_out:
      ensures aorai_CurStates ≢ S2;
    
    behavior buch_state_S_in_f_in:
      assumes aorai_CurStates ≡ Sf;
      ensures aorai_CurStates ≡ S_in_f;
    
    behavior buch_state_S_in_f_out:
      assumes aorai_CurStates ≢ Sf;
      ensures aorai_CurStates ≢ S_in_f;
    
    behavior buch_state_Sf_out:
      ensures aorai_CurStates ≢ Sf;
    
    behavior buch_state_in_main_out:
      ensures aorai_CurStates ≢ in_main;
 */
extern void f_pre_func(void);

/*@ requires aorai_CurStates ≡ S_in_f;
    ensures aorai_CurOpStatus ≡ aorai_Terminated;
    ensures aorai_CurOperation ≡ op_f;
    assigns aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates;
    
    behavior buch_state_S1_out:
      ensures aorai_CurStates ≢ S1;
    
    behavior buch_state_S2_out:
      ensures aorai_CurStates ≢ S2;
    
    behavior buch_state_S_in_f_out:
      ensures aorai_CurStates ≢ S_in_f;
    
    behavior buch_state_Sf_out:
      ensures aorai_CurStates ≢ Sf;
    
    behavior buch_state_in_main_in:
      assumes aorai_CurStates ≡ S_in_f;
      ensures aorai_CurStates ≡ in_main;
    
    behavior buch_state_in_main_out:
      assumes aorai_CurStates ≢ S_in_f;
      ensures aorai_CurStates ≢ in_main;
 */
extern void f_post_func(void);

/*@ requires aorai_CurStates ≡ Sf;
    
    behavior Buchi_property_behavior:
      ensures aorai_CurStates ≡ in_main;
 */
void f(void)
{
  f_pre_func();
  X ++;
  f_post_func();
  return;
}

/*@ ensures aorai_CurOpStatus ≡ aorai_Called;
    ensures aorai_CurOperation ≡ op_main;
    assigns aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates;
    
    behavior buch_state_S1_out:
      ensures aorai_CurStates ≢ S1;
    
    behavior buch_state_S2_out:
      ensures aorai_CurStates ≢ S2;
    
    behavior buch_state_S_in_f_out:
      ensures aorai_CurStates ≢ S_in_f;
    
    behavior buch_state_Sf_in:
      assumes aorai_CurStates ≡ S1;
      ensures aorai_CurStates ≡ Sf;
    
    behavior buch_state_Sf_out:
      assumes aorai_CurStates ≢ S1;
      ensures aorai_CurStates ≢ Sf;
    
    behavior buch_state_in_main_out:
      ensures aorai_CurStates ≢ in_main;
 */
extern void main_pre_func(void);

/*@ requires aorai_CurStates ≡ in_main;
    ensures aorai_CurOpStatus ≡ aorai_Terminated;
    ensures aorai_CurOperation ≡ op_main;
    assigns aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates;
    
    behavior buch_state_S1_out:
      ensures aorai_CurStates ≢ S1;
    
    behavior buch_state_S2_in:
      assumes aorai_CurStates ≡ in_main;
      ensures aorai_CurStates ≡ S2;
    
    behavior buch_state_S2_out:
      assumes aorai_CurStates ≢ in_main;
      ensures aorai_CurStates ≢ S2;
    
    behavior buch_state_S_in_f_out:
      ensures aorai_CurStates ≢ S_in_f;
    
    behavior buch_state_Sf_out:
      ensures aorai_CurStates ≢ Sf;
    
    behavior buch_state_in_main_out:
      ensures aorai_CurStates ≢ in_main;
 */
extern void main_post_func(int res);

/*@ requires aorai_CurStates ≡ S1;
    assigns X, aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates;
    
    behavior foo:
      assigns X, aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates;
    
    behavior Buchi_property_behavior:
      ensures aorai_CurStates ≡ S2;
 */
int main(void)
{
  main_pre_func();
  /*@ assigns X; */
  X ++;
  /*@ assigns X, aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates; */
  f();
  main_post_func(X);
  return X;
}


