From 03f04141a7fe0275cb0180359de80aaf799b473c Mon Sep 17 00:00:00 2001
From: Virgile Prevosto <virgile.prevosto@m4x.org>
Date: Tue, 12 Jan 2021 09:16:55 +0100
Subject: [PATCH] [aorai] update oracles

---
 .../tests/ltl/oracle/test_boucle.res.oracle   |   9 +-
 .../tests/ltl/oracle/test_boucle1.res.oracle  |   6 +-
 .../tests/ltl/oracle/test_boucle2.res.oracle  |   4 +-
 .../tests/ltl/oracle/test_boucle3.res.oracle  |   4 +-
 .../ltl/oracle/test_factorial.res.oracle      |  15 +-
 .../ltl/oracle/test_recursion2.0.res.oracle   |   6 +-
 .../ltl/oracle/test_recursion2.1.res.oracle   |  10 +-
 .../tests/ltl/oracle/test_switch3.res.oracle  |  16 +-
 .../ltl/oracle/test_switch3_if.res.oracle     |  16 +-
 .../ltl/oracle/test_switch3_return.res.oracle |  16 +-
 .../aorai/tests/ya/logical_operators.i        |   2 +-
 .../ya/oracle/aorai_ptr_field.res.oracle      |  11 +-
 .../tests/ya/oracle/deterministic.res.oracle  |  33 +-
 .../aorai/tests/ya/oracle/formals.res.oracle  |  65 +++-
 .../tests/ya/oracle/hoare_seq.res.oracle      |  30 +-
 .../ya/oracle/logical_operators.res.oracle    |   9 +-
 .../tests/ya/oracle/loop_bts1050.res.oracle   |  18 +-
 .../ya/oracle/metavariables-right.res.oracle  |   4 +-
 .../aorai/tests/ya/oracle/not_prm.res.oracle  |   4 +-
 .../aorai/tests/ya/oracle/other.res.oracle    | 223 ++++++++++--
 .../aorai/tests/ya/oracle/seq.res.oracle      |  17 +-
 .../aorai/tests/ya/oracle/seq_loop.res.oracle |  18 +-
 .../aorai/tests/ya/oracle/serial.res.oracle   | 331 +++++++++++++-----
 .../aorai/tests/ya/oracle/stack.res.oracle    |  25 +-
 .../ya/oracle/test_acces_params.res.oracle    |   8 +-
 .../ya/oracle/test_acces_params2.res.oracle   |   8 +-
 .../test_boucle_rechercheTableau.res.oracle   |   8 +-
 .../tests/ya/oracle/test_factorial.res.oracle |  12 +-
 .../ya/oracle/test_recursion4.res.oracle      |  22 +-
 .../ya/oracle/test_recursion5.res.oracle      |  29 +-
 .../tests/ya/oracle/test_struct.res.oracle    |  16 +-
 31 files changed, 742 insertions(+), 253 deletions(-)

diff --git a/src/plugins/aorai/tests/ltl/oracle/test_boucle.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_boucle.res.oracle
index 04174d4018a..c73da4393f5 100644
--- a/src/plugins/aorai/tests/ltl/oracle/test_boucle.res.oracle
+++ b/src/plugins/aorai/tests/ltl/oracle/test_boucle.res.oracle
@@ -52,8 +52,9 @@ extern int call_to_an_undefined_function(void);
     T0_S2_tmp = T0_S2;
     T0_init_tmp = T0_init;
     accept_S1_tmp = accept_S1;
-    if (T0_S2 == 1 || accept_S1 == 1) accept_S1_tmp = 1;
-    else accept_S1_tmp = 0;
+    if (T0_S2 == 1) accept_S1_tmp = 1;
+    else 
+      if (accept_S1 == 1) accept_S1_tmp = 1; else accept_S1_tmp = 0;
     T0_init_tmp = 0;
     T0_S2_tmp = 0;
     T0_S2 = T0_S2_tmp;
@@ -160,7 +161,9 @@ int a(void)
     accept_S1_tmp = accept_S1;
     accept_S1_tmp = 0;
     T0_init_tmp = 0;
