[kernel] Parsing share/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/slicing/bts1768.i (no preprocessing)
[slicing] slicing requests in progress...
[value] Analyzing a complete application starting at main
[value] Computing initial state
[value] Initial state computed
[value] Values of globals at initialization
  choix ∈ {0}
  state ∈ {1}
  cumul ∈ {0}
  step ∈ {0}
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
tests/slicing/bts1768.i:18:[kernel] warning: No code nor implicit assigns clause for function choisir, generating default assigns from the prototype
[value] using specification for function choisir
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
tests/slicing/bts1768.i:44:[value] entering loop for the first time
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
tests/slicing/bts1768.i:51:[kernel] warning: signed overflow. assert step+1 ≤ 2147483647;
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] computing for function lecture <- main.
        Called from tests/slicing/bts1768.i:45.
[value] computing for function choisir <- lecture <- main.
        Called from tests/slicing/bts1768.i:18.
[value] Done for function choisir
[value] Recording results for lecture
[value] Done for function lecture
[value] computing for function fsm_transition <- main.
        Called from tests/slicing/bts1768.i:46.
tests/slicing/bts1768.i:25:[kernel] warning: signed overflow. assert cumul+2 ≤ 2147483647;
tests/slicing/bts1768.i:29:[kernel] warning: signed overflow. assert cumul+1 ≤ 2147483647;
tests/slicing/bts1768.i:35:[kernel] warning: signed overflow. assert cumul+1 ≤ 2147483647;
tests/slicing/bts1768.i:35:[kernel] warning: signed overflow. assert cumul+1 ≤ 2147483647;
[value] Recording results for fsm_transition
[value] Done for function fsm_transition
[value] Recording results for main
[value] done for function main
[slicing] making slicing project 'Slicing'...
[slicing] interpreting slicing requests from the command line...
[pdg] computing for function main
[from] Computing for function lecture
[from] Computing for function choisir <-lecture
[from] Done for function choisir
[from] Done for function lecture
[from] Computing for function fsm_transition
[from] Done for function fsm_transition
[pdg] done for function main
[slicing] Nothing to select for an unreachable stmt of main
[slicing] Nothing to select for an unreachable stmt of main
[slicing] Nothing to select for an unreachable stmt of main
[slicing] Nothing to select for an unreachable stmt of main
[slicing] Nothing to select for an unreachable stmt of main
[slicing] Nothing to select for an unreachable stmt of main
[slicing] Nothing to select for an unreachable stmt of main
[slicing] Nothing to select for an unreachable stmt of main
[slicing] Nothing to select for an unreachable stmt of main
[slicing] Nothing to select for an unreachable stmt of main
[slicing] applying all slicing requests...
[slicing] applying 0 actions...
[slicing] applying all slicing requests...
[slicing] applying 1 actions...
[slicing] applying actions: 1/1...
[pdg] computing for function fsm_transition
[pdg] done for function fsm_transition
[pdg] computing for function lecture
[pdg] done for function lecture
[slicing] exporting project to 'Slicing export'...
[slicing] applying all slicing requests...
[slicing] applying 0 actions...
[sparecode] remove unused global declarations from project 'Slicing export tmp'
[sparecode] removed unused global declarations in new project 'Slicing export'
/* Generated by Frama-C */
int choix;
int state = 1;
int step = 0;
/*@ ensures \result ≡ 0 ∨ \result ≡ 1 ∨ \result ≡ 2; */
extern int choisir();

void lecture_slice_1(void)
{
  choix = choisir();
  return;
}

void fsm_transition_slice_1(void)
{
  switch (state) {
    case 1: ;
    if (choix == 2) state = 2;
    break;
    case 2: ;
    if (step == 50) 
      if (choix == 1) state = 3;
    break;
    case 3: ;
    default: ;
  }
  return;
}

void main(void)
{
  lecture_slice_1();
  fsm_transition_slice_1();
  step ++;
  lecture_slice_1();
  fsm_transition_slice_1();
  step ++;
  lecture_slice_1();
  fsm_transition_slice_1();
  step ++;
  lecture_slice_1();
  fsm_transition_slice_1();
  step ++;
  lecture_slice_1();
  fsm_transition_slice_1();
  step ++;
  lecture_slice_1();
  fsm_transition_slice_1();
  step ++;
  lecture_slice_1();
  fsm_transition_slice_1();
  step ++;
  lecture_slice_1();
  fsm_transition_slice_1();
  step ++;
  lecture_slice_1();
  fsm_transition_slice_1();
  step ++;
  lecture_slice_1();
  fsm_transition_slice_1();
  step ++;
  /*@ loop pragma UNROLL "done", 10; */
  while (1) {
    lecture_slice_1();
    fsm_transition_slice_1();
    if (state == 3) {
      /*@ slice pragma ctrl; */ ;
      break;
    }
    step ++;
  }
  return;
}