-    if (T0_S2 == 1 || accept_S1 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0;
+    if (T0_S2 == 1) T0_S2_tmp = 1;
+    else 
+      if (accept_S1 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0;
     T0_S2 = T0_S2_tmp;
     T0_init = T0_init_tmp;
     accept_S1 = accept_S1_tmp;
diff --git a/src/plugins/aorai/tests/ltl/oracle/test_boucle1.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_boucle1.res.oracle
index aed1c6cbbf0..380098d2be6 100644
--- a/src/plugins/aorai/tests/ltl/oracle/test_boucle1.res.oracle
+++ b/src/plugins/aorai/tests/ltl/oracle/test_boucle1.res.oracle
@@ -274,10 +274,12 @@ int commit_trans(void)
     accept_S4_tmp = accept_S4;
     accept_init_tmp = accept_init;
     accept_init_tmp = 0;
-    if (accept_S2 == 1 && status != 0) accept_S4_tmp = 1;
+    if (accept_S2 == 1) 
+      if (status != 0) accept_S4_tmp = 1; else accept_S4_tmp = 0;
     else accept_S4_tmp = 0;
     accept_S3_tmp = 0;
-    if (accept_S2 == 1 && status == 0) accept_S2_tmp = 1;
+    if (accept_S2 == 1) 
+      if (status == 0) accept_S2_tmp = 1; else accept_S2_tmp = 0;
     else accept_S2_tmp = 0;
     accept_S1_tmp = 0;
     accept_S1 = accept_S1_tmp;
diff --git a/src/plugins/aorai/tests/ltl/oracle/test_boucle2.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_boucle2.res.oracle
index 9ab4d87d9cc..53bd6b3751c 100644
--- a/src/plugins/aorai/tests/ltl/oracle/test_boucle2.res.oracle
+++ b/src/plugins/aorai/tests/ltl/oracle/test_boucle2.res.oracle
@@ -145,7 +145,9 @@ int rr = 1;
     accept_all_tmp = 0;
     accept_S5_tmp = 0;
     accept_S4_tmp = 0;
-    if (T0_S2 == 1 && rr == 51) accept_S3_tmp = 1; else accept_S3_tmp = 0;
+    if (T0_S2 == 1) 
+      if (rr == 51) accept_S3_tmp = 1; else accept_S3_tmp = 0;
+    else accept_S3_tmp = 0;
     T0_init_tmp = 0;
     if (T0_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0;
     T0_S2 = T0_S2_tmp;
diff --git a/src/plugins/aorai/tests/ltl/oracle/test_boucle3.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_boucle3.res.oracle
index 8b2d1dbb5f2..3a2a6c4f723 100644
--- a/src/plugins/aorai/tests/ltl/oracle/test_boucle3.res.oracle
+++ b/src/plugins/aorai/tests/ltl/oracle/test_boucle3.res.oracle
@@ -238,7 +238,9 @@ void opa(void)
     accept_S3_tmp = accept_S3;
     accept_all_tmp = accept_all;
     accept_all_tmp = 0;
-    if (T1_S2 == 1 && rr == 51) accept_S3_tmp = 1; else accept_S3_tmp = 0;
+    if (T1_S2 == 1) 
+      if (rr == 51) accept_S3_tmp = 1; else accept_S3_tmp = 0;
+    else accept_S3_tmp = 0;
     T1_S2_tmp = 0;
     T0_init_tmp = 0;
     T0_S4_tmp = 0;
diff --git a/src/plugins/aorai/tests/ltl/oracle/test_factorial.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_factorial.res.oracle
index 4a0a9031b26..12e9c8f60dc 100644
--- a/src/plugins/aorai/tests/ltl/oracle/test_factorial.res.oracle
+++ b/src/plugins/aorai/tests/ltl/oracle/test_factorial.res.oracle
@@ -219,8 +219,9 @@ int decode_int(char *s)
     accept_S2_tmp = accept_S2;
     accept_init_tmp = accept_init;
     accept_init_tmp = 0;
-    if (accept_S1 == 1 || accept_S2 == 1) accept_S2_tmp = 1;
-    else accept_S2_tmp = 0;
+    if (accept_S1 == 1) accept_S2_tmp = 1;
+    else 
+      if (accept_S2 == 1) accept_S2_tmp = 1; else accept_S2_tmp = 0;
     accept_S1_tmp = 0;
     accept_S1 = accept_S1_tmp;
     accept_S2 = accept_S2_tmp;
@@ -268,10 +269,12 @@ int decode_int(char *s)
     accept_S2_tmp = accept_S2;
     accept_init_tmp = accept_init;
     accept_init_tmp = 0;
-    if (accept_S1 == 1 || accept_S2 == 1) accept_S2_tmp = 1;
-    else accept_S2_tmp = 0;
-    if (accept_S1 == 1 || accept_S2 == 1) accept_S1_tmp = 1;
-    else accept_S1_tmp = 0;
+    if (accept_S1 == 1) accept_S2_tmp = 1;
+    else 
+      if (accept_S2 == 1) accept_S2_tmp = 1; else accept_S2_tmp = 0;
+    if (accept_S1 == 1) accept_S1_tmp = 1;
+    else 
+      if (accept_S2 == 1) accept_S1_tmp = 1; else accept_S1_tmp = 0;
     accept_S1 = accept_S1_tmp;
     accept_S2 = accept_S2_tmp;
     accept_init = accept_init_tmp;
diff --git a/src/plugins/aorai/tests/ltl/oracle/test_recursion2.0.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_recursion2.0.res.oracle
index 6dda5c9d85b..472c3f9634c 100644
--- a/src/plugins/aorai/tests/ltl/oracle/test_recursion2.0.res.oracle
+++ b/src/plugins/aorai/tests/ltl/oracle/test_recursion2.0.res.oracle
@@ -106,7 +106,11 @@ int global_argc = 0;
     accept_T2_tmp = 0;
     T1_tmp = 0;
     T0_init_tmp = 0;
-    if (S1 == 1 || T1 == 1 && global_argc > 0) S1_tmp = 1; else S1_tmp = 0;
+    if (S1 == 1) S1_tmp = 1;
+    else 
+      if (T1 == 1) 
+        if (global_argc > 0) S1_tmp = 1; else S1_tmp = 0;
+      else S1_tmp = 0;
     S1 = S1_tmp;
     T0_init = T0_init_tmp;
     T1 = T1_tmp;
diff --git a/src/plugins/aorai/tests/ltl/oracle/test_recursion2.1.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_recursion2.1.res.oracle
index aabed966d5a..e2146d41412 100644
--- a/src/plugins/aorai/tests/ltl/oracle/test_recursion2.1.res.oracle
+++ b/src/plugins/aorai/tests/ltl/oracle/test_recursion2.1.res.oracle
@@ -106,7 +106,11 @@ int global_argc = 0;
     accept_T2_tmp = 0;
     T1_tmp = 0;
     T0_init_tmp = 0;
-    if (S1 == 1 || T1 == 1 && global_argc > 0) S1_tmp = 1; else S1_tmp = 0;
+    if (S1 == 1) S1_tmp = 1;
+    else 
+      if (T1 == 1) 
+        if (global_argc > 0) S1_tmp = 1; else S1_tmp = 0;
+      else S1_tmp = 0;
     S1 = S1_tmp;
     T0_init = T0_init_tmp;
     T1 = T1_tmp;
@@ -420,7 +424,9 @@ int sumOne(char *t, int length)
     T0_init_tmp = T0_init;
     T1_tmp = T1;
     accept_T2_tmp = accept_T2;
-    if (T1 == 1 && res == 1) accept_T2_tmp = 1; else accept_T2_tmp = 0;
+    if (T1 == 1) 
+      if (res == 1) accept_T2_tmp = 1; else accept_T2_tmp = 0;
+    else accept_T2_tmp = 0;
     if (T1 == 1) T1_tmp = 1; else T1_tmp = 0;
     T0_init_tmp = 0;
     S1_tmp = 0;
diff --git a/src/plugins/aorai/tests/ltl/oracle/test_switch3.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_switch3.res.oracle
index 3b0822025db..5d44a348df9 100644
--- a/src/plugins/aorai/tests/ltl/oracle/test_switch3.res.oracle
+++ b/src/plugins/aorai/tests/ltl/oracle/test_switch3.res.oracle
@@ -58,7 +58,9 @@ enum aorai_OpStatusList {
     accept_S2_tmp = 0;
     accept_S1_tmp = 0;
     T0_init_tmp = 0;
-    if (T0_S2 == 1 || accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0;
+    if (T0_S2 == 1) T0_S2_tmp = 1;
+    else 
+      if (accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0;
     T0_S2 = T0_S2_tmp;
     T0_init = T0_init_tmp;
     accept_S1 = accept_S1_tmp;
@@ -250,10 +252,14 @@ int countOne(char *argv)
     T0_init_tmp = T0_init;
     accept_S1_tmp = accept_S1;
     accept_S2_tmp = accept_S2;
-    if (T0_S2 == 1 || accept_S2 == 1) accept_S2_tmp = 1;
-    else accept_S2_tmp = 0;
-    if ((T0_S2 == 1 || accept_S1 == 1) || accept_S2 == 1) accept_S1_tmp = 1;
-    else accept_S1_tmp = 0;
+    if (T0_S2 == 1) accept_S2_tmp = 1;
+    else 
+      if (accept_S2 == 1) accept_S2_tmp = 1; else accept_S2_tmp = 0;
+    if (T0_S2 == 1) accept_S1_tmp = 1;
+    else 
+      if (accept_S1 == 1) accept_S1_tmp = 1;
+      else 
+        if (accept_S2 == 1) accept_S1_tmp = 1; else accept_S1_tmp = 0;
     T0_init_tmp = 0;
     if (accept_S1 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0;
     T0_S2 = T0_S2_tmp;
diff --git a/src/plugins/aorai/tests/ltl/oracle/test_switch3_if.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_switch3_if.res.oracle
index 74f48874eb3..64fcb6cad31 100644
--- a/src/plugins/aorai/tests/ltl/oracle/test_switch3_if.res.oracle
+++ b/src/plugins/aorai/tests/ltl/oracle/test_switch3_if.res.oracle
@@ -58,7 +58,9 @@ enum aorai_OpStatusList {
     accept_S2_tmp = 0;
     accept_S1_tmp = 0;
     T0_init_tmp = 0;
-    if (T0_S2 == 1 || accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0;
+    if (T0_S2 == 1) T0_S2_tmp = 1;
+    else 
+      if (accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0;
     T0_S2 = T0_S2_tmp;
     T0_init = T0_init_tmp;
     accept_S1 = accept_S1_tmp;
@@ -248,10 +250,14 @@ int countOne(char *argv)
     T0_init_tmp = T0_init;
     accept_S1_tmp = accept_S1;
     accept_S2_tmp = accept_S2;
-    if (T0_S2 == 1 || accept_S2 == 1) accept_S2_tmp = 1;
-    else accept_S2_tmp = 0;
-    if ((T0_S2 == 1 || accept_S1 == 1) || accept_S2 == 1) accept_S1_tmp = 1;
-    else accept_S1_tmp = 0;
+    if (T0_S2 == 1) accept_S2_tmp = 1;
+    else 
+      if (accept_S2 == 1) accept_S2_tmp = 1; else accept_S2_tmp = 0;
+    if (T0_S2 == 1) accept_S1_tmp = 1;
+    else 
+      if (accept_S1 == 1) accept_S1_tmp = 1;
+      else 
+        if (accept_S2 == 1) accept_S1_tmp = 1; else accept_S1_tmp = 0;
     T0_init_tmp = 0;
     if (accept_S1 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0;
     T0_S2 = T0_S2_tmp;
diff --git a/src/plugins/aorai/tests/ltl/oracle/test_switch3_return.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_switch3_return.res.oracle
index e4f973d66d5..e3db4bca9bb 100644
--- a/src/plugins/aorai/tests/ltl/oracle/test_switch3_return.res.oracle
+++ b/src/plugins/aorai/tests/ltl/oracle/test_switch3_return.res.oracle
@@ -58,7 +58,9 @@ enum aorai_OpStatusList {
     accept_S2_tmp = 0;
     accept_S1_tmp = 0;
     T0_init_tmp = 0;
-    if (T0_S2 == 1 || accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0;
+    if (T0_S2 == 1) T0_S2_tmp = 1;
+    else 
+      if (accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0;
     T0_S2 = T0_S2_tmp;
     T0_init = T0_init_tmp;
     accept_S1 = accept_S1_tmp;
@@ -255,10 +257,14 @@ int countOne(char *argv)
     T0_init_tmp = T0_init;
     accept_S1_tmp = accept_S1;
     accept_S2_tmp = accept_S2;
-    if (T0_S2 == 1 || accept_S2 == 1) accept_S2_tmp = 1;
-    else accept_S2_tmp = 0;
-    if ((T0_S2 == 1 || accept_S1 == 1) || accept_S2 == 1) accept_S1_tmp = 1;
-    else accept_S1_tmp = 0;
+    if (T0_S2 == 1) accept_S2_tmp = 1;
+    else 
+      if (accept_S2 == 1) accept_S2_tmp = 1; else accept_S2_tmp = 0;
+    if (T0_S2 == 1) accept_S1_tmp = 1;
+    else 
+      if (accept_S1 == 1) accept_S1_tmp = 1;
+      else 
+        if (accept_S2 == 1) accept_S1_tmp = 1; else accept_S1_tmp = 0;
     T0_init_tmp = 0;
     if (accept_S1 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0;
     T0_S2 = T0_S2_tmp;
diff --git a/src/plugins/aorai/tests/ya/logical_operators.i b/src/plugins/aorai/tests/ya/logical_operators.i
index 3a5beaefe1a..1dcbba59346 100644
--- a/src/plugins/aorai/tests/ya/logical_operators.i
+++ b/src/plugins/aorai/tests/ya/logical_operators.i
@@ -1,5 +1,5 @@
 /* run.config*
-   OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@
+   OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@
 */
 
 void f(int x) {}
diff --git a/src/plugins/aorai/tests/ya/oracle/aorai_ptr_field.res.oracle b/src/plugins/aorai/tests/ya/oracle/aorai_ptr_field.res.oracle
index d8cb4fbaee5..1c1744e5f85 100644
--- a/src/plugins/aorai/tests/ya/oracle/aorai_ptr_field.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/aorai_ptr_field.res.oracle
@@ -42,8 +42,15 @@ enum aorai_OpStatusList {
     aorai_CurOperation = op_main;
     S0_tmp = S0;
     S1_tmp = S1;
-    if (S0 == 1 && s->x >= 0 || S0 == 1 && s->x < 0) S1_tmp = 1;
-    else S1_tmp = 0;
+    if (S0 == 1) {
+      if (s->x >= 0) S1_tmp = 1; else goto __aorai_label;
+    }
+    else {
+      __aorai_label: ;
+      if (S0 == 1) 
+        if (s->x < 0) S1_tmp = 1; else S1_tmp = 0;
+      else S1_tmp = 0;
+    }
     S0_tmp = 0;
     S0 = S0_tmp;
     S1 = S1_tmp;
diff --git a/src/plugins/aorai/tests/ya/oracle/deterministic.res.oracle b/src/plugins/aorai/tests/ya/oracle/deterministic.res.oracle
index 7982cfe7c16..a48b55abef9 100644
--- a/src/plugins/aorai/tests/ya/oracle/deterministic.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/deterministic.res.oracle
@@ -112,10 +112,16 @@ check lemma S0_deterministic_trans{L}:
     /@ slevel full; @/
     aorai_CurOpStatus = aorai_Called;
     aorai_CurOperation = op_g;
-    if (3 == aorai_CurStates && x == 4) aorai_CurStates = S4;
-    else 
-      if (3 == aorai_CurStates && x == 5) aorai_CurStates = S5;
+    if (3 == aorai_CurStates) {
+      if (x == 4) aorai_CurStates = S4; else goto __aorai_label;
+    }
+    else {
+      __aorai_label: ;
+      if (3 == aorai_CurStates) 
+        if (x == 5) aorai_CurStates = S5;
+        else aorai_CurStates = aorai_reject;
       else aorai_CurStates = aorai_reject;
+    }
     return;
   }
 
@@ -241,7 +247,8 @@ void g(int x)
     /@ slevel full; @/
     aorai_CurOpStatus = aorai_Called;
     aorai_CurOperation = op_f;
-    if (1 == aorai_CurStates && x == 4) aorai_CurStates = S3;
+    if (1 == aorai_CurStates) 
+      if (x == 4) aorai_CurStates = S3; else aorai_CurStates = aorai_reject;
     else aorai_CurStates = aorai_reject;
     return;
   }
@@ -292,7 +299,11 @@ void g(int x)
     /@ slevel full; @/
     aorai_CurOpStatus = aorai_Terminated;
     aorai_CurOperation = op_f;
-    if (1 == aorai_CurStates && (res == 0 && X == 5)) aorai_CurStates = S2;
+    if (1 == aorai_CurStates) 
+      if (res == 0) 
+        if (X == 5) aorai_CurStates = S2;
+        else aorai_CurStates = aorai_reject;
+      else aorai_CurStates = aorai_reject;
     else aorai_CurStates = aorai_reject;
     return;
   }
@@ -368,10 +379,16 @@ int f(int x)
     /@ slevel full; @/
     aorai_CurOpStatus = aorai_Called;
     aorai_CurOperation = op_real_main;
-    if (0 == aorai_CurStates && c != 0) aorai_CurStates = S1;
-    else 
-      if (0 == aorai_CurStates && c == 0) aorai_CurStates = S2;
+    if (0 == aorai_CurStates) {
+      if (c != 0) aorai_CurStates = S1; else goto __aorai_label_0;
+    }
+    else {
+      __aorai_label_0: ;
+      if (0 == aorai_CurStates) 
+        if (c == 0) aorai_CurStates = S2;
+        else aorai_CurStates = aorai_reject;
       else aorai_CurStates = aorai_reject;
+    }
     return;
   }
 
diff --git a/src/plugins/aorai/tests/ya/oracle/formals.res.oracle b/src/plugins/aorai/tests/ya/oracle/formals.res.oracle
index 2d0f4d7bd8a..7e1393cfc29 100644
--- a/src/plugins/aorai/tests/ya/oracle/formals.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/formals.res.oracle
@@ -131,16 +131,23 @@ check lemma aorai_intermediate_state_deterministic_trans{L}:
     /@ slevel full; @/
     aorai_CurOpStatus = aorai_Called;
     aorai_CurOperation = op_f;
-    if (7 == aorai_CurStates && x == 1) {
-      aorai_CurStates = aorai_intermediate_state;
-      aorai_x = x;
-    }
-    else 
-      if (7 == aorai_CurStates && x == 3) {
-        aorai_CurStates = aorai_intermediate_state_2;
-        aorai_x_0 = x;
+    if (7 == aorai_CurStates) {
+      if (x == 1) {
+        aorai_CurStates = aorai_intermediate_state;
+        aorai_x = x;
       }
+      else goto __aorai_label;
+    }
+    else {
+      __aorai_label: ;
+      if (7 == aorai_CurStates) 
+        if (x == 3) {
+          aorai_CurStates = aorai_intermediate_state_2;
+          aorai_x_0 = x;
+        }
+        else aorai_CurStates = aorai_reject;
       else aorai_CurStates = aorai_reject;
+    }
     return;
   }
 
@@ -214,14 +221,30 @@ check lemma aorai_intermediate_state_deterministic_trans{L}:
     /@ slevel full; @/
     aorai_CurOpStatus = aorai_Terminated;
     aorai_CurOperation = op_f;
-    if (4 == aorai_CurStates && aorai_x_0 == 3) aorai_CurStates = OK;
-    else 
-      if (1 == aorai_CurStates && aorai_x == 1) aorai_CurStates = aorai_intermediate_state_0;
-      else 
-        if (4 == aorai_CurStates && aorai_x_0 != 3) aorai_CurStates = aorai_reject;
-        else 
-          if (1 == aorai_CurStates && aorai_x != 1) aorai_CurStates = aorai_reject;
+    if (4 == aorai_CurStates) {
+      if (aorai_x_0 == 3) aorai_CurStates = OK; else goto __aorai_label_2;
+    }
+    else {
+      __aorai_label_2: ;
+      if (1 == aorai_CurStates) {
+        if (aorai_x == 1) aorai_CurStates = aorai_intermediate_state_0;
+        else goto __aorai_label_1;
+      }
+      else {
+        __aorai_label_1: ;
+        if (4 == aorai_CurStates) {
+          if (aorai_x_0 != 3) aorai_CurStates = aorai_reject;
+          else goto __aorai_label_0;
+        }
+        else {
+          __aorai_label_0: ;
+          if (1 == aorai_CurStates) 
+            if (aorai_x != 1) aorai_CurStates = aorai_reject;
+            else aorai_CurStates = aorai_reject;
           else aorai_CurStates = aorai_reject;
+        }
+      }
+    }
     return;
   }
 
@@ -422,14 +445,20 @@ int f(int x)
     /@ slevel full; @/
     aorai_CurOpStatus = aorai_Terminated;
     aorai_CurOperation = op_g;
-    if (3 == aorai_CurStates && aorai_y == 2) aorai_CurStates = OK;
-    else 
+    if (3 == aorai_CurStates) {
+      if (aorai_y == 2) aorai_CurStates = OK; else goto __aorai_label_3;
+    }
+    else {
+      __aorai_label_3: ;
       if (0 == aorai_CurStates) aorai_CurStates = OK;
       else 
         if (5 == aorai_CurStates) aorai_CurStates = aorai_reject;
         else 
-          if (3 == aorai_CurStates && aorai_y != 2) aorai_CurStates = aorai_reject;
+          if (3 == aorai_CurStates) 
+            if (aorai_y != 2) aorai_CurStates = aorai_reject;
+            else aorai_CurStates = aorai_reject;
           else aorai_CurStates = aorai_reject;
+    }
     return;
   }
 
diff --git a/src/plugins/aorai/tests/ya/oracle/hoare_seq.res.oracle b/src/plugins/aorai/tests/ya/oracle/hoare_seq.res.oracle
index 29ffb1ff422..e12c9597528 100644
--- a/src/plugins/aorai/tests/ya/oracle/hoare_seq.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/hoare_seq.res.oracle
@@ -317,10 +317,14 @@ int main_bhv_bhv(int c); */
     aorai_reject_tmp = 0;
     aorai_intermediate_state_2_tmp = 0;
     aorai_intermediate_state_1_tmp = 0;
-    if (S0 == 1 && c <= 0) aorai_intermediate_state_0_tmp = 1;
+    if (S0 == 1) 
+      if (c <= 0) aorai_intermediate_state_0_tmp = 1;
+      else aorai_intermediate_state_0_tmp = 0;
     else aorai_intermediate_state_0_tmp = 0;
     bhv_aux = main_bhv_bhv(c);
-    if (S0 == 1 && bhv_aux) aorai_intermediate_state_tmp = 1;
+    if (S0 == 1) 
+      if (bhv_aux) aorai_intermediate_state_tmp = 1;
+      else aorai_intermediate_state_tmp = 0;
     else aorai_intermediate_state_tmp = 0;
     Sf_tmp = 0;
     S0_tmp = 0;
@@ -409,17 +413,25 @@ int main_bhv_bhv(int c); */
     aorai_intermediate_state_1_tmp = aorai_intermediate_state_1;
     aorai_intermediate_state_2_tmp = aorai_intermediate_state_2;
     aorai_reject_tmp = aorai_reject;
-    if ((aorai_intermediate_state_0 == 1 || aorai_intermediate_state_2 == 1 && 
-                                            res != 0) || aorai_reject == 1) 
-      aorai_reject_tmp = 1;
-    else aorai_reject_tmp = 0;
+    if (aorai_intermediate_state_0 == 1) aorai_reject_tmp = 1;
+    else 
+      if (aorai_intermediate_state_2 == 1) {
+        if (res != 0) aorai_reject_tmp = 1; else goto __aorai_label;
+      }
+      else {
+        __aorai_label: ;
+        if (aorai_reject == 1) aorai_reject_tmp = 1;
+        else aorai_reject_tmp = 0;
+      }
     aorai_intermediate_state_2_tmp = 0;
     aorai_intermediate_state_1_tmp = 0;
     aorai_intermediate_state_0_tmp = 0;
     aorai_intermediate_state_tmp = 0;
-    if (aorai_intermediate_state == 1 || aorai_intermediate_state_2 == 1 && 
-                                         res == 0) Sf_tmp = 1;
-    else Sf_tmp = 0;
+    if (aorai_intermediate_state == 1) Sf_tmp = 1;
+    else 
+      if (aorai_intermediate_state_2 == 1) 
+        if (res == 0) Sf_tmp = 1; else Sf_tmp = 0;
+      else Sf_tmp = 0;
     S0_tmp = 0;
     S0 = S0_tmp;
     Sf = Sf_tmp;
diff --git a/src/plugins/aorai/tests/ya/oracle/logical_operators.res.oracle b/src/plugins/aorai/tests/ya/oracle/logical_operators.res.oracle
index da665d11dd5..ceb4a227b1d 100644
--- a/src/plugins/aorai/tests/ya/oracle/logical_operators.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/logical_operators.res.oracle
@@ -1,5 +1,4 @@
 [kernel] Parsing tests/ya/logical_operators.i (no preprocessing)
-[aorai] Welcome to the Aorai plugin
 [kernel] Parsing TMPDIR/aorai_logical_operators_0.i (no preprocessing)
 /* Generated by Frama-C */
 enum aorai_ListOper {
@@ -10,8 +9,8 @@ enum aorai_OpStatusList {
     aorai_Terminated = 1,
     aorai_Called = 0
 };
-/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */
-/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */
+/*@ ghost enum aorai_ListOper aorai_CurOperation; */
+/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */
 /*@ ghost int I = 1; */
 /*@ ghost
   /@ requires 1 ≡ I;
@@ -31,6 +30,7 @@ enum aorai_OpStatusList {
   void f_pre_func(int x)
   {
     int I_tmp;
+    /@ slevel full; @/
     aorai_CurOpStatus = aorai_Called;
     aorai_CurOperation = op_f;
     I_tmp = I;
@@ -66,6 +66,7 @@ enum aorai_OpStatusList {
   void f_post_func(void)
   {
     int I_tmp;
+    /@ slevel full; @/
     aorai_CurOpStatus = aorai_Terminated;
     aorai_CurOperation = op_f;
     I_tmp = I;
@@ -107,6 +108,7 @@ void f(int x)
   void main_pre_func(int x)
   {
     int I_tmp;
+    /@ slevel full; @/
     aorai_CurOpStatus = aorai_Called;
     aorai_CurOperation = op_main;
     I_tmp = I;
@@ -134,6 +136,7 @@ void f(int x)
   void main_post_func(void)
   {
     int I_tmp;
+    /@ slevel full; @/
     aorai_CurOpStatus = aorai_Terminated;
     aorai_CurOperation = op_main;
     I_tmp = I;
diff --git a/src/plugins/aorai/tests/ya/oracle/loop_bts1050.res.oracle b/src/plugins/aorai/tests/ya/oracle/loop_bts1050.res.oracle
index 6569b67175a..a841b2ae6cb 100644
--- a/src/plugins/aorai/tests/ya/oracle/loop_bts1050.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/loop_bts1050.res.oracle
@@ -95,10 +95,14 @@ enum aorai_OpStatusList {
     aorai_intermediate_state_3_tmp = aorai_intermediate_state_3;
     aorai_intermediate_state_3_tmp = 0;
     aorai_intermediate_state_2_tmp = 0;
-    if (aorai_intermediate_state == 1 || aorai_intermediate_state_0 == 1 && 
-                                         aorai_counter < 5) aorai_intermediate_state_1_tmp = 1;
-    else aorai_intermediate_state_1_tmp = 0;
-    if (aorai_intermediate_state_0 == 1 && aorai_counter < 5) aorai_counter ++;
+    if (aorai_intermediate_state == 1) aorai_intermediate_state_1_tmp = 1;
+    else 
+      if (aorai_intermediate_state_0 == 1) 
+        if (aorai_counter < 5) aorai_intermediate_state_1_tmp = 1;
+        else aorai_intermediate_state_1_tmp = 0;
+      else aorai_intermediate_state_1_tmp = 0;
+    if (aorai_intermediate_state_0 == 1) 
+      if (aorai_counter < 5) aorai_counter ++;
     if (aorai_intermediate_state == 1) aorai_counter = 1;
     aorai_intermediate_state_0_tmp = 0;
     aorai_intermediate_state_tmp = 0;
@@ -544,9 +548,9 @@ void g(void)
     aorai_intermediate_state_1_tmp = 0;
     aorai_intermediate_state_0_tmp = 0;
     aorai_intermediate_state_tmp = 0;
-    if (aorai_intermediate_state == 1 || aorai_intermediate_state_0 == 1) 
-      Sf_tmp = 1;
-    else Sf_tmp = 0;
+    if (aorai_intermediate_state == 1) Sf_tmp = 1;
+    else 
+      if (aorai_intermediate_state_0 == 1) Sf_tmp = 1; else Sf_tmp = 0;
     S0_tmp = 0;
     S0 = S0_tmp;
     Sf = Sf_tmp;
diff --git a/src/plugins/aorai/tests/ya/oracle/metavariables-right.res.oracle b/src/plugins/aorai/tests/ya/oracle/metavariables-right.res.oracle
index 1ad02912fd1..e0f52649ef1 100644
--- a/src/plugins/aorai/tests/ya/oracle/metavariables-right.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/metavariables-right.res.oracle
@@ -363,7 +363,9 @@ void g(void)
     /@ slevel full; @/
     aorai_CurOpStatus = aorai_Called;
     aorai_CurOperation = op_h;
-    if (5 == aorai_CurStates && aorai_x > 0) aorai_CurStates = f_0;
+    if (5 == aorai_CurStates) 
+      if (aorai_x > 0) aorai_CurStates = f_0;
+      else aorai_CurStates = aorai_reject;
     else aorai_CurStates = aorai_reject;
     return;
   }
diff --git a/src/plugins/aorai/tests/ya/oracle/not_prm.res.oracle b/src/plugins/aorai/tests/ya/oracle/not_prm.res.oracle
index 79d8cc18058..e730bc38477 100644
--- a/src/plugins/aorai/tests/ya/oracle/not_prm.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/not_prm.res.oracle
@@ -39,7 +39,9 @@ enum aorai_OpStatusList {
     aorai_CurOperation = op_f;
     S0_tmp = S0;
     Sf_tmp = Sf;
-    if (S0 == 1 && x >= 4) Sf_tmp = 1; else Sf_tmp = 0;
+    if (S0 == 1) 
+      if (x >= 4) Sf_tmp = 1; else Sf_tmp = 0;
+    else Sf_tmp = 0;
     S0_tmp = 0;
     S0 = S0_tmp;
     Sf = Sf_tmp;
diff --git a/src/plugins/aorai/tests/ya/oracle/other.res.oracle b/src/plugins/aorai/tests/ya/oracle/other.res.oracle
index d7146144fdf..2e314748222 100644
--- a/src/plugins/aorai/tests/ya/oracle/other.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/other.res.oracle
@@ -65,13 +65,42 @@ int x = 0;
     init_tmp = init;
     last_tmp = last;
     step1_tmp = step1;
-    if ((init == 1 && x == 3 || last == 1 && x == 3) || step1 == 1 && x != 4) 
-      step1_tmp = 1;
-    else step1_tmp = 0;
-    if (last == 1 && (x != 4 && x != 3) || step1 == 1 && x == 4) last_tmp = 1;
-    else last_tmp = 0;
-    if (init == 1 && x != 3 || last == 1 && x == 4) init_tmp = 1;
-    else init_tmp = 0;
+    if (init == 1) {
+      if (x == 3) step1_tmp = 1; else goto __aorai_label_2;
+    }
+    else {
+      __aorai_label_2: ;
+      if (last == 1) {
+        if (x == 3) step1_tmp = 1; else goto __aorai_label_1;
+      }
+      else {
+        __aorai_label_1: ;
+        if (step1 == 1) 
+          if (x != 4) step1_tmp = 1; else step1_tmp = 0;
+        else step1_tmp = 0;
+      }
+    }
+    if (last == 1) {
+      if (x != 4) {
+        if (x != 3) last_tmp = 1; else goto __aorai_label_0;
+      }
+      else goto __aorai_label_0;
+    }
+    else {
+      __aorai_label_0: ;
+      if (step1 == 1) 
+        if (x == 4) last_tmp = 1; else last_tmp = 0;
+      else last_tmp = 0;
+    }
+    if (init == 1) {
+      if (x != 3) init_tmp = 1; else goto __aorai_label;
+    }
+    else {
+      __aorai_label: ;
+      if (last == 1) 
+        if (x == 4) init_tmp = 1; else init_tmp = 0;
+      else init_tmp = 0;
+    }
     init = init_tmp;
     last = last_tmp;
     step1 = step1_tmp;
@@ -129,13 +158,42 @@ int x = 0;
     init_tmp = init;
     last_tmp = last;
     step1_tmp = step1;
-    if ((init == 1 && x == 3 || last == 1 && x == 3) || step1 == 1 && x != 4) 
-      step1_tmp = 1;
-    else step1_tmp = 0;
-    if (last == 1 && (x != 4 && x != 3) || step1 == 1 && x == 4) last_tmp = 1;
-    else last_tmp = 0;
-    if (init == 1 && x != 3 || last == 1 && x == 4) init_tmp = 1;
-    else init_tmp = 0;
+    if (init == 1) {
+      if (x == 3) step1_tmp = 1; else goto __aorai_label_6;
+    }
+    else {
+      __aorai_label_6: ;
+      if (last == 1) {
+        if (x == 3) step1_tmp = 1; else goto __aorai_label_5;
+      }
+      else {
+        __aorai_label_5: ;
+        if (step1 == 1) 
+          if (x != 4) step1_tmp = 1; else step1_tmp = 0;
+        else step1_tmp = 0;
+      }
+    }
+    if (last == 1) {
+      if (x != 4) {
+        if (x != 3) last_tmp = 1; else goto __aorai_label_4;
+      }
+      else goto __aorai_label_4;
+    }
+    else {
+      __aorai_label_4: ;
+      if (step1 == 1) 
+        if (x == 4) last_tmp = 1; else last_tmp = 0;
+      else last_tmp = 0;
+    }
+    if (init == 1) {
+      if (x != 3) init_tmp = 1; else goto __aorai_label_3;
+    }
+    else {
+      __aorai_label_3: ;
+      if (last == 1) 
+        if (x == 4) init_tmp = 1; else init_tmp = 0;
+      else init_tmp = 0;
+    }
     init = init_tmp;
     last = last_tmp;
     step1 = step1_tmp;
@@ -257,13 +315,42 @@ void f(void)
     init_tmp = init;
     last_tmp = last;
     step1_tmp = step1;
-    if ((init == 1 && x == 3 || last == 1 && x == 3) || step1 == 1 && x != 4) 
-      step1_tmp = 1;
-    else step1_tmp = 0;
-    if (last == 1 && (x != 4 && x != 3) || step1 == 1 && x == 4) last_tmp = 1;
-    else last_tmp = 0;
-    if (init == 1 && x != 3 || last == 1 && x == 4) init_tmp = 1;
-    else init_tmp = 0;
+    if (init == 1) {
+      if (x == 3) step1_tmp = 1; else goto __aorai_label_10;
+    }
+    else {
+      __aorai_label_10: ;
+      if (last == 1) {
+        if (x == 3) step1_tmp = 1; else goto __aorai_label_9;
+      }
+      else {
+        __aorai_label_9: ;
+        if (step1 == 1) 
+          if (x != 4) step1_tmp = 1; else step1_tmp = 0;
+        else step1_tmp = 0;
+      }
+    }
+    if (last == 1) {
+      if (x != 4) {
+        if (x != 3) last_tmp = 1; else goto __aorai_label_8;
+      }
+      else goto __aorai_label_8;
+    }
+    else {
+      __aorai_label_8: ;
+      if (step1 == 1) 
+        if (x == 4) last_tmp = 1; else last_tmp = 0;
+      else last_tmp = 0;
+    }
+    if (init == 1) {
+      if (x != 3) init_tmp = 1; else goto __aorai_label_7;
+    }
+    else {
+      __aorai_label_7: ;
+      if (last == 1) 
+        if (x == 4) init_tmp = 1; else init_tmp = 0;
+      else init_tmp = 0;
+    }
     init = init_tmp;
     last = last_tmp;
     step1 = step1_tmp;
@@ -321,13 +408,42 @@ void f(void)
     init_tmp = init;
     last_tmp = last;
     step1_tmp = step1;
-    if ((init == 1 && x == 3 || last == 1 && x == 3) || step1 == 1 && x != 4) 
-      step1_tmp = 1;
-    else step1_tmp = 0;
-    if (last == 1 && (x != 4 && x != 3) || step1 == 1 && x == 4) last_tmp = 1;
-    else last_tmp = 0;
-    if (init == 1 && x != 3 || last == 1 && x == 4) init_tmp = 1;
-    else init_tmp = 0;
+    if (init == 1) {
+      if (x == 3) step1_tmp = 1; else goto __aorai_label_14;
+    }
+    else {
+      __aorai_label_14: ;
+      if (last == 1) {
+        if (x == 3) step1_tmp = 1; else goto __aorai_label_13;
+      }
+      else {
+        __aorai_label_13: ;
+        if (step1 == 1) 
+          if (x != 4) step1_tmp = 1; else step1_tmp = 0;
+        else step1_tmp = 0;
+      }
+    }
+    if (last == 1) {
+      if (x != 4) {
+        if (x != 3) last_tmp = 1; else goto __aorai_label_12;
+      }
+      else goto __aorai_label_12;
+    }
+    else {
+      __aorai_label_12: ;
+      if (step1 == 1) 
+        if (x == 4) last_tmp = 1; else last_tmp = 0;
+      else last_tmp = 0;
+    }
+    if (init == 1) {
+      if (x != 3) init_tmp = 1; else goto __aorai_label_11;
+    }
+    else {
+      __aorai_label_11: ;
+      if (last == 1) 
+        if (x == 4) init_tmp = 1; else init_tmp = 0;
+      else init_tmp = 0;
+    }
     init = init_tmp;
     last = last_tmp;
     step1 = step1_tmp;
@@ -436,9 +552,13 @@ void g(void)
     init_tmp = init;
     last_tmp = last;
     step1_tmp = step1;
-    if (init == 1 && x == 3) step1_tmp = 1; else step1_tmp = 0;
+    if (init == 1) 
+      if (x == 3) step1_tmp = 1; else step1_tmp = 0;
+    else step1_tmp = 0;
     last_tmp = 0;
-    if (init == 1 && x != 3) init_tmp = 1; else init_tmp = 0;
+    if (init == 1) 
+      if (x != 3) init_tmp = 1; else init_tmp = 0;
+    else init_tmp = 0;
     init = init_tmp;
     last = last_tmp;
     step1 = step1_tmp;
@@ -496,13 +616,42 @@ void g(void)
     init_tmp = init;
     last_tmp = last;
     step1_tmp = step1;
-    if ((init == 1 && x == 3 || last == 1 && x == 3) || step1 == 1 && x != 4) 
-      step1_tmp = 1;
-    else step1_tmp = 0;
-    if (last == 1 && (x != 4 && x != 3) || step1 == 1 && x == 4) last_tmp = 1;
-    else last_tmp = 0;
-    if (init == 1 && x != 3 || last == 1 && x == 4) init_tmp = 1;
-    else init_tmp = 0;
+    if (init == 1) {
+      if (x == 3) step1_tmp = 1; else goto __aorai_label_18;
+    }
+    else {
+      __aorai_label_18: ;
+      if (last == 1) {
+        if (x == 3) step1_tmp = 1; else goto __aorai_label_17;
+      }
+      else {
+        __aorai_label_17: ;
+        if (step1 == 1) 
+          if (x != 4) step1_tmp = 1; else step1_tmp = 0;
+        else step1_tmp = 0;
+      }
+    }
+    if (last == 1) {
+      if (x != 4) {
+        if (x != 3) last_tmp = 1; else goto __aorai_label_16;
+      }
+      else goto __aorai_label_16;
+    }
+    else {
+      __aorai_label_16: ;
+      if (step1 == 1) 
+        if (x == 4) last_tmp = 1; else last_tmp = 0;
+      else last_tmp = 0;
+    }
+    if (init == 1) {
+      if (x != 3) init_tmp = 1; else goto __aorai_label_15;
+    }
+    else {
+      __aorai_label_15: ;
+      if (last == 1) 
+        if (x == 4) init_tmp = 1; else init_tmp = 0;
+      else init_tmp = 0;
+    }
     init = init_tmp;
     last = last_tmp;
     step1 = step1_tmp;
diff --git a/src/plugins/aorai/tests/ya/oracle/seq.res.oracle b/src/plugins/aorai/tests/ya/oracle/seq.res.oracle
index 92b8136c6f9..f138130a170 100644
--- a/src/plugins/aorai/tests/ya/oracle/seq.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/seq.res.oracle
@@ -280,10 +280,16 @@ void f(void)
     aorai_intermediate_state_1_tmp = aorai_intermediate_state_1;
     aorai_intermediate_state_2_tmp = aorai_intermediate_state_2;
     aorai_intermediate_state_3_tmp = aorai_intermediate_state_3;
-    if ((aorai_intermediate_state == 1 || aorai_intermediate_state_0 == 1) || 
-        aorai_intermediate_state_2 == 1 && aorai_counter < 2) aorai_intermediate_state_3_tmp = 1;
-    else aorai_intermediate_state_3_tmp = 0;
-    if (aorai_intermediate_state_2 == 1 && aorai_counter < 2) aorai_counter ++;
+    if (aorai_intermediate_state == 1) aorai_intermediate_state_3_tmp = 1;
+    else 
+      if (aorai_intermediate_state_0 == 1) aorai_intermediate_state_3_tmp = 1;
+      else 
+        if (aorai_intermediate_state_2 == 1) 
+          if (aorai_counter < 2) aorai_intermediate_state_3_tmp = 1;
+          else aorai_intermediate_state_3_tmp = 0;
+        else aorai_intermediate_state_3_tmp = 0;
+    if (aorai_intermediate_state_2 == 1) 
+      if (aorai_counter < 2) aorai_counter ++;
     if (aorai_intermediate_state_0 == 1) aorai_counter = 1;
     if (aorai_intermediate_state == 1) aorai_counter = 1;
     aorai_intermediate_state_2_tmp = 0;
@@ -567,7 +573,8 @@ void g(void)
     aorai_intermediate_state_1_tmp = 0;
     aorai_intermediate_state_0_tmp = 0;
     aorai_intermediate_state_tmp = 0;
-    if (aorai_intermediate_state_2 == 1 && 1 <= aorai_counter) Sf_tmp = 1;
+    if (aorai_intermediate_state_2 == 1) 
+      if (1 <= aorai_counter) Sf_tmp = 1; else Sf_tmp = 0;
     else Sf_tmp = 0;
     S0_tmp = 0;
     S0 = S0_tmp;
diff --git a/src/plugins/aorai/tests/ya/oracle/seq_loop.res.oracle b/src/plugins/aorai/tests/ya/oracle/seq_loop.res.oracle
index ea66b1d2bf7..eca76ebee16 100644
--- a/src/plugins/aorai/tests/ya/oracle/seq_loop.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/seq_loop.res.oracle
@@ -95,10 +95,14 @@ enum aorai_OpStatusList {
     aorai_intermediate_state_3_tmp = aorai_intermediate_state_3;
     aorai_intermediate_state_3_tmp = 0;
     aorai_intermediate_state_2_tmp = 0;
-    if (aorai_intermediate_state == 1 || aorai_intermediate_state_0 == 1 && 
-                                         aorai_counter < 5) aorai_intermediate_state_1_tmp = 1;
-    else aorai_intermediate_state_1_tmp = 0;
-    if (aorai_intermediate_state_0 == 1 && aorai_counter < 5) aorai_counter ++;
+    if (aorai_intermediate_state == 1) aorai_intermediate_state_1_tmp = 1;
+    else 
+      if (aorai_intermediate_state_0 == 1) 
+        if (aorai_counter < 5) aorai_intermediate_state_1_tmp = 1;
+        else aorai_intermediate_state_1_tmp = 0;
+      else aorai_intermediate_state_1_tmp = 0;
+    if (aorai_intermediate_state_0 == 1) 
+      if (aorai_counter < 5) aorai_counter ++;
     if (aorai_intermediate_state == 1) aorai_counter = 1;
     aorai_intermediate_state_0_tmp = 0;
     aorai_intermediate_state_tmp = 0;
@@ -544,9 +548,9 @@ void g(void)
     aorai_intermediate_state_1_tmp = 0;
     aorai_intermediate_state_0_tmp = 0;
     aorai_intermediate_state_tmp = 0;
-    if (aorai_intermediate_state == 1 || aorai_intermediate_state_0 == 1) 
-      Sf_tmp = 1;
-    else Sf_tmp = 0;
+    if (aorai_intermediate_state == 1) Sf_tmp = 1;
+    else 
+      if (aorai_intermediate_state_0 == 1) Sf_tmp = 1; else Sf_tmp = 0;
     S0_tmp = 0;
     S0 = S0_tmp;
     Sf = Sf_tmp;
diff --git a/src/plugins/aorai/tests/ya/oracle/serial.res.oracle b/src/plugins/aorai/tests/ya/oracle/serial.res.oracle
index dbf366abac3..8d2600bdb03 100644
--- a/src/plugins/aorai/tests/ya/oracle/serial.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/serial.res.oracle
@@ -276,7 +276,7 @@
 [eva:summary] ====== ANALYSIS SUMMARY ======
   ----------------------------------------------------------------------------
   11 functions analyzed (out of 11): 100% coverage.
-  In these functions, 206 statements reached (out of 261): 78% coverage.
+  In these functions, 273 statements reached (out of 339): 80% coverage.
   ----------------------------------------------------------------------------
   Some errors and warnings have been raised during the analysis:
     by the Eva analyzer:      0 errors    0 warnings
@@ -576,46 +576,123 @@ int n = 0;
     aorai_CurOperation = op_input_status;
     aorai_StatesHistory_2 = aorai_StatesHistory_1;
     aorai_StatesHistory_1 = aorai_CurStates;
-    if (18 == aorai_CurStates && ((res & 15) != 1 && (res & 1) != 0)) 
-      aorai_CurStates = StatusError;
-    else 
-      if (17 == aorai_CurStates && ((res & 15) != 1 && (res & 1) != 0)) 
-        aorai_CurStates = StatusError;
-      else 
-        if (16 == aorai_CurStates && ((res & 15) != 1 && (res & 1) != 0)) 
-          aorai_CurStates = StatusError;
-        else 
-          if (15 == aorai_CurStates && ((res & 15) != 1 && (res & 1) != 0)) 
-            aorai_CurStates = StatusError;
-          else 
-            if (14 == aorai_CurStates && ((res & 15) != 1 && (res & 1) != 0)) 
-              aorai_CurStates = StatusError;
-            else 
-              if (14 == aorai_CurStates && (res & 15) == 1) aorai_CurStates = StatusOk1;
-              else 
-                if (15 == aorai_CurStates && (res & 15) == 1) aorai_CurStates = StatusOk2;
-                else 
-                  if (16 == aorai_CurStates && (res & 15) == 1) aorai_CurStates = StatusOk3;
-                  else 
-                    if (17 == aorai_CurStates && (res & 15) == 1) aorai_CurStates = StatusOk4;
-                    else 
-                      if (18 == aorai_CurStates && (res & 15) == 1) aorai_CurStates = StatusOk5;
-                      else 
-                        if (14 == aorai_CurStates && (res & 1) == 0) 
-                          aorai_CurStates = Wait1;
-                        else 
-                          if (15 == aorai_CurStates && (res & 1) == 0) 
-                            aorai_CurStates = Wait2;
-                          else 
-                            if (16 == aorai_CurStates && (res & 1) == 0) 
-                              aorai_CurStates = Wait3;
-                            else 
-                              if (17 == aorai_CurStates && (res & 1) == 0) 
-                                aorai_CurStates = Wait4;
-                              else 
-                                if (18 == aorai_CurStates && (res & 1) == 0) 
-                                  aorai_CurStates = Wait5;
+    if (18 == aorai_CurStates) {
+      if ((res & 15) != 1) {
+        if ((res & 1) != 0) aorai_CurStates = StatusError;
+        else goto __aorai_label_12;
+      }
+      else goto __aorai_label_12;
+    }
+    else {
+      __aorai_label_12: ;
+      if (17 == aorai_CurStates) {
+        if ((res & 15) != 1) {
+          if ((res & 1) != 0) aorai_CurStates = StatusError;
+          else goto __aorai_label_11;
+        }
+        else goto __aorai_label_11;
+      }
+      else {
+        __aorai_label_11: ;
+        if (16 == aorai_CurStates) {
+          if ((res & 15) != 1) {
+            if ((res & 1) != 0) aorai_CurStates = StatusError;
+            else goto __aorai_label_10;
+          }
+          else goto __aorai_label_10;
+        }
+        else {
+          __aorai_label_10: ;
+          if (15 == aorai_CurStates) {
+            if ((res & 15) != 1) {
+              if ((res & 1) != 0) aorai_CurStates = StatusError;
+              else goto __aorai_label_9;
+            }
+            else goto __aorai_label_9;
+          }
+          else {
+            __aorai_label_9: ;
+            if (14 == aorai_CurStates) {
+              if ((res & 15) != 1) {
+                if ((res & 1) != 0) aorai_CurStates = StatusError;
+                else goto __aorai_label_8;
+              }
+              else goto __aorai_label_8;
+            }
+            else {
+              __aorai_label_8: ;
+              if (14 == aorai_CurStates) {
+                if ((res & 15) == 1) aorai_CurStates = StatusOk1;
+                else goto __aorai_label_7;
+              }
+              else {
+                __aorai_label_7: ;
+                if (15 == aorai_CurStates) {
+                  if ((res & 15) == 1) aorai_CurStates = StatusOk2;
+                  else goto __aorai_label_6;
+                }
+                else {
+                  __aorai_label_6: ;
+                  if (16 == aorai_CurStates) {
+                    if ((res & 15) == 1) aorai_CurStates = StatusOk3;
+                    else goto __aorai_label_5;
+                  }
+                  else {
+                    __aorai_label_5: ;
+                    if (17 == aorai_CurStates) {
+                      if ((res & 15) == 1) aorai_CurStates = StatusOk4;
+                      else goto __aorai_label_4;
+                    }
+                    else {
+                      __aorai_label_4: ;
+                      if (18 == aorai_CurStates) {
+                        if ((res & 15) == 1) aorai_CurStates = StatusOk5;
+                        else goto __aorai_label_3;
+                      }
+                      else {
+                        __aorai_label_3: ;
+                        if (14 == aorai_CurStates) {
+                          if ((res & 1) == 0) aorai_CurStates = Wait1;
+                          else goto __aorai_label_2;
+                        }
+                        else {
+                          __aorai_label_2: ;
+                          if (15 == aorai_CurStates) {
+                            if ((res & 1) == 0) aorai_CurStates = Wait2;
+                            else goto __aorai_label_1;
+                          }
+                          else {
+                            __aorai_label_1: ;
+                            if (16 == aorai_CurStates) {
+                              if ((res & 1) == 0) aorai_CurStates = Wait3;
+                              else goto __aorai_label_0;
+                            }
+                            else {
+                              __aorai_label_0: ;
+                              if (17 == aorai_CurStates) {
+                                if ((res & 1) == 0) aorai_CurStates = Wait4;
+                                else goto __aorai_label;
+                              }
+                              else {
+                                __aorai_label: ;
+                                if (18 == aorai_CurStates) 
+                                  if ((res & 1) == 0) aorai_CurStates = Wait5;
+                                  else aorai_CurStates = aorai_reject;
                                 else aorai_CurStates = aorai_reject;
+                              }
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
     /@ assert Aorai: aorai_smoke_test: aorai_CurStates ≢ aorai_reject; @/
     ;
     return;
@@ -682,54 +759,121 @@ int input_status(void)
     aorai_CurOperation = op_input_data;
     aorai_StatesHistory_2 = aorai_StatesHistory_1;
     aorai_StatesHistory_1 = aorai_CurStates;
-    if (5 == aorai_CurStates && (res & 128) == 0) {
-      aorai_CurStates = Complete;
-      aorai_y2 = res;
+    if (5 == aorai_CurStates) {
+      if ((res & 128) == 0) {
+        aorai_CurStates = Complete;
+        aorai_y2 = res;
+      }
+      else goto __aorai_label_26;
     }
     else 
+      __aorai_label_26:
       if (6 == aorai_CurStates) aorai_CurStates = Wait1;
       else 
-        if (5 == aorai_CurStates && (res & 192) == 192) aorai_CurStates = Wait1;
-        else 
-          if (4 == aorai_CurStates && (res & 192) == 192) aorai_CurStates = Wait1;
-          else 
-            if (3 == aorai_CurStates && (res & 192) == 192) aorai_CurStates = Wait1;
-            else 
-              if (2 == aorai_CurStates && (res & 192) == 192) aorai_CurStates = Wait1;
-              else 
-                if (1 == aorai_CurStates && (res & 128) == 0) aorai_CurStates = Wait1;
-                else 
-                  if (1 == aorai_CurStates && (res & 192) == 192) aorai_CurStates = Wait1;
-                  else 
-                    if (5 == aorai_CurStates && (res & 192) == 128) aorai_CurStates = Wait2;
-                    else 
-                      if (4 == aorai_CurStates && (res & 192) == 128) 
-                        aorai_CurStates = Wait2;
-                      else 
-                        if (3 == aorai_CurStates && (res & 192) == 128) 
-                          aorai_CurStates = Wait2;
-                        else 
-                          if (2 == aorai_CurStates && (res & 192) == 128) 
-                            aorai_CurStates = Wait2;
-                          else 
-                            if (1 == aorai_CurStates && (res & 192) == 128) 
-                              aorai_CurStates = Wait2;
-                            else 
-                              if (2 == aorai_CurStates && (res & 128) == 0) {
-                                aorai_CurStates = Wait3;
-                                aorai_x1 = res;
-                              }
-                              else 
-                                if (3 == aorai_CurStates && (res & 128) == 0) {
-                                  aorai_CurStates = Wait4;
-                                  aorai_x2 = res;
+        if (5 == aorai_CurStates) {
+          if ((res & 192) == 192) aorai_CurStates = Wait1;
+          else goto __aorai_label_25;
+        }
+        else {
+          __aorai_label_25: ;
+          if (4 == aorai_CurStates) {
+            if ((res & 192) == 192) aorai_CurStates = Wait1;
+            else goto __aorai_label_24;
+          }
+          else {
+            __aorai_label_24: ;
+            if (3 == aorai_CurStates) {
+              if ((res & 192) == 192) aorai_CurStates = Wait1;
+              else goto __aorai_label_23;
+            }
+            else {
+              __aorai_label_23: ;
+              if (2 == aorai_CurStates) {
+                if ((res & 192) == 192) aorai_CurStates = Wait1;
+                else goto __aorai_label_22;
+              }
+              else {
+                __aorai_label_22: ;
+                if (1 == aorai_CurStates) {
+                  if ((res & 128) == 0) aorai_CurStates = Wait1;
+                  else goto __aorai_label_21;
+                }
+                else {
+                  __aorai_label_21: ;
+                  if (1 == aorai_CurStates) {
+                    if ((res & 192) == 192) aorai_CurStates = Wait1;
+                    else goto __aorai_label_20;
+                  }
+                  else {
+                    __aorai_label_20: ;
+                    if (5 == aorai_CurStates) {
+                      if ((res & 192) == 128) aorai_CurStates = Wait2;
+                      else goto __aorai_label_19;
+                    }
+                    else {
+                      __aorai_label_19: ;
+                      if (4 == aorai_CurStates) {
+                        if ((res & 192) == 128) aorai_CurStates = Wait2;
+                        else goto __aorai_label_18;
+                      }
+                      else {
+                        __aorai_label_18: ;
+                        if (3 == aorai_CurStates) {
+                          if ((res & 192) == 128) aorai_CurStates = Wait2;
+                          else goto __aorai_label_17;
+                        }
+                        else {
+                          __aorai_label_17: ;
+                          if (2 == aorai_CurStates) {
+                            if ((res & 192) == 128) aorai_CurStates = Wait2;
+                            else goto __aorai_label_16;
+                          }
+                          else {
+                            __aorai_label_16: ;
+                            if (1 == aorai_CurStates) {
+                              if ((res & 192) == 128) aorai_CurStates = Wait2;
+                              else goto __aorai_label_15;
+                            }
+                            else {
+                              __aorai_label_15: ;
+                              if (2 == aorai_CurStates) {
+                                if ((res & 128) == 0) {
+                                  aorai_CurStates = Wait3;
+                                  aorai_x1 = res;
                                 }
-                                else 
-                                  if (4 == aorai_CurStates && (res & 128) == 0) {
-                                    aorai_CurStates = Wait5;
-                                    aorai_y1 = res;
+                                else goto __aorai_label_14;
+                              }
+                              else {
+                                __aorai_label_14: ;
+                                if (3 == aorai_CurStates) {
+                                  if ((res & 128) == 0) {
+                                    aorai_CurStates = Wait4;
+                                    aorai_x2 = res;
                                   }
+                                  else goto __aorai_label_13;
+                                }
+                                else {
+                                  __aorai_label_13: ;
+                                  if (4 == aorai_CurStates) 
+                                    if ((res & 128) == 0) {
+                                      aorai_CurStates = Wait5;
+                                      aorai_y1 = res;
+                                    }
+                                    else aorai_CurStates = aorai_reject;
                                   else aorai_CurStates = aorai_reject;
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
     /@ assert Aorai: aorai_smoke_test: aorai_CurStates ≢ aorai_reject; @/
     ;
     return;
@@ -781,18 +925,21 @@ int input_data(void)
                       else 
                         if (8 == aorai_CurStates) aorai_CurStates = Error;
                         else 
-                          if (0 == aorai_CurStates && (y != aorai_y1 + 
-                                                            128 * aorai_y2 || 
-                                                       x != aorai_x1 + 
-                                                            128 * aorai_x2)) 
-                            aorai_CurStates = Error;
-                          else 
-                            if (0 == aorai_CurStates && (x == aorai_x1 + 
-                                                              128 * aorai_x2 && 
-                                                         y == aorai_y1 + 
-                                                              128 * aorai_y2)) 
-                              aorai_CurStates = Wait1;
+                          if (0 == aorai_CurStates) {
+                            if (y != aorai_y1 + 128 * aorai_y2) aorai_CurStates = Error;
+                            else 
+                              if (x != aorai_x1 + 128 * aorai_x2) aorai_CurStates = Error;
+                              else goto __aorai_label_27;
+                          }
+                          else {
+                            __aorai_label_27: ;
+                            if (0 == aorai_CurStates) 
+                              if (x == aorai_x1 + 128 * aorai_x2) 
+                                if (y == aorai_y1 + 128 * aorai_y2) aorai_CurStates = Wait1;
+                                else aorai_CurStates = aorai_reject;
+                              else aorai_CurStates = aorai_reject;
                             else aorai_CurStates = aorai_reject;
+                          }
     /@ assert Aorai: aorai_smoke_test: aorai_CurStates ≢ aorai_reject; @/
     ;
     return;
diff --git a/src/plugins/aorai/tests/ya/oracle/stack.res.oracle b/src/plugins/aorai/tests/ya/oracle/stack.res.oracle
index 1c87bd33576..07be92bb84c 100644
--- a/src/plugins/aorai/tests/ya/oracle/stack.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/stack.res.oracle
@@ -219,7 +219,9 @@ void push(void)
     /@ slevel full; @/
     aorai_CurOpStatus = aorai_Called;
     aorai_CurOperation = op_pop;
-    if (4 == aorai_CurStates && aorai_n > 0) aorai_CurStates = emptying_stack;
+    if (4 == aorai_CurStates) 
+      if (aorai_n > 0) aorai_CurStates = emptying_stack;
+      else aorai_CurStates = aorai_reject;
     else aorai_CurStates = aorai_reject;
     return;
   }
@@ -277,16 +279,23 @@ void push(void)
     /@ slevel full; @/
     aorai_CurOpStatus = aorai_Terminated;
     aorai_CurOperation = op_pop;
-    if (3 == aorai_CurStates && aorai_n == 1) {
-      aorai_CurStates = empty_stack;
-      aorai_n --;
-    }
-    else 
-      if (3 == aorai_CurStates && aorai_n > 1) {
-        aorai_CurStates = filled_stack;
+    if (3 == aorai_CurStates) {
+      if (aorai_n == 1) {
+        aorai_CurStates = empty_stack;
         aorai_n --;
       }
+      else goto __aorai_label;
+    }
+    else {
+      __aorai_label: ;
+      if (3 == aorai_CurStates) 
+        if (aorai_n > 1) {
+          aorai_CurStates = filled_stack;
+          aorai_n --;
+        }
+        else aorai_CurStates = aorai_reject;
       else aorai_CurStates = aorai_reject;
+    }
     return;
   }
 
diff --git a/src/plugins/aorai/tests/ya/oracle/test_acces_params.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_acces_params.res.oracle
index 72d1dbd1b70..612b29ad3f4 100644
--- a/src/plugins/aorai/tests/ya/oracle/test_acces_params.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/test_acces_params.res.oracle
@@ -76,7 +76,9 @@ int rr = 1;
     SF_tmp = 0;
     S4_tmp = 0;
     S3_tmp = 0;
-    if (S1 == 1 && i >= 0) S2_tmp = 1; else S2_tmp = 0;
+    if (S1 == 1) 
+      if (i >= 0) S2_tmp = 1; else S2_tmp = 0;
+    else S2_tmp = 0;
     S1_tmp = 0;
     S1 = S1_tmp;
     S2 = S2_tmp;
@@ -294,7 +296,9 @@ void opa(int i, int j)
     SF_tmp = SF;
     mainst_tmp = mainst;
     mainst_tmp = 0;
-    if (S4 == 1 && res > 0) SF_tmp = 1; else SF_tmp = 0;
+    if (S4 == 1) 
+      if (res > 0) SF_tmp = 1; else SF_tmp = 0;
+    else SF_tmp = 0;
     S4_tmp = 0;
     S3_tmp = 0;
     S2_tmp = 0;
diff --git a/src/plugins/aorai/tests/ya/oracle/test_acces_params2.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_acces_params2.res.oracle
index f20db94ee5b..af3a8336223 100644
--- a/src/plugins/aorai/tests/ya/oracle/test_acces_params2.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/test_acces_params2.res.oracle
@@ -82,7 +82,9 @@ int rr = 1;
     S6_tmp = 0;
     S5_tmp = 0;
     S4_tmp = 0;
-    if (S2 == 1 && r >= 0) S3_tmp = 1; else S3_tmp = 0;
+    if (S2 == 1) 
+      if (r >= 0) S3_tmp = 1; else S3_tmp = 0;
+    else S3_tmp = 0;
     S2_tmp = 0;
     S1_tmp = 0;
     S1 = S1_tmp;
@@ -155,7 +157,9 @@ int rr = 1;
     S7_tmp = 0;
     S6_tmp = 0;
     S5_tmp = 0;
-    if (S3 == 1 && res <= 5000) S4_tmp = 1; else S4_tmp = 0;
+    if (S3 == 1) 
+      if (res <= 5000) S4_tmp = 1; else S4_tmp = 0;
+    else S4_tmp = 0;
     S3_tmp = 0;
     S2_tmp = 0;
     S1_tmp = 0;
diff --git a/src/plugins/aorai/tests/ya/oracle/test_boucle_rechercheTableau.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_boucle_rechercheTableau.res.oracle
index d9e7db7f803..028e8111075 100644
--- a/src/plugins/aorai/tests/ya/oracle/test_boucle_rechercheTableau.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/test_boucle_rechercheTableau.res.oracle
@@ -98,9 +98,13 @@ enum aorai_OpStatusList {
     End_tmp = End;
     Idle_tmp = Idle;
     WillDoFoo_tmp = WillDoFoo;
-    if (Idle == 1 && res == -1) WillDoFoo_tmp = 1; else WillDoFoo_tmp = 0;
+    if (Idle == 1) 
+      if (res == -1) WillDoFoo_tmp = 1; else WillDoFoo_tmp = 0;
+    else WillDoFoo_tmp = 0;
     Idle_tmp = 0;
-    if (Idle == 1 && res != -1) End_tmp = 1; else End_tmp = 0;
+    if (Idle == 1) 
+      if (res != -1) End_tmp = 1; else End_tmp = 0;
+    else End_tmp = 0;
     End = End_tmp;
     Idle = Idle_tmp;
     WillDoFoo = WillDoFoo_tmp;
diff --git a/src/plugins/aorai/tests/ya/oracle/test_factorial.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_factorial.res.oracle
index ed5f20033ad..b174e49f3f3 100644
--- a/src/plugins/aorai/tests/ya/oracle/test_factorial.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/test_factorial.res.oracle
@@ -216,7 +216,9 @@ int decode_int(char *s)
     S2_tmp = S2;
     main_0_tmp = main_0;
     main_0_tmp = 0;
-    if (S1 == 1 || S2 == 1) S2_tmp = 1; else S2_tmp = 0;
+    if (S1 == 1) S2_tmp = 1;
+    else 
+      if (S2 == 1) S2_tmp = 1; else S2_tmp = 0;
     S1_tmp = 0;
     S1 = S1_tmp;
     S2 = S2_tmp;
@@ -263,8 +265,12 @@ int decode_int(char *s)
     S2_tmp = S2;
     main_0_tmp = main_0;
     main_0_tmp = 0;
-    if (S1 == 1 || S2 == 1) S2_tmp = 1; else S2_tmp = 0;
-    if (S1 == 1 || S2 == 1) S1_tmp = 1; else S1_tmp = 0;
+    if (S1 == 1) S2_tmp = 1;
+    else 
+      if (S2 == 1) S2_tmp = 1; else S2_tmp = 0;
+    if (S1 == 1) S1_tmp = 1;
+    else 
+      if (S2 == 1) S1_tmp = 1; else S1_tmp = 0;
     S1 = S1_tmp;
     S2 = S2_tmp;
     main_0 = main_0_tmp;
diff --git a/src/plugins/aorai/tests/ya/oracle/test_recursion4.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_recursion4.res.oracle
index 3f9a007d776..650a1625271 100644
--- a/src/plugins/aorai/tests/ya/oracle/test_recursion4.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/test_recursion4.res.oracle
@@ -101,11 +101,25 @@ enum aorai_OpStatusList {
     End_tmp = End;
     Idle_tmp = Idle;
     WillDoFoo_tmp = WillDoFoo;
-    if (Idle == 1 && res == -1 || WillDoFoo == 1 && res == -1) WillDoFoo_tmp = 1;
-    else WillDoFoo_tmp = 0;
+    if (Idle == 1) {
+      if (res == -1) WillDoFoo_tmp = 1; else goto __aorai_label_0;
+    }
+    else {
+      __aorai_label_0: ;
+      if (WillDoFoo == 1) 
+        if (res == -1) WillDoFoo_tmp = 1; else WillDoFoo_tmp = 0;
+      else WillDoFoo_tmp = 0;
+    }
     Idle_tmp = 0;
-    if (End == 1 && res != -1 || Idle == 1 && res != -1) End_tmp = 1;
-    else End_tmp = 0;
+    if (End == 1) {
+      if (res != -1) End_tmp = 1; else goto __aorai_label;
+    }
+    else {
+      __aorai_label: ;
+      if (Idle == 1) 
+        if (res != -1) End_tmp = 1; else End_tmp = 0;
+      else End_tmp = 0;
+    }
     End = End_tmp;
     Idle = Idle_tmp;
     WillDoFoo = WillDoFoo_tmp;
diff --git a/src/plugins/aorai/tests/ya/oracle/test_recursion5.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_recursion5.res.oracle
index b3d197570e7..c4af634f2de 100644
--- a/src/plugins/aorai/tests/ya/oracle/test_recursion5.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/test_recursion5.res.oracle
@@ -124,10 +124,24 @@ enum aorai_OpStatusList {
     Idle_tmp = Idle;
     IgnoreFoo_tmp = IgnoreFoo;
     WillDoFoo_tmp = WillDoFoo;
-    if (Idle == 1 && res == -1 || WillDoFoo == 1 && res == -1) WillDoFoo_tmp = 1;
-    else WillDoFoo_tmp = 0;
-    if (Idle == 1 && res != -1 || IgnoreFoo == 1 && res != -1) IgnoreFoo_tmp = 1;
-    else IgnoreFoo_tmp = 0;
+    if (Idle == 1) {
+      if (res == -1) WillDoFoo_tmp = 1; else goto __aorai_label_0;
+    }
+    else {
+      __aorai_label_0: ;
+      if (WillDoFoo == 1) 
+        if (res == -1) WillDoFoo_tmp = 1; else WillDoFoo_tmp = 0;
+      else WillDoFoo_tmp = 0;
+    }
+    if (Idle == 1) {
+      if (res != -1) IgnoreFoo_tmp = 1; else goto __aorai_label;
+    }
+    else {
+      __aorai_label: ;
+      if (IgnoreFoo == 1) 
+        if (res != -1) IgnoreFoo_tmp = 1; else IgnoreFoo_tmp = 0;
+      else IgnoreFoo_tmp = 0;
+    }
     Idle_tmp = 0;
     End_tmp = 0;
     End = End_tmp;
@@ -281,11 +295,14 @@ int isPresentRec(int *t, int i, int max, int val)
     Idle_tmp = Idle;
     IgnoreFoo_tmp = IgnoreFoo;
     WillDoFoo_tmp = WillDoFoo;
-    if (WillDoFoo == 1 && res == -1) WillDoFoo_tmp = 1;
+    if (WillDoFoo == 1) 
+      if (res == -1) WillDoFoo_tmp = 1; else WillDoFoo_tmp = 0;
     else WillDoFoo_tmp = 0;
     IgnoreFoo_tmp = 0;
     Idle_tmp = 0;
-    if (IgnoreFoo == 1 && res != -1) End_tmp = 1; else End_tmp = 0;
+    if (IgnoreFoo == 1) 
+      if (res != -1) End_tmp = 1; else End_tmp = 0;
+    else End_tmp = 0;
     End = End_tmp;
     Idle = Idle_tmp;
     IgnoreFoo = IgnoreFoo_tmp;
diff --git a/src/plugins/aorai/tests/ya/oracle/test_struct.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_struct.res.oracle
index fa0bb669fc7..3ba01477c27 100644
--- a/src/plugins/aorai/tests/ya/oracle/test_struct.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/test_struct.res.oracle
@@ -47,7 +47,9 @@ int myAge = 0;
     S1_tmp = S1;
     main_0_tmp = main_0;
     main_0_tmp = 0;
-    if (S1 == 1 && nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0;
+    if (S1 == 1) 
+      if (nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0;
+    else S1_tmp = 0;
     S1 = S1_tmp;
     main_0 = main_0_tmp;
     return;
@@ -83,7 +85,9 @@ int myAge = 0;
     S1_tmp = S1;
     main_0_tmp = main_0;
     main_0_tmp = 0;
-    if (S1 == 1 && nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0;
+    if (S1 == 1) 
+      if (nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0;
+    else S1_tmp = 0;
     S1 = S1_tmp;
     main_0 = main_0_tmp;
     return;
@@ -136,7 +140,9 @@ void increment(void)
     S1_tmp = S1;
     main_0_tmp = main_0;
     main_0_tmp = 0;
-    if (main_0 == 1 && nobody.Age == 0) S1_tmp = 1; else S1_tmp = 0;
+    if (main_0 == 1) 
+      if (nobody.Age == 0) S1_tmp = 1; else S1_tmp = 0;
+    else S1_tmp = 0;
     S1 = S1_tmp;
     main_0 = main_0_tmp;
     return;
@@ -172,7 +178,9 @@ void increment(void)
     S1_tmp = S1;
     main_0_tmp = main_0;
     main_0_tmp = 0;
-    if (S1 == 1 && nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0;
+    if (S1 == 1) 
+      if (nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0;
+    else S1_tmp = 0;
     S1 = S1_tmp;
     main_0 = main_0_tmp;
     return;
-- 
GitLab