diff --git a/share/analysis-scripts/make_wrapper.py b/share/analysis-scripts/make_wrapper.py
index 0ae1736eebe66d66ca052706a244501f4d6f643b..3dba6e1c2752541daab67256f0ec4568c602298d 100755
--- a/share/analysis-scripts/make_wrapper.py
+++ b/share/analysis-scripts/make_wrapper.py
@@ -43,9 +43,9 @@ if sys.version_info < MIN_PYTHON:
 # We first test with 'gmake', then 'make', then fail.
 make_cmd = "gmake"
 get_make_major_version_args = r" --version | grep 'GNU Make\s\+\([0-9]\+\)\..*$' | sed -E 's|GNU Make +([0-9]+)\..*|\1|'"
-if os.system(f"test $({make_cmd} {get_make_major_version_args}) -ge 4") != 0:
+if os.system(f"command -v {make_cmd} >{os.devnull} && test \"$({make_cmd} {get_make_major_version_args})\" -ge 4 2>{os.devnull}") != 0:
     make_cmd = "make"
-    if os.system(f"test $({make_cmd} {get_make_major_version_args}) -ge 4") != 0:
+    if os.system(f"command -v {make_cmd} >{os.devnull} && test \"$({make_cmd} {get_make_major_version_args})\" -ge 4 2>{os.devnull}") != 0:
         sys.exit("error: could not find GNU make >= 4.0 (tried 'gmake' and 'make')")
 
 parser = argparse.ArgumentParser(description="""
diff --git a/src/plugins/e-acsl/doc/Changelog b/src/plugins/e-acsl/doc/Changelog
index 7581059237cfcf961bb0ff31a7b4a3a9be2f81cb..1976998a6fea11f1c4c50142815bc3213f1882c8 100644
--- a/src/plugins/e-acsl/doc/Changelog
+++ b/src/plugins/e-acsl/doc/Changelog
@@ -25,6 +25,11 @@
 Plugin E-ACSL <next-release>
 ############################
 
+-  E-ACSL       [2021-10-20] Add option -e-acsl-assert-print-data
+                (--assert-print-data in e-acsl-gcc.sh) to print data
+                contributing to a failed assertion along with the error message.
+                Add option --external-print-value in e-acsl-gcc.sh to provide a
+                custom implementation of __e_acsl_print_value().
 -  E-ACSL       [2021-10-07] Support for \prod and \numof.
 -* E-ACSL       [2021-09-29] Fix translation order of the default behavior's
                 requires clauses. They are now translated before the evaluation
diff --git a/src/plugins/e-acsl/doc/refman/.gitignore b/src/plugins/e-acsl/doc/refman/.gitignore
index b4014d512227c85fcc1877d8a66393172faeb8b8..3436ea4bc793f4beec375ee0b723b7edd82527eb 100644
--- a/src/plugins/e-acsl/doc/refman/.gitignore
+++ b/src/plugins/e-acsl/doc/refman/.gitignore
@@ -1,3 +1,5 @@
+anr-logo.png
+eu-flag.jpg
 frama-c-book.cls
 frama-c-cover.pdf
 frama-c-left.pdf
diff --git a/src/plugins/e-acsl/doc/userman/.gitignore b/src/plugins/e-acsl/doc/userman/.gitignore
index 3ffa44f89d754052b750df77ee3ef0975b691b4d..539ba638159cd08695034fbb376305cf552ba474 100644
--- a/src/plugins/e-acsl/doc/userman/.gitignore
+++ b/src/plugins/e-acsl/doc/userman/.gitignore
@@ -1,3 +1,5 @@
+anr-logo.png
+eu-flag.jpg
 frama-c-book.cls
 frama-c-cover.pdf
 frama-c-left.pdf
diff --git a/src/plugins/e-acsl/doc/userman/changes.tex b/src/plugins/e-acsl/doc/userman/changes.tex
index 0d53e9d25dceefdf9e5f1d2e1f31a7288909e102..cbdddcd2a4d79e312b40c913ba71a700538bcf8a 100644
--- a/src/plugins/e-acsl/doc/userman/changes.tex
+++ b/src/plugins/e-acsl/doc/userman/changes.tex
@@ -6,6 +6,14 @@ release. First we list changes of the last release.
 % Next version
 %\section*{E-ACSL \eacslpluginversion \eacslplugincodename}
 
+\section*{E-ACSL \eacslpluginversion \eacslplugincodename}
+
+\begin{itemize}
+\item \textbf{Runtime Monitor Behavior}: Document new options
+  \longopt{assert-print-data} and \longopt{external-print-value} of
+  \eacslgcc, and update documentation for option \longopt{external-assert}.
+\end{itemize}
+
 \section*{E-ACSL 22.0 Titanium}
 
 \begin{itemize}
diff --git a/src/plugins/e-acsl/doc/userman/examples/assert_sign.c b/src/plugins/e-acsl/doc/userman/examples/assert_sign.c
index 7d2fb1842f2799b6c9fe34eac9d7d08429086828..fe59d044f44d9b8fa9ec568abd02476d8c72c8a9 100644
--- a/src/plugins/e-acsl/doc/userman/examples/assert_sign.c
+++ b/src/plugins/e-acsl/doc/userman/examples/assert_sign.c
@@ -1,2 +1 @@
-void __e_acsl_assert(int pred, const char *kind, const char *func_name,
-    const char *pred_txt, const char * file, int line);
+void __e_acsl_assert(int predicate, __e_acsl_assert_data_t * data);
diff --git a/src/plugins/e-acsl/doc/userman/examples/instrumented_first.c b/src/plugins/e-acsl/doc/userman/examples/instrumented_first.c
index 54948acabb34603ad326da9f69746e4e096e980f..1610681b16dbce6e48a5f08934ecb5fb1c24320d 100644
--- a/src/plugins/e-acsl/doc/userman/examples/instrumented_first.c
+++ b/src/plugins/e-acsl/doc/userman/examples/instrumented_first.c
@@ -8,24 +8,24 @@
 #include "stddef.h"
 #include "stdio.h"
 struct __e_acsl_contract_t;
-typedef struct __e_acsl_contract_t __attribute__((__FC_BUILTIN__)) __e_acsl_contract_t;
+typedef struct __e_acsl_contract_t __attribute__((FC_BUILTIN)) __e_acsl_contract_t;
 struct __e_acsl_mpz_struct {
    int _mp_alloc ;
    int _mp_size ;
    unsigned long *_mp_d ;
 };
 typedef struct __e_acsl_mpz_struct __e_acsl_mpz_struct;
-typedef __e_acsl_mpz_struct ( __attribute__((__FC_BUILTIN__)) __e_acsl_mpz_t)[1];
+typedef __e_acsl_mpz_struct ( __attribute__((FC_BUILTIN)) __e_acsl_mpz_t)[1];
 struct __e_acsl_mpq_struct {
    __e_acsl_mpz_struct _mp_num ;
    __e_acsl_mpz_struct _mp_den ;
 };
 typedef struct __e_acsl_mpq_struct __e_acsl_mpq_struct;
-typedef __e_acsl_mpq_struct ( __attribute__((__FC_BUILTIN__)) __e_acsl_mpq_t)[1];
+typedef __e_acsl_mpq_struct ( __attribute__((FC_BUILTIN)) __e_acsl_mpq_t)[1];
 typedef unsigned long __e_acsl_mp_bitcnt_t;
 /*@ requires pred != 0;
     assigns \nothing; */
- __attribute__((__FC_BUILTIN__)) void __e_acsl_assert(int pred,
+ __attribute__((FC_BUILTIN)) void __e_acsl_assert(int pred,
                                                       char const *kind,
                                                       char const *fct,
                                                       char const *pred_txt,
diff --git a/src/plugins/e-acsl/doc/userman/examples/my_assert.c b/src/plugins/e-acsl/doc/userman/examples/my_assert.c
index d6f42e6db325c3b424a3d7f3e3e6f81ada680633..3a34ac2fa87bb04f6e1ff95ba3a63bf127fbeab1 100644
--- a/src/plugins/e-acsl/doc/userman/examples/my_assert.c
+++ b/src/plugins/e-acsl/doc/userman/examples/my_assert.c
@@ -1,16 +1,24 @@
-#include "stdio.h"
+#include <stdio.h>
+#include <e_acsl.h>
 
 extern int __e_acsl_sound_verdict;
 
-void __e_acsl_assert(int pred, const char *kind, const char *func_name,
-                     const char *pred_text, const char *file, int line) {
+void __e_acsl_assert(int predicate, __e_acsl_assert_data_t * data) {
   printf("%s in file %s at line %d in function %s is %s (%s).\n\
 The verified predicate was: `%s'.\n",
-    kind,
-    file,
-    line,
-    func_name,
-    pred ? "valid" : "invalid",
+    data->kind,
+    data->file,
+    data->line,
+    data->fct,
+    predicate ? "valid" : "invalid",
     __e_acsl_sound_verdict ? "trustworthy" : "UNTRUSTWORTHY",
-    pred_text);
+    data->pred_txt);
+  if (data->values) {
+    printf("With values:\n");
+    __e_acsl_assert_data_value_t * value = data->values;
+    while (value != NULL) {
+      __e_acsl_print_value(value);
+      value = value->next;
+    }
+  }
 }
diff --git a/src/plugins/e-acsl/doc/userman/examples/my_print_value.c b/src/plugins/e-acsl/doc/userman/examples/my_print_value.c
new file mode 100644
index 0000000000000000000000000000000000000000..184752a032acdd96f3b2b038d2833ae1d675de8e
--- /dev/null
+++ b/src/plugins/e-acsl/doc/userman/examples/my_print_value.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+#include <e_acsl.h>
+
+void __e_acsl_print_value(__e_acsl_assert_data_value_t * value) {
+  printf("\t- custom print for %s\n", value->name);
+}
diff --git a/src/plugins/e-acsl/doc/userman/examples/print_value_sign.c b/src/plugins/e-acsl/doc/userman/examples/print_value_sign.c
new file mode 100644
index 0000000000000000000000000000000000000000..bf928ebfa21b87e15e2bebf8f0fbea2ed351bdfc
--- /dev/null
+++ b/src/plugins/e-acsl/doc/userman/examples/print_value_sign.c
@@ -0,0 +1 @@
+void __e_acsl_print_value(__e_acsl_assert_data_value_t * value);
diff --git a/src/plugins/e-acsl/doc/userman/provides.tex b/src/plugins/e-acsl/doc/userman/provides.tex
index f393932c92ffcd66ac781425ac4f6380ad53e955..8c7055d64dcebd9fa0d79502a989828e242ab435 100644
--- a/src/plugins/e-acsl/doc/userman/provides.tex
+++ b/src/plugins/e-acsl/doc/userman/provides.tex
@@ -652,6 +652,20 @@ following signature:
 
 \cinput{examples/assert_sign.c}
 
+With \texttt{data} a structure containing the following fields:
+\begin{itemize}
+  \item \texttt{blocking}: integer representing if the assertion is blocking or
+        not;
+  \item \texttt{kind}: C string representing a kind of annotation (e.g.,
+        "Assertion");
+  \item \texttt{pred\_txt}: stringified predicate;
+  \item \texttt{file}: un-instrumented file of predicate placement;
+  \item \texttt{fct}: function of predicate placement in the un-instrumented
+        file;
+  \item \texttt{line}: line of predicate placement in the un-instrumented file;
+  \item \texttt{values}: values contributing to the predicate.
+\end{itemize}
+
 Additionally, it may depends on the global variable
 \texttt{\_\_e\_acsl\_sound\_verdict}\codeidxdef{e\_acsl\_sound\_verdict}. This
 variable of type \texttt{int} is set to \texttt{0} as soon as the verdict
@@ -668,7 +682,7 @@ A monitored program that uses custom definition of
 \texttt{\_\_e\_acsl\_assert}\codeidxdef{e\_acsl\_assert} can then be generated
 as follows using \longopt{external-assert} option of \eacslgcc to replace the
 default implementation of \texttt{\_\_e\_acsl\_assert}\codeidxdef{e\_acsl\_assert}
-with the customized one specified in \texttt{my\_assert.c}
+with the customized one specified in \texttt{my\_assert.c}.
 
 \begin{shell}
 \$ e-acsl-gcc.sh -c -X first.i -Ofirst --external-assert=my_assert.c
@@ -679,6 +693,91 @@ Assertion in file first.i at line 4 in function main is invalid (trustworthy).
 The verified predicate was: `x == 1'.
 \end{shell}
 
+The default assertion function prints the values contributing to an assertion
+along with the error message.
+
+\begin{shell}
+\$ e-acsl-gcc.sh -c -X first.i -Ofirst
+\$ ./first.e-acsl
+first.i: In function 'main'
+first.i:4: Error: Assertion failed:
+        The failing predicate is:
+        x == 1.
+        With values:
+        - x: 0
+\end{shell}
+
+This behavior can be overriden by using the \longopt{no-assert-print-data}
+option of \eacslgcc.
+
+\begin{shell}
+  \$ e-acsl-gcc.sh -c -X first.i -Ofirst --no-assert-print-data
+  \$ ./first.e-acsl
+  first.i: In function 'main'
+  first.i:4: Error: Assertion failed:
+          The failing predicate is:
+          x == 1.
+\end{shell}
+
+As with the assertion function, \eacslgcc provides a way to use an alternative
+definition of
+\texttt{\_\_e\_acsl\_print\_value}\codeidxdef{e\_acsl\_print\_value}.
+
+Custom implementation of \texttt{\_\_e\_acsl\_print\_value}
+\codeidxdef{e\_acsl\_print\_value} should be provided in a separate \C
+(or object file) and respect the following signature:
+
+\cinput{examples/print_value_sign.c}
+
+The details and documentation of the structure
+\texttt{\_\_e\_acsl\_assert\_data\_value\_t} can be found in the file
+\texttt{e\_acsl\_assert\_data.h} distributed with \eacsl in the installation
+folder \texttt{share/frama-c/e-acsl/instrumentation\_model}.
+
+Below is an example which prints only the name of the variable contributing to
+an assertion.
+
+\listingname{my\_print\_value.c}
+\cinput{examples/my_print_value.c}
+
+A monitored program that uses custom definition of
+\texttt{\_\_e\_acsl\_print\_value}\codeidxdef{e\_acsl\_print\_value} can then be
+generated as follows using \longopt{external-print-value} option of \eacslgcc to
+replace the default implementation of \texttt{\_\_e\_acsl\_print\_value}
+\codeidxdef{e\_acsl\_print\_value} with the customized one specified in
+\texttt{my\_print\_value.c}.
+
+\begin{shell}
+\$ e-acsl-gcc.sh -c -X first.i -Ofirst \
+    --external-print-value=my_print_value.c
+\$ ./first.e-acsl
+first.i: In function 'main'
+first.i:4: Error: Assertion failed:
+        The failing predicate is:
+        x == 1.
+        With values:
+        - custom print for x
+\end{shell}
+
+The custom definitions of \texttt{\_\_e\_acsl\_assert}\codeidxdef{e\_acsl\_assert}
+and \texttt{\_\_e\_acsl\_print\_value}\codeidxdef{e\_acsl\_print\_value} can be
+used at the same time.
+
+\begin{shell}
+\$ e-acsl-gcc.sh -c -X first.i -Ofirst \
+    --external-assert=my_assert.c \
+    --external-print-value=my_print_value.c
+\$ ./first.e-acsl
+Assertion in file first.i at line 3 in function main is valid (trustworthy).
+The verified predicate was: `x == 0'.
+With values:
+        - custom print for x
+Assertion in file first.i at line 4 in function main is invalid (trustworthy).
+The verified predicate was: `x == 1'.
+With values:
+        - custom print for x
+\end{shell}
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%>>>
diff --git a/src/plugins/e-acsl/headers/header_spec.txt b/src/plugins/e-acsl/headers/header_spec.txt
index 1583aff49c066558adf6739bbd324b7ac10aee43..b6729b91e48eab50f97bc67615a78bfc01ee7664 100644
--- a/src/plugins/e-acsl/headers/header_spec.txt
+++ b/src/plugins/e-acsl/headers/header_spec.txt
@@ -14,6 +14,9 @@ man/e-acsl-gcc.sh.1: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 scripts/e-acsl-gcc.sh: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 share/e-acsl/instrumentation_model/e_acsl_assert.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 share/e-acsl/instrumentation_model/e_acsl_assert.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL
+share/e-acsl/instrumentation_model/e_acsl_assert_data.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL
+share/e-acsl/instrumentation_model/e_acsl_assert_data_api.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL
+share/e-acsl/instrumentation_model/e_acsl_assert_data_api.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 share/e-acsl/instrumentation_model/e_acsl_contract.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 share/e-acsl/instrumentation_model/e_acsl_contract.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL
 share/e-acsl/instrumentation_model/e_acsl_temporal.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL
diff --git a/src/plugins/e-acsl/man/e-acsl-gcc.sh.1 b/src/plugins/e-acsl/man/e-acsl-gcc.sh.1
index 691002b883ef4ffa218c6e8b13f4a2c6bed81dfd..c90d2f72e9f0eeba14107f91a87557dd846dfb9b 100644
--- a/src/plugins/e-acsl/man/e-acsl-gcc.sh.1
+++ b/src/plugins/e-acsl/man/e-acsl-gcc.sh.1
@@ -183,9 +183,20 @@ trigger failure if a NULL-pointer is used as an input to free function
 on assertion failure exit with the given integer code intead of raising an abort
 signal
 .TP
+.B --assert-print-data
+print data contributing to the failed assertion along with the runtime error
+message
+.TP
+.B --no-assert-print-data
+do notprint data contributing to the failed assertion along with the runtime
+error message
+.TP
 .B --external-assert=\fI<FILE>
 the filename that contains your own implementation of __e_acsl_assert
 .TP
+.B --external-print-value=\fI<FILE>
+the filename that contains your own implementation of __e_acsl_print_value
+.TP
 .B -m, --memory-model=\fI<model>
 memory model (i.e., a runtime library for checking memory related annotations)
 to be linked against the instrumented file.
diff --git a/src/plugins/e-acsl/scripts/e-acsl-gcc.comp b/src/plugins/e-acsl/scripts/e-acsl-gcc.comp
index 882753cc9ef21def1ec2913b3d6cb694c44b674f..5ecd949e9a102f06d548ad22cc69a1913b395500 100644
--- a/src/plugins/e-acsl/scripts/e-acsl-gcc.comp
+++ b/src/plugins/e-acsl/scripts/e-acsl-gcc.comp
@@ -33,6 +33,7 @@ _eacsl_gcc() {
     -h -c -T -k
     --verbose= --debug= --logfile= --quiet --rt-debug --help
     --rt-verbose --check --then --keep-going --fail-with-code --external-assert=
+    --assert-print-data --no-assert-print-data --external-print-value=
     --no-trace
     --ocode= --oexec= --oexec-e-acsl=
     --ld-flags= --cpp-flags= --extra-cpp-args=
diff --git a/src/plugins/e-acsl/scripts/e-acsl-gcc.sh b/src/plugins/e-acsl/scripts/e-acsl-gcc.sh
index d3aab38b258c6ea2fc76e48d3f9b0ce14364233d..cab1f3ede72d4cfd8635ba6c0089894e5dbc2060 100755
--- a/src/plugins/e-acsl/scripts/e-acsl-gcc.sh
+++ b/src/plugins/e-acsl/scripts/e-acsl-gcc.sh
@@ -278,6 +278,10 @@ mmodel_features() {
     flags="$flags -DE_ACSL_EXTERNAL_ASSERT"
   fi
 
+  if [ -n "$OPTION_EXTERNAL_PRINT_VALUE" ]; then
+    flags="$flags -DE_ACSL_EXTERNAL_PRINT_VALUE"
+  fi
+
   if [ -n "$OPTION_NO_TRACE" ]; then
     flags="$flags -DE_ACSL_NO_TRACE"
   fi
@@ -299,9 +303,10 @@ LONGOPTIONS="help,compile,compile-only,debug:,ocode:,oexec:,verbose:,
   frama-c:,gcc:,e-acsl-share:,instrumented-only,rte:,oexec-e-acsl:,
   print-mmodels,rt-debug,rte-select:,then,e-acsl-extra:,check,fail-with-code:,
   temporal,weak-validity,stack-size:,heap-size:,rt-verbose,free-valid-address,
-  external-assert:,assert-print-data,validate-format-strings,no-trace,
-  libc-replacements,with-dlmalloc:,dlmalloc-from-sources,dlmalloc-compile-only,
-  dlmalloc-compile-flags:,odlmalloc:,ar:,ranlib:,mbits:"
+  external-assert:,assert-print-data,no-assert-print-data,external-print-value:,
+  validate-format-strings,no-trace,libc-replacements,with-dlmalloc:,
+  dlmalloc-from-sources,dlmalloc-compile-only,dlmalloc-compile-flags:,
+  odlmalloc:,ar:,ranlib:,mbits:"
 SHORTOPTIONS="h,c,C,d:,D,o:,O:,v:,f,E:,L,M,l:,e:,g,q,s:,F:,m:,I:,G:,X,a:,T,k,V"
 # Prefix for an error message due to wrong arguments
 ERROR="ERROR parsing arguments:"
@@ -349,6 +354,7 @@ OPTION_HEAP_SIZE=128      # Size of a stack shadow space (in MB)
 OPTION_KEEP_GOING=        # Report failing assertions but do not abort execution
 OPTION_EXTERNAL_ASSERT="" # Use custom definition of assert function
 OPTION_ASSERT_PRINT_DATA= # Print data contributing to a failed runtime assertion
+OPTION_EXTERNAL_PRINT_VALUE="" # Use custom definition of printing value function
 OPTION_WITH_DLMALLOC=""                  # Use provided dlmalloc library
 OPTION_DLMALLOC_FROM_SOURCES=            # Compile dlmalloc from sources
 OPTION_DLMALLOC_COMPILE_ONLY=            # Only compile dlmalloc
@@ -662,6 +668,16 @@ do
       shift;
       OPTION_ASSERT_PRINT_DATA="-e-acsl-assert-print-data"
     ;;
+    --no-assert-print-data)
+      shift;
+      OPTION_ASSERT_PRINT_DATA="-e-acsl-no-assert-print-data"
+    ;;
+    # Custom function for printing value
+    --external-print-value)
+      shift;
+      OPTION_EXTERNAL_PRINT_VALUE="$1"
+      shift;
+    ;;
     # Check output format functions
     --validate-format-strings)
       shift;
@@ -934,7 +950,7 @@ if [ -n "$OPTION_VALIDATE_FORMAT_STRINGS" ]; then
 fi
 
 # C, CPP and LD flags for compilation of E-ACSL-generated sources
-EACSL_CFLAGS="$OPTION_EXTERNAL_ASSERT"
+EACSL_CFLAGS="$OPTION_EXTERNAL_ASSERT $OPTION_EXTERNAL_PRINT_VALUE"
 EACSL_CPPFLAGS="-I$EACSL_SHARE"
 EACSL_LDFLAGS="$DLMALLOC_LIB_PATH -lgmp -lm"
 
diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl.h b/src/plugins/e-acsl/share/e-acsl/e_acsl.h
index 249e65692e356519b1c7f3032eab640b29b634e8..19c078c497a1685171d4f57a71e14a9ff6772950 100644
--- a/src/plugins/e-acsl/share/e-acsl/e_acsl.h
+++ b/src/plugins/e-acsl/share/e-acsl/e_acsl.h
@@ -54,6 +54,7 @@
  *        assertion failure
  *      E_ACSL_FAIL_EXITCODE - do not issue abort signal but exit with a
  *        given code
+ *      E_ACSL_DEBUG_ASSERT - print the valid predicates.
  *    Shadow spaces (only for segment model):
  *      E_ACSL_STACK_SIZE - size (in MB) of the tracked program stack
  *      E_ACSL_HEAP_SIZE - size (in MB) of the tracked program heap
@@ -64,6 +65,9 @@
  *      E_ACSL_EXTERNAL_ASSERT - if this macro is defined then function
  *      `__e_acsl_assert` is excluded from compilation. This is to allow
  *      providing alternative definitions of assertions by users.
+ *      E_ACSL_EXTERNAL_PRINT_VALUE - if this macro is defined then function
+ *      `__e_acsl_print_value` is excluded from compilation. This is to allow
+ *      providing alternative definitions of data printing functions by users.
  *    Memory deallocation:
  *      E_ACSL_FREE_VALID_ADDRESS -- Clause 7.20.3.2 of C99 standard states
  *      that NULL is a valid input to free:
@@ -81,6 +85,7 @@
 /************************************************************************/
 
 #include "instrumentation_model/e_acsl_assert.h"
+#include "instrumentation_model/e_acsl_assert_data.h"
 #include "observation_model/e_acsl_heap.h"
 
 /* }}} */
@@ -89,6 +94,7 @@
 /*** Generated code API {{{ ***/
 /************************************************************************/
 
+#include "instrumentation_model/e_acsl_assert_data_api.h"
 #include "instrumentation_model/e_acsl_contract.h"
 #include "instrumentation_model/e_acsl_temporal.h"
 #include "numerical_model/e_acsl_floating_point.h"
diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c b/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c
index a8ea00d2dcefad194a621fdada02adc85d1c0df9..27f55c75898e0a2026ee8d9ad4cea26c043314ba 100644
--- a/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c
+++ b/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c
@@ -45,6 +45,7 @@
 
 // Instrumentation model
 #include "instrumentation_model/e_acsl_assert.c"
+#include "instrumentation_model/e_acsl_assert_data_api.c"
 #include "instrumentation_model/e_acsl_contract.c"
 #include "instrumentation_model/e_acsl_temporal.c"
 
diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.c b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.c
index f5903c27cebde17678869f611dc67b077a86ea81..10a7975406f4b8646b0dbbcb75310236187f1978 100644
--- a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.c
+++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.c
@@ -34,33 +34,190 @@
 
 int eacsl_runtime_sound_verdict = 1;
 
+void eacsl_print_values(eacsl_assert_data_t *data) {
+  eacsl_assert_data_value_t *value = data->values;
+  if (value != NULL) {
+    STDERR("\tWith values:\n");
+  }
+  while (value != NULL) {
+    eacsl_print_value(value);
+    value = value->next;
+  }
+}
+
 #ifndef E_ACSL_EXTERNAL_ASSERT
 /*! \brief Default implementation of E-ACSL runtime assertions */
-void eacsl_runtime_assert(int predicate, int blocking, const char *kind,
-                          const char *fct, const char *pred_txt,
-                          const char *file, int line) {
+void eacsl_runtime_assert(int predicate, eacsl_assert_data_t *data) {
   if (eacsl_runtime_sound_verdict) {
     if (!predicate) {
+      // clang-format off
       STDERR("%s: In function '%s'\n"
              "%s:%d: Error: %s failed:\n"
              "\tThe failing predicate is:\n"
              "\t%s.\n",
-             file, fct, file, line, kind, pred_txt);
-      if (blocking) {
+             data->file, data->fct,
+             data->file, data->line, data->kind,
+             data->pred_txt);
+      // clang-format on
+      eacsl_print_values(data);
+      if (data->blocking) {
 #  ifndef E_ACSL_NO_ASSERT_FAIL /* Do fail on assertions */
 #    ifdef E_ACSL_FAIL_EXITCODE /* Fail by exit with a given code */
         exit(E_ACSL_FAIL_EXITCODE);
 #    else
-        raise_abort(file, line); /* Raise abort signal */
+        raise_abort(data->file, data->line); /* Raise abort signal */
 #    endif
 #  endif
       }
     }
-  } else
+#  ifdef E_ACSL_DEBUG_ASSERT
+    else {
+      // clang-format off
+      STDERR("%s: In function '%s'\n"
+             "%s:%d: %s valid:\n"
+             "\t%s.\n",
+             data->file, data->fct,
+             data->file, data->line, data->kind,
+             data->pred_txt);
+      // clang-format on
+      eacsl_print_values(data);
+    }
+#  endif
+  } else {
+    // clang-format off
     STDERR("%s: In function '%s'\n"
            "%s:%d: Warning: no sound verdict for %s (guess: %s).\n"
            "\tthe considered predicate is:\n"
            "\t%s\n",
-           file, fct, file, line, kind, predicate ? "ok" : "FAIL", pred_txt);
+           data->file, data->fct,
+           data->file, data->line, data->kind, predicate ? "ok" : "FAIL",
+           data->pred_txt);
+    // clang-format on
+    eacsl_print_values(data);
+  }
+}
+#endif
+
+#ifndef E_ACSL_EXTERNAL_PRINT_VALUE
+void eacsl_print_int_content(const char *name,
+                             eacsl_assert_data_int_content_t *int_content) {
+  switch (int_content->kind) {
+  case E_ACSL_IBOOL:
+    fprintf(stderr, "\t- %s: %s%d\n", name,
+            int_content->is_enum ? "<enum> " : "",
+            int_content->value.value_bool);
+    break;
+  case E_ACSL_ICHAR:
+    fprintf(stderr, "\t- %s: %s%d\n", name,
+            int_content->is_enum ? "<enum> " : "",
+            int_content->value.value_char);
+    break;
+  case E_ACSL_ISCHAR:
+    fprintf(stderr, "\t- %s: %s%hhd\n", name,
+            int_content->is_enum ? "<enum> " : "",
+            int_content->value.value_schar);
+    break;
+  case E_ACSL_IUCHAR:
+    fprintf(stderr, "\t- %s: %s%hhu\n", name,
+            int_content->is_enum ? "<enum> " : "",
+            int_content->value.value_uchar);
+    break;
+  case E_ACSL_IINT:
+    fprintf(stderr, "\t- %s: %s%d\n", name,
+            int_content->is_enum ? "<enum> " : "",
+            int_content->value.value_int);
+    break;
+  case E_ACSL_IUINT:
+    fprintf(stderr, "\t- %s: %s%u\n", name,
+            int_content->is_enum ? "<enum> " : "",
+            int_content->value.value_uint);
+    break;
+  case E_ACSL_ISHORT:
+    fprintf(stderr, "\t- %s: %s%hd\n", name,
+            int_content->is_enum ? "<enum> " : "",
+            int_content->value.value_short);
+    break;
+  case E_ACSL_IUSHORT:
+    fprintf(stderr, "\t- %s: %s%hu\n", name,
+            int_content->is_enum ? "<enum> " : "",
+            int_content->value.value_ushort);
+    break;
+  case E_ACSL_ILONG:
+    fprintf(stderr, "\t- %s: %s%ld\n", name,
+            int_content->is_enum ? "<enum> " : "",
+            int_content->value.value_long);
+    break;
+  case E_ACSL_IULONG:
+    fprintf(stderr, "\t- %s: %s%lu\n", name,
+            int_content->is_enum ? "<enum> " : "",
+            int_content->value.value_ulong);
+    break;
+  case E_ACSL_ILONGLONG:
+    fprintf(stderr, "\t- %s: %s%lld\n", name,
+            int_content->is_enum ? "<enum> " : "",
+            int_content->value.value_llong);
+    break;
+  case E_ACSL_IULONGLONG:
+    fprintf(stderr, "\t- %s: %s%llu\n", name,
+            int_content->is_enum ? "<enum> " : "",
+            int_content->value.value_ullong);
+    break;
+  case E_ACSL_IMPZ:
+    __gmp_fprintf(stderr, "\t- %s: %s%Zd\n", name,
+                  int_content->is_enum ? "<enum> " : "",
+                  int_content->value.value_mpz);
+    break;
+  }
+}
+
+void eacsl_print_real_content(const char *name,
+                              eacsl_assert_data_real_content_t *real_content) {
+  switch (real_content->kind) {
+  case E_ACSL_RFLOAT:
+    fprintf(stderr, "\t- %s: %e\n", name, real_content->value.value_float);
+    break;
+  case E_ACSL_RDOUBLE:
+    fprintf(stderr, "\t- %s: %le\n", name, real_content->value.value_double);
+    break;
+  case E_ACSL_RLONGDOUBLE:
+    fprintf(stderr, "\t- %s: %Le\n", name, real_content->value.value_ldouble);
+    break;
+  case E_ACSL_RMPQ:
+    __gmp_fprintf(stderr, "\t- %s: %Qd\n", name, real_content->value.value_mpq);
+    break;
+  }
+}
+
+void eacsl_print_value(eacsl_assert_data_value_t *value) {
+  switch (value->type) {
+  case E_ACSL_INT:
+    eacsl_print_int_content(value->name, &value->content.int_content);
+    break;
+  case E_ACSL_REAL:
+    eacsl_print_real_content(value->name, &value->content.real_content);
+    break;
+  case E_ACSL_PTR:
+    fprintf(stderr, "\t- %s: %p\n", value->name, value->content.value_ptr);
+    break;
+  case E_ACSL_ARRAY:
+    fprintf(stderr, "\t- %s: <array>\n\t\t- address: %p\n", value->name,
+            value->content.value_array);
+    break;
+  case E_ACSL_FUN:
+    fprintf(stderr, "\t- %s: <function>\n", value->name);
+    break;
+  case E_ACSL_STRUCT:
+    fprintf(stderr, "\t- %s: <struct>\n", value->name);
+    break;
+  case E_ACSL_UNION:
+    fprintf(stderr, "\t- %s: <union>\n", value->name);
+    break;
+  case E_ACSL_OTHER:
+    fprintf(stderr, "\t- %s: <other>\n", value->name);
+    break;
+  default:
+    fprintf(stderr, "\t- %s: <unknown>\n", value->name);
+    break;
+  }
 }
 #endif
diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.h b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.h
index 5a7dec8c2e9af58f59269a73abcc152cbddad4c3..124a7ccc32d14d5f4ca5db18440222c32896b241 100644
--- a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.h
+++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.h
@@ -29,9 +29,11 @@
 #define E_ACSL_ASSERT_H
 
 #include "../internals/e_acsl_alias.h"
+#include "e_acsl_assert_data.h"
 
 #define eacsl_runtime_sound_verdict export_alias(sound_verdict)
 #define eacsl_runtime_assert        export_alias(assert)
+#define eacsl_print_value           export_alias(print_value)
 
 /*! E-ACSL instrumentation automatically sets this global to 0 if its verdict
     becomes unsound.
@@ -40,25 +42,24 @@
 extern int __attribute__((FC_BUILTIN)) eacsl_runtime_sound_verdict;
 
 /*! \brief Runtime assertion verifying a given predicate
- *  \param pred  integer code of a predicate
- *  \param blocking integer representing if the assertion is blocking or not
- *  \param kind  C string representing a kind of annotation (e.g., "Assertion")
- *  \param fct
- *  \param pred_txt  stringified predicate
- *  \param file un-instrumented file of predicate placement
- *  \param line line of predicate placement in the un-instrumented file */
-/*@ assigns \nothing;
+ *  \param predicate integer code of a predicate
+ *  \param data context data for the predicate. */
+/*@ requires \valid_read(data) && \initialized(data);
+  @ assigns \nothing;
   @ behavior blocking:
-  @   assumes blocking != 0;
-  @   requires pred != 0;
+  @   assumes data->blocking != 0;
+  @   requires predicate != 0;
   @ behavior non_blocking:
-  @   assumes blocking == 0;
-  @   check requires pred != 0;
+  @   assumes data->blocking == 0;
+  @   check requires predicate != 0;
   @ complete behaviors;
   @ disjoint behaviors; */
-void eacsl_runtime_assert(int pred, int blocking, const char *kind,
-                          const char *fct, const char *pred_txt,
-                          const char *file, int line)
+void eacsl_runtime_assert(int predicate, eacsl_assert_data_t *data)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid_read(value) && \initialized(value);
+  @ assigns \nothing; */
+void eacsl_print_value(eacsl_assert_data_value_t *value)
     __attribute__((FC_BUILTIN));
 
 #endif // E_ACSL_ASSERT_H
diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data.h b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data.h
new file mode 100644
index 0000000000000000000000000000000000000000..f4d7eff2c762e569764de6f275ccb0cc38a5d4ee
--- /dev/null
+++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data.h
@@ -0,0 +1,205 @@
+/**************************************************************************/
+/*                                                                        */
+/*  This file is part of the Frama-C's E-ACSL plug-in.                    */
+/*                                                                        */
+/*  Copyright (C) 2012-2020                                               */
+/*    CEA (Commissariat à l'énergie atomique et aux énergies              */
+/*         alternatives)                                                  */
+/*                                                                        */
+/*  you can redistribute it and/or modify it under the terms of the GNU   */
+/*  Lesser General Public License as published by the Free Software       */
+/*  Foundation, version 2.1.                                              */
+/*                                                                        */
+/*  It is distributed in the hope that it will be useful,                 */
+/*  but WITHOUT ANY WARRANTY; without even the implied warranty of        */
+/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         */
+/*  GNU Lesser General Public License for more details.                   */
+/*                                                                        */
+/*  See the GNU Lesser General Public License version 2.1                 */
+/*  for more details (enclosed in the file licenses/LGPLv2.1).            */
+/*                                                                        */
+/**************************************************************************/
+
+/*! ***********************************************************************
+ * \file
+ * \brief E-ACSL data for assertions.
+ **************************************************************************/
+
+#ifndef E_ACSL_ASSERT_DATA_H
+#define E_ACSL_ASSERT_DATA_H
+
+#include <stdint.h>
+
+#include "../internals/e_acsl_alias.h"
+#include "../numerical_model/e_acsl_gmp_api.h"
+
+#define eacsl_assert_data_type_t        export_alias(assert_data_type_t)
+#define eacsl_assert_data_ikind_t       export_alias(assert_data_ikind_t)
+#define eacsl_assert_data_rkind_t       export_alias(assert_data_rkind_t)
+#define eacsl_assert_data_int_value_t   export_alias(assert_data_int_value_t)
+#define eacsl_assert_data_real_value_t  export_alias(assert_data_real_value_t)
+#define eacsl_assert_data_int_content_t export_alias(assert_data_int_content_t)
+#define eacsl_assert_data_real_content_t                                       \
+  export_alias(assert_data_real_content_t)
+#define eacsl_assert_data_content_t export_alias(assert_data_content_t)
+#define eacsl_assert_data_value_t   export_alias(assert_data_value_t)
+#define eacsl_assert_data_t         export_alias(assert_data_t)
+
+/*! Type of data contributing to an assertion. */
+typedef enum eacsl_assert_data_type_t {
+  /*! Integer data. */
+  E_ACSL_INT = 0,
+
+  /*! Real data. */
+  E_ACSL_REAL,
+
+  /*! Pointer data. */
+  E_ACSL_PTR,
+  /*! Array data. */
+  E_ACSL_ARRAY,
+  /*! Function data. */
+  E_ACSL_FUN,
+
+  /*! Structure data. */
+  E_ACSL_STRUCT,
+  /*! Union data. */
+  E_ACSL_UNION,
+
+  /*! Other type of data. */
+  E_ACSL_OTHER = 1000
+} __attribute__((FC_BUILTIN)) eacsl_assert_data_type_t;
+
+/*! Kind of integer */
+typedef enum eacsl_assert_data_ikind_t {
+  E_ACSL_IBOOL,
+  E_ACSL_ICHAR,
+  E_ACSL_ISCHAR,
+  E_ACSL_IUCHAR,
+  E_ACSL_IINT,
+  E_ACSL_IUINT,
+  E_ACSL_ISHORT,
+  E_ACSL_IUSHORT,
+  E_ACSL_ILONG,
+  E_ACSL_IULONG,
+  E_ACSL_ILONGLONG,
+  E_ACSL_IULONGLONG,
+  E_ACSL_IMPZ,
+} __attribute__((FC_BUILTIN)) eacsl_assert_data_ikind_t;
+
+/*! Kind of real */
+typedef enum eacsl_assert_data_rkind_t {
+  /*! Floating point data of type float. */
+  E_ACSL_RFLOAT,
+  /*! Floating point data of type double. */
+  E_ACSL_RDOUBLE,
+  /*! Floating point data of type long double. */
+  E_ACSL_RLONGDOUBLE,
+  /*! Rational data of type mpq_t. */
+  E_ACSL_RMPQ,
+} __attribute__((FC_BUILTIN)) eacsl_assert_data_rkind_t;
+
+/*! Union type holding the value of an integer. */
+typedef union eacsl_assert_data_int_value_t {
+  _Bool value_bool;
+  char value_char;
+  signed char value_schar;
+  unsigned char value_uchar;
+  int value_int;
+  unsigned int value_uint;
+  short value_short;
+  unsigned short value_ushort;
+  long value_long;
+  unsigned long value_ulong;
+  long long value_llong;
+  unsigned long long value_ullong;
+  /* Store a pointer to `struct eacsl_mpz_struct` instead of a `mpz_t` value to
+     optimize the size of the union. With this optimization the size of the
+     union is `sizeof(unsigned long long)` whereas, without the optimization, it
+     is at least `sizeof(int) + sizeof(int) + sizeof(unsigned long *)`.
+     In return, we need to manually allocate the memory for
+     `struct eacsl_mpz_struct` before calling `__gmpz_init_set()`. */
+  struct eacsl_mpz_struct *value_mpz;
+} __attribute__((FC_BUILTIN)) eacsl_assert_data_int_value_t;
+
+/*! Union type holding the value of a real. */
+typedef union eacsl_assert_data_real_value_t {
+  float value_float;
+  double value_double;
+  long double value_ldouble;
+  /* Store a pointer to `struct eacsl_mpq_struct` instead of a `mpq_t` value to
+     optimize the size of the union. With this optimization the size of the
+     union is `sizeof(unsigned long long)` whereas, without the optimization, it
+     is at least `2*sizeof(int) + 2*sizeof(int) + 2*sizeof(unsigned long *)`.
+     In return, we need to manually allocate the memory for
+     `struct eacsl_mpq_struct` before calling `__gmpq_init_set()`. */
+  struct eacsl_mpq_struct *value_mpq;
+} __attribute__((FC_BUILTIN)) eacsl_assert_data_real_value_t;
+
+/*! Value of an integer. */
+typedef struct eacsl_assert_data_int_content_t {
+  /*! True if the integer is an enum value, false otherwise */
+  int is_enum;
+  /*! Kind of integer. */
+  eacsl_assert_data_ikind_t kind;
+  /*! Value of the integer.
+      The active member of the union is identified with the field `kind`. */
+  eacsl_assert_data_int_value_t value;
+} __attribute__((FC_BUILTIN)) eacsl_assert_data_int_content_t;
+
+/*! Value of a real. */
+typedef struct eacsl_assert_data_real_content_t {
+  /*! Kind of real. */
+  eacsl_assert_data_rkind_t kind;
+  /*! Value of the real.
+      The active member of the union is identified with the field `kind`. */
+  eacsl_assert_data_real_value_t value;
+} __attribute__((FC_BUILTIN)) eacsl_assert_data_real_content_t;
+
+/*! Union type holding the value of a piece of data. */
+typedef union eacsl_assert_data_content_t {
+  eacsl_assert_data_int_content_t int_content;
+
+  eacsl_assert_data_real_content_t real_content;
+
+  uintptr_t value_ptr;
+  uintptr_t value_array;
+} __attribute__((FC_BUILTIN)) eacsl_assert_data_content_t;
+
+/*! Piece of data contributing to an assertion.
+
+  The structure is a single linked list that will hold all data that contributed
+  to the assertion. */
+typedef struct eacsl_assert_data_value_t {
+  /*! Name of the piece of data */
+  const char *name;
+  /*! Type of the piece of data */
+  eacsl_assert_data_type_t type;
+  /*! Value of the piece of data.
+      The active member of the union is identified with the field `type`. */
+  eacsl_assert_data_content_t content;
+  /*! Pointer to the next value in the list, or NULL if this is the last
+      value.
+      We can use a list here because the number of data in an assertion is
+      small enough. */
+  struct eacsl_assert_data_value_t *next;
+} __attribute__((FC_BUILTIN)) eacsl_assert_data_value_t;
+
+/*! Data holding context information for E-ACSL assertions. */
+typedef struct eacsl_assert_data_t {
+  /*! integer representing if the assertion is blocking or not */
+  int blocking;
+  /*! C string representing a kind of annotation (e.g., "Assertion") */
+  const char *kind;
+  /*! stringified predicate */
+  const char *pred_txt;
+  /*! un-instrumented file of predicate placement */
+  const char *file;
+  /*! function of predicate placement in the un-instrumented file */
+  const char *fct;
+  /*! line of predicate placement in the un-instrumented file */
+  int line;
+  /*! values contributing to the predicate */
+  eacsl_assert_data_value_t *values;
+} __attribute__((FC_BUILTIN)) eacsl_assert_data_t;
+
+#endif // E_ACSL_ASSERT_DATA_H
diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data_api.c b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data_api.c
new file mode 100644
index 0000000000000000000000000000000000000000..9be8e0f579f111122cc5a1210ad0c5b719f3a0f7
--- /dev/null
+++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data_api.c
@@ -0,0 +1,434 @@
+/**************************************************************************/
+/*                                                                        */
+/*  This file is part of the Frama-C's E-ACSL plug-in.                    */
+/*                                                                        */
+/*  Copyright (C) 2012-2020                                               */
+/*    CEA (Commissariat à l'énergie atomique et aux énergies              */
+/*         alternatives)                                                  */
+/*                                                                        */
+/*  you can redistribute it and/or modify it under the terms of the GNU   */
+/*  Lesser General Public License as published by the Free Software       */
+/*  Foundation, version 2.1.                                              */
+/*                                                                        */
+/*  It is distributed in the hope that it will be useful,                 */
+/*  but WITHOUT ANY WARRANTY; without even the implied warranty of        */
+/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         */
+/*  GNU Lesser General Public License for more details.                   */
+/*                                                                        */
+/*  See the GNU Lesser General Public License version 2.1                 */
+/*  for more details (enclosed in the file licenses/LGPLv2.1).            */
+/*                                                                        */
+/**************************************************************************/
+
+/*! ***********************************************************************
+ * \file
+ * \brief E-ACSL utility functions for assertions.
+ **************************************************************************/
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "../internals/e_acsl_debug.h"
+#include "../internals/e_acsl_malloc.h"
+
+#include "e_acsl_assert_data_api.h"
+
+/**
+ * Test for equality between the integer values `lhs` and `rhs`
+ */
+int eacsl_assert_data_int_equal(eacsl_assert_data_int_content_t *lhs,
+                                eacsl_assert_data_int_content_t *rhs) {
+  if (lhs->kind != rhs->kind) {
+    return 0;
+  } else if (lhs->is_enum != rhs->is_enum) {
+    return 0;
+  } else {
+    switch (lhs->kind) {
+    case E_ACSL_IBOOL:
+      return lhs->value.value_bool == rhs->value.value_bool;
+    case E_ACSL_ICHAR:
+      return lhs->value.value_char == rhs->value.value_char;
+    case E_ACSL_ISCHAR:
+      return lhs->value.value_schar == rhs->value.value_schar;
+    case E_ACSL_IUCHAR:
+      return lhs->value.value_uchar == rhs->value.value_uchar;
+    case E_ACSL_IINT:
+      return lhs->value.value_int == rhs->value.value_int;
+    case E_ACSL_IUINT:
+      return lhs->value.value_uint == rhs->value.value_uint;
+    case E_ACSL_ISHORT:
+      return lhs->value.value_short == rhs->value.value_short;
+    case E_ACSL_IUSHORT:
+      return lhs->value.value_ushort == rhs->value.value_ushort;
+    case E_ACSL_ILONG:
+      return lhs->value.value_long == rhs->value.value_long;
+    case E_ACSL_IULONG:
+      return lhs->value.value_ulong == rhs->value.value_ulong;
+    case E_ACSL_ILONGLONG:
+      return lhs->value.value_llong == rhs->value.value_llong;
+    case E_ACSL_IULONGLONG:
+      return lhs->value.value_ullong == rhs->value.value_ullong;
+    case E_ACSL_IMPZ:
+      return __gmpz_cmp(lhs->value.value_mpz, rhs->value.value_mpz) == 0;
+    }
+    private_abort("Unsupported integer kind: %d\n", lhs->kind);
+    return 1;
+  }
+}
+
+/**
+ * Test for equality between the real values `lhs` and `rhs`
+ */
+int eacsl_assert_data_real_equal(eacsl_assert_data_real_content_t *lhs,
+                                 eacsl_assert_data_real_content_t *rhs) {
+  if (lhs->kind != rhs->kind) {
+    return 0;
+  } else {
+    switch (lhs->kind) {
+    case E_ACSL_RFLOAT:
+      return lhs->value.value_float == rhs->value.value_float;
+    case E_ACSL_RDOUBLE:
+      return lhs->value.value_double == rhs->value.value_double;
+    case E_ACSL_RLONGDOUBLE:
+      return lhs->value.value_ldouble == rhs->value.value_ldouble;
+    case E_ACSL_RMPQ:
+      return __gmpq_cmp(lhs->value.value_mpq, rhs->value.value_mpq) == 0;
+    }
+    private_abort("Unsupported real kind: %d\n", lhs->kind);
+    return 1;
+  }
+}
+
+/** Test for equality between the value `lhs` and the value represented by
+ * `rhs_name`, `rhs_type` and `rhs_content`.
+ */
+int eacsl_assert_data_equal(eacsl_assert_data_value_t *lhs,
+                            const char *rhs_name,
+                            eacsl_assert_data_type_t rhs_type,
+                            eacsl_assert_data_content_t *rhs_content) {
+  if (lhs->type != rhs_type) {
+    return 0;
+  }
+  if (strcmp(lhs->name, rhs_name) != 0) {
+    return 0;
+  }
+  switch (lhs->type) {
+  case E_ACSL_INT:
+    return eacsl_assert_data_int_equal(&lhs->content.int_content,
+                                       &rhs_content->int_content);
+  case E_ACSL_REAL:
+    return eacsl_assert_data_real_equal(&lhs->content.real_content,
+                                        &rhs_content->real_content);
+  case E_ACSL_PTR:
+    return lhs->content.value_ptr == rhs_content->value_ptr;
+  case E_ACSL_ARRAY:
+    return lhs->content.value_array == rhs_content->value_array;
+  case E_ACSL_FUN:
+  case E_ACSL_STRUCT:
+  case E_ACSL_UNION:
+  case E_ACSL_OTHER:
+    // No data for those cases so two values with the same names and types are
+    // considered equal.
+    return 1;
+  }
+  private_abort("Unsupported data type: %d\n", lhs->type);
+  return 1;
+}
+
+void eacsl_assert_register_data(eacsl_assert_data_t *data, const char *name,
+                                eacsl_assert_data_type_t type,
+                                eacsl_assert_data_content_t content) {
+  // Check if the value has already been registered
+  eacsl_assert_data_value_t *value = data->values;
+  while (value != NULL) {
+    if (eacsl_assert_data_equal(value, name, type, &content)) {
+      // The value has already been registered, return immediately
+      return;
+    }
+    value = value->next;
+  }
+
+  // This is a new value, we need to add it to the context
+  value = private_malloc(sizeof(eacsl_assert_data_value_t));
+  DVASSERT(value != NULL,
+           "Unable to allocate %d bytes of memory for assert_register_data_t",
+           sizeof(eacsl_assert_data_value_t));
+  value->name = name;
+  value->type = type;
+  value->content = content;
+  value->next = data->values;
+  data->values = value;
+}
+
+void eacsl_assert_register_generic_int(eacsl_assert_data_t *data,
+                                       const char *name, int is_enum,
+                                       eacsl_assert_data_ikind_t kind,
+                                       eacsl_assert_data_int_value_t value) {
+  eacsl_assert_register_data(
+      data, name, E_ACSL_INT,
+      (eacsl_assert_data_content_t){
+          .int_content = {.kind = kind, .value = value, .is_enum = is_enum}});
+}
+
+void eacsl_assert_register_bool(eacsl_assert_data_t *data, const char *name,
+                                int is_enum, _Bool value) {
+  eacsl_assert_register_generic_int(
+      data, name, is_enum, E_ACSL_IBOOL,
+      (eacsl_assert_data_int_value_t){.value_bool = value});
+}
+
+void eacsl_assert_register_char(eacsl_assert_data_t *data, const char *name,
+                                int is_enum, char value) {
+  eacsl_assert_register_generic_int(
+      data, name, is_enum, E_ACSL_ICHAR,
+      (eacsl_assert_data_int_value_t){.value_char = value});
+}
+
+void eacsl_assert_register_schar(eacsl_assert_data_t *data, const char *name,
+                                 int is_enum, signed char value) {
+  eacsl_assert_register_generic_int(
+      data, name, is_enum, E_ACSL_ISCHAR,
+      (eacsl_assert_data_int_value_t){.value_schar = value});
+}
+
+void eacsl_assert_register_uchar(eacsl_assert_data_t *data, const char *name,
+                                 int is_enum, unsigned char value) {
+  eacsl_assert_register_generic_int(
+      data, name, is_enum, E_ACSL_IUCHAR,
+      (eacsl_assert_data_int_value_t){.value_uchar = value});
+}
+
+void eacsl_assert_register_int(eacsl_assert_data_t *data, const char *name,
+                               int is_enum, int value) {
+  eacsl_assert_register_generic_int(
+      data, name, is_enum, E_ACSL_IINT,
+      (eacsl_assert_data_int_value_t){.value_int = value});
+}
+
+void eacsl_assert_register_uint(eacsl_assert_data_t *data, const char *name,
+                                int is_enum, unsigned int value) {
+  eacsl_assert_register_generic_int(
+      data, name, is_enum, E_ACSL_IUINT,
+      (eacsl_assert_data_int_value_t){.value_uint = value});
+}
+
+void eacsl_assert_register_short(eacsl_assert_data_t *data, const char *name,
+                                 int is_enum, short value) {
+  eacsl_assert_register_generic_int(
+      data, name, is_enum, E_ACSL_ISHORT,
+      (eacsl_assert_data_int_value_t){.value_short = value});
+}
+
+void eacsl_assert_register_ushort(eacsl_assert_data_t *data, const char *name,
+                                  int is_enum, unsigned short value) {
+  eacsl_assert_register_generic_int(
+      data, name, is_enum, E_ACSL_IUSHORT,
+      (eacsl_assert_data_int_value_t){.value_ushort = value});
+}
+
+void eacsl_assert_register_long(eacsl_assert_data_t *data, const char *name,
+                                int is_enum, long value) {
+  eacsl_assert_register_generic_int(
+      data, name, is_enum, E_ACSL_ILONG,
+      (eacsl_assert_data_int_value_t){.value_long = value});
+}
+
+void eacsl_assert_register_ulong(eacsl_assert_data_t *data, const char *name,
+                                 int is_enum, unsigned long value) {
+  eacsl_assert_register_generic_int(
+      data, name, is_enum, E_ACSL_IULONG,
+      (eacsl_assert_data_int_value_t){.value_ulong = value});
+}
+
+void eacsl_assert_register_longlong(eacsl_assert_data_t *data, const char *name,
+                                    int is_enum, long long value) {
+  eacsl_assert_register_generic_int(
+      data, name, is_enum, E_ACSL_ILONGLONG,
+      (eacsl_assert_data_int_value_t){.value_llong = value});
+}
+
+void eacsl_assert_register_ulonglong(eacsl_assert_data_t *data,
+                                     const char *name, int is_enum,
+                                     unsigned long long value) {
+  eacsl_assert_register_generic_int(
+      data, name, is_enum, E_ACSL_IULONGLONG,
+      (eacsl_assert_data_int_value_t){.value_ullong = value});
+}
+
+void eacsl_assert_register_mpz(eacsl_assert_data_t *data, const char *name,
+                               int is_enum, const eacsl_mpz_t value) {
+  struct eacsl_mpz_struct *new_value =
+      private_malloc(sizeof(struct eacsl_mpz_struct));
+  __gmpz_init_set(new_value, value);
+  eacsl_assert_register_generic_int(
+      data, name, is_enum, E_ACSL_IMPZ,
+      (eacsl_assert_data_int_value_t){.value_mpz = new_value});
+}
+
+void eacsl_assert_register_generic_real(eacsl_assert_data_t *data,
+                                        const char *name,
+                                        eacsl_assert_data_rkind_t kind,
+                                        eacsl_assert_data_real_value_t value) {
+  eacsl_assert_register_data(
+      data, name, E_ACSL_REAL,
+      (eacsl_assert_data_content_t){
+          .real_content = {.kind = kind, .value = value}});
+}
+
+void eacsl_assert_register_float(eacsl_assert_data_t *data, const char *name,
+                                 float value) {
+  eacsl_assert_register_generic_real(
+      data, name, E_ACSL_RFLOAT,
+      (eacsl_assert_data_real_value_t){.value_float = value});
+}
+
+void eacsl_assert_register_double(eacsl_assert_data_t *data, const char *name,
+                                  double value) {
+  eacsl_assert_register_generic_real(
+      data, name, E_ACSL_RDOUBLE,
+      (eacsl_assert_data_real_value_t){.value_double = value});
+}
+
+void eacsl_assert_register_longdouble(eacsl_assert_data_t *data,
+                                      const char *name, long double value) {
+  eacsl_assert_register_generic_real(
+      data, name, E_ACSL_RLONGDOUBLE,
+      (eacsl_assert_data_real_value_t){.value_ldouble = value});
+}
+
+void eacsl_assert_register_mpq(eacsl_assert_data_t *data, const char *name,
+                               const eacsl_mpq_t value) {
+  struct eacsl_mpq_struct *new_value =
+      private_malloc(sizeof(struct eacsl_mpq_struct));
+  __gmpq_init(new_value);
+  __gmpq_set(new_value, value);
+  eacsl_assert_register_generic_real(
+      data, name, E_ACSL_RMPQ,
+      (eacsl_assert_data_real_value_t){.value_mpq = new_value});
+}
+
+void eacsl_assert_register_ptr(eacsl_assert_data_t *data, const char *name,
+                               void *ptr) {
+  eacsl_assert_register_data(data, name, E_ACSL_PTR,
+                             (eacsl_assert_data_content_t){.value_ptr = ptr});
+}
+
+void eacsl_assert_register_array(eacsl_assert_data_t *data, const char *name,
+                                 void *array) {
+  eacsl_assert_register_data(
+      data, name, E_ACSL_ARRAY,
+      (eacsl_assert_data_content_t){.value_array = array});
+}
+
+void eacsl_assert_register_fun(eacsl_assert_data_t *data, const char *name) {
+  eacsl_assert_register_data(data, name, E_ACSL_FUN,
+                             (eacsl_assert_data_content_t){});
+}
+
+void eacsl_assert_register_struct(eacsl_assert_data_t *data, const char *name) {
+  eacsl_assert_register_data(data, name, E_ACSL_STRUCT,
+                             (eacsl_assert_data_content_t){});
+}
+
+void eacsl_assert_register_union(eacsl_assert_data_t *data, const char *name) {
+  eacsl_assert_register_data(data, name, E_ACSL_UNION,
+                             (eacsl_assert_data_content_t){});
+}
+
+void eacsl_assert_register_other(eacsl_assert_data_t *data, const char *name) {
+  eacsl_assert_register_data(data, name, E_ACSL_OTHER,
+                             (eacsl_assert_data_content_t){});
+}
+
+void eacsl_assert_free_value(eacsl_assert_data_value_t *value) {
+  if (value != NULL) {
+    switch (value->type) {
+    case E_ACSL_INT:
+      if (value->content.int_content.kind == E_ACSL_IMPZ) {
+        __gmpz_clear(value->content.int_content.value.value_mpz);
+        private_free(value->content.int_content.value.value_mpz);
+      }
+      break;
+    case E_ACSL_REAL:
+      if (value->content.real_content.kind == E_ACSL_RMPQ) {
+        __gmpq_clear(value->content.real_content.value.value_mpq);
+        private_free(value->content.real_content.value.value_mpq);
+      }
+      break;
+    case E_ACSL_PTR:
+    case E_ACSL_ARRAY:
+    case E_ACSL_FUN:
+    case E_ACSL_STRUCT:
+    case E_ACSL_UNION:
+    case E_ACSL_OTHER:
+      // No allocated memory in value content
+      break;
+    }
+    eacsl_assert_free_value(value->next);
+    private_free(value);
+  }
+}
+
+void eacsl_assert_copy_value(eacsl_assert_data_t *dest,
+                             eacsl_assert_data_value_t *value) {
+  if (value != NULL) {
+    switch (value->type) {
+    case E_ACSL_INT: {
+      eacsl_assert_data_int_content_t content = value->content.int_content;
+      if (content.kind == E_ACSL_IMPZ) {
+        eacsl_assert_register_mpz(dest, value->name, content.is_enum,
+                                  content.value.value_mpz);
+      } else {
+        eacsl_assert_register_generic_int(dest, value->name, content.is_enum,
+                                          content.kind, content.value);
+      }
+      break;
+    }
+    case E_ACSL_REAL: {
+      eacsl_assert_data_real_content_t content = value->content.real_content;
+      if (content.kind == E_ACSL_RMPQ) {
+        eacsl_assert_register_mpq(dest, value->name, content.value.value_mpq);
+      } else {
+        eacsl_assert_register_generic_real(dest, value->name, content.kind,
+                                           content.value);
+      }
+      break;
+    }
+    case E_ACSL_PTR: {
+      eacsl_assert_register_ptr(dest, value->name, value->content.value_ptr);
+      break;
+    }
+    case E_ACSL_ARRAY: {
+      eacsl_assert_register_array(dest, value->name,
+                                  value->content.value_array);
+      break;
+    }
+    case E_ACSL_FUN: {
+      eacsl_assert_register_fun(dest, value->name);
+      break;
+    }
+    case E_ACSL_STRUCT: {
+      eacsl_assert_register_struct(dest, value->name);
+      break;
+    }
+    case E_ACSL_UNION: {
+      eacsl_assert_register_union(dest, value->name);
+      break;
+    }
+    case E_ACSL_OTHER: {
+      eacsl_assert_register_other(dest, value->name);
+      break;
+    }
+    }
+  }
+}
+
+void eacsl_assert_copy_values(eacsl_assert_data_t *dest,
+                              eacsl_assert_data_t *src) {
+  eacsl_assert_copy_value(dest, src->values);
+}
+
+void eacsl_assert_clean(eacsl_assert_data_t *data) {
+  eacsl_assert_free_value(data->values);
+  data->values = NULL; // Protect against successive calls to clean.
+}
diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data_api.h b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data_api.h
new file mode 100644
index 0000000000000000000000000000000000000000..9519dbe7d26008af5b8e896d410b85a3e225ab28
--- /dev/null
+++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert_data_api.h
@@ -0,0 +1,294 @@
+/**************************************************************************/
+/*                                                                        */
+/*  This file is part of the Frama-C's E-ACSL plug-in.                    */
+/*                                                                        */
+/*  Copyright (C) 2012-2020                                               */
+/*    CEA (Commissariat à l'énergie atomique et aux énergies              */
+/*         alternatives)                                                  */
+/*                                                                        */
+/*  you can redistribute it and/or modify it under the terms of the GNU   */
+/*  Lesser General Public License as published by the Free Software       */
+/*  Foundation, version 2.1.                                              */
+/*                                                                        */
+/*  It is distributed in the hope that it will be useful,                 */
+/*  but WITHOUT ANY WARRANTY; without even the implied warranty of        */
+/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         */
+/*  GNU Lesser General Public License for more details.                   */
+/*                                                                        */
+/*  See the GNU Lesser General Public License version 2.1                 */
+/*  for more details (enclosed in the file licenses/LGPLv2.1).            */
+/*                                                                        */
+/**************************************************************************/
+
+/*! ***********************************************************************
+ * \file
+ * \brief E-ACSL utility functions for assertions.
+ **************************************************************************/
+
+#ifndef E_ACSL_ASSERT_DATA_API_H
+#define E_ACSL_ASSERT_DATA_API_H
+
+#include "../internals/e_acsl_alias.h"
+#include "../numerical_model/e_acsl_gmp_api.h"
+#include "e_acsl_assert_data.h"
+
+#ifdef __FC_FEATURES_H
+#  include <__fc_alloc_axiomatic.h>
+#else
+/*@ ghost extern int __fc_heap_status; */
+#endif
+
+#define eacsl_assert_register_bool      export_alias(assert_register_bool)
+#define eacsl_assert_register_char      export_alias(assert_register_char)
+#define eacsl_assert_register_schar     export_alias(assert_register_schar)
+#define eacsl_assert_register_uchar     export_alias(assert_register_uchar)
+#define eacsl_assert_register_int       export_alias(assert_register_int)
+#define eacsl_assert_register_uint      export_alias(assert_register_uint)
+#define eacsl_assert_register_short     export_alias(assert_register_short)
+#define eacsl_assert_register_ushort    export_alias(assert_register_ushort)
+#define eacsl_assert_register_long      export_alias(assert_register_long)
+#define eacsl_assert_register_ulong     export_alias(assert_register_ulong)
+#define eacsl_assert_register_longlong  export_alias(assert_register_longlong)
+#define eacsl_assert_register_ulonglong export_alias(assert_register_ulonglong)
+#define eacsl_assert_register_mpz       export_alias(assert_register_mpz)
+#define eacsl_assert_register_float     export_alias(assert_register_float)
+#define eacsl_assert_register_double    export_alias(assert_register_double)
+#define eacsl_assert_register_longdouble                                       \
+  export_alias(assert_register_longdouble)
+#define eacsl_assert_register_mpq    export_alias(assert_register_mpq)
+#define eacsl_assert_register_ptr    export_alias(assert_register_ptr)
+#define eacsl_assert_register_array  export_alias(assert_register_array)
+#define eacsl_assert_register_fun    export_alias(assert_register_fun)
+#define eacsl_assert_register_struct export_alias(assert_register_struct)
+#define eacsl_assert_register_union  export_alias(assert_register_union)
+#define eacsl_assert_register_other  export_alias(assert_register_other)
+#define eacsl_assert_copy_values     export_alias(assert_copy_values)
+#define eacsl_assert_clean           export_alias(assert_clean)
+
+/************************************************************************/
+/*** Register integers {{{ ***/
+/************************************************************************/
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_bool(eacsl_assert_data_t *data, const char *name,
+                                int is_enum, _Bool value)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_char(eacsl_assert_data_t *data, const char *name,
+                                int is_enum, char value)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_schar(eacsl_assert_data_t *data, const char *name,
+                                 int is_enum, signed char value)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_uchar(eacsl_assert_data_t *data, const char *name,
+                                 int is_enum, unsigned char value)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value; */
+/* @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_int(eacsl_assert_data_t *data, const char *name,
+                               int is_enum, int value)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_uint(eacsl_assert_data_t *data, const char *name,
+                                int is_enum, unsigned int value)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_short(eacsl_assert_data_t *data, const char *name,
+                                 int is_enum, short value)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_ushort(eacsl_assert_data_t *data, const char *name,
+                                  int is_enum, unsigned short value)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_long(eacsl_assert_data_t *data, const char *name,
+                                int is_enum, long value)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_ulong(eacsl_assert_data_t *data, const char *name,
+                                 int is_enum, unsigned long value)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_longlong(eacsl_assert_data_t *data, const char *name,
+                                    int is_enum, long long value)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_ulonglong(eacsl_assert_data_t *data,
+                                     const char *name, int is_enum,
+                                     unsigned long long value)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_mpz(eacsl_assert_data_t *data, const char *name,
+                               int is_enum, const eacsl_mpz_t value)
+    __attribute__((FC_BUILTIN));
+
+/* }}} */
+
+/************************************************************************/
+/*** Register reals {{{ ***/
+/************************************************************************/
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_float(eacsl_assert_data_t *data, const char *name,
+                                 float value) __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_double(eacsl_assert_data_t *data, const char *name,
+                                  double value) __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_longdouble(eacsl_assert_data_t *data,
+                                      const char *name, long double value)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, value;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_mpq(eacsl_assert_data_t *data, const char *name,
+                               const eacsl_mpq_t value)
+    __attribute__((FC_BUILTIN));
+
+/* }}} */
+
+/************************************************************************/
+/*** Register pointers {{{ ***/
+/************************************************************************/
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, ptr;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_ptr(eacsl_assert_data_t *data, const char *name,
+                               void *ptr) __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status, array;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_array(eacsl_assert_data_t *data, const char *name,
+                                 void *array) __attribute__((FC_BUILTIN));
+
+/* }}} */
+
+/************************************************************************/
+/*** Register composite {{{ ***/
+/************************************************************************/
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_fun(eacsl_assert_data_t *data, const char *name)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_struct(eacsl_assert_data_t *data, const char *name)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_union(eacsl_assert_data_t *data, const char *name)
+    __attribute__((FC_BUILTIN));
+
+/* }}} */
+
+/************************************************************************/
+/*** Register other types {{{ ***/
+/************************************************************************/
+
+/*@ requires \valid(data);
+  @ requires data->values == \null || \valid(data->values);
+  @ assigns data->values \from indirect:__fc_heap_status;
+  @ // admit ensures \valid(data->values); */
+void eacsl_assert_register_other(eacsl_assert_data_t *data, const char *name)
+    __attribute__((FC_BUILTIN));
+
+/* }}} */
+
+/************************************************************************/
+/*** Miscellaneous functions {{{ ***/
+/************************************************************************/
+
+/*@ requires \valid(dest) && \valid(src);
+  @ requires dest->values == \null || \valid(dest->values);
+  @ requires src->values == \null || \valid(src->values);
+  @ assigns dest->values \from indirect:__fc_heap_status, indirect:src->values;
+  @ // admit ensures dest->values == \null || \valid(dest->values); */
+void eacsl_assert_copy_values(eacsl_assert_data_t *dest,
+                              eacsl_assert_data_t *src)
+    __attribute__((FC_BUILTIN));
+
+/*@ requires \valid(data);
+  @ assigns \nothing; */
+void eacsl_assert_clean(eacsl_assert_data_t *data) __attribute__((FC_BUILTIN));
+
+/* }}} */
+
+#endif // E_ACSL_ASSERT_DATA_API_H
diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.h b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.h
index d39f910421780a69e719773ae8c89af29530d051..93396d88fe674b77adbde777bd3ee3709bf0ddb7 100644
--- a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.h
+++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.h
@@ -52,7 +52,7 @@
 
 /*! \brief Structure to hold pieces of information about function and statement
  * contracts at runtime. */
-typedef struct contract_t __attribute__((__FC_BUILTIN__)) contract_t;
+typedef struct contract_t __attribute__((FC_BUILTIN)) contract_t;
 
 /*! \brief Allocate and initialize a structure to hold pieces of information
  * about `size` behaviors.
diff --git a/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_gmp_api.h b/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_gmp_api.h
index eede828f6a9481e960d1612f2d0b9e5ac0b4f96a..26522aec365c51ddf62464d4e5b915d3b9875cf8 100644
--- a/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_gmp_api.h
+++ b/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_gmp_api.h
@@ -35,6 +35,7 @@
 
 #include "../internals/e_acsl_alias.h"
 #include <stddef.h>
+#include <stdio.h>
 
 #define eacsl_mpz_struct  export_alias(mpz_struct)
 #define eacsl_mpz_t       export_alias(mpz_t)
@@ -49,7 +50,7 @@ struct eacsl_mpz_struct {
 };
 
 typedef struct eacsl_mpz_struct eacsl_mpz_struct;
-typedef eacsl_mpz_struct(__attribute__((__FC_BUILTIN__)) eacsl_mpz_t)[1];
+typedef eacsl_mpz_struct(__attribute__((FC_BUILTIN)) eacsl_mpz_t)[1];
 
 struct eacsl_mpq_struct {
   eacsl_mpz_struct _mp_num;
@@ -57,7 +58,7 @@ struct eacsl_mpq_struct {
 };
 
 typedef struct eacsl_mpq_struct eacsl_mpq_struct;
-typedef eacsl_mpq_struct(__attribute__((__FC_BUILTIN__)) eacsl_mpq_t)[1];
+typedef eacsl_mpq_struct(__attribute__((FC_BUILTIN)) eacsl_mpq_t)[1];
 
 /**
  * Counts of bits of a multi-precision number are represented in the C type
@@ -365,4 +366,11 @@ extern double __gmpq_get_d(const eacsl_mpq_t q) __attribute__((FC_BUILTIN));
 extern unsigned long __gmpz_get_ui(const eacsl_mpz_t z)
     __attribute__((FC_BUILTIN));
 
+/************************/
+/* Output functions     */
+/************************/
+
+extern int __gmp_fprintf(FILE *fp, const char *fmt, ...)
+    __attribute__((FC_BUILTIN));
+
 #endif
diff --git a/src/plugins/e-acsl/src/code_generator/assert.ml b/src/plugins/e-acsl/src/code_generator/assert.ml
index 636da0de6b8037b04f407b588f42a3d32b8d1164..cc6c4b5f77741e62595835f3bac32c6d9f4b098f 100644
--- a/src/plugins/e-acsl/src/code_generator/assert.ml
+++ b/src/plugins/e-acsl/src/code_generator/assert.ml
@@ -31,7 +31,10 @@ open Cil_types
 type data = {
   (** Indicates if some data have been registered in the context or not. *)
   data_registered: bool;
-  (* FIXME: fields added to hold information about the C variable in MR !3288 *)
+  (** [varinfo] representing the C variable for the assertion data. *)
+  data_vi: varinfo;
+  (** [exp] representing a pointer to the C variable for the assertion data. *)
+  data_ptr: exp;
 }
 
 (** External type representing the assertion context. Either [Some data] if we
@@ -40,29 +43,125 @@ type t = data option
 
 let no_data = None
 
+(** C type for the [assert_data_t] structure. *)
+let assert_data_ctyp_lazy =
+  lazy (Globals.Types.find_type
+          Logic_typing.Typedef (Functions.RTL.mk_api_name "assert_data_t"))
+
 let empty ~loc kf env =
-  (* FIXME: C variable created in MR !3288 *)
-  ignore (loc, kf);
-  let data = { data_registered = false } in
+  let assert_data_cty = Lazy.force assert_data_ctyp_lazy in
+  let data_vi, _, env =
+    Env.new_var
+      ~loc
+      ~name:"assert_data"
+      env
+      kf
+      None
+      assert_data_cty
+      (fun vi _ ->
+         [ Smart_stmt.struct_local_init
+             ~loc
+             vi
+             [ "values", Smart_exp.null ~loc ] ])
+  in
+  let data =
+    { data_registered = false;
+      data_vi;
+      data_ptr = Cil.mkAddrOfVi data_vi }
+  in
   Some data , env
 
 let with_data_from ~loc kf env from =
   match from with
-  | Some _from ->
+  | Some from ->
     let adata, env = empty ~loc kf env in
-    (* FIXME: values copied from [from] to [adata] in MR !3288 *)
-    adata, env
+    let adata = Option.get adata in
+    let env =
+      if from.data_registered then
+        let stmt =
+          Smart_stmt.rtl_call
+            ~loc
+            "assert_copy_values"
+            [ adata.data_ptr; from.data_ptr ]
+        in
+        Env.add_stmt env kf stmt
+      else env
+    in
+    Some { adata with data_registered = from.data_registered }, env
   | None -> None, env
 
 let merge_right ~loc kf env adata1 adata2 =
   match adata1, adata2 with
-  | Some _adata1, Some adata2 ->
-    (* FIXME: values copied from [adata1] to [adata2] in MR !3288 *)
-    ignore (loc, kf);
+  | Some adata1, Some adata2 when adata1.data_registered ->
+    let stmt =
+      Smart_stmt.rtl_call
+        ~loc
+        "assert_copy_values"
+        [ adata2.data_ptr; adata1.data_ptr ]
+    in
+    let adata2 =
+      { adata2 with
+        data_registered = true }
+    in
+    let env = Env.add_stmt env kf stmt in
     Some adata2, env
-  | None, Some adata -> Some adata, env
+  | Some _, Some adata | None, Some adata -> Some adata, env
   | Some _, None | None, None -> None, env
 
+let clean ~loc kf env adata =
+  match adata with
+  | Some { data_registered; data_ptr } when data_registered->
+    let clean_stmt = Smart_stmt.rtl_call ~loc "assert_clean" [ data_ptr ] in
+    Env.add_stmt env kf clean_stmt
+  | Some _ | None ->
+    env
+
+let ikind_to_string = function
+  | IBool -> "bool"
+  | IChar -> "char"
+  | ISChar -> "schar"
+  | IUChar -> "uchar"
+  | IInt -> "int"
+  | IUInt -> "uint"
+  | IShort -> "short"
+  | IUShort -> "ushort"
+  | ILong -> "long"
+  | IULong -> "ulong"
+  | ILongLong -> "longlong"
+  | IULongLong -> "ulonglong"
+
+let do_register_data ~loc kf env { data_ptr } name e =
+  let ty = Cil.typeOf e in
+  let fct, args =
+    if Gmp_types.Z.is_t ty then
+      "mpz", [ Cil.zero ~loc; e ]
+    else if Gmp_types.Q.is_t ty then
+      "mpq", [ e ]
+    else
+      match Cil.unrollType ty with
+      | TInt (ikind, _) -> ikind_to_string ikind, [ Cil.zero ~loc; e ]
+      | TFloat (FFloat, _) -> "float", [ e ]
+      | TFloat (FDouble, _) -> "double", [ e ]
+      | TFloat (FLongDouble, _) -> "longdouble", [ e ]
+      | TPtr _ -> "ptr", [ e ]
+      | TArray _ -> "array", [ e ]
+      | TFun _ -> "fun", []
+      | TComp ({ cstruct = true }, _, _) -> "struct", []
+      | TComp ({ cstruct = false }, _, _) -> "union", []
+      | TEnum ({ ekind }, _) -> ikind_to_string ekind, [ Cil.one ~loc; e ]
+      | TVoid _
+      | TBuiltin_va_list _ -> "other", []
+      | TNamed _ ->
+        Options.fatal
+          "named types in '%a' should have been unrolled"
+          Printer.pp_typ ty
+  in
+  let fct = "assert_register_" ^ fct in
+  let name = Cil.mkString ~loc name in
+  let args = data_ptr :: name :: args in
+  let stmt = Smart_stmt.rtl_call ~loc fct args in
+  Env.add_stmt env kf stmt
+
 let register ~loc kf env ?(force=false) name e adata =
   if Options.Assert_print_data.get () then
     match adata, e.enode with
@@ -75,11 +174,9 @@ let register ~loc kf env ?(force=false) name e adata =
          The registration can be forced for expressions like [sizeof(int)] for
          instance that are [Const] values but not directly known. *)
       Some adata, env
-    | Some _adata, _ ->
-      let adata = { data_registered = true } in
-      (* FIXME: value registered to [adata] in MR !3288 *)
-      ignore (loc, kf, env, name);
-      Some adata, env
+    | Some adata, _ ->
+      let adata = { adata with data_registered = true } in
+      Some adata, do_register_data ~loc kf env adata name e
     | None, _ -> None, env
   else
     adata, env
@@ -89,8 +186,13 @@ let register_term ~loc kf env ?force t e adata =
   register ~loc kf env name ?force e adata
 
 let register_pred ~loc kf env ?force p e adata =
-  let name = Format.asprintf "@[%a@]" Printer.pp_predicate p in
-  register ~loc kf env name ?force e adata
+  if Env.annotation_kind env == Smart_stmt.RTE then
+    (* When translating RTE, we do not want to print the result of the predicate
+       because they should be the only predicate in an assertion clause. *)
+    adata, env
+  else
+    let name = Format.asprintf "@[%a@]" Printer.pp_predicate p in
+    register ~loc kf env name ?force e adata
 
 let kind_to_string loc k =
   Cil.mkString
@@ -103,7 +205,17 @@ let kind_to_string loc k =
      | Smart_stmt.Variant -> "Variant"
      | Smart_stmt.RTE -> "RTE")
 
-let runtime_check_with_msg ~adata ~loc msg ~pred_kind kind kf env e =
+let runtime_check_with_msg ~adata ~loc msg ~pred_kind kind kf env predicate_e =
+  let env = Env.push env in
+  let data_registered, data_ptr, data_vi, env =
+    match adata with
+    | Some { data_registered; data_ptr; data_vi } ->
+      data_registered, data_ptr, data_vi, env
+    | None ->
+      let adata, env = empty ~loc kf env in
+      let adata = Option.get adata in
+      false, adata.data_ptr, adata.data_vi, env
+  in
   let blocking =
     match pred_kind with
     | Assert -> Cil.one ~loc
@@ -111,27 +223,41 @@ let runtime_check_with_msg ~adata ~loc msg ~pred_kind kind kf env e =
     | Admit ->
       Options.fatal "No runtime check should be generated for 'admit' clauses"
   in
-  let file = (fst loc).Filepath.pos_path in
-  let line = (fst loc).Filepath.pos_lnum in
-  (* FIXME: [adata] support in MR !3288 *)
-  ignore adata;
-  let stmt =
-    Smart_stmt.rtl_call ~loc
-      "assert"
-      [ e;
-        blocking;
-        kind_to_string loc kind;
-        Cil.mkString ~loc (Functions.RTL.get_original_name kf);
-        Cil.mkString ~loc msg;
-        Cil.mkString ~loc (Filepath.Normalized.to_pretty_string file);
-        Cil.integer loc line ]
+  let kind = kind_to_string loc kind in
+  let pred_txt = Cil.mkString ~loc msg in
+  let start_pos = fst loc in
+  let file =
+    Cil.mkString
+      ~loc
+      (Filepath.Normalized.to_pretty_string start_pos.Filepath.pos_path)
   in
-  stmt, env
+  let fct = Cil.mkString ~loc (Functions.RTL.get_original_name kf) in
+  let line = Cil.integer ~loc start_pos.Filepath.pos_lnum in
+  let stmts =
+    [ Smart_stmt.rtl_call ~loc "assert" [ predicate_e; data_ptr ];
+      Smart_stmt.assigns_field ~loc data_vi "line" line;
+      Smart_stmt.assigns_field ~loc data_vi "fct" fct;
+      Smart_stmt.assigns_field ~loc data_vi "file" file;
+      Smart_stmt.assigns_field ~loc data_vi "pred_txt" pred_txt;
+      Smart_stmt.assigns_field ~loc data_vi "kind" kind;
+      Smart_stmt.assigns_field ~loc data_vi "blocking" blocking ]
+  in
+  let stmts=
+    if data_registered then
+      Smart_stmt.rtl_call ~loc "assert_clean" [ data_ptr ] :: stmts
+    else
+      stmts
+  in
+  let block, env =
+    Env.pop_and_get
+      env
+      (Smart_stmt.block_from_stmts (List.rev stmts))
+      ~global_clear:false
+      Env.Middle
+  in
+  Smart_stmt.block_stmt block, env
 
 let runtime_check ~adata ~pred_kind kind kf env e p =
   let loc = p.pred_loc in
-  let msg =
-    Kernel.Unicode.without_unicode
-      (Format.asprintf "%a@?" Printer.pp_predicate) p
-  in
+  let msg = Format.asprintf "%a@?" Printer.pp_predicate p in
   runtime_check_with_msg ~adata ~loc msg ~pred_kind kind kf env e
diff --git a/src/plugins/e-acsl/src/code_generator/assert.mli b/src/plugins/e-acsl/src/code_generator/assert.mli
index b159b6110e63518d28c8bec14567ff77aec15b9d..be06f33382bda1d909da1ae64b63d4a0ab7ff44c 100644
--- a/src/plugins/e-acsl/src/code_generator/assert.mli
+++ b/src/plugins/e-acsl/src/code_generator/assert.mli
@@ -50,6 +50,12 @@ val merge_right: loc:location -> kernel_function -> Env.t -> t -> t -> t * Env.t
 (** [merge_right ~loc kf env adata1 adata2] merges the assertion data of
     [adata1] into [adata2] if [adata2] is not a "no data" assertion context. *)
 
+val clean: loc:location -> kernel_function -> Env.t -> t -> Env.t
+(** [clean ~loc kf env adata] generates a call to the C cleanup function for the
+    assertion context. This function *must* be used if the assertion context is
+    not given to [runtime_check] or [runtime_check_with_msg], otherwise the
+    memory allocated in the C structure will not be freed. *)
+
 val register:
   loc:location ->
   kernel_function ->
diff --git a/src/plugins/e-acsl/src/code_generator/injector.ml b/src/plugins/e-acsl/src/code_generator/injector.ml
index 5964cedbcf0f2e4f2bda5df6a81fad34446385c4..f4686759f3d9cdde894266b34ed634e2080a6f93 100644
--- a/src/plugins/e-acsl/src/code_generator/injector.ml
+++ b/src/plugins/e-acsl/src/code_generator/injector.ml
@@ -790,18 +790,18 @@ let inject_global_handler file main =
       file.globals <- file.globals @ globals_func
 
 (** Add a call to [__e_acsl_memory_init] and [__e_acsl_memory_clean] if the
-    memory tracking analysis is running.
+    memory tracking analysis is running or if the option [assert-print-data] is
+    used.
     [__e_acsl_memory_init] initializes memory storage and potentially records
     program arguments. Parameters to [__e_acsl_memory_init] are addresses of
     program arguments or NULLs if [main] is declared without arguments.
     [__e_acsl_memory_clean] clean the memory allocated by
     [__e_acsl_memory_init]. *)
 let inject_mtracking_handler main =
-  (* Only inject memory init and memory clean if the memory model analysis is
-     running *)
-  if Memory_tracking.use_monitoring () then begin
+  if Memory_tracking.use_monitoring () ||
+     Options.Assert_print_data.get () then begin
     let loc = Location.unknown in
-    let nulls = [ Cil.zero loc ; Cil.zero loc ] in
+    let nulls = [ Smart_exp.null ~loc ; Smart_exp.null ~loc ] in
     let handle_main main =
       let fundec =
         try Kernel_function.get_definition main
diff --git a/src/plugins/e-acsl/src/code_generator/quantif.ml b/src/plugins/e-acsl/src/code_generator/quantif.ml
index 7d1c2c06e67858ea75df5d127882991d8520ef30..be2f7f342069e7b048c43038f8c3f3b7a77dbed1 100644
--- a/src/plugins/e-acsl/src/code_generator/quantif.ml
+++ b/src/plugins/e-acsl/src/code_generator/quantif.ml
@@ -82,7 +82,7 @@ let convert kf env loc ~is_forall quantif =
           let z = zero ~loc in
           let o = one ~loc in
           if is_forall then o, z, fun x -> x
-          else z, o, fun e -> new_exp ~loc:e.eloc (UnOp(LNot, e, intType))
+          else z, o, fun e -> Smart_exp.lnot ~loc:e.eloc e
         in
         (* transform [bound_vars] into [lscope_var list],
            and update logic scope in the process *)
diff --git a/src/plugins/e-acsl/src/code_generator/smart_exp.ml b/src/plugins/e-acsl/src/code_generator/smart_exp.ml
index c9fd5ff96c0dcf13d24b8c3727b3a495efebad9d..3f23688e85f474bf3b2a52dae972402e9f716e86 100644
--- a/src/plugins/e-acsl/src/code_generator/smart_exp.ml
+++ b/src/plugins/e-acsl/src/code_generator/smart_exp.ml
@@ -44,6 +44,33 @@ let ptr_sizeof ~loc typ =
   | TPtr (t', _) -> Cil.new_exp ~loc (SizeOf t')
   | _ -> assert false
 
+let lnot ~loc e =
+  let ty = Cil.typeOf e in
+  if not (Cil.isScalarType ty) then
+    Options.fatal
+      ~current:true
+      "Trying to create a logical not on an expression that is not scalar: %a"
+      Printer.pp_exp e;
+  match Cil.isInteger e with
+  | None -> begin
+      (* The expression is not an integer constant. Simplify the case where a
+         logical not is already present, but otherwise return a new expression
+         with the [LNot] operator. *)
+      match e.enode with
+      | UnOp (LNot, e, _) -> e
+      | _ -> Cil.new_exp ~loc (UnOp (LNot, e, Cil.intType))
+    end
+  | Some i when Integer.equal i Integer.zero ->
+    (* The expression is an integer equal to zero, directly return one. *)
+    Cil.one ~loc
+  | _ ->
+    (* The expression is an integer that is not equal to zero, directly return
+       zero. *)
+    Cil.zero ~loc
+
+let null ~loc =
+  Cil.mkCast (TPtr (TVoid [], [])) (Cil.zero ~loc)
+
 (*
 Local Variables:
 compile-command: "make -C ../../../../.."
diff --git a/src/plugins/e-acsl/src/code_generator/smart_exp.mli b/src/plugins/e-acsl/src/code_generator/smart_exp.mli
index 45ec7b3809254c7ad3326c39a55c6d813ee40405..b010fabe6694271508b5d8e2b165577630543c4f 100644
--- a/src/plugins/e-acsl/src/code_generator/smart_exp.mli
+++ b/src/plugins/e-acsl/src/code_generator/smart_exp.mli
@@ -40,6 +40,12 @@ val ptr_sizeof: loc:location -> typ -> exp
 (** [ptr_sizeof ~loc ptr_typ] takes the pointer typ [ptr_typ] that points
     to a [typ] typ and returns [sizeof(typ)]. *)
 
+val lnot: loc:location -> exp -> exp
+(** [lnot ~loc e] creates a logical not on the given expression [e]. *)
+
+val null: loc:location -> exp
+(** [null ~loc] creates an expression to represent the NULL pointer. *)
+
 (*
 Local Variables:
 compile-command: "make -C ../../../../.."
diff --git a/src/plugins/e-acsl/src/code_generator/smart_stmt.ml b/src/plugins/e-acsl/src/code_generator/smart_stmt.ml
index 03c60a57aaa876b23ea79bf3357ee5af75ee8e17..12a6240601840832e9f75b355ef24da508da159b 100644
--- a/src/plugins/e-acsl/src/code_generator/smart_stmt.ml
+++ b/src/plugins/e-acsl/src/code_generator/smart_stmt.ml
@@ -34,11 +34,61 @@ let call_instr ~loc ?result e args = instr (Call(result, e, args, loc))
 
 let assigns ~loc ~result e = instr (Set(result, e, loc))
 
+let assigns_field ~loc vi name value =
+  let ty = vi.vtype in
+  let compinfo =
+    match Cil.unrollType ty with
+    | TComp (compinfo, _, _) -> compinfo
+    | _ ->
+      Options.fatal
+        "type of %a (%a) is not a structure"
+        Printer.pp_varinfo vi
+        Printer.pp_typ ty
+  in
+  let field =
+    try
+      Cil.getCompField compinfo name
+    with Not_found ->
+      Options.fatal
+        "Unable to find field '%s' in structure '%a'"
+        name
+        Printer.pp_typ ty
+  in
+  let result = Var vi, (Field (field, NoOffset)) in
+  assigns ~loc ~result value
+
 let if_stmt ~loc ~cond ?(else_blk=Cil.mkBlock []) then_blk =
   stmt (If (cond, then_blk, else_blk, loc))
 
 let break ~loc = stmt (Break loc)
 
+let struct_local_init ~loc vi fields =
+  vi.vdefined <- true;
+  let ty = vi.vtype in
+  let compinfo =
+    match Cil.unrollType ty with
+    | TComp (compinfo, _, _) -> compinfo
+    | _ ->
+      Options.fatal
+        "type of %a (%a) is not a structure"
+        Printer.pp_varinfo vi
+        Printer.pp_typ ty
+  in
+  let fields =
+    List.map
+      (fun (name, e) ->
+         try
+           let field = Cil.getCompField compinfo name in
+           Field (field, NoOffset), SingleInit e
+         with Not_found ->
+           Options.fatal
+             "Unable to find field '%s' in structure '%a'"
+             name
+             Printer.pp_typ ty)
+      fields
+  in
+  instr (Local_init (vi, AssignInit (CompoundInit (ty, fields)), loc))
+
 let block stmt b = match b.bstmts with
   | [] ->
     (match stmt.skind with
diff --git a/src/plugins/e-acsl/src/code_generator/smart_stmt.mli b/src/plugins/e-acsl/src/code_generator/smart_stmt.mli
index ddf4f39ee602a0ce89d14af0ba2eded06f5d094e..c9aa2faad52df5d9fcbd2f8b5be5a236b57daf65 100644
--- a/src/plugins/e-acsl/src/code_generator/smart_stmt.mli
+++ b/src/plugins/e-acsl/src/code_generator/smart_stmt.mli
@@ -40,18 +40,28 @@ val block_from_stmts: stmt list -> stmt
 (** Create a block statement from a statement list. *)
 
 val assigns: loc:location -> result:lval -> exp -> stmt
-(** [assigns ~loc ~result value] create a statement to assign the [value]
+(** [assigns ~loc ~result value] creates a statement to assign the [value]
     expression to the [result] lval. *)
 
+val assigns_field: loc:location -> varinfo -> string -> exp -> stmt
+(** [assigns_field ~loc vi field value] creates a statement to assign the
+    [value] expression to the [field] of the structure in the variable [vi]. *)
+
 val if_stmt:
   loc:location -> cond:exp -> ?else_blk:block -> block -> stmt
-(** [if ~loc ~cond ~then_blk ~else_blk] create an if statement with [cond]
+(** [if ~loc ~cond ~then_blk ~else_blk] creates an if statement with [cond]
     as condition and [then_blk] and [else_blk] as respectively "then" block and
     "else" block. *)
 
 val break: loc:location -> stmt
 (** Create a break statement *)
 
+val struct_local_init: loc:location -> varinfo -> (string * exp) list -> stmt
+(** [struct_local_init ~loc vi fields] creates a local initialization for the
+    structure variable [vi]. [fields] is a list of couple [(name, e)] where
+    [name] is the name of a field in the structure and [e] is the expression to
+    initialize that field. *)
+
 (* ********************************************************************** *)
 (* E-ACSL specific code: build calls to its RTL API *)
 (* ********************************************************************** *)
diff --git a/src/plugins/e-acsl/src/code_generator/translate.ml b/src/plugins/e-acsl/src/code_generator/translate.ml
index b0c3d6a1339d342555305618a54b60683025d3f1..d11f6481ab8bec7bd4cb0ccab07050fbdff2d617 100644
--- a/src/plugins/e-acsl/src/code_generator/translate.ml
+++ b/src/plugins/e-acsl/src/code_generator/translate.ml
@@ -373,7 +373,7 @@ and context_insensitive_term_to_exp ~adata kf env t =
     else begin
       assert (Cil.isIntegralType ty);
       let e, adata, env = term_to_exp ~adata kf env t in
-      let e = Cil.new_exp ~loc (UnOp(LNot, e, Cil.intType)) in
+      let e = Smart_exp.lnot ~loc e in
       e, adata, env, Typed_number.C_number, ""
     end
   | TBinOp(PlusA | MinusA | Mult as bop, t1, t2) ->
@@ -402,13 +402,14 @@ and context_insensitive_term_to_exp ~adata kf env t =
   | TBinOp(Div | Mod as bop, t1, t2) ->
     let ty = Typing.get_typ ~lenv:(Env.Local_vars.get env) t in
     let e1, adata, env = term_to_exp ~adata kf env t1 in
-    (* Creating a second assertion context that will hold the data contributing
-       to the guard of the denominator. The context will be merged to [adata]
-       afterward so that the calling assertion context holds all data. *)
-    let adata2, env = Assert.empty ~loc kf env in
-    let e2, adata2, env = term_to_exp ~adata:adata2 kf env t2 in
-    let adata, env = Assert.merge_right ~loc kf env adata2 adata in
+    let t2_to_exp adata env = term_to_exp ~adata kf env t2 in
     if Gmp_types.Z.is_t ty then
+      (* Creating a second assertion context that will hold the data contributing
+         to the guard of the denominator. The context will be merged to [adata]
+         afterward so that the calling assertion context holds all data. *)
+      let adata2, env = Assert.empty ~loc kf env in
+      let e2, adata2, env = t2_to_exp adata2 env in
+      let adata, env = Assert.merge_right ~loc kf env adata2 adata in
       (* TODO: preventing division by zero should not be required anymore.
          RTE should do this automatically. *)
       let ctx = Typing.get_number_ty ~lenv:(Env.Local_vars.get env) t in
@@ -446,11 +447,13 @@ and context_insensitive_term_to_exp ~adata kf env t =
       let _, e, env = Env.new_var_and_mpz_init ~loc ~name env kf t mk_stmts in
       e, adata, env, Typed_number.C_number, ""
     else if Gmp_types.Q.is_t ty then
+      let e2, adata, env = t2_to_exp adata env in
       let e, env = Rational.binop ~loc bop e1 e2 env kf (Some t) in
       e, adata, env, Typed_number.C_number, ""
     else begin
       assert (Logic_typing.is_integral_type t.term_type);
       (* no guard required since RTEs are generated separately *)
+      let e2, adata, env = t2_to_exp adata env in
       let e = Cil.new_exp ~loc (BinOp(bop, e1, e2, ty)) in
       e, adata, env, Typed_number.C_number, ""
     end
@@ -464,17 +467,19 @@ and context_insensitive_term_to_exp ~adata kf env t =
   | TBinOp((Shiftlt | Shiftrt) as bop, t1, t2) ->
     (* left/right shift *)
     let ty = Typing.get_typ ~lenv:(Env.Local_vars.get env) t in
-    (* Creating secondary assertion contexts [adata1] and [adata2] to hold the
-       data contributing to the guards of [t1] and [t2].
-       Both secondary contexts will be merged to [adata] afterward so that the
-       calling assertion context holds all data. *)
-    let adata1, env = Assert.empty ~loc kf env in
-    let adata2, env = Assert.empty ~loc kf env in
-    let e1, adata1, env = term_to_exp ~adata:adata1 kf env t1 in
-    let e2, adata2, env = term_to_exp ~adata:adata2 kf env t2 in
-    let adata, env = Assert.merge_right ~loc kf env adata1 adata in
-    let adata, env = Assert.merge_right ~loc kf env adata2 adata in
+    let t1_to_exp adata env = term_to_exp ~adata kf env t1 in
+    let t2_to_exp adata env = term_to_exp ~adata kf env t2 in
     if Gmp_types.Z.is_t ty then
+      (* Creating secondary assertion contexts [adata1] and [adata2] to hold the
+         data contributing to the guards of [t1] and [t2].
+         Both secondary contexts will be merged to [adata] afterward so that the
+         calling assertion context holds all data. *)
+      let adata1, env = Assert.empty ~loc kf env in
+      let adata2, env = Assert.empty ~loc kf env in
+      let e1, adata1, env = t1_to_exp adata1 env in
+      let e2, adata2, env = t2_to_exp adata2 env in
+      let adata, env = Assert.merge_right ~loc kf env adata1 adata in
+      let adata, env = Assert.merge_right ~loc kf env adata2 adata in
       (* If the given term is an lvalue variable or a cast from an lvalue
          variable, retrieve the name of this variable. Otherwise return
          default *)
@@ -592,7 +597,17 @@ and context_insensitive_term_to_exp ~adata kf env t =
           let e1_guard, _, env =
             let name = e1_name ^ bop_name ^ "_guard" in
             comparison_to_exp
-              ~adata:Assert.no_data ~loc kf env Typing.gmpz ~e1 ~name Ge t1 zero t
+              ~adata:Assert.no_data
+              ~loc
+              kf
+              env
+              Typing.gmpz
+              ~e1
+              ~name
+              Ge
+              t1
+              zero
+              t
           in
           let e1_guard_cond, env =
             let pred = Logic_const.prel ~loc (Rge, t1, zero) in
@@ -612,6 +627,9 @@ and context_insensitive_term_to_exp ~adata kf env t =
           in
           Some e1_guard_cond, env
         else
+          (* Manual clean because [runtime_check] has not been called on
+             [adata1]. *)
+          let env = Assert.clean ~loc kf env adata1 in
           None, env
       in
       let mk_stmts _ e =
@@ -625,6 +643,8 @@ and context_insensitive_term_to_exp ~adata kf env t =
       e, adata, env, Typed_number.C_number, ""
     else begin
       assert (Logic_typing.is_integral_type t.term_type);
+      let e1, adata, env = t1_to_exp adata env in
+      let e2, adata, env = t2_to_exp adata env in
       let e = Cil.new_exp ~loc (BinOp(bop, e1, e2, ty)) in
       e, adata, env, Typed_number.C_number, ""
     end
@@ -826,7 +846,7 @@ and context_insensitive_term_to_exp ~adata kf env t =
     e, adata, env, Typed_number.C_number, name
   | Tblock_length _ -> Env.not_yet env "labeled \\block_length"
   | Tnull ->
-    let e = Cil.mkCast (TPtr(TVoid [], [])) (Cil.zero ~loc) in
+    let e = Smart_exp.null ~loc in
     e, adata, env, Typed_number.C_number, "null"
   | TUpdate _ -> Env.not_yet env "functional update"
   | Ttypeof _ -> Env.not_yet env "typeof"
@@ -1096,7 +1116,7 @@ and predicate_content_to_exp ~adata ?name kf env p =
           Logic_const.pimplies ~loc (p2, p1)))
   | Pnot p ->
     let e, adata, env = predicate_to_exp ~adata kf env p in
-    Cil.new_exp ~loc (UnOp(LNot, e, Cil.intType)), adata, env
+    Smart_exp.lnot ~loc e, adata, env
   | Pif(t, p2, p3) ->
     Extlib.flatten
       (Env.with_rte_and_result env true
diff --git a/src/plugins/e-acsl/src/options.ml b/src/plugins/e-acsl/src/options.ml
index b414bc0c7298f8c2d9934cbe20f0a470760af6bc..e4f6bdddd94e5c6ad94c656f6e85e0dea9120e16 100644
--- a/src/plugins/e-acsl/src/options.ml
+++ b/src/plugins/e-acsl/src/options.ml
@@ -100,9 +100,8 @@ module Builtins =
       let help = "C functions which can be used in the E-ACSL specifications"
     end)
 
-let () = Parameter_customize.is_invisible ()
 module Assert_print_data =
-  False
+  True
     (struct
       let option_name = "-e-acsl-assert-print-data"
       let help = "print data contributing to the failed assertion along with \
diff --git a/src/plugins/e-acsl/src/project_initializer/rtl.ml b/src/plugins/e-acsl/src/project_initializer/rtl.ml
index ab11845a3d08fddbbc59ed0afe1c348e7c5c9c2c..2666f70349900e1e38437991b775f84f36ae1f90 100644
--- a/src/plugins/e-acsl/src/project_initializer/rtl.ml
+++ b/src/plugins/e-acsl/src/project_initializer/rtl.ml
@@ -56,7 +56,7 @@ module Symbols: sig
   exception Unregistered of string
   val find_vi: string -> varinfo (* may raise Unregistered *)
   val libc_replacement: varinfo -> varinfo
-  (*  val debug: unit -> unit*)
+  val _debug: unit -> unit
 end = struct
 
   let globals: unit Global.Hashtbl.t = Global.Hashtbl.create 17
@@ -88,27 +88,17 @@ end = struct
         name
         fvi.vname
 
-(*
-  let debug () =
+  let _debug () =
     Global.Hashtbl.iter
-      (fun g1 () -> Format.printf "RTL %a@." Printer.pp_global g1)
-      rtl;
-    Varinfo.Hashtbl.iter
-      (fun g1 g2 -> Format.printf "VAR %a -> %a@."
-          Printer.pp_varinfo g1
-          Printer.pp_varinfo g2)
-      vars;
-    Typ.Hashtbl.iter
-      (fun g1 g2 -> Format.printf "TYP %a -> %a@."
-          Printer.pp_typ g1
-          Printer.pp_typ g2)
-      types;
-    Global_annotation.Hashtbl.iter
-      (fun g1 g2 -> Format.printf "ANNOT %a -> %a@."
-          Printer.pp_global_annotation g1
-          Printer.pp_global_annotation g2)
-      annots
-*)
+      (fun g () -> Format.printf "GLOBAL %a@." Printer.pp_global g)
+      globals;
+    Kernel_function.Hashtbl.iter
+      (fun kf () -> Format.printf "KF %a@." Kernel_function.pretty kf)
+      kfs;
+    Datatype.String.Hashtbl.iter
+      (fun s vi -> Format.printf "VAR %s -> %a@." s Printer.pp_varinfo vi)
+      vars
+
 end
 
 (* Internal module to store the associations between symbols in the RTL project
@@ -519,7 +509,7 @@ let link rtl_prj =
   let rtl_ast = create_rtl_ast rtl_prj in
   let ast = Ast.get () in
   let rtl_globals = lookup_rtl_globals rtl_ast in
-  (*  Symbols.debug ();*)
+  (* Symbols._debug (); *)
   insert_rtl_globals rtl_prj rtl_globals ast;
   Assocs.clear ();
   Ast.mark_as_grown ()
diff --git a/src/plugins/e-acsl/tests/arith/oracle/arith.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/arith.res.oracle
index 08773711f3037fb6b3bc861371f0aacffca2fe99..34e731d5ad0d0bdc9c3c97e1d2dba446b7c58b54 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/arith.res.oracle
+++ b/src/plugins/e-acsl/tests/arith/oracle/arith.res.oracle
@@ -2,11 +2,29 @@
 [e-acsl] translation done in project "e-acsl".
 [eva:alarm] tests/arith/arith.i:18: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/arith/arith.i:23: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/arith.i:23: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/arith.i:23: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/arith.i:34: Warning: 
+  function __e_acsl_assert_copy_values: precondition dest->values == \null ||
+                                                     \valid(dest->values) got status unknown.
+[eva:alarm] tests/arith/arith.i:34: Warning: 
+  function __e_acsl_assert_copy_values: precondition src->values == \null ||
+                                                     \valid(src->values) got status unknown.
 [eva:alarm] tests/arith/arith.i:34: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/arith.i:34: Warning: 
-  signed overflow. assert -2147483648 ≤ 1 + __gen_e_acsl__7;
+  signed overflow. assert -2147483648 <= 1 + __gen_e_acsl__7;
 [eva:alarm] tests/arith/arith.i:34: Warning: 
-  signed overflow. assert 1 + __gen_e_acsl__7 ≤ 2147483647;
+  signed overflow. assert 1 + __gen_e_acsl__7 <= 2147483647;
 [eva:alarm] tests/arith/arith.i:34: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/arith/arith.i:36: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/arith/oracle/array.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/array.res.oracle
index c1008f0532893f6c5af5afe4bb908dfae70f97b0..cf187d20cbb98bb3458c0d2f21c9214c81f3aebd 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/array.res.oracle
+++ b/src/plugins/e-acsl/tests/arith/oracle/array.res.oracle
@@ -1,18 +1,117 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/arith/array.i:110: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:111: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:21: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:21: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/array.i:22: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:22: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/array.i:23: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:23: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/array.i:30: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:31: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:32: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:36: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:37: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:40: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:40: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:40: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/array.i:41: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:41: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:41: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:41: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/array.i:42: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:42: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:42: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/array.i:43: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:43: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:43: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:43: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/array.i:49: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:49: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/array.i:50: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:50: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/array.i:51: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:51: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/array.i:55: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:55: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:55: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/array.i:56: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:56: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:56: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/array.i:59: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:59: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/array.i:60: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:60: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/array.i:61: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:61: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:61: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/array.i:62: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/array.i:62: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/array.i:62: Warning: assertion got status unknown.
diff --git a/src/plugins/e-acsl/tests/arith/oracle/at.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/at.res.oracle
index 32f1b6bd00c37b0339a747425af99af34ba9d32b..5da4281c39239544ad85481ab92ebc7dfa81be97 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/at.res.oracle
+++ b/src/plugins/e-acsl/tests/arith/oracle/at.res.oracle
@@ -1,9 +1,27 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/arith/at.i:38: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/at.i:13: Warning: assertion got status unknown.
 [eva:alarm] tests/arith/at.i:15: Warning: assertion got status unknown.
 [eva:alarm] tests/arith/at.i:54: Warning: assertion got status unknown.
 [eva:alarm] tests/arith/at.i:55: Warning: assertion got status unknown.
 [eva:alarm] tests/arith/at.i:56: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/at.i:31: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at.i:29: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] :0: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at.i:29: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/at.i:29: Warning: assertion got status unknown.
 [eva:alarm] tests/arith/at.i:31: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/at.i:31: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/arith/oracle/at_on-purely-logic-variables.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/at_on-purely-logic-variables.res.oracle
index 148dc33df38c13a50a713349fe97d407e8884572..3a7845abb59f641246ca76632c0e1d4c7c63d93a 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/at_on-purely-logic-variables.res.oracle
+++ b/src/plugins/e-acsl/tests/arith/oracle/at_on-purely-logic-variables.res.oracle
@@ -9,30 +9,119 @@
   is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:28: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/at_on-purely-logic-variables.c:28: Warning: 
   assertion got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:29: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:29: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/at_on-purely-logic-variables.c:29: Warning: 
   assertion got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:34: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:34: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/at_on-purely-logic-variables.c:31: Warning: 
   assertion got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:38: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/at_on-purely-logic-variables.c:38: Warning: 
   assertion got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:42: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:42: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/at_on-purely-logic-variables.c:42: Warning: 
   assertion got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:46: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:46: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:46: Warning: 
+  function __e_acsl_assert, behavior blocking: precondition got status invalid.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:46: Warning: 
+  function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/at_on-purely-logic-variables.c:45: Warning: 
   accessing uninitialized left-value.
   assert
   \initialized(__gen_e_acsl_at_6 +
                (int)((int)((int)(__gen_e_acsl_u_3 - 9) * 32) +
                      (int)(__gen_e_acsl_v_3 - -4)));
-[eva:alarm] tests/arith/at_on-purely-logic-variables.c:46: Warning: 
-  function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/at_on-purely-logic-variables.c:44: Warning: 
   assertion got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:7: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/at_on-purely-logic-variables.c:8: Warning: 
   function __gen_e_acsl_f: postcondition got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:16: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:16: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/at_on-purely-logic-variables.c:16: Warning: 
   assertion got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:59: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/at_on-purely-logic-variables.c:59: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/at_on-purely-logic-variables.c:56: Warning: 
   assertion got status unknown.
 [eva:alarm] tests/arith/at_on-purely-logic-variables.c:66: Warning: 
diff --git a/src/plugins/e-acsl/tests/arith/oracle/bitwise.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/bitwise.res.oracle
index 1d829537034b569747b7f2216f3b8e1c335b4c05..003f08adf305df9a3b60ac49bd3056c69a547860 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/bitwise.res.oracle
+++ b/src/plugins/e-acsl/tests/arith/oracle/bitwise.res.oracle
@@ -1,9 +1,69 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/arith/bitwise.c:14: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:16: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:18: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:18: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:20: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:20: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:22: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:22: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:28: Warning: 
+  function __e_acsl_assert_register_uint: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:30: Warning: 
+  function __e_acsl_assert_register_uint: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:32: Warning: 
+  function __e_acsl_assert_register_uint: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:32: Warning: 
+  function __e_acsl_assert_register_uint: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:34: Warning: 
+  function __e_acsl_assert_register_uint: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:34: Warning: 
+  function __e_acsl_assert_register_uint: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:36: Warning: 
+  function __e_acsl_assert_register_uint: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:36: Warning: 
+  function __e_acsl_assert_register_uint: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:42: Warning: 
+  function __e_acsl_assert_copy_values: precondition dest->values == \null ||
+                                                     \valid(dest->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:42: Warning: 
+  function __e_acsl_assert_copy_values: precondition src->values == \null ||
+                                                     \valid(src->values) got status unknown.
 [eva:alarm] tests/arith/bitwise.c:42: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/bitwise.c:42: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/arith/bitwise.c:44: Warning: 
+  function __e_acsl_assert_copy_values: precondition dest->values == \null ||
+                                                     \valid(dest->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:44: Warning: 
+  function __e_acsl_assert_copy_values: precondition src->values == \null ||
+                                                     \valid(src->values) got status unknown.
 [eva:alarm] tests/arith/bitwise.c:44: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/bitwise.c:44: Warning: 
@@ -18,10 +78,22 @@
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/bitwise.c:50: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/arith/bitwise.c:57: Warning: 
+  function __e_acsl_assert_copy_values: precondition dest->values == \null ||
+                                                     \valid(dest->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:57: Warning: 
+  function __e_acsl_assert_copy_values: precondition src->values == \null ||
+                                                     \valid(src->values) got status unknown.
 [eva:alarm] tests/arith/bitwise.c:57: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/bitwise.c:57: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/arith/bitwise.c:59: Warning: 
+  function __e_acsl_assert_copy_values: precondition dest->values == \null ||
+                                                     \valid(dest->values) got status unknown.
+[eva:alarm] tests/arith/bitwise.c:59: Warning: 
+  function __e_acsl_assert_copy_values: precondition src->values == \null ||
+                                                     \valid(src->values) got status unknown.
 [eva:alarm] tests/arith/bitwise.c:59: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/bitwise.c:59: Warning: 
diff --git a/src/plugins/e-acsl/tests/arith/oracle/cast.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/cast.res.oracle
index 91932086457759e419ca8dfd663c8ec59a66b00d..acad8d1eb7b682cd564bbd96fb231e83cf5768a9 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/cast.res.oracle
+++ b/src/plugins/e-acsl/tests/arith/oracle/cast.res.oracle
@@ -2,3 +2,9 @@
 [e-acsl] tests/arith/cast.i:22: Warning: 
   E-ACSL construct `R to Int' is not yet supported. Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/arith/cast.i:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/cast.i:10: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/arith/oracle/comparison.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/comparison.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..5d4daf159f1f24c7dee5acad3168ce8d537283bd 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/comparison.res.oracle
+++ b/src/plugins/e-acsl/tests/arith/oracle/comparison.res.oracle
@@ -1,2 +1,11 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/arith/comparison.i:7: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/comparison.i:8: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/comparison.i:12: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/arith/oracle/extended_quantifiers.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/extended_quantifiers.res.oracle
index e8c1201d2fab96550a0a4713cbf0033d66af1405..4e1051e5af2af0c3bd87e9ae158c60c8e539dc1f 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/extended_quantifiers.res.oracle
+++ b/src/plugins/e-acsl/tests/arith/oracle/extended_quantifiers.res.oracle
@@ -1,31 +1,37 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
 [eva:alarm] tests/arith/extended_quantifiers.c:11: Warning: 
-  signed overflow. assert 2 * __gen_e_acsl_k ≤ 2147483647;
+  signed overflow. assert 2 * __gen_e_acsl_k <= 2147483647;
 [eva:alarm] tests/arith/extended_quantifiers.c:11: Warning: 
   signed overflow.
-  assert __gen_e_acsl_accumulator + __gen_e_acsl_lambda ≤ 2147483647;
+  assert __gen_e_acsl_accumulator + __gen_e_acsl_lambda <= 2147483647;
 [eva:alarm] tests/arith/extended_quantifiers.c:11: Warning: 
-  signed overflow. assert __gen_e_acsl_k + __gen_e_acsl_one ≤ 2147483647;
+  signed overflow. assert __gen_e_acsl_k + __gen_e_acsl_one <= 2147483647;
 [eva:alarm] tests/arith/extended_quantifiers.c:11: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:11: Warning: 
   assertion got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:12: Warning: 
-  signed overflow. assert __gen_e_acsl_k_2 + __gen_e_acsl_one_2 ≤ 2147483647;
+  signed overflow. assert __gen_e_acsl_k_2 + __gen_e_acsl_one_2 <= 2147483647;
 [eva:alarm] tests/arith/extended_quantifiers.c:12: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:12: Warning: 
   assertion got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:13: Warning: 
   assertion got status unknown.
+[eva:alarm] tests/arith/extended_quantifiers.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/extended_quantifiers.c:14: Warning: 
+  function __e_acsl_assert_register_mpz: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:14: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:14: Warning: 
   assertion got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:15: Warning: 
   signed overflow.
-  assert __gen_e_acsl_accumulator_5 + __gen_e_acsl_lambda_5 ≤ 2147483647;
+  assert __gen_e_acsl_accumulator_5 + __gen_e_acsl_lambda_5 <= 2147483647;
 [eva:alarm] tests/arith/extended_quantifiers.c:15: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:15: Warning: 
@@ -37,60 +43,66 @@
 [eva:alarm] tests/arith/extended_quantifiers.c:18: Warning: 
   signed overflow.
   assert
-  -9223372036854775808 ≤ __gen_e_acsl_accumulator_7 + __gen_e_acsl_lambda_7;
+  -9223372036854775808 <= __gen_e_acsl_accumulator_7 + __gen_e_acsl_lambda_7;
 [eva:alarm] tests/arith/extended_quantifiers.c:18: Warning: 
-  signed overflow. assert __gen_e_acsl_k_7 + __gen_e_acsl_one_7 ≤ 2147483647;
+  signed overflow. assert __gen_e_acsl_k_7 + __gen_e_acsl_one_7 <= 2147483647;
+[eva:alarm] tests/arith/extended_quantifiers.c:18: Warning: 
+  function __e_acsl_assert_register_long: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:17: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:17: Warning: 
   assertion got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:20: Warning: 
-  signed overflow. assert __gen_e_acsl_k_8 + __gen_e_acsl_one_8 ≤ 2147483647;
+  signed overflow. assert __gen_e_acsl_k_8 + __gen_e_acsl_one_8 <= 2147483647;
 [eva:alarm] tests/arith/extended_quantifiers.c:20: Warning: 
   signed overflow.
-  assert __gen_e_acsl_accumulator_8 + __gen_e_acsl_lambda_8 ≤ 2147483647;
+  assert __gen_e_acsl_accumulator_8 + __gen_e_acsl_lambda_8 <= 2147483647;
 [eva:alarm] tests/arith/extended_quantifiers.c:20: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:20: Warning: 
   assertion got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:21: Warning: 
   signed overflow.
-  assert __gen_e_acsl_accumulator_9 + __gen_e_acsl_lambda_9 ≤ 2147483647;
+  assert __gen_e_acsl_accumulator_9 + __gen_e_acsl_lambda_9 <= 2147483647;
 [eva:alarm] tests/arith/extended_quantifiers.c:21: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:21: Warning: 
   assertion got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:25: Warning: 
   signed overflow.
-  assert __gen_e_acsl_k_10 + __gen_e_acsl_one_10 ≤ 2147483647;
+  assert __gen_e_acsl_k_10 + __gen_e_acsl_one_10 <= 2147483647;
 [eva:alarm] tests/arith/extended_quantifiers.c:25: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:25: Warning: 
   assertion got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:26: Warning: 
   signed overflow.
-  assert __gen_e_acsl_k_11 + __gen_e_acsl_one_11 ≤ 2147483647;
+  assert __gen_e_acsl_k_11 + __gen_e_acsl_one_11 <= 2147483647;
 [eva:alarm] tests/arith/extended_quantifiers.c:26: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:26: Warning: 
   assertion got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:27: Warning: 
   signed overflow.
-  assert __gen_e_acsl_k_12 + __gen_e_acsl_one_12 ≤ 2147483647;
+  assert __gen_e_acsl_k_12 + __gen_e_acsl_one_12 <= 2147483647;
 [eva:alarm] tests/arith/extended_quantifiers.c:27: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:27: Warning: 
   assertion got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:28: Warning: 
-  signed overflow. assert 2 * __gen_e_acsl_k_13 ≤ 2147483647;
+  signed overflow. assert 2 * __gen_e_acsl_k_13 <= 2147483647;
 [eva:alarm] tests/arith/extended_quantifiers.c:28: Warning: 
   signed overflow.
-  assert __gen_e_acsl_k_13 + __gen_e_acsl_one_13 ≤ 2147483647;
+  assert __gen_e_acsl_k_13 + __gen_e_acsl_one_13 <= 2147483647;
 [eva:alarm] tests/arith/extended_quantifiers.c:29: Warning: 
-  signed overflow. assert 2 * __gen_e_acsl_k_14 ≤ 2147483647;
+  signed overflow. assert 2 * __gen_e_acsl_k_14 <= 2147483647;
 [eva:alarm] tests/arith/extended_quantifiers.c:29: Warning: 
   signed overflow.
-  assert __gen_e_acsl_k_14 + __gen_e_acsl_one_14 ≤ 2147483647;
+  assert __gen_e_acsl_k_14 + __gen_e_acsl_one_14 <= 2147483647;
+[eva:alarm] tests/arith/extended_quantifiers.c:29: Warning: 
+  function __e_acsl_assert_register_mpz: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:28: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/extended_quantifiers.c:28: Warning: 
diff --git a/src/plugins/e-acsl/tests/arith/oracle/functions.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/functions.res.oracle
index 185e1121e6bf48381adef9c9c0aadfb859c57489..2302271bd58149493aa4708a4f47e773d53b31ee 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/functions.res.oracle
+++ b/src/plugins/e-acsl/tests/arith/oracle/functions.res.oracle
@@ -1,15 +1,63 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/arith/functions.c:48: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/functions.c:48: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/functions.c:50: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/arith/functions.c:52: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/functions.c:52: Warning: 
+  function __e_acsl_assert_register_long: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/functions.c:53: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/functions.c:53: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/functions.c:53: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/functions.c:54: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/functions.c:55: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/arith/functions.c:60: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/functions.c:60: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/functions.c:63: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/functions.c:63: Warning: 
+  function __e_acsl_assert_register_char: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/functions.c:65: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/functions.c:65: Warning: 
+  function __e_acsl_assert_register_short: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/functions.c:70: Warning: 
+  function __e_acsl_assert_register_struct: precondition data->values == \null ||
+                                                         \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/functions.c:70: Warning: 
+  function __e_acsl_assert_register_long: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/functions.c:28: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/functions.c:75: Warning: 
   non-finite double value. assert \is_finite(__gen_e_acsl__10);
+[eva:alarm] tests/arith/functions.c:75: Warning: 
+  function __e_acsl_assert_register_double: precondition data->values == \null ||
+                                                         \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/functions.c:75: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/functions.c:77: Warning: assertion got status unknown.
diff --git a/src/plugins/e-acsl/tests/arith/oracle/functions_rec.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/functions_rec.res.oracle
index c2c703a86c9eb38d948028c4a56227cdf248c991..e347f3c4d934a2e3be83cd2bde43540992c6ea44 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/functions_rec.res.oracle
+++ b/src/plugins/e-acsl/tests/arith/oracle/functions_rec.res.oracle
@@ -49,16 +49,15 @@
 [eva:alarm] tests/arith/functions_rec.c:13: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/functions_rec.c:13: Warning: 
-  division by zero. assert __gen_e_acsl_f2_9 ≢ 0;
+  division by zero. assert __gen_e_acsl_f2_9 != 0;
 [eva:alarm] tests/arith/functions_rec.c:13: Warning: 
-  signed overflow.
-  assert -2147483648 ≤ __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7;
+  signed overflow. assert -2147483648 <= __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7;
 [eva:alarm] tests/arith/functions_rec.c:13: Warning: 
-  signed overflow. assert __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7 ≤ 2147483647;
+  signed overflow. assert __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7 <= 2147483647;
 [eva:alarm] tests/arith/functions_rec.c:13: Warning: 
   signed overflow.
   assert
-  (int)(__gen_e_acsl_f2_5 * __gen_e_acsl_f2_7) / __gen_e_acsl_f2_9 ≤
+  (int)(__gen_e_acsl_f2_5 * __gen_e_acsl_f2_7) / __gen_e_acsl_f2_9 <=
   2147483647;
 [eva:alarm] tests/arith/functions_rec.c:13: Warning: 
   accessing uninitialized left-value.
@@ -67,30 +66,30 @@
   accessing uninitialized left-value.
   assert \initialized((__e_acsl_mpz_struct *)__gen_e_acsl_sub_8);
 [eva:alarm] tests/arith/functions_rec.c:13: Warning: 
-  division by zero. assert __gen_e_acsl_f2_14 ≢ 0;
+  division by zero. assert __gen_e_acsl_f2_14 != 0;
 [eva:alarm] tests/arith/functions_rec.c:13: Warning: 
   signed overflow.
-  assert -2147483648 ≤ __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12;
+  assert -2147483648 <= __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12;
 [eva:alarm] tests/arith/functions_rec.c:13: Warning: 
   signed overflow.
-  assert __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12 ≤ 2147483647;
+  assert __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12 <= 2147483647;
 [eva:alarm] tests/arith/functions_rec.c:13: Warning: 
   signed overflow.
   assert
-  (int)(__gen_e_acsl_f2_10 * __gen_e_acsl_f2_12) / __gen_e_acsl_f2_14 ≤
+  (int)(__gen_e_acsl_f2_10 * __gen_e_acsl_f2_12) / __gen_e_acsl_f2_14 <=
   2147483647;
 [eva:alarm] tests/arith/functions_rec.c:13: Warning: 
-  division by zero. assert __gen_e_acsl_f2_19 ≢ 0;
+  division by zero. assert __gen_e_acsl_f2_19 != 0;
 [eva:alarm] tests/arith/functions_rec.c:13: Warning: 
   signed overflow.
-  assert -2147483648 ≤ __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17;
+  assert -2147483648 <= __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17;
 [eva:alarm] tests/arith/functions_rec.c:13: Warning: 
   signed overflow.
-  assert __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17 ≤ 2147483647;
+  assert __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17 <= 2147483647;
 [eva:alarm] tests/arith/functions_rec.c:13: Warning: 
   signed overflow.
   assert
-  (int)(__gen_e_acsl_f2_15 * __gen_e_acsl_f2_17) / __gen_e_acsl_f2_19 ≤
+  (int)(__gen_e_acsl_f2_15 * __gen_e_acsl_f2_17) / __gen_e_acsl_f2_19 <=
   2147483647;
 [eva:alarm] tests/arith/functions_rec.c:32: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
@@ -129,6 +128,9 @@
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/functions_rec.c:38: Warning: 
   assertion got status unknown.
+[eva:alarm] tests/arith/functions_rec.c:40: Warning: 
+  function __e_acsl_assert_register_mpz: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/functions_rec.c:40: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/functions_rec.c:40: Warning: 
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_arith.c b/src/plugins/e-acsl/tests/arith/oracle/gen_arith.c
index 7553a951c4b52aaf9400d6577e9a93dd3e0e5d4a..0999a0ce617945582c0a9f22e5ce81b3c923439b 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_arith.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_arith.c
@@ -1,95 +1,294 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int x = -3;
   int y = 2;
   long z = 2L;
-  __e_acsl_assert(-3 == x,1,"Assertion","main","-3 == x",
-                  "tests/arith/arith.i",10);
-  /*@ assert -3 ≡ x; */ ;
-  __e_acsl_assert(x == -3,1,"Assertion","main","x == -3",
-                  "tests/arith/arith.i",11);
-  /*@ assert x ≡ -3; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","0 != ~0","tests/arith/arith.i",12);
-  /*@ assert 0 ≢ ~0; */ ;
-  __e_acsl_assert(x + 1L == -2L,1,"Assertion","main","x + 1 == -2",
-                  "tests/arith/arith.i",14);
-  /*@ assert x + 1 ≡ -2; */ ;
-  __e_acsl_assert(x - 1L == -4L,1,"Assertion","main","x - 1 == -4",
-                  "tests/arith/arith.i",15);
-  /*@ assert x - 1 ≡ -4; */ ;
-  __e_acsl_assert(x * 3L == -9L,1,"Assertion","main","x * 3 == -9",
-                  "tests/arith/arith.i",16);
-  /*@ assert x * 3 ≡ -9; */ ;
-  __e_acsl_assert(x / 3 == -1,1,"Assertion","main","x / 3 == -1",
-                  "tests/arith/arith.i",17);
-  /*@ assert x / 3 ≡ -1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "-3 == x";
+    __gen_e_acsl_assert_data.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 10;
+    __e_acsl_assert(-3 == x,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert -3 == x; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "x == -3";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 11;
+    __e_acsl_assert(x == -3,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+  }
+  /*@ assert x == -3; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "0 != ~0";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 12;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_3);
+  }
+  /*@ assert 0 != ~0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"x",0,x);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "x + 1 == -2";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 14;
+    __e_acsl_assert(x + 1L == -2L,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+  }
+  /*@ assert x + 1 == -2; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"x",0,x);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "x - 1 == -4";
+    __gen_e_acsl_assert_data_5.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 15;
+    __e_acsl_assert(x - 1L == -4L,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+  }
+  /*@ assert x - 1 == -4; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"x",0,x);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "x * 3 == -9";
+    __gen_e_acsl_assert_data_6.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 16;
+    __e_acsl_assert(x * 3L == -9L,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+  }
+  /*@ assert x * 3 == -9; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"x",0,x);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "x / 3 == -1";
+    __gen_e_acsl_assert_data_7.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 17;
+    __e_acsl_assert(x / 3 == -1,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+  }
+  /*@ assert x / 3 == -1; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_;
     __e_acsl_mpz_t __gen_e_acsl__2;
     int __gen_e_acsl_div_guard;
     __e_acsl_mpz_t __gen_e_acsl_div;
     long __gen_e_acsl__3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
     __gmpz_init_set_str(__gen_e_acsl_,"309485009821345068724781055",10);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__2,0L);
     __gen_e_acsl_div_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_),
                                         (__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
     __gmpz_init(__gen_e_acsl_div);
-    /*@ assert E_ACSL: 0xffffffffffffffffffffff ≢ 0; */
-    __e_acsl_assert(__gen_e_acsl_div_guard != 0,1,"Assertion","main",
-                    "0xffffffffffffffffffffff != 0","tests/arith/arith.i",18);
+    /*@ assert E_ACSL: 0xffffffffffffffffffffff != 0; */
+    {
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "Assertion";
+      __gen_e_acsl_assert_data_9.pred_txt = "0xffffffffffffffffffffff != 0";
+      __gen_e_acsl_assert_data_9.file = "tests/arith/arith.i";
+      __gen_e_acsl_assert_data_9.fct = "main";
+      __gen_e_acsl_assert_data_9.line = 18;
+      __e_acsl_assert(__gen_e_acsl_div_guard != 0,
+                      & __gen_e_acsl_assert_data_9);
+    }
     __gmpz_tdiv_q(__gen_e_acsl_div,
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_),
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_));
     __gen_e_acsl__3 = __gmpz_get_si((__e_acsl_mpz_struct const *)(__gen_e_acsl_div));
-    __e_acsl_assert(__gen_e_acsl__3 == 1L,1,"Assertion","main",
-                    "0xffffffffffffffffffffff / 0xffffffffffffffffffffff == 1",
-                    "tests/arith/arith.i",18);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "0xffffffffffffffffffffff / 0xffffffffffffffffffffff == 1";
+    __gen_e_acsl_assert_data_8.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 18;
+    __e_acsl_assert(__gen_e_acsl__3 == 1L,& __gen_e_acsl_assert_data_8);
     __gmpz_clear(__gen_e_acsl_);
     __gmpz_clear(__gen_e_acsl__2);
     __gmpz_clear(__gen_e_acsl_div);
   }
-  /*@ assert 0xffffffffffffffffffffff / 0xffffffffffffffffffffff ≡ 1; */ ;
-  __e_acsl_assert(x % 2 == -1,1,"Assertion","main","x % 2 == -1",
-                  "tests/arith/arith.i",19);
-  /*@ assert x % 2 ≡ -1; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","-3 % -2 == -1",
-                  "tests/arith/arith.i",20);
-  /*@ assert -3 % -2 ≡ -1; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","3 % -2 == 1","tests/arith/arith.i",
-                  21);
-  /*@ assert 3 % -2 ≡ 1; */ ;
-  __e_acsl_assert(((x * 2L + (3L + y)) - 4L) + (x - (long)y) == -10L,1,
-                  "Assertion","main",
-                  "((x * 2 + (3 + y)) - 4) + (x - y) == -10",
-                  "tests/arith/arith.i",23);
-  /*@ assert ((x * 2 + (3 + y)) - 4) + (x - y) ≡ -10; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","(0 == 1) == !(0 == 0)",
-                  "tests/arith/arith.i",25);
-  /*@ assert (0 ≡ 1) ≡ !(0 ≡ 0); */ ;
-  __e_acsl_assert(1,1,"Assertion","main","(0 <= -1) == (0 > 0)",
-                  "tests/arith/arith.i",26);
-  /*@ assert (0 ≤ -1) ≡ (0 > 0); */ ;
-  __e_acsl_assert(1,1,"Assertion","main","(0 >= -1) == (0 <= 0)",
-                  "tests/arith/arith.i",27);
-  /*@ assert (0 ≥ -1) ≡ (0 ≤ 0); */ ;
-  __e_acsl_assert(1,1,"Assertion","main","(0 != 1) == !(0 != 0)",
-                  "tests/arith/arith.i",28);
-  /*@ assert (0 ≢ 1) ≡ !(0 ≢ 0); */ ;
-  __e_acsl_assert(1,1,"Assertion","main","(0 != 0) == !(1 != 0)",
-                  "tests/arith/arith.i",30);
-  /*@ assert (0 ≢ 0) ≡ !(1 ≢ 0); */ ;
-  __e_acsl_assert(y != 0,1,"RTE","main","division_by_zero: y != 0",
-                  "tests/arith/arith.i",31);
-  __e_acsl_assert(4 / y == 2,1,"Assertion","main","4 / y == 2",
-                  "tests/arith/arith.i",31);
-  /*@ assert 4 / y ≡ 2; */ ;
+  /*@ assert 0xffffffffffffffffffffff / 0xffffffffffffffffffffff == 1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"x",0,x);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "x % 2 == -1";
+    __gen_e_acsl_assert_data_10.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 19;
+    __e_acsl_assert(x % 2 == -1,& __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
+  }
+  /*@ assert x % 2 == -1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "-3 % -2 == -1";
+    __gen_e_acsl_assert_data_11.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 20;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_11);
+  }
+  /*@ assert -3 % -2 == -1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "3 % -2 == 1";
+    __gen_e_acsl_assert_data_12.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 21;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_12);
+  }
+  /*@ assert 3 % -2 == 1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"x",0,x);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"y",0,y);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"x",0,x);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"y",0,y);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "((x * 2 + (3 + y)) - 4) + (x - y) == -10";
+    __gen_e_acsl_assert_data_13.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 23;
+    __e_acsl_assert(((x * 2L + (3L + y)) - 4L) + (x - (long)y) == -10L,
+                    & __gen_e_acsl_assert_data_13);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
+  }
+  /*@ assert ((x * 2 + (3 + y)) - 4) + (x - y) == -10; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_14.blocking = 1;
+    __gen_e_acsl_assert_data_14.kind = "Assertion";
+    __gen_e_acsl_assert_data_14.pred_txt = "(0 == 1) == !(0 == 0)";
+    __gen_e_acsl_assert_data_14.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_14.fct = "main";
+    __gen_e_acsl_assert_data_14.line = 25;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_14);
+  }
+  /*@ assert (0 == 1) == !(0 == 0); */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_15.blocking = 1;
+    __gen_e_acsl_assert_data_15.kind = "Assertion";
+    __gen_e_acsl_assert_data_15.pred_txt = "(0 <= -1) == (0 > 0)";
+    __gen_e_acsl_assert_data_15.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_15.fct = "main";
+    __gen_e_acsl_assert_data_15.line = 26;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_15);
+  }
+  /*@ assert (0 <= -1) == (0 > 0); */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_16.blocking = 1;
+    __gen_e_acsl_assert_data_16.kind = "Assertion";
+    __gen_e_acsl_assert_data_16.pred_txt = "(0 >= -1) == (0 <= 0)";
+    __gen_e_acsl_assert_data_16.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_16.fct = "main";
+    __gen_e_acsl_assert_data_16.line = 27;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_16);
+  }
+  /*@ assert (0 >= -1) == (0 <= 0); */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "Assertion";
+    __gen_e_acsl_assert_data_17.pred_txt = "(0 != 1) == !(0 != 0)";
+    __gen_e_acsl_assert_data_17.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_17.fct = "main";
+    __gen_e_acsl_assert_data_17.line = 28;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_17);
+  }
+  /*@ assert (0 != 1) == !(0 != 0); */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_18.blocking = 1;
+    __gen_e_acsl_assert_data_18.kind = "Assertion";
+    __gen_e_acsl_assert_data_18.pred_txt = "(0 != 0) == !(1 != 0)";
+    __gen_e_acsl_assert_data_18.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_18.fct = "main";
+    __gen_e_acsl_assert_data_18.line = 30;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_18);
+  }
+  /*@ assert (0 != 0) == !(1 != 0); */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,"y",0,y);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,"y",0,y);
+    __gen_e_acsl_assert_data_20.blocking = 1;
+    __gen_e_acsl_assert_data_20.kind = "RTE";
+    __gen_e_acsl_assert_data_20.pred_txt = "division_by_zero: y != 0";
+    __gen_e_acsl_assert_data_20.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_20.fct = "main";
+    __gen_e_acsl_assert_data_20.line = 31;
+    __e_acsl_assert(y != 0,& __gen_e_acsl_assert_data_20);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20);
+    __gen_e_acsl_assert_data_19.blocking = 1;
+    __gen_e_acsl_assert_data_19.kind = "Assertion";
+    __gen_e_acsl_assert_data_19.pred_txt = "4 / y == 2";
+    __gen_e_acsl_assert_data_19.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_19.fct = "main";
+    __gen_e_acsl_assert_data_19.line = 31;
+    __e_acsl_assert(4 / y == 2,& __gen_e_acsl_assert_data_19);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19);
+  }
+  /*@ assert 4 / y == 2; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_z;
     __e_acsl_mpz_t __gen_e_acsl__4;
@@ -99,29 +298,51 @@ int main(void)
     int __gen_e_acsl_div_guard_2;
     __e_acsl_mpz_t __gen_e_acsl_div_2;
     long __gen_e_acsl__7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_21,"z",0,z);
     __gmpz_init_set_si(__gen_e_acsl_z,z);
     __gmpz_init_set_si(__gen_e_acsl__4,1L);
     __gmpz_init(__gen_e_acsl_add);
     __gmpz_add(__gen_e_acsl_add,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_z),
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,"y",0,y);
     __gmpz_init_set_si(__gen_e_acsl__5,y - 123456789123456789L);
+    __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_21,
+                                & __gen_e_acsl_assert_data_22);
     __gmpz_init_set_si(__gen_e_acsl__6,0L);
     __gen_e_acsl_div_guard_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__5),
                                           (__e_acsl_mpz_struct const *)(__gen_e_acsl__6));
     __gmpz_init(__gen_e_acsl_div_2);
-    /*@ assert E_ACSL: y - 123456789123456789 ≢ 0; */
-    __e_acsl_assert(__gen_e_acsl_div_guard_2 != 0,1,"Assertion","main",
-                    "y - 123456789123456789 != 0","tests/arith/arith.i",34);
+    /*@ assert E_ACSL: y - 123456789123456789 != 0; */
+    {
+      __gen_e_acsl_assert_data_22.blocking = 1;
+      __gen_e_acsl_assert_data_22.kind = "Assertion";
+      __gen_e_acsl_assert_data_22.pred_txt = "y - 123456789123456789 != 0";
+      __gen_e_acsl_assert_data_22.file = "tests/arith/arith.i";
+      __gen_e_acsl_assert_data_22.fct = "main";
+      __gen_e_acsl_assert_data_22.line = 34;
+      __e_acsl_assert(__gen_e_acsl_div_guard_2 != 0,
+                      & __gen_e_acsl_assert_data_22);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22);
+    }
     __gmpz_tdiv_q(__gen_e_acsl_div_2,
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_add),
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl__5));
     __gen_e_acsl__7 = __gmpz_get_si((__e_acsl_mpz_struct const *)(__gen_e_acsl_div_2));
-    /*@ assert Eva: signed_overflow: -2147483648 ≤ 1 + __gen_e_acsl__7; */
-    /*@ assert Eva: signed_overflow: 1 + __gen_e_acsl__7 ≤ 2147483647; */
-    __e_acsl_assert(1 + __gen_e_acsl__7 == 1,1,"Assertion","main",
-                    "1 + (z + 1) / (y - 123456789123456789) == 1",
-                    "tests/arith/arith.i",34);
+    __gen_e_acsl_assert_data_21.blocking = 1;
+    __gen_e_acsl_assert_data_21.kind = "Assertion";
+    __gen_e_acsl_assert_data_21.pred_txt = "1 + (z + 1) / (y - 123456789123456789) == 1";
+    __gen_e_acsl_assert_data_21.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_21.fct = "main";
+    __gen_e_acsl_assert_data_21.line = 34;
+    /*@ assert Eva: signed_overflow: -2147483648 <= 1 + __gen_e_acsl__7; */
+    /*@ assert Eva: signed_overflow: 1 + __gen_e_acsl__7 <= 2147483647; */
+    __e_acsl_assert(1 + __gen_e_acsl__7 == 1,& __gen_e_acsl_assert_data_21);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21);
     __gmpz_clear(__gen_e_acsl_z);
     __gmpz_clear(__gen_e_acsl__4);
     __gmpz_clear(__gen_e_acsl_add);
@@ -129,11 +350,24 @@ int main(void)
     __gmpz_clear(__gen_e_acsl__6);
     __gmpz_clear(__gen_e_acsl_div_2);
   }
-  /*@ assert 1 + (z + 1) / (y - 123456789123456789) ≡ 1; */ ;
-  __e_acsl_assert(1L - x == - ((long)x) + 1L,1,"Assertion","main",
-                  "1 - x == -x + 1","tests/arith/arith.i",36);
-  /*@ assert 1 - x ≡ -x + 1; */ ;
+  /*@ assert 1 + (z + 1) / (y - 123456789123456789) == 1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"x",0,x);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"x",0,x);
+    __gen_e_acsl_assert_data_23.blocking = 1;
+    __gen_e_acsl_assert_data_23.kind = "Assertion";
+    __gen_e_acsl_assert_data_23.pred_txt = "1 - x == -x + 1";
+    __gen_e_acsl_assert_data_23.file = "tests/arith/arith.i";
+    __gen_e_acsl_assert_data_23.fct = "main";
+    __gen_e_acsl_assert_data_23.line = 36;
+    __e_acsl_assert(1L - x == - ((long)x) + 1L,& __gen_e_acsl_assert_data_23);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23);
+  }
+  /*@ assert 1 - x == -x + 1; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_array.c b/src/plugins/e-acsl/tests/arith/oracle/gen_array.c
index fd738aa7b4b03d0f062ee3a3e6d84032b9fb135e..3254f52fc740d4553daf2c375e8b8d514877f8a2 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_array.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_array.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -18,6 +18,11 @@ void arrays(void)
   int d[6] = {1, 2, 3, 4, 5, 6};
   {
     int __gen_e_acsl_ne;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data,"a",
+                                   (void *)(a));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data,"b",
+                                   (void *)(b));
     __gen_e_acsl_ne = 0;
     if (1) {
       unsigned long __gen_e_acsl_iter;
@@ -31,12 +36,24 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_ne = 1;
-    __e_acsl_assert(__gen_e_acsl_ne,1,"Assertion","arrays","a != b",
-                    "tests/arith/array.i",21);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "a != b";
+    __gen_e_acsl_assert_data.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data.fct = "arrays";
+    __gen_e_acsl_assert_data.line = 21;
+    __e_acsl_assert(__gen_e_acsl_ne,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert a ≢ b; */ ;
+  /*@ assert a != b; */ ;
   {
     int __gen_e_acsl_eq;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_2,"a",
+                                   (void *)(a));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_2,"c",
+                                   (void *)(c));
     __gen_e_acsl_eq = 1;
     if (1) {
       unsigned long __gen_e_acsl_iter_2;
@@ -50,12 +67,24 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_eq = 0;
-    __e_acsl_assert(__gen_e_acsl_eq,1,"Assertion","arrays","a == c",
-                    "tests/arith/array.i",22);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "a == c";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_2.fct = "arrays";
+    __gen_e_acsl_assert_data_2.line = 22;
+    __e_acsl_assert(__gen_e_acsl_eq,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert a ≡ c; */ ;
+  /*@ assert a == c; */ ;
   {
     int __gen_e_acsl_ne_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_3,"a",
+                                   (void *)(a));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_3,"d",
+                                   (void *)(d));
     __gen_e_acsl_ne_2 = 0;
     if (0) {
       unsigned long __gen_e_acsl_iter_3;
@@ -69,10 +98,16 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_ne_2 = 1;
-    __e_acsl_assert(__gen_e_acsl_ne_2,1,"Assertion","arrays","a != d",
-                    "tests/arith/array.i",23);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "a != d";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_3.fct = "arrays";
+    __gen_e_acsl_assert_data_3.line = 23;
+    __e_acsl_assert(__gen_e_acsl_ne_2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert a ≢ d; */ ;
+  /*@ assert a != d; */ ;
   int *e = a;
   int *f = b;
   __e_acsl_store_block((void *)(& f),(size_t)8);
@@ -81,23 +116,92 @@ void arrays(void)
   __e_acsl_store_block((void *)(& g),(size_t)8);
   __e_acsl_full_init((void *)(& g));
   int *h = a;
-  __e_acsl_assert(e != f,1,"Assertion","arrays","e != f",
-                  "tests/arith/array.i",30);
-  /*@ assert e ≢ f; */ ;
-  __e_acsl_assert(e != g,1,"Assertion","arrays","e != g",
-                  "tests/arith/array.i",31);
-  /*@ assert e ≢ g; */ ;
-  __e_acsl_assert(e == h,1,"Assertion","arrays","e == h",
-                  "tests/arith/array.i",32);
-  /*@ assert e ≡ h; */ ;
-  __e_acsl_assert(e == a,1,"Assertion","arrays","e == (int *)a",
-                  "tests/arith/array.i",36);
-  /*@ assert e ≡ (int *)a; */ ;
-  __e_acsl_assert(e != c,1,"Assertion","arrays","e != (int *)c",
-                  "tests/arith/array.i",37);
-  /*@ assert e ≢ (int *)c; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"e",(void *)e);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"f",(void *)f);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "e != f";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_4.fct = "arrays";
+    __gen_e_acsl_assert_data_4.line = 30;
+    __e_acsl_assert(e != f,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+  }
+  /*@ assert e != f; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"e",(void *)e);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"g",(void *)g);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "e != g";
+    __gen_e_acsl_assert_data_5.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_5.fct = "arrays";
+    __gen_e_acsl_assert_data_5.line = 31;
+    __e_acsl_assert(e != g,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+  }
+  /*@ assert e != g; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"e",(void *)e);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"h",(void *)h);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "e == h";
+    __gen_e_acsl_assert_data_6.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_6.fct = "arrays";
+    __gen_e_acsl_assert_data_6.line = 32;
+    __e_acsl_assert(e == h,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+  }
+  /*@ assert e == h; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"e",(void *)e);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"(int *)a",
+                                 (void *)(a));
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "e == (int *)a";
+    __gen_e_acsl_assert_data_7.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_7.fct = "arrays";
+    __gen_e_acsl_assert_data_7.line = 36;
+    __e_acsl_assert(e == a,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+  }
+  /*@ assert e == (int *)a; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"e",(void *)e);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"(int *)c",
+                                 (void *)(c));
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "e != (int *)c";
+    __gen_e_acsl_assert_data_8.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_8.fct = "arrays";
+    __gen_e_acsl_assert_data_8.line = 37;
+    __e_acsl_assert(e != c,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+  }
+  /*@ assert e != (int *)c; */ ;
   {
     int __gen_e_acsl_eq_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_9,"a",
+                                   (void *)(a));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_9,
+                                   "*((int (*)[3])g)",
+                                   (void *)(*((int (*)[3])g)));
     __gen_e_acsl_eq_2 = 1;
     if (1) {
       unsigned long __gen_e_acsl_iter_4;
@@ -105,13 +209,26 @@ void arrays(void)
       while (__gen_e_acsl_iter_4 < 3) {
         {
           int __gen_e_acsl_valid_read;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,
+                                       "&(*((int (*)[3])g))[__gen_e_acsl_iter_4]",
+                                       (void *)(& (*((int (*)[3])g))[__gen_e_acsl_iter_4]));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(& (*((int (*)[3])g))[__gen_e_acsl_iter_4]),
                                                         sizeof(int),
                                                         (void *)(*((int (*)[3])g)),
                                                         (void *)0);
-          __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","arrays",
-                          "mem_access: \\valid_read(&(*((int (*)[3])g))[__gen_e_acsl_iter_4])",
-                          "tests/arith/array.i",40);
+          __gen_e_acsl_assert_data_10.blocking = 1;
+          __gen_e_acsl_assert_data_10.kind = "RTE";
+          __gen_e_acsl_assert_data_10.pred_txt = "mem_access: \\valid_read(&(*((int (*)[3])g))[__gen_e_acsl_iter_4])";
+          __gen_e_acsl_assert_data_10.file = "tests/arith/array.i";
+          __gen_e_acsl_assert_data_10.fct = "arrays";
+          __gen_e_acsl_assert_data_10.line = 40;
+          __e_acsl_assert(__gen_e_acsl_valid_read,
+                          & __gen_e_acsl_assert_data_10);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
           if (a[__gen_e_acsl_iter_4] != (*((int (*)[3])g))[__gen_e_acsl_iter_4]) {
             __gen_e_acsl_eq_2 = 0;
             break;
@@ -121,24 +238,49 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_eq_2 = 0;
-    __e_acsl_assert(__gen_e_acsl_eq_2,1,"Assertion","arrays",
-                    "a == *((int (*)[3])g)","tests/arith/array.i",40);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "a == *((int (*)[3])g)";
+    __gen_e_acsl_assert_data_9.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_9.fct = "arrays";
+    __gen_e_acsl_assert_data_9.line = 40;
+    __e_acsl_assert(__gen_e_acsl_eq_2,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
-  /*@ assert a ≡ *((int (*)[3])g); */ ;
+  /*@ assert a == *((int (*)[3])g); */ ;
   {
     int __gen_e_acsl_eq_3;
     int __gen_e_acsl_valid_read_2;
     unsigned long __gen_e_acsl_;
     unsigned long __gen_e_acsl__2;
     unsigned long __gen_e_acsl_length2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_11,"a",
+                                   (void *)(a));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_11,
+                                   "*((int (*)[])g)",
+                                   (void *)(*((int (*)[])g)));
     __gen_e_acsl_eq_3 = 1;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,
+                                 "(int *)*((int (*)[])g)",
+                                 (void *)(*((int (*)[])g)));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(*((int (*)[])g)),
                                                     sizeof(int),
                                                     (void *)(*((int (*)[])g)),
                                                     (void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","arrays",
-                    "mem_access: \\valid_read((int *)*((int (*)[])g))",
-                    "tests/arith/array.i",41);
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "RTE";
+    __gen_e_acsl_assert_data_12.pred_txt = "mem_access: \\valid_read((int *)*((int (*)[])g))";
+    __gen_e_acsl_assert_data_12.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_12.fct = "arrays";
+    __gen_e_acsl_assert_data_12.line = 41;
+    __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
     __gen_e_acsl_ = __e_acsl_block_length((void *)(*((int (*)[])g)));
     __gen_e_acsl__2 = __e_acsl_offset((void *)(*((int (*)[])g)));
     __gen_e_acsl_length2 = (__gen_e_acsl_ - __gen_e_acsl__2) / sizeof(int);
@@ -148,13 +290,26 @@ void arrays(void)
       while (__gen_e_acsl_iter_5 < 3) {
         {
           int __gen_e_acsl_valid_read_3;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,
+                                       "&(*((int (*)[])g))[__gen_e_acsl_iter_5]",
+                                       (void *)(& (*((int (*)[])g))[__gen_e_acsl_iter_5]));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(& (*((int (*)[])g))[__gen_e_acsl_iter_5]),
                                                           sizeof(int),
                                                           (void *)(*((int (*)[])g)),
                                                           (void *)0);
-          __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","arrays",
-                          "mem_access: \\valid_read(&(*((int (*)[])g))[__gen_e_acsl_iter_5])",
-                          "tests/arith/array.i",41);
+          __gen_e_acsl_assert_data_13.blocking = 1;
+          __gen_e_acsl_assert_data_13.kind = "RTE";
+          __gen_e_acsl_assert_data_13.pred_txt = "mem_access: \\valid_read(&(*((int (*)[])g))[__gen_e_acsl_iter_5])";
+          __gen_e_acsl_assert_data_13.file = "tests/arith/array.i";
+          __gen_e_acsl_assert_data_13.fct = "arrays";
+          __gen_e_acsl_assert_data_13.line = 41;
+          __e_acsl_assert(__gen_e_acsl_valid_read_3,
+                          & __gen_e_acsl_assert_data_13);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
           if (a[__gen_e_acsl_iter_5] != (*((int (*)[])g))[__gen_e_acsl_iter_5]) {
             __gen_e_acsl_eq_3 = 0;
             break;
@@ -164,12 +319,25 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_eq_3 = 0;
-    __e_acsl_assert(__gen_e_acsl_eq_3,1,"Assertion","arrays",
-                    "a == *((int (*)[])g)","tests/arith/array.i",41);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "a == *((int (*)[])g)";
+    __gen_e_acsl_assert_data_11.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_11.fct = "arrays";
+    __gen_e_acsl_assert_data_11.line = 41;
+    __e_acsl_assert(__gen_e_acsl_eq_3,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
   }
-  /*@ assert a ≡ *((int (*)[])g); */ ;
+  /*@ assert a == *((int (*)[])g); */ ;
   {
     int __gen_e_acsl_ne_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_14,"a",
+                                   (void *)(a));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_14,
+                                   "*((int (*)[3])f)",
+                                   (void *)(*((int (*)[3])f)));
     __gen_e_acsl_ne_3 = 0;
     if (1) {
       unsigned long __gen_e_acsl_iter_6;
@@ -177,13 +345,26 @@ void arrays(void)
       while (__gen_e_acsl_iter_6 < 3) {
         {
           int __gen_e_acsl_valid_read_4;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,
+                                       "&(*((int (*)[3])f))[__gen_e_acsl_iter_6]",
+                                       (void *)(& (*((int (*)[3])f))[__gen_e_acsl_iter_6]));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(& (*((int (*)[3])f))[__gen_e_acsl_iter_6]),
                                                           sizeof(int),
                                                           (void *)(*((int (*)[3])f)),
                                                           (void *)0);
-          __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","arrays",
-                          "mem_access: \\valid_read(&(*((int (*)[3])f))[__gen_e_acsl_iter_6])",
-                          "tests/arith/array.i",42);
+          __gen_e_acsl_assert_data_15.blocking = 1;
+          __gen_e_acsl_assert_data_15.kind = "RTE";
+          __gen_e_acsl_assert_data_15.pred_txt = "mem_access: \\valid_read(&(*((int (*)[3])f))[__gen_e_acsl_iter_6])";
+          __gen_e_acsl_assert_data_15.file = "tests/arith/array.i";
+          __gen_e_acsl_assert_data_15.fct = "arrays";
+          __gen_e_acsl_assert_data_15.line = 42;
+          __e_acsl_assert(__gen_e_acsl_valid_read_4,
+                          & __gen_e_acsl_assert_data_15);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
           if (a[__gen_e_acsl_iter_6] != (*((int (*)[3])f))[__gen_e_acsl_iter_6]) {
             __gen_e_acsl_ne_3 = 1;
             break;
@@ -193,24 +374,49 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_ne_3 = 1;
-    __e_acsl_assert(__gen_e_acsl_ne_3,1,"Assertion","arrays",
-                    "a != *((int (*)[3])f)","tests/arith/array.i",42);
+    __gen_e_acsl_assert_data_14.blocking = 1;
+    __gen_e_acsl_assert_data_14.kind = "Assertion";
+    __gen_e_acsl_assert_data_14.pred_txt = "a != *((int (*)[3])f)";
+    __gen_e_acsl_assert_data_14.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_14.fct = "arrays";
+    __gen_e_acsl_assert_data_14.line = 42;
+    __e_acsl_assert(__gen_e_acsl_ne_3,& __gen_e_acsl_assert_data_14);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
   }
-  /*@ assert a ≢ *((int (*)[3])f); */ ;
+  /*@ assert a != *((int (*)[3])f); */ ;
   {
     int __gen_e_acsl_ne_4;
     int __gen_e_acsl_valid_read_5;
     unsigned long __gen_e_acsl__3;
     unsigned long __gen_e_acsl__4;
     unsigned long __gen_e_acsl_length2_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_16,"a",
+                                   (void *)(a));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_16,
+                                   "*((int (*)[])f)",
+                                   (void *)(*((int (*)[])f)));
     __gen_e_acsl_ne_4 = 0;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,
+                                 "(int *)*((int (*)[])f)",
+                                 (void *)(*((int (*)[])f)));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)(*((int (*)[])f)),
                                                     sizeof(int),
                                                     (void *)(*((int (*)[])f)),
                                                     (void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_read_5,1,"RTE","arrays",
-                    "mem_access: \\valid_read((int *)*((int (*)[])f))",
-                    "tests/arith/array.i",43);
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "RTE";
+    __gen_e_acsl_assert_data_17.pred_txt = "mem_access: \\valid_read((int *)*((int (*)[])f))";
+    __gen_e_acsl_assert_data_17.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_17.fct = "arrays";
+    __gen_e_acsl_assert_data_17.line = 43;
+    __e_acsl_assert(__gen_e_acsl_valid_read_5,& __gen_e_acsl_assert_data_17);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
     __gen_e_acsl__3 = __e_acsl_block_length((void *)(*((int (*)[])f)));
     __gen_e_acsl__4 = __e_acsl_offset((void *)(*((int (*)[])f)));
     __gen_e_acsl_length2_2 = (__gen_e_acsl__3 - __gen_e_acsl__4) / sizeof(int);
@@ -220,13 +426,26 @@ void arrays(void)
       while (__gen_e_acsl_iter_7 < 3) {
         {
           int __gen_e_acsl_valid_read_6;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,
+                                       "&(*((int (*)[])f))[__gen_e_acsl_iter_7]",
+                                       (void *)(& (*((int (*)[])f))[__gen_e_acsl_iter_7]));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_18,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)(& (*((int (*)[])f))[__gen_e_acsl_iter_7]),
                                                           sizeof(int),
                                                           (void *)(*((int (*)[])f)),
                                                           (void *)0);
-          __e_acsl_assert(__gen_e_acsl_valid_read_6,1,"RTE","arrays",
-                          "mem_access: \\valid_read(&(*((int (*)[])f))[__gen_e_acsl_iter_7])",
-                          "tests/arith/array.i",43);
+          __gen_e_acsl_assert_data_18.blocking = 1;
+          __gen_e_acsl_assert_data_18.kind = "RTE";
+          __gen_e_acsl_assert_data_18.pred_txt = "mem_access: \\valid_read(&(*((int (*)[])f))[__gen_e_acsl_iter_7])";
+          __gen_e_acsl_assert_data_18.file = "tests/arith/array.i";
+          __gen_e_acsl_assert_data_18.fct = "arrays";
+          __gen_e_acsl_assert_data_18.line = 43;
+          __e_acsl_assert(__gen_e_acsl_valid_read_6,
+                          & __gen_e_acsl_assert_data_18);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18);
           if (a[__gen_e_acsl_iter_7] != (*((int (*)[])f))[__gen_e_acsl_iter_7]) {
             __gen_e_acsl_ne_4 = 1;
             break;
@@ -236,10 +455,16 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_ne_4 = 1;
-    __e_acsl_assert(__gen_e_acsl_ne_4,1,"Assertion","arrays",
-                    "a != *((int (*)[])f)","tests/arith/array.i",43);
+    __gen_e_acsl_assert_data_16.blocking = 1;
+    __gen_e_acsl_assert_data_16.kind = "Assertion";
+    __gen_e_acsl_assert_data_16.pred_txt = "a != *((int (*)[])f)";
+    __gen_e_acsl_assert_data_16.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_16.fct = "arrays";
+    __gen_e_acsl_assert_data_16.line = 43;
+    __e_acsl_assert(__gen_e_acsl_ne_4,& __gen_e_acsl_assert_data_16);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
   }
-  /*@ assert a ≢ *((int (*)[])f); */ ;
+  /*@ assert a != *((int (*)[])f); */ ;
   int i[6] = {1, 2, 3, 4, 5, 6};
   __e_acsl_store_block((void *)(i),(size_t)24);
   __e_acsl_full_init((void *)(& i));
@@ -251,6 +476,12 @@ void arrays(void)
   __e_acsl_full_init((void *)(& k));
   {
     int __gen_e_acsl_ne_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_19,"i",
+                                   (void *)(i));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_19,"j",
+                                   (void *)(j));
     __gen_e_acsl_ne_5 = 0;
     if (1) {
       unsigned long __gen_e_acsl_iter_8;
@@ -264,12 +495,24 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_ne_5 = 1;
-    __e_acsl_assert(__gen_e_acsl_ne_5,1,"Assertion","arrays","i != j",
-                    "tests/arith/array.i",49);
+    __gen_e_acsl_assert_data_19.blocking = 1;
+    __gen_e_acsl_assert_data_19.kind = "Assertion";
+    __gen_e_acsl_assert_data_19.pred_txt = "i != j";
+    __gen_e_acsl_assert_data_19.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_19.fct = "arrays";
+    __gen_e_acsl_assert_data_19.line = 49;
+    __e_acsl_assert(__gen_e_acsl_ne_5,& __gen_e_acsl_assert_data_19);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19);
   }
-  /*@ assert i ≢ j; */ ;
+  /*@ assert i != j; */ ;
   {
     int __gen_e_acsl_ne_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_20,"i",
+                                   (void *)(i));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_20,"k",
+                                   (void *)(k));
     __gen_e_acsl_ne_6 = 0;
     if (1) {
       unsigned long __gen_e_acsl_iter_9;
@@ -283,12 +526,24 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_ne_6 = 1;
-    __e_acsl_assert(__gen_e_acsl_ne_6,1,"Assertion","arrays","i != k",
-                    "tests/arith/array.i",50);
+    __gen_e_acsl_assert_data_20.blocking = 1;
+    __gen_e_acsl_assert_data_20.kind = "Assertion";
+    __gen_e_acsl_assert_data_20.pred_txt = "i != k";
+    __gen_e_acsl_assert_data_20.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_20.fct = "arrays";
+    __gen_e_acsl_assert_data_20.line = 50;
+    __e_acsl_assert(__gen_e_acsl_ne_6,& __gen_e_acsl_assert_data_20);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20);
   }
-  /*@ assert i ≢ k; */ ;
+  /*@ assert i != k; */ ;
   {
     int __gen_e_acsl_ne_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_21,"j",
+                                   (void *)(j));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_21,"k",
+                                   (void *)(k));
     __gen_e_acsl_ne_7 = 0;
     if (1) {
       unsigned long __gen_e_acsl_iter_10;
@@ -302,10 +557,16 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_ne_7 = 1;
-    __e_acsl_assert(__gen_e_acsl_ne_7,1,"Assertion","arrays","j != k",
-                    "tests/arith/array.i",51);
+    __gen_e_acsl_assert_data_21.blocking = 1;
+    __gen_e_acsl_assert_data_21.kind = "Assertion";
+    __gen_e_acsl_assert_data_21.pred_txt = "j != k";
+    __gen_e_acsl_assert_data_21.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_21.fct = "arrays";
+    __gen_e_acsl_assert_data_21.line = 51;
+    __e_acsl_assert(__gen_e_acsl_ne_7,& __gen_e_acsl_assert_data_21);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21);
   }
-  /*@ assert j ≢ k; */ ;
+  /*@ assert j != k; */ ;
   int *l = & i[3];
   __e_acsl_store_block((void *)(& l),(size_t)8);
   __e_acsl_full_init((void *)(& l));
@@ -317,6 +578,14 @@ void arrays(void)
   __e_acsl_full_init((void *)(& n));
   {
     int __gen_e_acsl_ne_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_22,
+                                   "*((int (*)[3])l)",
+                                   (void *)(*((int (*)[3])l)));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_22,
+                                   "*((int (*)[3])m)",
+                                   (void *)(*((int (*)[3])m)));
     __gen_e_acsl_ne_8 = 0;
     if (1) {
       unsigned long __gen_e_acsl_iter_11;
@@ -325,20 +594,46 @@ void arrays(void)
         {
           int __gen_e_acsl_valid_read_7;
           int __gen_e_acsl_valid_read_8;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_23,
+                                       "&(*((int (*)[3])l))[__gen_e_acsl_iter_11]",
+                                       (void *)(& (*((int (*)[3])l))[__gen_e_acsl_iter_11]));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_23,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_read_7 = __e_acsl_valid_read((void *)(& (*((int (*)[3])l))[__gen_e_acsl_iter_11]),
                                                           sizeof(int),
                                                           (void *)(*((int (*)[3])l)),
                                                           (void *)0);
-          __e_acsl_assert(__gen_e_acsl_valid_read_7,1,"RTE","arrays",
-                          "mem_access: \\valid_read(&(*((int (*)[3])l))[__gen_e_acsl_iter_11])",
-                          "tests/arith/array.i",55);
+          __gen_e_acsl_assert_data_23.blocking = 1;
+          __gen_e_acsl_assert_data_23.kind = "RTE";
+          __gen_e_acsl_assert_data_23.pred_txt = "mem_access: \\valid_read(&(*((int (*)[3])l))[__gen_e_acsl_iter_11])";
+          __gen_e_acsl_assert_data_23.file = "tests/arith/array.i";
+          __gen_e_acsl_assert_data_23.fct = "arrays";
+          __gen_e_acsl_assert_data_23.line = 55;
+          __e_acsl_assert(__gen_e_acsl_valid_read_7,
+                          & __gen_e_acsl_assert_data_23);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23);
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_24 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_24,
+                                       "&(*((int (*)[3])m))[__gen_e_acsl_iter_11]",
+                                       (void *)(& (*((int (*)[3])m))[__gen_e_acsl_iter_11]));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_24,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_read_8 = __e_acsl_valid_read((void *)(& (*((int (*)[3])m))[__gen_e_acsl_iter_11]),
                                                           sizeof(int),
                                                           (void *)(*((int (*)[3])m)),
                                                           (void *)0);
-          __e_acsl_assert(__gen_e_acsl_valid_read_8,1,"RTE","arrays",
-                          "mem_access: \\valid_read(&(*((int (*)[3])m))[__gen_e_acsl_iter_11])",
-                          "tests/arith/array.i",55);
+          __gen_e_acsl_assert_data_24.blocking = 1;
+          __gen_e_acsl_assert_data_24.kind = "RTE";
+          __gen_e_acsl_assert_data_24.pred_txt = "mem_access: \\valid_read(&(*((int (*)[3])m))[__gen_e_acsl_iter_11])";
+          __gen_e_acsl_assert_data_24.file = "tests/arith/array.i";
+          __gen_e_acsl_assert_data_24.fct = "arrays";
+          __gen_e_acsl_assert_data_24.line = 55;
+          __e_acsl_assert(__gen_e_acsl_valid_read_8,
+                          & __gen_e_acsl_assert_data_24);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_24);
           if ((*((int (*)[3])l))[__gen_e_acsl_iter_11] != (*((int (*)[3])m))[__gen_e_acsl_iter_11]) {
             __gen_e_acsl_ne_8 = 1;
             break;
@@ -348,13 +643,26 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_ne_8 = 1;
-    __e_acsl_assert(__gen_e_acsl_ne_8,1,"Assertion","arrays",
-                    "*((int (*)[3])l) != *((int (*)[3])m)",
-                    "tests/arith/array.i",55);
+    __gen_e_acsl_assert_data_22.blocking = 1;
+    __gen_e_acsl_assert_data_22.kind = "Assertion";
+    __gen_e_acsl_assert_data_22.pred_txt = "*((int (*)[3])l) != *((int (*)[3])m)";
+    __gen_e_acsl_assert_data_22.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_22.fct = "arrays";
+    __gen_e_acsl_assert_data_22.line = 55;
+    __e_acsl_assert(__gen_e_acsl_ne_8,& __gen_e_acsl_assert_data_22);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22);
   }
-  /*@ assert *((int (*)[3])l) ≢ *((int (*)[3])m); */ ;
+  /*@ assert *((int (*)[3])l) != *((int (*)[3])m); */ ;
   {
     int __gen_e_acsl_eq_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_25 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_25,
+                                   "*((int (*)[3])l)",
+                                   (void *)(*((int (*)[3])l)));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_25,
+                                   "*((int (*)[3])n)",
+                                   (void *)(*((int (*)[3])n)));
     __gen_e_acsl_eq_4 = 1;
     if (1) {
       unsigned long __gen_e_acsl_iter_12;
@@ -363,20 +671,46 @@ void arrays(void)
         {
           int __gen_e_acsl_valid_read_9;
           int __gen_e_acsl_valid_read_10;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_26 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_26,
+                                       "&(*((int (*)[3])l))[__gen_e_acsl_iter_12]",
+                                       (void *)(& (*((int (*)[3])l))[__gen_e_acsl_iter_12]));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_26,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_read_9 = __e_acsl_valid_read((void *)(& (*((int (*)[3])l))[__gen_e_acsl_iter_12]),
                                                           sizeof(int),
                                                           (void *)(*((int (*)[3])l)),
                                                           (void *)0);
-          __e_acsl_assert(__gen_e_acsl_valid_read_9,1,"RTE","arrays",
-                          "mem_access: \\valid_read(&(*((int (*)[3])l))[__gen_e_acsl_iter_12])",
-                          "tests/arith/array.i",56);
+          __gen_e_acsl_assert_data_26.blocking = 1;
+          __gen_e_acsl_assert_data_26.kind = "RTE";
+          __gen_e_acsl_assert_data_26.pred_txt = "mem_access: \\valid_read(&(*((int (*)[3])l))[__gen_e_acsl_iter_12])";
+          __gen_e_acsl_assert_data_26.file = "tests/arith/array.i";
+          __gen_e_acsl_assert_data_26.fct = "arrays";
+          __gen_e_acsl_assert_data_26.line = 56;
+          __e_acsl_assert(__gen_e_acsl_valid_read_9,
+                          & __gen_e_acsl_assert_data_26);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_26);
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_27 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_27,
+                                       "&(*((int (*)[3])n))[__gen_e_acsl_iter_12]",
+                                       (void *)(& (*((int (*)[3])n))[__gen_e_acsl_iter_12]));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_27,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_read_10 = __e_acsl_valid_read((void *)(& (*((int (*)[3])n))[__gen_e_acsl_iter_12]),
                                                            sizeof(int),
                                                            (void *)(*((int (*)[3])n)),
                                                            (void *)0);
-          __e_acsl_assert(__gen_e_acsl_valid_read_10,1,"RTE","arrays",
-                          "mem_access: \\valid_read(&(*((int (*)[3])n))[__gen_e_acsl_iter_12])",
-                          "tests/arith/array.i",56);
+          __gen_e_acsl_assert_data_27.blocking = 1;
+          __gen_e_acsl_assert_data_27.kind = "RTE";
+          __gen_e_acsl_assert_data_27.pred_txt = "mem_access: \\valid_read(&(*((int (*)[3])n))[__gen_e_acsl_iter_12])";
+          __gen_e_acsl_assert_data_27.file = "tests/arith/array.i";
+          __gen_e_acsl_assert_data_27.fct = "arrays";
+          __gen_e_acsl_assert_data_27.line = 56;
+          __e_acsl_assert(__gen_e_acsl_valid_read_10,
+                          & __gen_e_acsl_assert_data_27);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_27);
           if ((*((int (*)[3])l))[__gen_e_acsl_iter_12] != (*((int (*)[3])n))[__gen_e_acsl_iter_12]) {
             __gen_e_acsl_eq_4 = 0;
             break;
@@ -386,20 +720,45 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_eq_4 = 0;
-    __e_acsl_assert(__gen_e_acsl_eq_4,1,"Assertion","arrays",
-                    "*((int (*)[3])l) == *((int (*)[3])n)",
-                    "tests/arith/array.i",56);
+    __gen_e_acsl_assert_data_25.blocking = 1;
+    __gen_e_acsl_assert_data_25.kind = "Assertion";
+    __gen_e_acsl_assert_data_25.pred_txt = "*((int (*)[3])l) == *((int (*)[3])n)";
+    __gen_e_acsl_assert_data_25.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_25.fct = "arrays";
+    __gen_e_acsl_assert_data_25.line = 56;
+    __e_acsl_assert(__gen_e_acsl_eq_4,& __gen_e_acsl_assert_data_25);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_25);
   }
-  /*@ assert *((int (*)[3])l) ≡ *((int (*)[3])n); */ ;
+  /*@ assert *((int (*)[3])l) == *((int (*)[3])n); */ ;
   {
     int __gen_e_acsl_ne_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_28 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_28,"i",
+                                   (void *)(i));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_28,"k",
+                                   (void *)(k));
     __gen_e_acsl_ne_9 = 0;
     if (1) {
       unsigned long __gen_e_acsl_iter_13;
-      __e_acsl_assert(1,1,"RTE","arrays","array_coercion: (int)3 <= (int)6",
-                      "tests/arith/array.i",59);
-      __e_acsl_assert(1,1,"RTE","arrays","array_coercion: (int)3 <= (int)6",
-                      "tests/arith/array.i",59);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_29 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_30 =
+        {.values = (void *)0};
+      __gen_e_acsl_assert_data_30.blocking = 1;
+      __gen_e_acsl_assert_data_30.kind = "RTE";
+      __gen_e_acsl_assert_data_30.pred_txt = "array_coercion: (int)3 <= (int)6";
+      __gen_e_acsl_assert_data_30.file = "tests/arith/array.i";
+      __gen_e_acsl_assert_data_30.fct = "arrays";
+      __gen_e_acsl_assert_data_30.line = 59;
+      __e_acsl_assert(1,& __gen_e_acsl_assert_data_30);
+      __gen_e_acsl_assert_data_29.blocking = 1;
+      __gen_e_acsl_assert_data_29.kind = "RTE";
+      __gen_e_acsl_assert_data_29.pred_txt = "array_coercion: (int)3 <= (int)6";
+      __gen_e_acsl_assert_data_29.file = "tests/arith/array.i";
+      __gen_e_acsl_assert_data_29.fct = "arrays";
+      __gen_e_acsl_assert_data_29.line = 59;
+      __e_acsl_assert(1,& __gen_e_acsl_assert_data_29);
       __gen_e_acsl_iter_13 = 0;
       while (__gen_e_acsl_iter_13 < 3) {
         if (i[__gen_e_acsl_iter_13] != k[__gen_e_acsl_iter_13]) {
@@ -410,19 +769,45 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_ne_9 = 1;
-    __e_acsl_assert(__gen_e_acsl_ne_9,1,"Assertion","arrays",
-                    "(int [3])i != (int [3])k","tests/arith/array.i",59);
+    __gen_e_acsl_assert_data_28.blocking = 1;
+    __gen_e_acsl_assert_data_28.kind = "Assertion";
+    __gen_e_acsl_assert_data_28.pred_txt = "(int [3])i != (int [3])k";
+    __gen_e_acsl_assert_data_28.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_28.fct = "arrays";
+    __gen_e_acsl_assert_data_28.line = 59;
+    __e_acsl_assert(__gen_e_acsl_ne_9,& __gen_e_acsl_assert_data_28);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_28);
   }
-  /*@ assert (int [3])i ≢ (int [3])k; */ ;
+  /*@ assert (int [3])i != (int [3])k; */ ;
   {
     int __gen_e_acsl_eq_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_31 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_31,"j",
+                                   (void *)(j));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_31,"k",
+                                   (void *)(k));
     __gen_e_acsl_eq_5 = 1;
     if (1) {
       unsigned long __gen_e_acsl_iter_14;
-      __e_acsl_assert(1,1,"RTE","arrays","array_coercion: (int)3 <= (int)6",
-                      "tests/arith/array.i",60);
-      __e_acsl_assert(1,1,"RTE","arrays","array_coercion: (int)3 <= (int)6",
-                      "tests/arith/array.i",60);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_32 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_33 =
+        {.values = (void *)0};
+      __gen_e_acsl_assert_data_33.blocking = 1;
+      __gen_e_acsl_assert_data_33.kind = "RTE";
+      __gen_e_acsl_assert_data_33.pred_txt = "array_coercion: (int)3 <= (int)6";
+      __gen_e_acsl_assert_data_33.file = "tests/arith/array.i";
+      __gen_e_acsl_assert_data_33.fct = "arrays";
+      __gen_e_acsl_assert_data_33.line = 60;
+      __e_acsl_assert(1,& __gen_e_acsl_assert_data_33);
+      __gen_e_acsl_assert_data_32.blocking = 1;
+      __gen_e_acsl_assert_data_32.kind = "RTE";
+      __gen_e_acsl_assert_data_32.pred_txt = "array_coercion: (int)3 <= (int)6";
+      __gen_e_acsl_assert_data_32.file = "tests/arith/array.i";
+      __gen_e_acsl_assert_data_32.fct = "arrays";
+      __gen_e_acsl_assert_data_32.line = 60;
+      __e_acsl_assert(1,& __gen_e_acsl_assert_data_32);
       __gen_e_acsl_iter_14 = 0;
       while (__gen_e_acsl_iter_14 < 3) {
         if (j[__gen_e_acsl_iter_14] != k[__gen_e_acsl_iter_14]) {
@@ -433,12 +818,26 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_eq_5 = 0;
-    __e_acsl_assert(__gen_e_acsl_eq_5,1,"Assertion","arrays",
-                    "(int [3])j == (int [3])k","tests/arith/array.i",60);
+    __gen_e_acsl_assert_data_31.blocking = 1;
+    __gen_e_acsl_assert_data_31.kind = "Assertion";
+    __gen_e_acsl_assert_data_31.pred_txt = "(int [3])j == (int [3])k";
+    __gen_e_acsl_assert_data_31.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_31.fct = "arrays";
+    __gen_e_acsl_assert_data_31.line = 60;
+    __e_acsl_assert(__gen_e_acsl_eq_5,& __gen_e_acsl_assert_data_31);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_31);
   }
-  /*@ assert (int [3])j ≡ (int [3])k; */ ;
+  /*@ assert (int [3])j == (int [3])k; */ ;
   {
     int __gen_e_acsl_ne_10;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_34 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_34,
+                                   "*((int (*)[2])l)",
+                                   (void *)(*((int (*)[2])l)));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_34,
+                                   "*((int (*)[2])m)",
+                                   (void *)(*((int (*)[2])m)));
     __gen_e_acsl_ne_10 = 0;
     if (1) {
       unsigned long __gen_e_acsl_iter_15;
@@ -447,20 +846,46 @@ void arrays(void)
         {
           int __gen_e_acsl_valid_read_11;
           int __gen_e_acsl_valid_read_12;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_35 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_35,
+                                       "&(*((int (*)[2])l))[__gen_e_acsl_iter_15]",
+                                       (void *)(& (*((int (*)[2])l))[__gen_e_acsl_iter_15]));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_35,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_read_11 = __e_acsl_valid_read((void *)(& (*((int (*)[2])l))[__gen_e_acsl_iter_15]),
                                                            sizeof(int),
                                                            (void *)(*((int (*)[2])l)),
                                                            (void *)0);
-          __e_acsl_assert(__gen_e_acsl_valid_read_11,1,"RTE","arrays",
-                          "mem_access: \\valid_read(&(*((int (*)[2])l))[__gen_e_acsl_iter_15])",
-                          "tests/arith/array.i",61);
+          __gen_e_acsl_assert_data_35.blocking = 1;
+          __gen_e_acsl_assert_data_35.kind = "RTE";
+          __gen_e_acsl_assert_data_35.pred_txt = "mem_access: \\valid_read(&(*((int (*)[2])l))[__gen_e_acsl_iter_15])";
+          __gen_e_acsl_assert_data_35.file = "tests/arith/array.i";
+          __gen_e_acsl_assert_data_35.fct = "arrays";
+          __gen_e_acsl_assert_data_35.line = 61;
+          __e_acsl_assert(__gen_e_acsl_valid_read_11,
+                          & __gen_e_acsl_assert_data_35);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_35);
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_36 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_36,
+                                       "&(*((int (*)[2])m))[__gen_e_acsl_iter_15]",
+                                       (void *)(& (*((int (*)[2])m))[__gen_e_acsl_iter_15]));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_36,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_read_12 = __e_acsl_valid_read((void *)(& (*((int (*)[2])m))[__gen_e_acsl_iter_15]),
                                                            sizeof(int),
                                                            (void *)(*((int (*)[2])m)),
                                                            (void *)0);
-          __e_acsl_assert(__gen_e_acsl_valid_read_12,1,"RTE","arrays",
-                          "mem_access: \\valid_read(&(*((int (*)[2])m))[__gen_e_acsl_iter_15])",
-                          "tests/arith/array.i",61);
+          __gen_e_acsl_assert_data_36.blocking = 1;
+          __gen_e_acsl_assert_data_36.kind = "RTE";
+          __gen_e_acsl_assert_data_36.pred_txt = "mem_access: \\valid_read(&(*((int (*)[2])m))[__gen_e_acsl_iter_15])";
+          __gen_e_acsl_assert_data_36.file = "tests/arith/array.i";
+          __gen_e_acsl_assert_data_36.fct = "arrays";
+          __gen_e_acsl_assert_data_36.line = 61;
+          __e_acsl_assert(__gen_e_acsl_valid_read_12,
+                          & __gen_e_acsl_assert_data_36);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_36);
           if ((*((int (*)[2])l))[__gen_e_acsl_iter_15] != (*((int (*)[2])m))[__gen_e_acsl_iter_15]) {
             __gen_e_acsl_ne_10 = 1;
             break;
@@ -470,13 +895,26 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_ne_10 = 1;
-    __e_acsl_assert(__gen_e_acsl_ne_10,1,"Assertion","arrays",
-                    "*((int (*)[2])l) != *((int (*)[2])m)",
-                    "tests/arith/array.i",61);
+    __gen_e_acsl_assert_data_34.blocking = 1;
+    __gen_e_acsl_assert_data_34.kind = "Assertion";
+    __gen_e_acsl_assert_data_34.pred_txt = "*((int (*)[2])l) != *((int (*)[2])m)";
+    __gen_e_acsl_assert_data_34.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_34.fct = "arrays";
+    __gen_e_acsl_assert_data_34.line = 61;
+    __e_acsl_assert(__gen_e_acsl_ne_10,& __gen_e_acsl_assert_data_34);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_34);
   }
-  /*@ assert *((int (*)[2])l) ≢ *((int (*)[2])m); */ ;
+  /*@ assert *((int (*)[2])l) != *((int (*)[2])m); */ ;
   {
     int __gen_e_acsl_eq_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_37 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_37,
+                                   "*((int (*)[2])l)",
+                                   (void *)(*((int (*)[2])l)));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_37,
+                                   "*((int (*)[2])n)",
+                                   (void *)(*((int (*)[2])n)));
     __gen_e_acsl_eq_6 = 1;
     if (1) {
       unsigned long __gen_e_acsl_iter_16;
@@ -485,20 +923,46 @@ void arrays(void)
         {
           int __gen_e_acsl_valid_read_13;
           int __gen_e_acsl_valid_read_14;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_38 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_38,
+                                       "&(*((int (*)[2])l))[__gen_e_acsl_iter_16]",
+                                       (void *)(& (*((int (*)[2])l))[__gen_e_acsl_iter_16]));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_38,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_read_13 = __e_acsl_valid_read((void *)(& (*((int (*)[2])l))[__gen_e_acsl_iter_16]),
                                                            sizeof(int),
                                                            (void *)(*((int (*)[2])l)),
                                                            (void *)0);
-          __e_acsl_assert(__gen_e_acsl_valid_read_13,1,"RTE","arrays",
-                          "mem_access: \\valid_read(&(*((int (*)[2])l))[__gen_e_acsl_iter_16])",
-                          "tests/arith/array.i",62);
+          __gen_e_acsl_assert_data_38.blocking = 1;
+          __gen_e_acsl_assert_data_38.kind = "RTE";
+          __gen_e_acsl_assert_data_38.pred_txt = "mem_access: \\valid_read(&(*((int (*)[2])l))[__gen_e_acsl_iter_16])";
+          __gen_e_acsl_assert_data_38.file = "tests/arith/array.i";
+          __gen_e_acsl_assert_data_38.fct = "arrays";
+          __gen_e_acsl_assert_data_38.line = 62;
+          __e_acsl_assert(__gen_e_acsl_valid_read_13,
+                          & __gen_e_acsl_assert_data_38);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_38);
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_39 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_39,
+                                       "&(*((int (*)[2])n))[__gen_e_acsl_iter_16]",
+                                       (void *)(& (*((int (*)[2])n))[__gen_e_acsl_iter_16]));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_39,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_read_14 = __e_acsl_valid_read((void *)(& (*((int (*)[2])n))[__gen_e_acsl_iter_16]),
                                                            sizeof(int),
                                                            (void *)(*((int (*)[2])n)),
                                                            (void *)0);
-          __e_acsl_assert(__gen_e_acsl_valid_read_14,1,"RTE","arrays",
-                          "mem_access: \\valid_read(&(*((int (*)[2])n))[__gen_e_acsl_iter_16])",
-                          "tests/arith/array.i",62);
+          __gen_e_acsl_assert_data_39.blocking = 1;
+          __gen_e_acsl_assert_data_39.kind = "RTE";
+          __gen_e_acsl_assert_data_39.pred_txt = "mem_access: \\valid_read(&(*((int (*)[2])n))[__gen_e_acsl_iter_16])";
+          __gen_e_acsl_assert_data_39.file = "tests/arith/array.i";
+          __gen_e_acsl_assert_data_39.fct = "arrays";
+          __gen_e_acsl_assert_data_39.line = 62;
+          __e_acsl_assert(__gen_e_acsl_valid_read_14,
+                          & __gen_e_acsl_assert_data_39);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_39);
           if ((*((int (*)[2])l))[__gen_e_acsl_iter_16] != (*((int (*)[2])n))[__gen_e_acsl_iter_16]) {
             __gen_e_acsl_eq_6 = 0;
             break;
@@ -508,11 +972,16 @@ void arrays(void)
       }
     }
     else __gen_e_acsl_eq_6 = 0;
-    __e_acsl_assert(__gen_e_acsl_eq_6,1,"Assertion","arrays",
-                    "*((int (*)[2])l) == *((int (*)[2])n)",
-                    "tests/arith/array.i",62);
+    __gen_e_acsl_assert_data_37.blocking = 1;
+    __gen_e_acsl_assert_data_37.kind = "Assertion";
+    __gen_e_acsl_assert_data_37.pred_txt = "*((int (*)[2])l) == *((int (*)[2])n)";
+    __gen_e_acsl_assert_data_37.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_37.fct = "arrays";
+    __gen_e_acsl_assert_data_37.line = 62;
+    __e_acsl_assert(__gen_e_acsl_eq_6,& __gen_e_acsl_assert_data_37);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_37);
   }
-  /*@ assert *((int (*)[2])l) ≡ *((int (*)[2])n); */ ;
+  /*@ assert *((int (*)[2])l) == *((int (*)[2])n); */ ;
   __e_acsl_delete_block((void *)(& n));
   __e_acsl_delete_block((void *)(& m));
   __e_acsl_delete_block((void *)(& l));
@@ -549,12 +1018,37 @@ int main(void)
       i_0 ++;
     }
   }
-  __e_acsl_assert(T1[0] == T2[0],1,"Assertion","main","T1[0] == T2[0]",
-                  "tests/arith/array.i",110);
-  /*@ assert T1[0] ≡ T2[0]; */ ;
-  __e_acsl_assert(T1[1] != T2[1],1,"Assertion","main","T1[1] != T2[1]",
-                  "tests/arith/array.i",111);
-  /*@ assert T1[1] ≢ T2[1]; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"T1[0]",0,T1[0]);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"T2[0]",0,T2[0]);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "T1[0] == T2[0]";
+    __gen_e_acsl_assert_data.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 110;
+    __e_acsl_assert(T1[0] == T2[0],& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert T1[0] == T2[0]; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"T1[1]",0,
+                                 T1[1]);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"T2[1]",0,
+                                 T2[1]);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "T1[1] != T2[1]";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/array.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 111;
+    __e_acsl_assert(T1[1] != T2[1],& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+  }
+  /*@ assert T1[1] != T2[1]; */ ;
   arrays();
   vlas(3);
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_at.c b/src/plugins/e-acsl/tests/arith/oracle/gen_at.c
index 3f1cdbd82498918ba38a0ea29a2adb92c0169da4..bb0e390a3b892fb670ee7046c4ad4eba4819fb2e 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_at.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_at.c
@@ -1,11 +1,11 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int A = 0;
-/*@ ensures \at(A,Post) ≡ 3; */
+/*@ ensures \at(A,Post) == 3; */
 void __gen_e_acsl_f(void);
 
 void f(void)
@@ -22,18 +22,64 @@ void f(void)
        __gen_e_acsl_at_2 = A;
        A = 2;
      }
-  __e_acsl_assert(__gen_e_acsl_at == 0,1,"Assertion","f","\\at(A,Pre) == 0",
-                  "tests/arith/at.i",12);
-  /*@ assert \at(A,Pre) ≡ 0; */ ;
-  __e_acsl_assert(__gen_e_acsl_at_2 == 1,1,"Assertion","f","\\at(A,F) == 1",
-                  "tests/arith/at.i",13);
-  /*@ assert \at(A,F) ≡ 1; */ ;
-  __e_acsl_assert(A == 2,1,"Assertion","f","\\at(A,Here) == 2",
-                  "tests/arith/at.i",14);
-  /*@ assert \at(A,Here) ≡ 2; */ ;
-  __e_acsl_assert(__gen_e_acsl_at_4 == 0,1,"Assertion","f",
-                  "\\at(\\at(A,Pre),F) == 0","tests/arith/at.i",15);
-  /*@ assert \at(\at(A,Pre),F) ≡ 0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\at(A,Pre)",0,
+                                 __gen_e_acsl_at);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\at(A,Pre) == 0";
+    __gen_e_acsl_assert_data.file = "tests/arith/at.i";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 12;
+    __e_acsl_assert(__gen_e_acsl_at == 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert \at(A,Pre) == 0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\at(A,F)",0,
+                                 __gen_e_acsl_at_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\at(A,F) == 1";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/at.i";
+    __gen_e_acsl_assert_data_2.fct = "f";
+    __gen_e_acsl_assert_data_2.line = 13;
+    __e_acsl_assert(__gen_e_acsl_at_2 == 1,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+  }
+  /*@ assert \at(A,F) == 1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"A",0,A);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\at(A,Here) == 2";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/at.i";
+    __gen_e_acsl_assert_data_3.fct = "f";
+    __gen_e_acsl_assert_data_3.line = 14;
+    __e_acsl_assert(A == 2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+  }
+  /*@ assert \at(A,Here) == 2; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\at(\\at(A,Pre),F)",0,__gen_e_acsl_at_4);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\at(\\at(A,Pre),F) == 0";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/at.i";
+    __gen_e_acsl_assert_data_4.fct = "f";
+    __gen_e_acsl_assert_data_4.line = 15;
+    __e_acsl_assert(__gen_e_acsl_at_4 == 0,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+  }
+  /*@ assert \at(\at(A,Pre),F) == 0; */ ;
   A = 3;
   return;
 }
@@ -55,19 +101,43 @@ void g(int *p, int *q)
   {
     {
       int __gen_e_acsl_valid_read_3;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)q,sizeof(int),
                                                       (void *)q,
                                                       (void *)(& q));
-      __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","g",
-                      "mem_access: \\valid_read(q)","tests/arith/at.i",31);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "RTE";
+      __gen_e_acsl_assert_data_5.pred_txt = "mem_access: \\valid_read(q)";
+      __gen_e_acsl_assert_data_5.file = "tests/arith/at.i";
+      __gen_e_acsl_assert_data_5.fct = "g";
+      __gen_e_acsl_assert_data_5.line = 31;
+      __e_acsl_assert(__gen_e_acsl_valid_read_3,& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
       __gen_e_acsl_at_3 = *q;
     }
     {
       int __gen_e_acsl_valid_read;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)q,sizeof(int),
                                                     (void *)q,(void *)(& q));
-      __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","g",
-                      "mem_access: \\valid_read(q)","tests/arith/at.i",29);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "RTE";
+      __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(q)";
+      __gen_e_acsl_assert_data_2.file = "tests/arith/at.i";
+      __gen_e_acsl_assert_data_2.fct = "g";
+      __gen_e_acsl_assert_data_2.line = 29;
+      __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
       __gen_e_acsl_at = *q;
     }
     __e_acsl_initialize((void *)p,sizeof(int));
@@ -81,40 +151,87 @@ void g(int *p, int *q)
   {
     {
       int __gen_e_acsl_valid_read_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "__gen_e_acsl_at",0,__gen_e_acsl_at);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(p + __gen_e_acsl_at),
                                                       sizeof(int),(void *)p,
                                                       (void *)(& p));
-      __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","g",
-                      "mem_access: \\valid_read(p + __gen_e_acsl_at)",
-                      "tests/arith/at.i",29);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "RTE";
+      __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(p + __gen_e_acsl_at)";
+      __gen_e_acsl_assert_data_3.file = "tests/arith/at.i";
+      __gen_e_acsl_assert_data_3.fct = "g";
+      __gen_e_acsl_assert_data_3.line = 29;
+      __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
       __gen_e_acsl_at_2 = *(p + __gen_e_acsl_at);
     }
     A = 4;
   }
-  __e_acsl_assert(__gen_e_acsl_at_2 == 2,1,"Assertion","g",
-                  "\\at(*(p + \\at(*q,__invalid_label)),L2) == 2",
-                  "tests/arith/at.i",29);
-  /*@ assert \at(*(p + \at(*q,__invalid_label)),L2) ≡ 2; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\at(*(p + \\at(*q,__invalid_label)),L2)",
+                                 0,__gen_e_acsl_at_2);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\at(*(p + \\at(*q,__invalid_label)),L2) == 2";
+    __gen_e_acsl_assert_data.file = "tests/arith/at.i";
+    __gen_e_acsl_assert_data.fct = "g";
+    __gen_e_acsl_assert_data.line = 29;
+    __e_acsl_assert(__gen_e_acsl_at_2 == 2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert \at(*(p + \at(*q,__invalid_label)),L2) == 2; */ ;
   L3:
-  /*@ assert \at(*(p + \at(*q,__invalid_label)),Here) ≡ 2; */
+  /*@ assert \at(*(p + \at(*q,__invalid_label)),Here) == 2; */
   {
     int __gen_e_acsl_valid_read_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "*(p + \\at(*q,__invalid_label))",0,
+                                 *(p + __gen_e_acsl_at_3));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"p",(void *)p);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "__gen_e_acsl_at_3",0,__gen_e_acsl_at_3);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(p + __gen_e_acsl_at_3),
                                                     sizeof(int),(void *)p,
                                                     (void *)(& p));
-    __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","g",
-                    "mem_access: \\valid_read(p + __gen_e_acsl_at_3)",
-                    "tests/arith/at.i",31);
-    __e_acsl_assert(*(p + __gen_e_acsl_at_3) == 2,1,"Assertion","g",
-                    "\\at(*(p + \\at(*q,__invalid_label)),Here) == 2",
-                    "tests/arith/at.i",31);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "RTE";
+    __gen_e_acsl_assert_data_6.pred_txt = "mem_access: \\valid_read(p + __gen_e_acsl_at_3)";
+    __gen_e_acsl_assert_data_6.file = "tests/arith/at.i";
+    __gen_e_acsl_assert_data_6.fct = "g";
+    __gen_e_acsl_assert_data_6.line = 31;
+    __e_acsl_assert(__gen_e_acsl_valid_read_4,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\at(*(p + \\at(*q,__invalid_label)),Here) == 2";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/at.i";
+    __gen_e_acsl_assert_data_4.fct = "g";
+    __gen_e_acsl_assert_data_4.line = 31;
+    __e_acsl_assert(*(p + __gen_e_acsl_at_3) == 2,
+                    & __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
   __e_acsl_delete_block((void *)(& q));
   __e_acsl_delete_block((void *)(& p));
   return;
 }
 
-/*@ ensures \result ≡ \old(x); */
+/*@ ensures \result == \old(x); */
 int __gen_e_acsl_h(int x);
 
 int h(int x)
@@ -138,28 +255,78 @@ int main(void)
   __e_acsl_full_init((void *)(& x));
   x = __gen_e_acsl_h(0);
   L:
-  /*@ assert x ≡ 0; */
+  /*@ assert x == 0; */
   {
     __gen_e_acsl_at_3 = (long)x;
     __gen_e_acsl_at_2 = x + 1L;
     __gen_e_acsl_at = x;
-    __e_acsl_assert(x == 0,1,"Assertion","main","x == 0","tests/arith/at.i",
-                    48);
+    {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "x == 0";
+      __gen_e_acsl_assert_data.file = "tests/arith/at.i";
+      __gen_e_acsl_assert_data.fct = "main";
+      __gen_e_acsl_assert_data.line = 48;
+      __e_acsl_assert(x == 0,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    }
   }
   __e_acsl_full_init((void *)(& x));
   x = 1;
   __e_acsl_full_init((void *)(& x));
   x = 2;
   __gen_e_acsl_f();
-  __e_acsl_assert(__gen_e_acsl_at == 0,1,"Assertion","main",
-                  "\\at(x,__invalid_label) == 0","tests/arith/at.i",54);
-  /*@ assert \at(x,__invalid_label) ≡ 0; */ ;
-  __e_acsl_assert(__gen_e_acsl_at_2 == 1L,1,"Assertion","main",
-                  "\\at(x + 1,__invalid_label) == 1","tests/arith/at.i",55);
-  /*@ assert \at(x + 1,__invalid_label) ≡ 1; */ ;
-  __e_acsl_assert(__gen_e_acsl_at_3 + 1L == 1L,1,"Assertion","main",
-                  "\\at(x,__invalid_label) + 1 == 1","tests/arith/at.i",56);
-  /*@ assert \at(x,__invalid_label) + 1 ≡ 1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\at(x,__invalid_label)",0,__gen_e_acsl_at);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\at(x,__invalid_label) == 0";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/at.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 54;
+    __e_acsl_assert(__gen_e_acsl_at == 0,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+  }
+  /*@ assert \at(x,__invalid_label) == 0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_3,
+                                  "\\at(x + 1,__invalid_label)",0,
+                                  __gen_e_acsl_at_2);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\at(x + 1,__invalid_label) == 1";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/at.i";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 55;
+    __e_acsl_assert(__gen_e_acsl_at_2 == 1L,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+  }
+  /*@ assert \at(x + 1,__invalid_label) == 1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_4,
+                                  "\\at(x,__invalid_label)",0,
+                                  __gen_e_acsl_at_3);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\at(x,__invalid_label) + 1 == 1";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/at.i";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 56;
+    __e_acsl_assert(__gen_e_acsl_at_3 + 1L == 1L,
+                    & __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+  }
+  /*@ assert \at(x,__invalid_label) + 1 == 1; */ ;
   g(t,& x);
   __retres = 0;
   __e_acsl_delete_block((void *)(t));
@@ -168,7 +335,7 @@ int main(void)
   return __retres;
 }
 
-/*@ ensures \result ≡ \old(x); */
+/*@ ensures \result == \old(x); */
 int __gen_e_acsl_h(int x)
 {
   int __gen_e_acsl_at;
@@ -177,22 +344,46 @@ int __gen_e_acsl_h(int x)
   __e_acsl_store_block((void *)(& x),(size_t)4);
   __gen_e_acsl_at = x;
   __retres = h(x);
-  __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","h",
-                  "\\result == \\old(x)","tests/arith/at.i",38);
-  __e_acsl_delete_block((void *)(& x));
-  __e_acsl_delete_block((void *)(& __retres));
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                 __retres);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\old(x)",0,
+                                 __gen_e_acsl_at);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\result == \\old(x)";
+    __gen_e_acsl_assert_data.file = "tests/arith/at.i";
+    __gen_e_acsl_assert_data.fct = "h";
+    __gen_e_acsl_assert_data.line = 38;
+    __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_delete_block((void *)(& x));
+    __e_acsl_delete_block((void *)(& __retres));
+    return __retres;
+  }
 }
 
-/*@ ensures \at(A,Post) ≡ 3; */
+/*@ ensures \at(A,Post) == 3; */
 void __gen_e_acsl_f(void)
 {
   int __gen_e_acsl_at;
   f();
-  __gen_e_acsl_at = A;
-  __e_acsl_assert(__gen_e_acsl_at == 3,1,"Postcondition","f",
-                  "\\at(A,Post) == 3","tests/arith/at.i",7);
-  return;
+  {
+    __gen_e_acsl_at = A;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\at(A,Post)",0,
+                                 __gen_e_acsl_at);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\at(A,Post) == 3";
+    __gen_e_acsl_assert_data.file = "tests/arith/at.i";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 7;
+    __e_acsl_assert(__gen_e_acsl_at == 3,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    return;
+  }
 }
 
 
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_at_on-purely-logic-variables.c b/src/plugins/e-acsl/tests/arith/oracle/gen_at_on-purely-logic-variables.c
index 2ea404238aff80f36a69bb2a84125a597a386d27..598d854dd2485ea4ca8fb88297a960a6241473ba 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_at_on-purely-logic-variables.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_at_on-purely-logic-variables.c
@@ -1,13 +1,13 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 /*@ ensures
-      ∀ ℤ n;
-        1 < n ≤ 3 ⇒ \old(*(t + n) ≡ 12) ∧ \old(*(t + (n - 1)) > 5);
-    ensures \let m = 4; \old(*(t + m) ≡ -4) ∧ \old(*(t + (m - 4))) ≡ 9;
+      \forall integer n;
+        1 < n <= 3 ==> \old(*(t + n) == 12) && \old(*(t + (n - 1)) > 5);
+    ensures \let m = 4; \old(*(t + m) == -4) && \old(*(t + (m - 4))) == 9;
  */
 void __gen_e_acsl_f(int *t);
 
@@ -41,20 +41,35 @@ void g(void)
   {
     int __gen_e_acsl_exists;
     int __gen_e_acsl_w;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gen_e_acsl_exists = 0;
     __gen_e_acsl_w = 3;
     while (1) {
       if (__gen_e_acsl_w < 6) ; else break;
       {
         int __gen_e_acsl_valid_read;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,
+                                     "__gen_e_acsl_at",
+                                     (void *)__gen_e_acsl_at);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "__gen_e_acsl_w",0,__gen_e_acsl_w);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(__gen_e_acsl_at + (int)(
                                                                __gen_e_acsl_w - 3L)),
                                                       sizeof(int),
                                                       (void *)__gen_e_acsl_at,
                                                       (void *)(& __gen_e_acsl_at));
-        __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","g",
-                        "mem_access: \\valid_read(__gen_e_acsl_at + (int)(__gen_e_acsl_w - 3))",
-                        "tests/arith/at_on-purely-logic-variables.c",16);
+        __gen_e_acsl_assert_data_2.blocking = 1;
+        __gen_e_acsl_assert_data_2.kind = "RTE";
+        __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at + (int)(__gen_e_acsl_w - 3))";
+        __gen_e_acsl_assert_data_2.file = "tests/arith/at_on-purely-logic-variables.c";
+        __gen_e_acsl_assert_data_2.fct = "g";
+        __gen_e_acsl_assert_data_2.line = 16;
+        __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
         if (! *(__gen_e_acsl_at + (__gen_e_acsl_w - 3))) ;
         else {
           __gen_e_acsl_exists = 1;
@@ -64,11 +79,19 @@ void g(void)
       __gen_e_acsl_w ++;
     }
     e_acsl_end_loop1: ;
-    __e_acsl_assert(__gen_e_acsl_exists,1,"Assertion","g",
-                    "\\exists integer w; 3 <= w < 6 && \\at(m + w == 12,Q)",
-                    "tests/arith/at_on-purely-logic-variables.c",16);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\exists integer w; 3 <= w < 6 && \\at(m + w == 12,Q)",
+                                 0,__gen_e_acsl_exists);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\exists integer w; 3 <= w < 6 && \\at(m + w == 12,Q)";
+    __gen_e_acsl_assert_data.file = "tests/arith/at_on-purely-logic-variables.c";
+    __gen_e_acsl_assert_data.fct = "g";
+    __gen_e_acsl_assert_data.line = 16;
+    __e_acsl_assert(__gen_e_acsl_exists,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert ∃ ℤ w; 3 ≤ w < 6 ∧ \at(m + w ≡ 12,Q); */ ;
+  /*@ assert \exists integer w; 3 <= w < 6 && \at(m + w == 12,Q); */ ;
   free((void *)__gen_e_acsl_at);
   return;
 }
@@ -205,36 +228,73 @@ int main(void)
   {
     int __gen_e_acsl_i;
     int __gen_e_acsl_valid_read;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gen_e_acsl_i = 3;
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\at(n + i == 10,L)",0,
+                                 *(__gen_e_acsl_at + 0));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,
+                                 "__gen_e_acsl_at",(void *)__gen_e_acsl_at);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(__gen_e_acsl_at + 0),
                                                   sizeof(int),
                                                   (void *)__gen_e_acsl_at,
                                                   (void *)(& __gen_e_acsl_at));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main",
-                    "mem_access: \\valid_read(__gen_e_acsl_at + 0)",
-                    "tests/arith/at_on-purely-logic-variables.c",28);
-    __e_acsl_assert(*(__gen_e_acsl_at + 0),1,"Assertion","main",
-                    "\\let i = 3; \\at(n + i == 10,L)",
-                    "tests/arith/at_on-purely-logic-variables.c",28);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at + 0)";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/at_on-purely-logic-variables.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 28;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\let i = 3; \\at(n + i == 10,L)";
+    __gen_e_acsl_assert_data.file = "tests/arith/at_on-purely-logic-variables.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 28;
+    __e_acsl_assert(*(__gen_e_acsl_at + 0),& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert \let i = 3; \at(n + i ≡ 10,L); */ ;
+  /*@ assert \let i = 3; \at(n + i == 10,L); */ ;
   {
     int __gen_e_acsl_exists;
     int __gen_e_acsl_j;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
     __gen_e_acsl_exists = 0;
     __gen_e_acsl_j = 2;
     while (1) {
       if (__gen_e_acsl_j < 5) ; else break;
       {
         int __gen_e_acsl_valid_read_2;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,
+                                     "__gen_e_acsl_at_2",
+                                     (void *)__gen_e_acsl_at_2);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                     "__gen_e_acsl_j",0,__gen_e_acsl_j);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(__gen_e_acsl_at_2 + (int)(
                                                                  __gen_e_acsl_j - 2L)),
                                                         sizeof(int),
                                                         (void *)__gen_e_acsl_at_2,
                                                         (void *)(& __gen_e_acsl_at_2));
-        __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","main",
-                        "mem_access: \\valid_read(__gen_e_acsl_at_2 + (int)(__gen_e_acsl_j - 2))",
-                        "tests/arith/at_on-purely-logic-variables.c",29);
+        __gen_e_acsl_assert_data_4.blocking = 1;
+        __gen_e_acsl_assert_data_4.kind = "RTE";
+        __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_2 + (int)(__gen_e_acsl_j - 2))";
+        __gen_e_acsl_assert_data_4.file = "tests/arith/at_on-purely-logic-variables.c";
+        __gen_e_acsl_assert_data_4.fct = "main";
+        __gen_e_acsl_assert_data_4.line = 29;
+        __e_acsl_assert(__gen_e_acsl_valid_read_2,
+                        & __gen_e_acsl_assert_data_4);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
         if (! *(__gen_e_acsl_at_2 + (__gen_e_acsl_j - 2))) ;
         else {
           __gen_e_acsl_exists = 1;
@@ -244,15 +304,25 @@ int main(void)
       __gen_e_acsl_j ++;
     }
     e_acsl_end_loop2: ;
-    __e_acsl_assert(__gen_e_acsl_exists,1,"Assertion","main",
-                    "\\exists integer j; 2 <= j < 5 && \\at(n + j == 11,L)",
-                    "tests/arith/at_on-purely-logic-variables.c",29);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\exists integer j; 2 <= j < 5 && \\at(n + j == 11,L)",
+                                 0,__gen_e_acsl_exists);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\exists integer j; 2 <= j < 5 && \\at(n + j == 11,L)";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/at_on-purely-logic-variables.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 29;
+    __e_acsl_assert(__gen_e_acsl_exists,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert ∃ ℤ j; 2 ≤ j < 5 ∧ \at(n + j ≡ 11,L); */ ;
+  /*@ assert \exists integer j; 2 <= j < 5 && \at(n + j == 11,L); */ ;
   {
     int __gen_e_acsl_k;
     int __gen_e_acsl_exists_2;
     int __gen_e_acsl_u;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
     __gen_e_acsl_k = -7;
     __gen_e_acsl_exists_2 = 0;
     __gen_e_acsl_u = 9;
@@ -267,6 +337,17 @@ int main(void)
           if (__gen_e_acsl_v <= 6) ; else break;
           {
             int __gen_e_acsl_valid_read_3;
+            __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+              {.values = (void *)0};
+            __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,
+                                         "__gen_e_acsl_at_3",
+                                         (void *)__gen_e_acsl_at_3);
+            __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                         "__gen_e_acsl_u",0,__gen_e_acsl_u);
+            __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                         "__gen_e_acsl_v",0,__gen_e_acsl_v);
+            __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                           "sizeof(int)",0,sizeof(int));
             __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(
                                                             __gen_e_acsl_at_3 + (int)(
                                                             (long)((int)(
@@ -276,9 +357,15 @@ int main(void)
                                                             sizeof(int),
                                                             (void *)__gen_e_acsl_at_3,
                                                             (void *)(& __gen_e_acsl_at_3));
-            __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","main",
-                            "mem_access:\n  \\valid_read(__gen_e_acsl_at_3 +\n              (int)((int)((int)(__gen_e_acsl_u - 9) * 11) +\n                    (int)(__gen_e_acsl_v - -4)))",
-                            "tests/arith/at_on-purely-logic-variables.c",34);
+            __gen_e_acsl_assert_data_6.blocking = 1;
+            __gen_e_acsl_assert_data_6.kind = "RTE";
+            __gen_e_acsl_assert_data_6.pred_txt = "mem_access:\n  \\valid_read(__gen_e_acsl_at_3 +\n              (int)((int)((int)(__gen_e_acsl_u - 9) * 11) +\n                    (int)(__gen_e_acsl_v - -4)))";
+            __gen_e_acsl_assert_data_6.file = "tests/arith/at_on-purely-logic-variables.c";
+            __gen_e_acsl_assert_data_6.fct = "main";
+            __gen_e_acsl_assert_data_6.line = 34;
+            __e_acsl_assert(__gen_e_acsl_valid_read_3,
+                            & __gen_e_acsl_assert_data_6);
+            __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
             if (*(__gen_e_acsl_at_3 + ((__gen_e_acsl_u - 9) * 11 + (__gen_e_acsl_v - -4)))) 
               ;
             else {
@@ -298,33 +385,63 @@ int main(void)
       __gen_e_acsl_u ++;
     }
     e_acsl_end_loop4: ;
-    __e_acsl_assert(__gen_e_acsl_exists_2,1,"Assertion","main",
-                    "\\let k = -7;\n\\exists integer u;\n  9 <= u < 21 &&\n  (\\forall integer v; -5 < v <= 6 ==> \\at((u > 0? n + k: u + v) > 0,K))",
-                    "tests/arith/at_on-purely-logic-variables.c",31);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\exists integer u;\n  9 <= u < 21 &&\n  (\\forall integer v; -5 < v <= 6 ==> \\at((u > 0? n + k: u + v) > 0,K))",
+                                 0,__gen_e_acsl_exists_2);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "\\let k = -7;\n\\exists integer u;\n  9 <= u < 21 &&\n  (\\forall integer v; -5 < v <= 6 ==> \\at((u > 0? n + k: u + v) > 0,K))";
+    __gen_e_acsl_assert_data_5.file = "tests/arith/at_on-purely-logic-variables.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 31;
+    __e_acsl_assert(__gen_e_acsl_exists_2,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
   /*@
   assert \let k = -7;
-  ∃ ℤ u;
-    9 ≤ u < 21 ∧
-    (∀ ℤ v; -5 < v ≤ 6 ⇒ \at((u > 0? n + k: u + v) > 0,K));
+  \exists integer u;
+    9 <= u < 21 &&
+    (\forall integer v; -5 < v <= 6 ==> \at((u > 0? n + k: u + v) > 0,K));
    */
   ;
   {
     int __gen_e_acsl_i_3;
     int __gen_e_acsl_valid_read_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
     __gen_e_acsl_i_3 = 3;
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_7,
+                                  "\\at(n + i,L)",0,*(__gen_e_acsl_at_4 + 0));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,
+                                 "__gen_e_acsl_at_4",
+                                 (void *)__gen_e_acsl_at_4);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(long)",0,sizeof(long));
     __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(__gen_e_acsl_at_4 + 0),
                                                     sizeof(long),
                                                     (void *)__gen_e_acsl_at_4,
                                                     (void *)(& __gen_e_acsl_at_4));
-    __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","main",
-                    "mem_access: \\valid_read(__gen_e_acsl_at_4 + 0)",
-                    "tests/arith/at_on-purely-logic-variables.c",38);
-    __e_acsl_assert(*(__gen_e_acsl_at_4 + 0) == 10L,1,"Assertion","main",
-                    "\\let i = 3; \\at(n + i,L) == 10",
-                    "tests/arith/at_on-purely-logic-variables.c",38);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "RTE";
+    __gen_e_acsl_assert_data_8.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_4 + 0)";
+    __gen_e_acsl_assert_data_8.file = "tests/arith/at_on-purely-logic-variables.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 38;
+    __e_acsl_assert(__gen_e_acsl_valid_read_4,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "\\let i = 3; \\at(n + i,L) == 10";
+    __gen_e_acsl_assert_data_7.file = "tests/arith/at_on-purely-logic-variables.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 38;
+    __e_acsl_assert(*(__gen_e_acsl_at_4 + 0) == 10L,
+                    & __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
-  /*@ assert \let i = 3; \at(n + i,L) ≡ 10; */ ;
+  /*@ assert \let i = 3; \at(n + i,L) == 10; */ ;
   unsigned int m = (unsigned int)3;
   G:
   {
@@ -343,20 +460,37 @@ int main(void)
   {
     int __gen_e_acsl_exists_3;
     int __gen_e_acsl_k_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
     __gen_e_acsl_exists_3 = 0;
     __gen_e_acsl_k_3 = -9 + 1;
     while (1) {
       if (__gen_e_acsl_k_3 < 0) ; else break;
       {
         int __gen_e_acsl_valid_read_5;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,
+                                     "__gen_e_acsl_at_5",
+                                     (void *)__gen_e_acsl_at_5);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                     "__gen_e_acsl_k_3",0,__gen_e_acsl_k_3);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                       "sizeof(long)",0,sizeof(long));
         __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)(__gen_e_acsl_at_5 + (int)(
                                                                  __gen_e_acsl_k_3 - -8L)),
                                                         sizeof(long),
                                                         (void *)__gen_e_acsl_at_5,
                                                         (void *)(& __gen_e_acsl_at_5));
-        __e_acsl_assert(__gen_e_acsl_valid_read_5,1,"RTE","main",
-                        "mem_access: \\valid_read(__gen_e_acsl_at_5 + (int)(__gen_e_acsl_k_3 - -8))",
-                        "tests/arith/at_on-purely-logic-variables.c",42);
+        __gen_e_acsl_assert_data_10.blocking = 1;
+        __gen_e_acsl_assert_data_10.kind = "RTE";
+        __gen_e_acsl_assert_data_10.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_5 + (int)(__gen_e_acsl_k_3 - -8))";
+        __gen_e_acsl_assert_data_10.file = "tests/arith/at_on-purely-logic-variables.c";
+        __gen_e_acsl_assert_data_10.fct = "main";
+        __gen_e_acsl_assert_data_10.line = 42;
+        __e_acsl_assert(__gen_e_acsl_valid_read_5,
+                        & __gen_e_acsl_assert_data_10);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
         if (! (*(__gen_e_acsl_at_5 + (__gen_e_acsl_k_3 - -8)) == 0L)) 
           ;
         else {
@@ -367,14 +501,24 @@ int main(void)
       __gen_e_acsl_k_3 ++;
     }
     e_acsl_end_loop5: ;
-    __e_acsl_assert(__gen_e_acsl_exists_3,1,"Assertion","main",
-                    "\\exists integer k; -9 < k < 0 && \\at(m + k,G) == 0",
-                    "tests/arith/at_on-purely-logic-variables.c",42);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                 "\\exists integer k; -9 < k < 0 && \\at(m + k,G) == 0",
+                                 0,__gen_e_acsl_exists_3);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "\\exists integer k; -9 < k < 0 && \\at(m + k,G) == 0";
+    __gen_e_acsl_assert_data_9.file = "tests/arith/at_on-purely-logic-variables.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 42;
+    __e_acsl_assert(__gen_e_acsl_exists_3,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
-  /*@ assert ∃ ℤ k; -9 < k < 0 ∧ \at(m + k,G) ≡ 0; */ ;
+  /*@ assert \exists integer k; -9 < k < 0 && \at(m + k,G) == 0; */ ;
   {
     int __gen_e_acsl_exists_4;
     int __gen_e_acsl_u_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
     __gen_e_acsl_exists_4 = 0;
     __gen_e_acsl_u_3 = 9;
     while (1) {
@@ -393,6 +537,19 @@ int main(void)
           }
           {
             int __gen_e_acsl_valid_read_6;
+            __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+              {.values = (void *)0};
+            __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,
+                                         "__gen_e_acsl_at_6",
+                                         (void *)__gen_e_acsl_at_6);
+            __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                         "__gen_e_acsl_u_3",0,
+                                         __gen_e_acsl_u_3);
+            __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                         "__gen_e_acsl_v_3",0,
+                                         __gen_e_acsl_v_3);
+            __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                           "sizeof(int)",0,sizeof(int));
             __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)(
                                                             __gen_e_acsl_at_6 + (int)(
                                                             (long)((int)(
@@ -402,9 +559,15 @@ int main(void)
                                                             sizeof(int),
                                                             (void *)__gen_e_acsl_at_6,
                                                             (void *)(& __gen_e_acsl_at_6));
-            __e_acsl_assert(__gen_e_acsl_valid_read_6,1,"RTE","main",
-                            "mem_access:\n  \\valid_read(__gen_e_acsl_at_6 +\n              (int)((int)((int)(__gen_e_acsl_u_3 - 9) * 32) +\n                    (int)(__gen_e_acsl_v_3 - -4)))",
-                            "tests/arith/at_on-purely-logic-variables.c",46);
+            __gen_e_acsl_assert_data_12.blocking = 1;
+            __gen_e_acsl_assert_data_12.kind = "RTE";
+            __gen_e_acsl_assert_data_12.pred_txt = "mem_access:\n  \\valid_read(__gen_e_acsl_at_6 +\n              (int)((int)((int)(__gen_e_acsl_u_3 - 9) * 32) +\n                    (int)(__gen_e_acsl_v_3 - -4)))";
+            __gen_e_acsl_assert_data_12.file = "tests/arith/at_on-purely-logic-variables.c";
+            __gen_e_acsl_assert_data_12.fct = "main";
+            __gen_e_acsl_assert_data_12.line = 46;
+            __e_acsl_assert(__gen_e_acsl_valid_read_6,
+                            & __gen_e_acsl_assert_data_12);
+            __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
             /*@ assert
                 Eva: initialization:
                   \initialized(__gen_e_acsl_at_6 +
@@ -430,15 +593,24 @@ int main(void)
       __gen_e_acsl_u_3 ++;
     }
     e_acsl_end_loop7: ;
-    __e_acsl_assert(__gen_e_acsl_exists_4,1,"Assertion","main",
-                    "\\exists integer u;\n  9 <= u < 21 &&\n  (\\forall integer v; -5 < v <= (u < 15? u + 6: 3) ==> \\at((n + u) + v > 0,K))",
-                    "tests/arith/at_on-purely-logic-variables.c",44);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                 "\\exists integer u;\n  9 <= u < 21 &&\n  (\\forall integer v; -5 < v <= (u < 15? u + 6: 3) ==> \\at((n + u) + v > 0,K))",
+                                 0,__gen_e_acsl_exists_4);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "\\exists integer u;\n  9 <= u < 21 &&\n  (\\forall integer v; -5 < v <= (u < 15? u + 6: 3) ==> \\at((n + u) + v > 0,K))";
+    __gen_e_acsl_assert_data_11.file = "tests/arith/at_on-purely-logic-variables.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 44;
+    __e_acsl_assert(__gen_e_acsl_exists_4,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
   }
   /*@
   assert
-  ∃ ℤ u;
-    9 ≤ u < 21 ∧
-    (∀ ℤ v; -5 < v ≤ (u < 15? u + 6: 3) ⇒ \at((n + u) + v > 0,K));
+  \exists integer u;
+    9 <= u < 21 &&
+    (\forall integer v;
+       -5 < v <= (u < 15? u + 6: 3) ==> \at((n + u) + v > 0,K));
    */
   ;
   int t[5] = {9, 12, 12, 12, -4};
@@ -449,6 +621,8 @@ int main(void)
   {
     int __gen_e_acsl_exists_5;
     int __gen_e_acsl_u_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
     __gen_e_acsl_exists_5 = 0;
     __gen_e_acsl_u_5 = 10;
     while (1) {
@@ -473,6 +647,22 @@ int main(void)
               if (__gen_e_acsl_w <= 200) ; else break;
               {
                 int __gen_e_acsl_valid_read_7;
+                __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+                  {.values = (void *)0};
+                __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,
+                                             "__gen_e_acsl_at_7",
+                                             (void *)__gen_e_acsl_at_7);
+                __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,
+                                             "__gen_e_acsl_u_5",0,
+                                             __gen_e_acsl_u_5);
+                __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,
+                                             "__gen_e_acsl_v_5",0,
+                                             __gen_e_acsl_v_5);
+                __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,
+                                             "__gen_e_acsl_w",0,
+                                             __gen_e_acsl_w);
+                __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14,
+                                               "sizeof(int)",0,sizeof(int));
                 __gen_e_acsl_valid_read_7 = __e_acsl_valid_read((void *)(
                                                                 __gen_e_acsl_at_7 + (int)(
                                                                 (long)((int)(
@@ -485,10 +675,15 @@ int main(void)
                                                                 sizeof(int),
                                                                 (void *)__gen_e_acsl_at_7,
                                                                 (void *)(& __gen_e_acsl_at_7));
-                __e_acsl_assert(__gen_e_acsl_valid_read_7,1,"RTE","main",
-                                "mem_access:\n  \\valid_read(__gen_e_acsl_at_7 +\n              (int)((int)((int)(__gen_e_acsl_u_5 - 10) * 300) +\n                    (int)((int)((int)(__gen_e_acsl_v_5 - -9) * 100) +\n                          (int)(__gen_e_acsl_w - 101))))",
-                                "tests/arith/at_on-purely-logic-variables.c",
-                                59);
+                __gen_e_acsl_assert_data_14.blocking = 1;
+                __gen_e_acsl_assert_data_14.kind = "RTE";
+                __gen_e_acsl_assert_data_14.pred_txt = "mem_access:\n  \\valid_read(__gen_e_acsl_at_7 +\n              (int)((int)((int)(__gen_e_acsl_u_5 - 10) * 300) +\n                    (int)((int)((int)(__gen_e_acsl_v_5 - -9) * 100) +\n                          (int)(__gen_e_acsl_w - 101))))";
+                __gen_e_acsl_assert_data_14.file = "tests/arith/at_on-purely-logic-variables.c";
+                __gen_e_acsl_assert_data_14.fct = "main";
+                __gen_e_acsl_assert_data_14.line = 59;
+                __e_acsl_assert(__gen_e_acsl_valid_read_7,
+                                & __gen_e_acsl_assert_data_14);
+                __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
                 if (! *(__gen_e_acsl_at_7 + ((__gen_e_acsl_u_5 - 10) * 300 + (
                                              (__gen_e_acsl_v_5 - -9) * 100 + (
                                              __gen_e_acsl_w - 101))))) 
@@ -519,25 +714,33 @@ int main(void)
       __gen_e_acsl_u_5 ++;
     }
     e_acsl_end_loop10: ;
-    __e_acsl_assert(__gen_e_acsl_exists_5,1,"Assertion","main",
-                    "\\exists integer u;\n  10 <= u < 20 &&\n  (\\exists integer v;\n     -10 < v <= -5 + (\\let u = -2; u) &&\n     (\\exists integer w;\n        100 < w <= 200 && \\at((((n - u) + (\\let u = 42; u)) + v) + w > 0,K)))",
-                    "tests/arith/at_on-purely-logic-variables.c",56);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                 "\\exists integer u;\n  10 <= u < 20 &&\n  (\\exists integer v;\n     -10 < v <= -5 + (\\let u = -2; u) &&\n     (\\exists integer w;\n        100 < w <= 200 && \\at((((n - u) + (\\let u = 42; u)) + v) + w > 0,K)))",
+                                 0,__gen_e_acsl_exists_5);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "\\exists integer u;\n  10 <= u < 20 &&\n  (\\exists integer v;\n     -10 < v <= -5 + (\\let u = -2; u) &&\n     (\\exists integer w;\n        100 < w <= 200 && \\at((((n - u) + (\\let u = 42; u)) + v) + w > 0,K)))";
+    __gen_e_acsl_assert_data_13.file = "tests/arith/at_on-purely-logic-variables.c";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 56;
+    __e_acsl_assert(__gen_e_acsl_exists_5,& __gen_e_acsl_assert_data_13);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
   }
   /*@
   assert
-  ∃ ℤ u;
-    10 ≤ u < 20 ∧
-    (∃ ℤ v;
-       -10 < v ≤ -5 + (\let u = -2; u) ∧
-       (∃ ℤ w;
-          100 < w ≤ 200 ∧
-          \at((((n - u) + (\let u = 42; u)) + v) + w > 0,K)));
+  \exists integer u;
+    10 <= u < 20 &&
+    (\exists integer v;
+       -10 < v <= -5 + (\let u = -2; u) &&
+       (\exists integer w;
+          100 < w <= 200 && \at((((n - u) + (\let u = 42; u)) + v) + w > 0,K)));
    */
   ;
-  /*@ assert ∃ ℤ j; 2 ≤ j < 10000000000000000 ∧ \at(n + j ≡ 11,L);
+  /*@
+  assert \exists integer j; 2 <= j < 10000000000000000 && \at(n + j == 11,L);
    */
   ;
-  /*@ assert \let i = n; \at(n + i ≡ 10,L); */ ;
+  /*@ assert \let i = n; \at(n + i == 10,L); */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(t));
   __e_acsl_delete_block((void *)(& n));
@@ -553,9 +756,9 @@ int main(void)
 }
 
 /*@ ensures
-      ∀ ℤ n;
-        1 < n ≤ 3 ⇒ \old(*(t + n) ≡ 12) ∧ \old(*(t + (n - 1)) > 5);
-    ensures \let m = 4; \old(*(t + m) ≡ -4) ∧ \old(*(t + (m - 4))) ≡ 9;
+      \forall integer n;
+        1 < n <= 3 ==> \old(*(t + n) == 12) && \old(*(t + (n - 1)) > 5);
+    ensures \let m = 4; \old(*(t + m) == -4) && \old(*(t + (m - 4))) == 9;
  */
 void __gen_e_acsl_f(int *t)
 {
@@ -573,13 +776,26 @@ void __gen_e_acsl_f(int *t)
     __gen_e_acsl_m_3 = 4;
     {
       int __gen_e_acsl_valid_read_7;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"t",
+                                   (void *)t);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "__gen_e_acsl_m_3",0,__gen_e_acsl_m_3);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read_7 = __e_acsl_valid_read((void *)(t + (int)(
                                                                __gen_e_acsl_m_3 - 4L)),
                                                       sizeof(int),(void *)t,
                                                       (void *)(& t));
-      __e_acsl_assert(__gen_e_acsl_valid_read_7,1,"RTE","f",
-                      "mem_access: \\valid_read(t + (int)(__gen_e_acsl_m_3 - 4))",
-                      "tests/arith/at_on-purely-logic-variables.c",8);
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "RTE";
+      __gen_e_acsl_assert_data_9.pred_txt = "mem_access: \\valid_read(t + (int)(__gen_e_acsl_m_3 - 4))";
+      __gen_e_acsl_assert_data_9.file = "tests/arith/at_on-purely-logic-variables.c";
+      __gen_e_acsl_assert_data_9.fct = "f";
+      __gen_e_acsl_assert_data_9.line = 8;
+      __e_acsl_assert(__gen_e_acsl_valid_read_7,& __gen_e_acsl_assert_data_9);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
       *(__gen_e_acsl_at_4 + 0) = *(t + (__gen_e_acsl_m_3 - 4));
     }
   }
@@ -588,12 +804,25 @@ void __gen_e_acsl_f(int *t)
     __gen_e_acsl_m_2 = 4;
     {
       int __gen_e_acsl_valid_read_5;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"t",
+                                   (void *)t);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                   "__gen_e_acsl_m_2",0,__gen_e_acsl_m_2);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)(t + __gen_e_acsl_m_2),
                                                       sizeof(int),(void *)t,
                                                       (void *)(& t));
-      __e_acsl_assert(__gen_e_acsl_valid_read_5,1,"RTE","f",
-                      "mem_access: \\valid_read(t + __gen_e_acsl_m_2)",
-                      "tests/arith/at_on-purely-logic-variables.c",8);
+      __gen_e_acsl_assert_data_7.blocking = 1;
+      __gen_e_acsl_assert_data_7.kind = "RTE";
+      __gen_e_acsl_assert_data_7.pred_txt = "mem_access: \\valid_read(t + __gen_e_acsl_m_2)";
+      __gen_e_acsl_assert_data_7.file = "tests/arith/at_on-purely-logic-variables.c";
+      __gen_e_acsl_assert_data_7.fct = "f";
+      __gen_e_acsl_assert_data_7.line = 8;
+      __e_acsl_assert(__gen_e_acsl_valid_read_5,& __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
       *(__gen_e_acsl_at_3 + 0) = *(t + __gen_e_acsl_m_2) == -4;
     }
   }
@@ -604,14 +833,28 @@ void __gen_e_acsl_f(int *t)
       if (__gen_e_acsl_n_3 <= 3) ; else break;
       {
         int __gen_e_acsl_valid_read_3;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"t",
+                                     (void *)t);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                     "__gen_e_acsl_n_3",0,__gen_e_acsl_n_3);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(t + (int)(
                                                                  __gen_e_acsl_n_3 - 1L)),
                                                         sizeof(int),
                                                         (void *)t,
                                                         (void *)(& t));
-        __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","f",
-                        "mem_access: \\valid_read(t + (int)(__gen_e_acsl_n_3 - 1))",
-                        "tests/arith/at_on-purely-logic-variables.c",7);
+        __gen_e_acsl_assert_data_4.blocking = 1;
+        __gen_e_acsl_assert_data_4.kind = "RTE";
+        __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read(t + (int)(__gen_e_acsl_n_3 - 1))";
+        __gen_e_acsl_assert_data_4.file = "tests/arith/at_on-purely-logic-variables.c";
+        __gen_e_acsl_assert_data_4.fct = "f";
+        __gen_e_acsl_assert_data_4.line = 7;
+        __e_acsl_assert(__gen_e_acsl_valid_read_3,
+                        & __gen_e_acsl_assert_data_4);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
         *(__gen_e_acsl_at_2 + (__gen_e_acsl_n_3 - 2)) = *(t + (__gen_e_acsl_n_3 - 1)) > 5;
       }
       __gen_e_acsl_n_3 ++;
@@ -624,12 +867,25 @@ void __gen_e_acsl_f(int *t)
       if (__gen_e_acsl_n_2 <= 3) ; else break;
       {
         int __gen_e_acsl_valid_read;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"t",
+                                     (void *)t);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "__gen_e_acsl_n_2",0,__gen_e_acsl_n_2);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(t + __gen_e_acsl_n_2),
                                                       sizeof(int),(void *)t,
                                                       (void *)(& t));
-        __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","f",
-                        "mem_access: \\valid_read(t + __gen_e_acsl_n_2)",
-                        "tests/arith/at_on-purely-logic-variables.c",7);
+        __gen_e_acsl_assert_data_2.blocking = 1;
+        __gen_e_acsl_assert_data_2.kind = "RTE";
+        __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(t + __gen_e_acsl_n_2)";
+        __gen_e_acsl_assert_data_2.file = "tests/arith/at_on-purely-logic-variables.c";
+        __gen_e_acsl_assert_data_2.fct = "f";
+        __gen_e_acsl_assert_data_2.line = 7;
+        __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
         *(__gen_e_acsl_at + (__gen_e_acsl_n_2 - 2)) = *(t + __gen_e_acsl_n_2) == 12;
       }
       __gen_e_acsl_n_2 ++;
@@ -642,6 +898,7 @@ void __gen_e_acsl_f(int *t)
     int __gen_e_acsl_m;
     int __gen_e_acsl_valid_read_6;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gen_e_acsl_forall = 1;
     __gen_e_acsl_n = 1 + 1;
     while (1) {
@@ -649,24 +906,54 @@ void __gen_e_acsl_f(int *t)
       {
         int __gen_e_acsl_valid_read_2;
         int __gen_e_acsl_and;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                     "__gen_e_acsl_at",
+                                     (void *)__gen_e_acsl_at);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                     "__gen_e_acsl_n",0,__gen_e_acsl_n);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(__gen_e_acsl_at + (int)(
                                                                  __gen_e_acsl_n - 2L)),
                                                         sizeof(int),
                                                         (void *)__gen_e_acsl_at,
                                                         (void *)(& __gen_e_acsl_at));
-        __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","f",
-                        "mem_access: \\valid_read(__gen_e_acsl_at + (int)(__gen_e_acsl_n - 2))",
-                        "tests/arith/at_on-purely-logic-variables.c",7);
+        __gen_e_acsl_assert_data_3.blocking = 1;
+        __gen_e_acsl_assert_data_3.kind = "RTE";
+        __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at + (int)(__gen_e_acsl_n - 2))";
+        __gen_e_acsl_assert_data_3.file = "tests/arith/at_on-purely-logic-variables.c";
+        __gen_e_acsl_assert_data_3.fct = "f";
+        __gen_e_acsl_assert_data_3.line = 7;
+        __e_acsl_assert(__gen_e_acsl_valid_read_2,
+                        & __gen_e_acsl_assert_data_3);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
         if (*(__gen_e_acsl_at + (__gen_e_acsl_n - 2))) {
           int __gen_e_acsl_valid_read_4;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,
+                                       "__gen_e_acsl_at_2",
+                                       (void *)__gen_e_acsl_at_2);
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                       "__gen_e_acsl_n",0,__gen_e_acsl_n);
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(__gen_e_acsl_at_2 + (int)(
                                                                    __gen_e_acsl_n - 2L)),
                                                           sizeof(int),
                                                           (void *)__gen_e_acsl_at_2,
                                                           (void *)(& __gen_e_acsl_at_2));
-          __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","f",
-                          "mem_access: \\valid_read(__gen_e_acsl_at_2 + (int)(__gen_e_acsl_n - 2))",
-                          "tests/arith/at_on-purely-logic-variables.c",7);
+          __gen_e_acsl_assert_data_5.blocking = 1;
+          __gen_e_acsl_assert_data_5.kind = "RTE";
+          __gen_e_acsl_assert_data_5.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_2 + (int)(__gen_e_acsl_n - 2))";
+          __gen_e_acsl_assert_data_5.file = "tests/arith/at_on-purely-logic-variables.c";
+          __gen_e_acsl_assert_data_5.fct = "f";
+          __gen_e_acsl_assert_data_5.line = 7;
+          __e_acsl_assert(__gen_e_acsl_valid_read_4,
+                          & __gen_e_acsl_assert_data_5);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
           __gen_e_acsl_and = *(__gen_e_acsl_at_2 + (__gen_e_acsl_n - 2));
         }
         else __gen_e_acsl_and = 0;
@@ -679,32 +966,78 @@ void __gen_e_acsl_f(int *t)
       __gen_e_acsl_n ++;
     }
     e_acsl_end_loop11: ;
-    __e_acsl_assert(__gen_e_acsl_forall,1,"Postcondition","f",
-                    "\\forall integer n;\n  1 < n <= 3 ==> \\old(*(t + n) == 12) && \\old(*(t + (n - 1)) > 5)",
-                    "tests/arith/at_on-purely-logic-variables.c",6);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\forall integer n;\n  1 < n <= 3 ==> \\old(*(t + n) == 12) && \\old(*(t + (n - 1)) > 5)",
+                                 0,__gen_e_acsl_forall);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\forall integer n;\n  1 < n <= 3 ==> \\old(*(t + n) == 12) && \\old(*(t + (n - 1)) > 5)";
+    __gen_e_acsl_assert_data.file = "tests/arith/at_on-purely-logic-variables.c";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 6;
+    __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
     __gen_e_acsl_m = 4;
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "\\old(*(t + m) == -4)",0,
+                                 *(__gen_e_acsl_at_3 + 0));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,
+                                 "__gen_e_acsl_at_3",
+                                 (void *)__gen_e_acsl_at_3);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)(__gen_e_acsl_at_3 + 0),
                                                     sizeof(int),
                                                     (void *)__gen_e_acsl_at_3,
                                                     (void *)(& __gen_e_acsl_at_3));
-    __e_acsl_assert(__gen_e_acsl_valid_read_6,1,"RTE","f",
-                    "mem_access: \\valid_read(__gen_e_acsl_at_3 + 0)",
-                    "tests/arith/at_on-purely-logic-variables.c",8);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "RTE";
+    __gen_e_acsl_assert_data_8.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_3 + 0)";
+    __gen_e_acsl_assert_data_8.file = "tests/arith/at_on-purely-logic-variables.c";
+    __gen_e_acsl_assert_data_8.fct = "f";
+    __gen_e_acsl_assert_data_8.line = 8;
+    __e_acsl_assert(__gen_e_acsl_valid_read_6,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
     if (*(__gen_e_acsl_at_3 + 0)) {
       int __gen_e_acsl_valid_read_8;
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "\\old(*(t + (m - 4)))",0,
+                                   *(__gen_e_acsl_at_4 + 0));
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,
+                                   "__gen_e_acsl_at_4",
+                                   (void *)__gen_e_acsl_at_4);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read_8 = __e_acsl_valid_read((void *)(__gen_e_acsl_at_4 + 0),
                                                       sizeof(int),
                                                       (void *)__gen_e_acsl_at_4,
                                                       (void *)(& __gen_e_acsl_at_4));
-      __e_acsl_assert(__gen_e_acsl_valid_read_8,1,"RTE","f",
-                      "mem_access: \\valid_read(__gen_e_acsl_at_4 + 0)",
-                      "tests/arith/at_on-purely-logic-variables.c",8);
+      __gen_e_acsl_assert_data_10.blocking = 1;
+      __gen_e_acsl_assert_data_10.kind = "RTE";
+      __gen_e_acsl_assert_data_10.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_4 + 0)";
+      __gen_e_acsl_assert_data_10.file = "tests/arith/at_on-purely-logic-variables.c";
+      __gen_e_acsl_assert_data_10.fct = "f";
+      __gen_e_acsl_assert_data_10.line = 8;
+      __e_acsl_assert(__gen_e_acsl_valid_read_8,
+                      & __gen_e_acsl_assert_data_10);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
       __gen_e_acsl_and_2 = *(__gen_e_acsl_at_4 + 0) == 9;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_2,1,"Postcondition","f",
-                    "\\let m = 4; \\old(*(t + m) == -4) && \\old(*(t + (m - 4))) == 9",
-                    "tests/arith/at_on-purely-logic-variables.c",8);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Postcondition";
+    __gen_e_acsl_assert_data_6.pred_txt = "\\let m = 4; \\old(*(t + m) == -4) && \\old(*(t + (m - 4))) == 9";
+    __gen_e_acsl_assert_data_6.file = "tests/arith/at_on-purely-logic-variables.c";
+    __gen_e_acsl_assert_data_6.fct = "f";
+    __gen_e_acsl_assert_data_6.line = 8;
+    __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     __e_acsl_delete_block((void *)(& t));
     free((void *)__gen_e_acsl_at);
     free((void *)__gen_e_acsl_at_2);
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_bitwise.c b/src/plugins/e-acsl/tests/arith/oracle/gen_bitwise.c
index 0f0702660796a74f1fbd1999fcb8183ab7a63c73..68ccbe8286b8e5f422925284cd0e2625e70f59fe 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_bitwise.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_bitwise.c
@@ -1,60 +1,202 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 void f_signed(int a, int b)
 {
   int c = a << 2;
-  __e_acsl_assert(0 <= a,1,"RTE","f_signed","shift: 0 <= a",
-                  "tests/arith/bitwise.c",14);
-  __e_acsl_assert((long)c == a << 2L,1,"Assertion","f_signed","c == a << 2",
-                  "tests/arith/bitwise.c",14);
-  /*@ assert c ≡ a << 2; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"c",0,c);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"a",0,a);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"a",0,a);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "shift: 0 <= a";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_2.fct = "f_signed";
+    __gen_e_acsl_assert_data_2.line = 14;
+    __e_acsl_assert(0 <= a,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "c == a << 2";
+    __gen_e_acsl_assert_data.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data.fct = "f_signed";
+    __gen_e_acsl_assert_data.line = 14;
+    __e_acsl_assert((long)c == a << 2L,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert c == a << 2; */ ;
   int d = b >> 2;
-  __e_acsl_assert(0 <= b,1,"RTE","f_signed","shift: 0 <= b",
-                  "tests/arith/bitwise.c",16);
-  __e_acsl_assert(d == b >> 2,1,"Assertion","f_signed","d == b >> 2",
-                  "tests/arith/bitwise.c",16);
-  /*@ assert d ≡ b >> 2; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"d",0,d);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"b",0,b);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"b",0,b);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "RTE";
+    __gen_e_acsl_assert_data_4.pred_txt = "shift: 0 <= b";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_4.fct = "f_signed";
+    __gen_e_acsl_assert_data_4.line = 16;
+    __e_acsl_assert(0 <= b,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "d == b >> 2";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_3.fct = "f_signed";
+    __gen_e_acsl_assert_data_3.line = 16;
+    __e_acsl_assert(d == b >> 2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+  }
+  /*@ assert d == b >> 2; */ ;
   int e = a | b;
-  __e_acsl_assert((long)e == (a | (long)b),1,"Assertion","f_signed",
-                  "e == (a | b)","tests/arith/bitwise.c",18);
-  /*@ assert e ≡ (a | b); */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"e",0,e);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"a",0,a);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"b",0,b);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "e == (a | b)";
+    __gen_e_acsl_assert_data_5.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_5.fct = "f_signed";
+    __gen_e_acsl_assert_data_5.line = 18;
+    __e_acsl_assert((long)e == (a | (long)b),& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+  }
+  /*@ assert e == (a | b); */ ;
   int f = a & b;
-  __e_acsl_assert((long)f == (a & (long)b),1,"Assertion","f_signed",
-                  "f == (a & b)","tests/arith/bitwise.c",20);
-  /*@ assert f ≡ (a & b); */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"f",0,f);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"a",0,a);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"b",0,b);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "f == (a & b)";
+    __gen_e_acsl_assert_data_6.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_6.fct = "f_signed";
+    __gen_e_acsl_assert_data_6.line = 20;
+    __e_acsl_assert((long)f == (a & (long)b),& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+  }
+  /*@ assert f == (a & b); */ ;
   int g = a ^ b;
-  __e_acsl_assert((long)g == (a ^ (long)b),1,"Assertion","f_signed",
-                  "g == (a ^ b)","tests/arith/bitwise.c",22);
-  /*@ assert g ≡ (a ^ b); */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"g",0,g);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"a",0,a);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"b",0,b);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "g == (a ^ b)";
+    __gen_e_acsl_assert_data_7.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_7.fct = "f_signed";
+    __gen_e_acsl_assert_data_7.line = 22;
+    __e_acsl_assert((long)g == (a ^ (long)b),& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+  }
+  /*@ assert g == (a ^ b); */ ;
   return;
 }
 
 void f_unsigned(unsigned int a, unsigned int b)
 {
   unsigned int c = a << 2u;
-  __e_acsl_assert((unsigned long)c == a << 2UL,1,"Assertion","f_unsigned",
-                  "c == a << 2","tests/arith/bitwise.c",28);
-  /*@ assert c ≡ a << 2; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data,"c",0,c);
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data,"a",0,a);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "c == a << 2";
+    __gen_e_acsl_assert_data.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data.fct = "f_unsigned";
+    __gen_e_acsl_assert_data.line = 28;
+    __e_acsl_assert((unsigned long)c == a << 2UL,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert c == a << 2; */ ;
   unsigned int d = b >> 2u;
-  __e_acsl_assert(d == b >> 2U,1,"Assertion","f_unsigned","d == b >> 2",
-                  "tests/arith/bitwise.c",30);
-  /*@ assert d ≡ b >> 2; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_2,"d",0,d);
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_2,"b",0,b);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "d == b >> 2";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_2.fct = "f_unsigned";
+    __gen_e_acsl_assert_data_2.line = 30;
+    __e_acsl_assert(d == b >> 2U,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+  }
+  /*@ assert d == b >> 2; */ ;
   unsigned int e = a | b;
-  __e_acsl_assert(e == (a | b),1,"Assertion","f_unsigned","e == (a | b)",
-                  "tests/arith/bitwise.c",32);
-  /*@ assert e ≡ (a | b); */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_3,"e",0,e);
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_3,"a",0,a);
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_3,"b",0,b);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "e == (a | b)";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_3.fct = "f_unsigned";
+    __gen_e_acsl_assert_data_3.line = 32;
+    __e_acsl_assert(e == (a | b),& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+  }
+  /*@ assert e == (a | b); */ ;
   unsigned int f = a & b;
-  __e_acsl_assert(f == (a & b),1,"Assertion","f_unsigned","f == (a & b)",
-                  "tests/arith/bitwise.c",34);
-  /*@ assert f ≡ (a & b); */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_4,"f",0,f);
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_4,"a",0,a);
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_4,"b",0,b);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "f == (a & b)";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_4.fct = "f_unsigned";
+    __gen_e_acsl_assert_data_4.line = 34;
+    __e_acsl_assert(f == (a & b),& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+  }
+  /*@ assert f == (a & b); */ ;
   unsigned int g = a ^ b;
-  __e_acsl_assert(g == (a ^ b),1,"Assertion","f_unsigned","g == (a ^ b)",
-                  "tests/arith/bitwise.c",36);
-  /*@ assert g ≡ (a ^ b); */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_5,"g",0,g);
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_5,"a",0,a);
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_5,"b",0,b);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "g == (a ^ b)";
+    __gen_e_acsl_assert_data_5.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_5.fct = "f_unsigned";
+    __gen_e_acsl_assert_data_5.line = 36;
+    __e_acsl_assert(g == (a ^ b),& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+  }
+  /*@ assert g == (a ^ b); */ ;
   return;
 }
 
@@ -71,39 +213,74 @@ void g_signed(int a, int b)
     int __gen_e_acsl_a_shiftl_guard;
     __e_acsl_mpz_t __gen_e_acsl_shiftl;
     int __gen_e_acsl_eq;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"c",0,c);
     __gmpz_init_set_si(__gen_e_acsl_c,(long)c);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"a",0,a);
     __gmpz_init_set_si(__gen_e_acsl_a,(long)a);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"b",0,b);
     __gmpz_init_set_si(__gen_e_acsl_b,(long)b);
+    __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data,
+                                & __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data,
+                                & __gen_e_acsl_assert_data_3);
     __gen_e_acsl_b_shiftl_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl_b));
     /*@ assert
         E_ACSL: shiftl_rhs_fits_in_mp_bitcnt_t:
-          0 ≤ b ≤ 18446744073709551615;
+          0 <= b <= 18446744073709551615;
     */
-    __e_acsl_assert(__gen_e_acsl_b_shiftl_guard,1,"RTE","g_signed",
-                    "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615",
-                    "tests/arith/bitwise.c",42);
+    {
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "RTE";
+      __gen_e_acsl_assert_data_3.pred_txt = "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615";
+      __gen_e_acsl_assert_data_3.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_3.fct = "g_signed";
+      __gen_e_acsl_assert_data_3.line = 42;
+      __e_acsl_assert(__gen_e_acsl_b_shiftl_guard,
+                      & __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+    }
     __gen_e_acsl_b_shiftl_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_b));
     __gmpz_init_set_si(__gen_e_acsl_,0L);
     __gen_e_acsl_a_shiftl_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_a),
                                              (__e_acsl_mpz_struct const *)(__gen_e_acsl_));
     __gmpz_init(__gen_e_acsl_shiftl);
-    /*@ assert E_ACSL: a ≥ 0; */
-    __e_acsl_assert(__gen_e_acsl_a_shiftl_guard >= 0,1,"RTE","g_signed",
-                    "a >= 0","tests/arith/bitwise.c",42);
+    /*@ assert E_ACSL: a >= 0; */
+    {
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "RTE";
+      __gen_e_acsl_assert_data_2.pred_txt = "a >= 0";
+      __gen_e_acsl_assert_data_2.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_2.fct = "g_signed";
+      __gen_e_acsl_assert_data_2.line = 42;
+      __e_acsl_assert(__gen_e_acsl_a_shiftl_guard >= 0,
+                      & __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    }
     __gmpz_mul_2exp(__gen_e_acsl_shiftl,
                     (__e_acsl_mpz_struct const *)(__gen_e_acsl_a),
                     __gen_e_acsl_b_shiftl_coerced);
     __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_c),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftl));
-    __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","g_signed",
-                    "c == a << b","tests/arith/bitwise.c",42);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "c == a << b";
+    __gen_e_acsl_assert_data.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data.fct = "g_signed";
+    __gen_e_acsl_assert_data.line = 42;
+    __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __gmpz_clear(__gen_e_acsl_c);
     __gmpz_clear(__gen_e_acsl_a);
     __gmpz_clear(__gen_e_acsl_b);
     __gmpz_clear(__gen_e_acsl_);
     __gmpz_clear(__gen_e_acsl_shiftl);
   }
-  /*@ assert c ≡ a << b; */ ;
+  /*@ assert c == a << b; */ ;
   int d = a >> b;
   {
     __e_acsl_mpz_t __gen_e_acsl_d;
@@ -115,39 +292,75 @@ void g_signed(int a, int b)
     int __gen_e_acsl_a_shiftr_guard;
     __e_acsl_mpz_t __gen_e_acsl_shiftr;
     int __gen_e_acsl_eq_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"d",0,d);
     __gmpz_init_set_si(__gen_e_acsl_d,(long)d);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"a",0,a);
     __gmpz_init_set_si(__gen_e_acsl_a_2,(long)a);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"b",0,b);
     __gmpz_init_set_si(__gen_e_acsl_b_2,(long)b);
+    __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_4,
+                                & __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_4,
+                                & __gen_e_acsl_assert_data_6);
     __gen_e_acsl_b_shiftr_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl_b_2));
     /*@ assert
         E_ACSL: shiftr_rhs_fits_in_mp_bitcnt_t:
-          0 ≤ b ≤ 18446744073709551615;
+          0 <= b <= 18446744073709551615;
     */
-    __e_acsl_assert(__gen_e_acsl_b_shiftr_guard,1,"RTE","g_signed",
-                    "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615",
-                    "tests/arith/bitwise.c",44);
+    {
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "RTE";
+      __gen_e_acsl_assert_data_6.pred_txt = "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615";
+      __gen_e_acsl_assert_data_6.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_6.fct = "g_signed";
+      __gen_e_acsl_assert_data_6.line = 44;
+      __e_acsl_assert(__gen_e_acsl_b_shiftr_guard,
+                      & __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+    }
     __gen_e_acsl_b_shiftr_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_b_2));
     __gmpz_init_set_si(__gen_e_acsl__2,0L);
     __gen_e_acsl_a_shiftr_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_a_2),
                                              (__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
     __gmpz_init(__gen_e_acsl_shiftr);
-    /*@ assert E_ACSL: a ≥ 0; */
-    __e_acsl_assert(__gen_e_acsl_a_shiftr_guard >= 0,1,"RTE","g_signed",
-                    "a >= 0","tests/arith/bitwise.c",44);
+    /*@ assert E_ACSL: a >= 0; */
+    {
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "RTE";
+      __gen_e_acsl_assert_data_5.pred_txt = "a >= 0";
+      __gen_e_acsl_assert_data_5.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_5.fct = "g_signed";
+      __gen_e_acsl_assert_data_5.line = 44;
+      __e_acsl_assert(__gen_e_acsl_a_shiftr_guard >= 0,
+                      & __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+    }
     __gmpz_tdiv_q_2exp(__gen_e_acsl_shiftr,
                        (__e_acsl_mpz_struct const *)(__gen_e_acsl_a_2),
                        __gen_e_acsl_b_shiftr_coerced);
     __gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_d),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftr));
-    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","g_signed",
-                    "d == a >> b","tests/arith/bitwise.c",44);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "d == a >> b";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_4.fct = "g_signed";
+    __gen_e_acsl_assert_data_4.line = 44;
+    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     __gmpz_clear(__gen_e_acsl_d);
     __gmpz_clear(__gen_e_acsl_a_2);
     __gmpz_clear(__gen_e_acsl_b_2);
     __gmpz_clear(__gen_e_acsl__2);
     __gmpz_clear(__gen_e_acsl_shiftr);
   }
-  /*@ assert d ≡ a >> b; */ ;
+  /*@ assert d == a >> b; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__3;
     __e_acsl_mpz_t __gen_e_acsl__4;
@@ -158,6 +371,12 @@ void g_signed(int a, int b)
     int __gen_e_acsl_shiftl_guard;
     __e_acsl_mpz_t __gen_e_acsl_shiftl_2;
     int __gen_e_acsl_ne;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
     __gmpz_init_set_ui(__gen_e_acsl__3,18446744073709551615UL);
     __gmpz_init_set_si(__gen_e_acsl__4,1L);
     __gmpz_init(__gen_e_acsl_add);
@@ -167,35 +386,53 @@ void g_signed(int a, int b)
     __gen_e_acsl_cst_shiftl_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
     /*@ assert
         E_ACSL: shiftl_rhs_fits_in_mp_bitcnt_t:
-          0 ≤ 1 ≤ 18446744073709551615;
+          0 <= 1 <= 18446744073709551615;
     */
-    __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard,1,"RTE","g_signed",
-                    "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 1 <= 18446744073709551615",
-                    "tests/arith/bitwise.c",46);
+    {
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "RTE";
+      __gen_e_acsl_assert_data_9.pred_txt = "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 1 <= 18446744073709551615";
+      __gen_e_acsl_assert_data_9.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_9.fct = "g_signed";
+      __gen_e_acsl_assert_data_9.line = 46;
+      __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard,
+                      & __gen_e_acsl_assert_data_9);
+    }
     __gen_e_acsl_cst_shiftl_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
     __gmpz_init_set_si(__gen_e_acsl__5,0L);
     __gen_e_acsl_shiftl_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add),
                                            (__e_acsl_mpz_struct const *)(__gen_e_acsl__5));
     __gmpz_init(__gen_e_acsl_shiftl_2);
-    /*@ assert E_ACSL: 18446744073709551615ULL + 1 ≥ 0; */
-    __e_acsl_assert(__gen_e_acsl_shiftl_guard >= 0,1,"RTE","g_signed",
-                    "18446744073709551615ULL + 1 >= 0",
-                    "tests/arith/bitwise.c",46);
+    /*@ assert E_ACSL: 18446744073709551615ULL + 1 >= 0; */
+    {
+      __gen_e_acsl_assert_data_8.blocking = 1;
+      __gen_e_acsl_assert_data_8.kind = "RTE";
+      __gen_e_acsl_assert_data_8.pred_txt = "18446744073709551615ULL + 1 >= 0";
+      __gen_e_acsl_assert_data_8.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_8.fct = "g_signed";
+      __gen_e_acsl_assert_data_8.line = 46;
+      __e_acsl_assert(__gen_e_acsl_shiftl_guard >= 0,
+                      & __gen_e_acsl_assert_data_8);
+    }
     __gmpz_mul_2exp(__gen_e_acsl_shiftl_2,
                     (__e_acsl_mpz_struct const *)(__gen_e_acsl_add),
                     __gen_e_acsl_cst_shiftl_coerced);
     __gen_e_acsl_ne = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftl_2),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__5));
-    __e_acsl_assert(__gen_e_acsl_ne != 0,1,"Assertion","g_signed",
-                    "(18446744073709551615ULL + 1) << 1 != 0",
-                    "tests/arith/bitwise.c",46);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "(18446744073709551615ULL + 1) << 1 != 0";
+    __gen_e_acsl_assert_data_7.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_7.fct = "g_signed";
+    __gen_e_acsl_assert_data_7.line = 46;
+    __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_7);
     __gmpz_clear(__gen_e_acsl__3);
     __gmpz_clear(__gen_e_acsl__4);
     __gmpz_clear(__gen_e_acsl_add);
     __gmpz_clear(__gen_e_acsl__5);
     __gmpz_clear(__gen_e_acsl_shiftl_2);
   }
-  /*@ assert (18446744073709551615ULL + 1) << 1 ≢ 0; */ ;
+  /*@ assert (18446744073709551615ULL + 1) << 1 != 0; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__6;
     __e_acsl_mpz_t __gen_e_acsl__7;
@@ -206,6 +443,12 @@ void g_signed(int a, int b)
     int __gen_e_acsl_shiftr_guard;
     __e_acsl_mpz_t __gen_e_acsl_shiftr_2;
     unsigned long __gen_e_acsl__9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
     __gmpz_init_set_ui(__gen_e_acsl__6,18446744073709551615UL);
     __gmpz_init_set_si(__gen_e_acsl__7,1L);
     __gmpz_init(__gen_e_acsl_add_2);
@@ -215,34 +458,52 @@ void g_signed(int a, int b)
     __gen_e_acsl_cst_shiftr_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl__7));
     /*@ assert
         E_ACSL: shiftr_rhs_fits_in_mp_bitcnt_t:
-          0 ≤ 1 ≤ 18446744073709551615;
+          0 <= 1 <= 18446744073709551615;
     */
-    __e_acsl_assert(__gen_e_acsl_cst_shiftr_guard,1,"RTE","g_signed",
-                    "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= 1 <= 18446744073709551615",
-                    "tests/arith/bitwise.c",47);
+    {
+      __gen_e_acsl_assert_data_12.blocking = 1;
+      __gen_e_acsl_assert_data_12.kind = "RTE";
+      __gen_e_acsl_assert_data_12.pred_txt = "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= 1 <= 18446744073709551615";
+      __gen_e_acsl_assert_data_12.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_12.fct = "g_signed";
+      __gen_e_acsl_assert_data_12.line = 47;
+      __e_acsl_assert(__gen_e_acsl_cst_shiftr_guard,
+                      & __gen_e_acsl_assert_data_12);
+    }
     __gen_e_acsl_cst_shiftr_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl__7));
     __gmpz_init_set_si(__gen_e_acsl__8,0L);
     __gen_e_acsl_shiftr_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2),
                                            (__e_acsl_mpz_struct const *)(__gen_e_acsl__8));
     __gmpz_init(__gen_e_acsl_shiftr_2);
-    /*@ assert E_ACSL: 18446744073709551615ULL + 1 ≥ 0; */
-    __e_acsl_assert(__gen_e_acsl_shiftr_guard >= 0,1,"RTE","g_signed",
-                    "18446744073709551615ULL + 1 >= 0",
-                    "tests/arith/bitwise.c",47);
+    /*@ assert E_ACSL: 18446744073709551615ULL + 1 >= 0; */
+    {
+      __gen_e_acsl_assert_data_11.blocking = 1;
+      __gen_e_acsl_assert_data_11.kind = "RTE";
+      __gen_e_acsl_assert_data_11.pred_txt = "18446744073709551615ULL + 1 >= 0";
+      __gen_e_acsl_assert_data_11.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_11.fct = "g_signed";
+      __gen_e_acsl_assert_data_11.line = 47;
+      __e_acsl_assert(__gen_e_acsl_shiftr_guard >= 0,
+                      & __gen_e_acsl_assert_data_11);
+    }
     __gmpz_tdiv_q_2exp(__gen_e_acsl_shiftr_2,
                        (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2),
                        __gen_e_acsl_cst_shiftr_coerced);
     __gen_e_acsl__9 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftr_2));
-    __e_acsl_assert(__gen_e_acsl__9 != 0UL,1,"Assertion","g_signed",
-                    "(18446744073709551615ULL + 1) >> 1 != 0",
-                    "tests/arith/bitwise.c",47);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "(18446744073709551615ULL + 1) >> 1 != 0";
+    __gen_e_acsl_assert_data_10.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_10.fct = "g_signed";
+    __gen_e_acsl_assert_data_10.line = 47;
+    __e_acsl_assert(__gen_e_acsl__9 != 0UL,& __gen_e_acsl_assert_data_10);
     __gmpz_clear(__gen_e_acsl__6);
     __gmpz_clear(__gen_e_acsl__7);
     __gmpz_clear(__gen_e_acsl_add_2);
     __gmpz_clear(__gen_e_acsl__8);
     __gmpz_clear(__gen_e_acsl_shiftr_2);
   }
-  /*@ assert (18446744073709551615ULL + 1) >> 1 ≢ 0; */ ;
+  /*@ assert (18446744073709551615ULL + 1) >> 1 != 0; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__10;
     __e_acsl_mpz_t __gen_e_acsl__11;
@@ -252,37 +513,63 @@ void g_signed(int a, int b)
     int __gen_e_acsl_cst_shiftl_guard_3;
     __e_acsl_mpz_t __gen_e_acsl_shiftl_3;
     int __gen_e_acsl_ne_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__10,1L);
     __gmpz_init_set_si(__gen_e_acsl__11,65L);
     __gen_e_acsl_cst_shiftl_guard_2 = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl__11));
     /*@ assert
         E_ACSL: shiftl_rhs_fits_in_mp_bitcnt_t:
-          0 ≤ 65 ≤ 18446744073709551615;
+          0 <= 65 <= 18446744073709551615;
     */
-    __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_2,1,"RTE","g_signed",
-                    "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 65 <= 18446744073709551615",
-                    "tests/arith/bitwise.c",48);
+    {
+      __gen_e_acsl_assert_data_15.blocking = 1;
+      __gen_e_acsl_assert_data_15.kind = "RTE";
+      __gen_e_acsl_assert_data_15.pred_txt = "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 65 <= 18446744073709551615";
+      __gen_e_acsl_assert_data_15.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_15.fct = "g_signed";
+      __gen_e_acsl_assert_data_15.line = 48;
+      __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_2,
+                      & __gen_e_acsl_assert_data_15);
+    }
     __gen_e_acsl_cst_shiftl_coerced_2 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl__11));
     __gmpz_init_set_si(__gen_e_acsl__12,0L);
     __gen_e_acsl_cst_shiftl_guard_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__10),
                                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__12));
     __gmpz_init(__gen_e_acsl_shiftl_3);
-    /*@ assert E_ACSL: 1 ≥ 0; */
-    __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_3 >= 0,1,"RTE","g_signed",
-                    "1 >= 0","tests/arith/bitwise.c",48);
+    /*@ assert E_ACSL: 1 >= 0; */
+    {
+      __gen_e_acsl_assert_data_14.blocking = 1;
+      __gen_e_acsl_assert_data_14.kind = "RTE";
+      __gen_e_acsl_assert_data_14.pred_txt = "1 >= 0";
+      __gen_e_acsl_assert_data_14.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_14.fct = "g_signed";
+      __gen_e_acsl_assert_data_14.line = 48;
+      __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_3 >= 0,
+                      & __gen_e_acsl_assert_data_14);
+    }
     __gmpz_mul_2exp(__gen_e_acsl_shiftl_3,
                     (__e_acsl_mpz_struct const *)(__gen_e_acsl__10),
                     __gen_e_acsl_cst_shiftl_coerced_2);
     __gen_e_acsl_ne_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftl_3),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__12));
-    __e_acsl_assert(__gen_e_acsl_ne_2 != 0,1,"Assertion","g_signed",
-                    "1 << 65 != 0","tests/arith/bitwise.c",48);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "1 << 65 != 0";
+    __gen_e_acsl_assert_data_13.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_13.fct = "g_signed";
+    __gen_e_acsl_assert_data_13.line = 48;
+    __e_acsl_assert(__gen_e_acsl_ne_2 != 0,& __gen_e_acsl_assert_data_13);
     __gmpz_clear(__gen_e_acsl__10);
     __gmpz_clear(__gen_e_acsl__11);
     __gmpz_clear(__gen_e_acsl__12);
     __gmpz_clear(__gen_e_acsl_shiftl_3);
   }
-  /*@ assert 1 << 65 ≢ 0; */ ;
+  /*@ assert 1 << 65 != 0; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__13;
     __e_acsl_mpz_t __gen_e_acsl__14;
@@ -292,6 +579,8 @@ void g_signed(int a, int b)
     __e_acsl_mpz_t __gen_e_acsl_bor;
     __e_acsl_mpz_t __gen_e_acsl__16;
     int __gen_e_acsl_ne_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
     __gmpz_init_set_ui(__gen_e_acsl__13,18446744073709551615UL);
     __gmpz_init_set_si(__gen_e_acsl__14,1L);
     __gmpz_init(__gen_e_acsl_add_3);
@@ -310,9 +599,13 @@ void g_signed(int a, int b)
     __gmpz_init_set_si(__gen_e_acsl__16,0L);
     __gen_e_acsl_ne_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_bor),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__16));
-    __e_acsl_assert(__gen_e_acsl_ne_3 != 0,1,"Assertion","g_signed",
-                    "((18446744073709551615ULL + 1) | ((-9223372036854775807LL - 1LL) - 1)) != 0",
-                    "tests/arith/bitwise.c",49);
+    __gen_e_acsl_assert_data_16.blocking = 1;
+    __gen_e_acsl_assert_data_16.kind = "Assertion";
+    __gen_e_acsl_assert_data_16.pred_txt = "((18446744073709551615ULL + 1) | ((-9223372036854775807LL - 1LL) - 1)) != 0";
+    __gen_e_acsl_assert_data_16.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_16.fct = "g_signed";
+    __gen_e_acsl_assert_data_16.line = 49;
+    __e_acsl_assert(__gen_e_acsl_ne_3 != 0,& __gen_e_acsl_assert_data_16);
     __gmpz_clear(__gen_e_acsl__13);
     __gmpz_clear(__gen_e_acsl__14);
     __gmpz_clear(__gen_e_acsl_add_3);
@@ -323,8 +616,8 @@ void g_signed(int a, int b)
   }
   /*@
   assert
-  ((18446744073709551615ULL + 1) | ((-9223372036854775807LL - 1LL) - 1)) ≢
-  0; */
+  ((18446744073709551615ULL + 1) | ((-9223372036854775807LL - 1LL) - 1)) != 0;
+   */
   ;
   {
     __e_acsl_mpz_t __gen_e_acsl__17;
@@ -335,6 +628,8 @@ void g_signed(int a, int b)
     __e_acsl_mpz_t __gen_e_acsl_band;
     __e_acsl_mpz_t __gen_e_acsl_bxor;
     int __gen_e_acsl_ne_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
     __gmpz_init_set_ui(__gen_e_acsl__17,18446744073709551615UL);
     __gmpz_init_set_si(__gen_e_acsl__18,1L);
     __gmpz_init(__gen_e_acsl_add_4);
@@ -356,9 +651,13 @@ void g_signed(int a, int b)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_2));
     __gen_e_acsl_ne_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_band),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_bxor));
-    __e_acsl_assert(__gen_e_acsl_ne_4 != 0,1,"Assertion","g_signed",
-                    "((18446744073709551615ULL + 1) & ((-9223372036854775807LL - 1LL) - 1)) !=\n((18446744073709551615ULL + 1) ^ ((-9223372036854775807LL - 1LL) - 1))",
-                    "tests/arith/bitwise.c",50);
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "Assertion";
+    __gen_e_acsl_assert_data_17.pred_txt = "((18446744073709551615ULL + 1) & ((-9223372036854775807LL - 1LL) - 1)) !=\n((18446744073709551615ULL + 1) ^ ((-9223372036854775807LL - 1LL) - 1))";
+    __gen_e_acsl_assert_data_17.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_17.fct = "g_signed";
+    __gen_e_acsl_assert_data_17.line = 50;
+    __e_acsl_assert(__gen_e_acsl_ne_4 != 0,& __gen_e_acsl_assert_data_17);
     __gmpz_clear(__gen_e_acsl__17);
     __gmpz_clear(__gen_e_acsl__18);
     __gmpz_clear(__gen_e_acsl_add_4);
@@ -369,7 +668,7 @@ void g_signed(int a, int b)
   }
   /*@
   assert
-  ((18446744073709551615ULL + 1) & ((-9223372036854775807LL - 1LL) - 1)) ≢
+  ((18446744073709551615ULL + 1) & ((-9223372036854775807LL - 1LL) - 1)) !=
   ((18446744073709551615ULL + 1) ^ ((-9223372036854775807LL - 1LL) - 1)); */
   ;
   return;
@@ -388,39 +687,74 @@ void g_unsigned(unsigned int a, unsigned int b)
     int __gen_e_acsl_a_shiftl_guard;
     __e_acsl_mpz_t __gen_e_acsl_shiftl;
     int __gen_e_acsl_eq;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data,"c",0,c);
     __gmpz_init_set_ui(__gen_e_acsl_c,(unsigned long)c);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_2,"a",0,a);
     __gmpz_init_set_ui(__gen_e_acsl_a,(unsigned long)a);
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_3,"b",0,b);
     __gmpz_init_set_ui(__gen_e_acsl_b,(unsigned long)b);
+    __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data,
+                                & __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data,
+                                & __gen_e_acsl_assert_data_3);
     __gen_e_acsl_b_shiftl_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl_b));
     /*@ assert
         E_ACSL: shiftl_rhs_fits_in_mp_bitcnt_t:
-          0 ≤ b ≤ 18446744073709551615;
+          0 <= b <= 18446744073709551615;
     */
-    __e_acsl_assert(__gen_e_acsl_b_shiftl_guard,1,"RTE","g_unsigned",
-                    "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615",
-                    "tests/arith/bitwise.c",57);
+    {
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "RTE";
+      __gen_e_acsl_assert_data_3.pred_txt = "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615";
+      __gen_e_acsl_assert_data_3.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_3.fct = "g_unsigned";
+      __gen_e_acsl_assert_data_3.line = 57;
+      __e_acsl_assert(__gen_e_acsl_b_shiftl_guard,
+                      & __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+    }
     __gen_e_acsl_b_shiftl_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_b));
     __gmpz_init_set_si(__gen_e_acsl_,0L);
     __gen_e_acsl_a_shiftl_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_a),
                                              (__e_acsl_mpz_struct const *)(__gen_e_acsl_));
     __gmpz_init(__gen_e_acsl_shiftl);
-    /*@ assert E_ACSL: a ≥ 0; */
-    __e_acsl_assert(__gen_e_acsl_a_shiftl_guard >= 0,1,"RTE","g_unsigned",
-                    "a >= 0","tests/arith/bitwise.c",57);
+    /*@ assert E_ACSL: a >= 0; */
+    {
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "RTE";
+      __gen_e_acsl_assert_data_2.pred_txt = "a >= 0";
+      __gen_e_acsl_assert_data_2.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_2.fct = "g_unsigned";
+      __gen_e_acsl_assert_data_2.line = 57;
+      __e_acsl_assert(__gen_e_acsl_a_shiftl_guard >= 0,
+                      & __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    }
     __gmpz_mul_2exp(__gen_e_acsl_shiftl,
                     (__e_acsl_mpz_struct const *)(__gen_e_acsl_a),
                     __gen_e_acsl_b_shiftl_coerced);
     __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_c),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftl));
-    __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","g_unsigned",
-                    "c == a << b","tests/arith/bitwise.c",57);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "c == a << b";
+    __gen_e_acsl_assert_data.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data.fct = "g_unsigned";
+    __gen_e_acsl_assert_data.line = 57;
+    __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __gmpz_clear(__gen_e_acsl_c);
     __gmpz_clear(__gen_e_acsl_a);
     __gmpz_clear(__gen_e_acsl_b);
     __gmpz_clear(__gen_e_acsl_);
     __gmpz_clear(__gen_e_acsl_shiftl);
   }
-  /*@ assert c ≡ a << b; */ ;
+  /*@ assert c == a << b; */ ;
   unsigned int d = a >> b;
   {
     __e_acsl_mpz_t __gen_e_acsl_d;
@@ -432,39 +766,75 @@ void g_unsigned(unsigned int a, unsigned int b)
     int __gen_e_acsl_a_shiftr_guard;
     __e_acsl_mpz_t __gen_e_acsl_shiftr;
     int __gen_e_acsl_eq_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_4,"d",0,d);
     __gmpz_init_set_ui(__gen_e_acsl_d,(unsigned long)d);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_5,"a",0,a);
     __gmpz_init_set_ui(__gen_e_acsl_a_2,(unsigned long)a);
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_6,"b",0,b);
     __gmpz_init_set_ui(__gen_e_acsl_b_2,(unsigned long)b);
+    __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_4,
+                                & __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_4,
+                                & __gen_e_acsl_assert_data_6);
     __gen_e_acsl_b_shiftr_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl_b_2));
     /*@ assert
         E_ACSL: shiftr_rhs_fits_in_mp_bitcnt_t:
-          0 ≤ b ≤ 18446744073709551615;
+          0 <= b <= 18446744073709551615;
     */
-    __e_acsl_assert(__gen_e_acsl_b_shiftr_guard,1,"RTE","g_unsigned",
-                    "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615",
-                    "tests/arith/bitwise.c",59);
+    {
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "RTE";
+      __gen_e_acsl_assert_data_6.pred_txt = "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= b <= 18446744073709551615";
+      __gen_e_acsl_assert_data_6.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_6.fct = "g_unsigned";
+      __gen_e_acsl_assert_data_6.line = 59;
+      __e_acsl_assert(__gen_e_acsl_b_shiftr_guard,
+                      & __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+    }
     __gen_e_acsl_b_shiftr_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_b_2));
     __gmpz_init_set_si(__gen_e_acsl__2,0L);
     __gen_e_acsl_a_shiftr_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_a_2),
                                              (__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
     __gmpz_init(__gen_e_acsl_shiftr);
-    /*@ assert E_ACSL: a ≥ 0; */
-    __e_acsl_assert(__gen_e_acsl_a_shiftr_guard >= 0,1,"RTE","g_unsigned",
-                    "a >= 0","tests/arith/bitwise.c",59);
+    /*@ assert E_ACSL: a >= 0; */
+    {
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "RTE";
+      __gen_e_acsl_assert_data_5.pred_txt = "a >= 0";
+      __gen_e_acsl_assert_data_5.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_5.fct = "g_unsigned";
+      __gen_e_acsl_assert_data_5.line = 59;
+      __e_acsl_assert(__gen_e_acsl_a_shiftr_guard >= 0,
+                      & __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+    }
     __gmpz_tdiv_q_2exp(__gen_e_acsl_shiftr,
                        (__e_acsl_mpz_struct const *)(__gen_e_acsl_a_2),
                        __gen_e_acsl_b_shiftr_coerced);
     __gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_d),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftr));
-    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","g_unsigned",
-                    "d == a >> b","tests/arith/bitwise.c",59);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "d == a >> b";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_4.fct = "g_unsigned";
+    __gen_e_acsl_assert_data_4.line = 59;
+    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     __gmpz_clear(__gen_e_acsl_d);
     __gmpz_clear(__gen_e_acsl_a_2);
     __gmpz_clear(__gen_e_acsl_b_2);
     __gmpz_clear(__gen_e_acsl__2);
     __gmpz_clear(__gen_e_acsl_shiftr);
   }
-  /*@ assert d ≡ a >> b; */ ;
+  /*@ assert d == a >> b; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__3;
     __e_acsl_mpz_t __gen_e_acsl__4;
@@ -475,6 +845,12 @@ void g_unsigned(unsigned int a, unsigned int b)
     int __gen_e_acsl_shiftl_guard;
     __e_acsl_mpz_t __gen_e_acsl_shiftl_2;
     int __gen_e_acsl_ne;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
     __gmpz_init_set_ui(__gen_e_acsl__3,18446744073709551615UL);
     __gmpz_init_set_si(__gen_e_acsl__4,1L);
     __gmpz_init(__gen_e_acsl_add);
@@ -484,35 +860,53 @@ void g_unsigned(unsigned int a, unsigned int b)
     __gen_e_acsl_cst_shiftl_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
     /*@ assert
         E_ACSL: shiftl_rhs_fits_in_mp_bitcnt_t:
-          0 ≤ 1u ≤ 18446744073709551615;
+          0 <= 1u <= 18446744073709551615;
     */
-    __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard,1,"RTE","g_unsigned",
-                    "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 1u <= 18446744073709551615",
-                    "tests/arith/bitwise.c",61);
+    {
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "RTE";
+      __gen_e_acsl_assert_data_9.pred_txt = "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 1u <= 18446744073709551615";
+      __gen_e_acsl_assert_data_9.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_9.fct = "g_unsigned";
+      __gen_e_acsl_assert_data_9.line = 61;
+      __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard,
+                      & __gen_e_acsl_assert_data_9);
+    }
     __gen_e_acsl_cst_shiftl_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
     __gmpz_init_set_si(__gen_e_acsl__5,0L);
     __gen_e_acsl_shiftl_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add),
                                            (__e_acsl_mpz_struct const *)(__gen_e_acsl__5));
     __gmpz_init(__gen_e_acsl_shiftl_2);
-    /*@ assert E_ACSL: 18446744073709551615ULL + 1u ≥ 0; */
-    __e_acsl_assert(__gen_e_acsl_shiftl_guard >= 0,1,"RTE","g_unsigned",
-                    "18446744073709551615ULL + 1u >= 0",
-                    "tests/arith/bitwise.c",61);
+    /*@ assert E_ACSL: 18446744073709551615ULL + 1u >= 0; */
+    {
+      __gen_e_acsl_assert_data_8.blocking = 1;
+      __gen_e_acsl_assert_data_8.kind = "RTE";
+      __gen_e_acsl_assert_data_8.pred_txt = "18446744073709551615ULL + 1u >= 0";
+      __gen_e_acsl_assert_data_8.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_8.fct = "g_unsigned";
+      __gen_e_acsl_assert_data_8.line = 61;
+      __e_acsl_assert(__gen_e_acsl_shiftl_guard >= 0,
+                      & __gen_e_acsl_assert_data_8);
+    }
     __gmpz_mul_2exp(__gen_e_acsl_shiftl_2,
                     (__e_acsl_mpz_struct const *)(__gen_e_acsl_add),
                     __gen_e_acsl_cst_shiftl_coerced);
     __gen_e_acsl_ne = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftl_2),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__5));
-    __e_acsl_assert(__gen_e_acsl_ne != 0,1,"Assertion","g_unsigned",
-                    "(18446744073709551615ULL + 1u) << 1u != 0",
-                    "tests/arith/bitwise.c",61);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "(18446744073709551615ULL + 1u) << 1u != 0";
+    __gen_e_acsl_assert_data_7.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_7.fct = "g_unsigned";
+    __gen_e_acsl_assert_data_7.line = 61;
+    __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_7);
     __gmpz_clear(__gen_e_acsl__3);
     __gmpz_clear(__gen_e_acsl__4);
     __gmpz_clear(__gen_e_acsl_add);
     __gmpz_clear(__gen_e_acsl__5);
     __gmpz_clear(__gen_e_acsl_shiftl_2);
   }
-  /*@ assert (18446744073709551615ULL + 1u) << 1u ≢ 0; */ ;
+  /*@ assert (18446744073709551615ULL + 1u) << 1u != 0; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__6;
     __e_acsl_mpz_t __gen_e_acsl__7;
@@ -523,6 +917,12 @@ void g_unsigned(unsigned int a, unsigned int b)
     int __gen_e_acsl_shiftr_guard;
     __e_acsl_mpz_t __gen_e_acsl_shiftr_2;
     unsigned long __gen_e_acsl__9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
     __gmpz_init_set_ui(__gen_e_acsl__6,18446744073709551615UL);
     __gmpz_init_set_si(__gen_e_acsl__7,1L);
     __gmpz_init(__gen_e_acsl_add_2);
@@ -532,34 +932,52 @@ void g_unsigned(unsigned int a, unsigned int b)
     __gen_e_acsl_cst_shiftr_guard = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl__7));
     /*@ assert
         E_ACSL: shiftr_rhs_fits_in_mp_bitcnt_t:
-          0 ≤ 1u ≤ 18446744073709551615;
+          0 <= 1u <= 18446744073709551615;
     */
-    __e_acsl_assert(__gen_e_acsl_cst_shiftr_guard,1,"RTE","g_unsigned",
-                    "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= 1u <= 18446744073709551615",
-                    "tests/arith/bitwise.c",62);
+    {
+      __gen_e_acsl_assert_data_12.blocking = 1;
+      __gen_e_acsl_assert_data_12.kind = "RTE";
+      __gen_e_acsl_assert_data_12.pred_txt = "shiftr_rhs_fits_in_mp_bitcnt_t: 0 <= 1u <= 18446744073709551615";
+      __gen_e_acsl_assert_data_12.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_12.fct = "g_unsigned";
+      __gen_e_acsl_assert_data_12.line = 62;
+      __e_acsl_assert(__gen_e_acsl_cst_shiftr_guard,
+                      & __gen_e_acsl_assert_data_12);
+    }
     __gen_e_acsl_cst_shiftr_coerced = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl__7));
     __gmpz_init_set_si(__gen_e_acsl__8,0L);
     __gen_e_acsl_shiftr_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2),
                                            (__e_acsl_mpz_struct const *)(__gen_e_acsl__8));
     __gmpz_init(__gen_e_acsl_shiftr_2);
-    /*@ assert E_ACSL: 18446744073709551615ULL + 1u ≥ 0; */
-    __e_acsl_assert(__gen_e_acsl_shiftr_guard >= 0,1,"RTE","g_unsigned",
-                    "18446744073709551615ULL + 1u >= 0",
-                    "tests/arith/bitwise.c",62);
+    /*@ assert E_ACSL: 18446744073709551615ULL + 1u >= 0; */
+    {
+      __gen_e_acsl_assert_data_11.blocking = 1;
+      __gen_e_acsl_assert_data_11.kind = "RTE";
+      __gen_e_acsl_assert_data_11.pred_txt = "18446744073709551615ULL + 1u >= 0";
+      __gen_e_acsl_assert_data_11.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_11.fct = "g_unsigned";
+      __gen_e_acsl_assert_data_11.line = 62;
+      __e_acsl_assert(__gen_e_acsl_shiftr_guard >= 0,
+                      & __gen_e_acsl_assert_data_11);
+    }
     __gmpz_tdiv_q_2exp(__gen_e_acsl_shiftr_2,
                        (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2),
                        __gen_e_acsl_cst_shiftr_coerced);
     __gen_e_acsl__9 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftr_2));
-    __e_acsl_assert(__gen_e_acsl__9 != 0UL,1,"Assertion","g_unsigned",
-                    "(18446744073709551615ULL + 1u) >> 1u != 0",
-                    "tests/arith/bitwise.c",62);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "(18446744073709551615ULL + 1u) >> 1u != 0";
+    __gen_e_acsl_assert_data_10.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_10.fct = "g_unsigned";
+    __gen_e_acsl_assert_data_10.line = 62;
+    __e_acsl_assert(__gen_e_acsl__9 != 0UL,& __gen_e_acsl_assert_data_10);
     __gmpz_clear(__gen_e_acsl__6);
     __gmpz_clear(__gen_e_acsl__7);
     __gmpz_clear(__gen_e_acsl_add_2);
     __gmpz_clear(__gen_e_acsl__8);
     __gmpz_clear(__gen_e_acsl_shiftr_2);
   }
-  /*@ assert (18446744073709551615ULL + 1u) >> 1u ≢ 0; */ ;
+  /*@ assert (18446744073709551615ULL + 1u) >> 1u != 0; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__10;
     __e_acsl_mpz_t __gen_e_acsl__11;
@@ -569,37 +987,63 @@ void g_unsigned(unsigned int a, unsigned int b)
     int __gen_e_acsl_cst_shiftl_guard_3;
     __e_acsl_mpz_t __gen_e_acsl_shiftl_3;
     int __gen_e_acsl_ne_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__10,1L);
     __gmpz_init_set_si(__gen_e_acsl__11,65L);
     __gen_e_acsl_cst_shiftl_guard_2 = __gmpz_fits_ulong_p((__e_acsl_mpz_struct const *)(__gen_e_acsl__11));
     /*@ assert
         E_ACSL: shiftl_rhs_fits_in_mp_bitcnt_t:
-          0 ≤ 65u ≤ 18446744073709551615;
+          0 <= 65u <= 18446744073709551615;
     */
-    __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_2,1,"RTE","g_unsigned",
-                    "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 65u <= 18446744073709551615",
-                    "tests/arith/bitwise.c",63);
+    {
+      __gen_e_acsl_assert_data_15.blocking = 1;
+      __gen_e_acsl_assert_data_15.kind = "RTE";
+      __gen_e_acsl_assert_data_15.pred_txt = "shiftl_rhs_fits_in_mp_bitcnt_t: 0 <= 65u <= 18446744073709551615";
+      __gen_e_acsl_assert_data_15.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_15.fct = "g_unsigned";
+      __gen_e_acsl_assert_data_15.line = 63;
+      __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_2,
+                      & __gen_e_acsl_assert_data_15);
+    }
     __gen_e_acsl_cst_shiftl_coerced_2 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl__11));
     __gmpz_init_set_si(__gen_e_acsl__12,0L);
     __gen_e_acsl_cst_shiftl_guard_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__10),
                                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__12));
     __gmpz_init(__gen_e_acsl_shiftl_3);
-    /*@ assert E_ACSL: 1u ≥ 0; */
-    __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_3 >= 0,1,"RTE",
-                    "g_unsigned","1u >= 0","tests/arith/bitwise.c",63);
+    /*@ assert E_ACSL: 1u >= 0; */
+    {
+      __gen_e_acsl_assert_data_14.blocking = 1;
+      __gen_e_acsl_assert_data_14.kind = "RTE";
+      __gen_e_acsl_assert_data_14.pred_txt = "1u >= 0";
+      __gen_e_acsl_assert_data_14.file = "tests/arith/bitwise.c";
+      __gen_e_acsl_assert_data_14.fct = "g_unsigned";
+      __gen_e_acsl_assert_data_14.line = 63;
+      __e_acsl_assert(__gen_e_acsl_cst_shiftl_guard_3 >= 0,
+                      & __gen_e_acsl_assert_data_14);
+    }
     __gmpz_mul_2exp(__gen_e_acsl_shiftl_3,
                     (__e_acsl_mpz_struct const *)(__gen_e_acsl__10),
                     __gen_e_acsl_cst_shiftl_coerced_2);
     __gen_e_acsl_ne_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_shiftl_3),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__12));
-    __e_acsl_assert(__gen_e_acsl_ne_2 != 0,1,"Assertion","g_unsigned",
-                    "1u << 65u != 0","tests/arith/bitwise.c",63);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "1u << 65u != 0";
+    __gen_e_acsl_assert_data_13.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_13.fct = "g_unsigned";
+    __gen_e_acsl_assert_data_13.line = 63;
+    __e_acsl_assert(__gen_e_acsl_ne_2 != 0,& __gen_e_acsl_assert_data_13);
     __gmpz_clear(__gen_e_acsl__10);
     __gmpz_clear(__gen_e_acsl__11);
     __gmpz_clear(__gen_e_acsl__12);
     __gmpz_clear(__gen_e_acsl_shiftl_3);
   }
-  /*@ assert 1u << 65u ≢ 0; */ ;
+  /*@ assert 1u << 65u != 0; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__13;
     __e_acsl_mpz_t __gen_e_acsl__14;
@@ -607,6 +1051,8 @@ void g_unsigned(unsigned int a, unsigned int b)
     __e_acsl_mpz_t __gen_e_acsl_bor;
     __e_acsl_mpz_t __gen_e_acsl__15;
     int __gen_e_acsl_ne_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
     __gmpz_init_set_ui(__gen_e_acsl__13,18446744073709551615UL);
     __gmpz_init_set_si(__gen_e_acsl__14,1L);
     __gmpz_init(__gen_e_acsl_add_3);
@@ -620,16 +1066,20 @@ void g_unsigned(unsigned int a, unsigned int b)
     __gmpz_init_set_si(__gen_e_acsl__15,0L);
     __gen_e_acsl_ne_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_bor),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__15));
-    __e_acsl_assert(__gen_e_acsl_ne_3 != 0,1,"Assertion","g_unsigned",
-                    "((18446744073709551615ULL + 1u) | 1u) != 0",
-                    "tests/arith/bitwise.c",64);
+    __gen_e_acsl_assert_data_16.blocking = 1;
+    __gen_e_acsl_assert_data_16.kind = "Assertion";
+    __gen_e_acsl_assert_data_16.pred_txt = "((18446744073709551615ULL + 1u) | 1u) != 0";
+    __gen_e_acsl_assert_data_16.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_16.fct = "g_unsigned";
+    __gen_e_acsl_assert_data_16.line = 64;
+    __e_acsl_assert(__gen_e_acsl_ne_3 != 0,& __gen_e_acsl_assert_data_16);
     __gmpz_clear(__gen_e_acsl__13);
     __gmpz_clear(__gen_e_acsl__14);
     __gmpz_clear(__gen_e_acsl_add_3);
     __gmpz_clear(__gen_e_acsl_bor);
     __gmpz_clear(__gen_e_acsl__15);
   }
-  /*@ assert ((18446744073709551615ULL + 1u) | 1u) ≢ 0; */ ;
+  /*@ assert ((18446744073709551615ULL + 1u) | 1u) != 0; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__16;
     __e_acsl_mpz_t __gen_e_acsl__17;
@@ -637,6 +1087,8 @@ void g_unsigned(unsigned int a, unsigned int b)
     __e_acsl_mpz_t __gen_e_acsl_band;
     __e_acsl_mpz_t __gen_e_acsl_bxor;
     int __gen_e_acsl_ne_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
     __gmpz_init_set_ui(__gen_e_acsl__16,18446744073709551615UL);
     __gmpz_init_set_si(__gen_e_acsl__17,1L);
     __gmpz_init(__gen_e_acsl_add_4);
@@ -653,9 +1105,13 @@ void g_unsigned(unsigned int a, unsigned int b)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__17));
     __gen_e_acsl_ne_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_band),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_bxor));
-    __e_acsl_assert(__gen_e_acsl_ne_4 != 0,1,"Assertion","g_unsigned",
-                    "((18446744073709551615ULL + 1u) & 1u) !=\n((18446744073709551615ULL + 1u) ^ 1u)",
-                    "tests/arith/bitwise.c",65);
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "Assertion";
+    __gen_e_acsl_assert_data_17.pred_txt = "((18446744073709551615ULL + 1u) & 1u) !=\n((18446744073709551615ULL + 1u) ^ 1u)";
+    __gen_e_acsl_assert_data_17.file = "tests/arith/bitwise.c";
+    __gen_e_acsl_assert_data_17.fct = "g_unsigned";
+    __gen_e_acsl_assert_data_17.line = 65;
+    __e_acsl_assert(__gen_e_acsl_ne_4 != 0,& __gen_e_acsl_assert_data_17);
     __gmpz_clear(__gen_e_acsl__16);
     __gmpz_clear(__gen_e_acsl__17);
     __gmpz_clear(__gen_e_acsl_add_4);
@@ -664,7 +1120,7 @@ void g_unsigned(unsigned int a, unsigned int b)
   }
   /*@
   assert
-  ((18446744073709551615ULL + 1u) & 1u) ≢
+  ((18446744073709551615ULL + 1u) & 1u) !=
   ((18446744073709551615ULL + 1u) ^ 1u); */
   ;
   return;
@@ -673,6 +1129,7 @@ void g_unsigned(unsigned int a, unsigned int b)
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int a = 4;
   int b = 8;
   f_signed(a,b);
@@ -680,6 +1137,7 @@ int main(void)
   g_signed(a,b);
   g_unsigned((unsigned int)a,(unsigned int)b);
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_cast.c b/src/plugins/e-acsl/tests/arith/oracle/gen_cast.c
index c90b243c08b820282bfe99606fabc72eac11e6ac..7a60108cfeca786adbe03c80bcd7ab7b721db703 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_cast.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_cast.c
@@ -1,37 +1,105 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   long x = (long)0;
   int y = 0;
-  __e_acsl_assert((int)x == y,1,"Assertion","main","(int)x == y",
-                  "tests/arith/cast.i",9);
-  /*@ assert (int)x ≡ y; */ ;
-  __e_acsl_assert(x == (long)y,1,"Assertion","main","x == (long)y",
-                  "tests/arith/cast.i",10);
-  /*@ assert x ≡ (long)y; */ ;
-  __e_acsl_assert(y == 0,1,"Assertion","main","y == (int)0",
-                  "tests/arith/cast.i",12);
-  /*@ assert y ≡ (int)0; */ ;
-  __e_acsl_assert((unsigned int)y == 0U,1,"Assertion","main",
-                  "(unsigned int)y == (unsigned int)0","tests/arith/cast.i",
-                  13);
-  /*@ assert (unsigned int)y ≡ (unsigned int)0; */ ;
-  __e_acsl_assert(y != -1,1,"Assertion","main","y != (int)0xfffffffffffffff",
-                  "tests/arith/cast.i",16);
-  /*@ assert y ≢ (int)0xfffffffffffffff; */ ;
-  __e_acsl_assert((unsigned int)y != 4294967295U,1,"Assertion","main",
-                  "(unsigned int)y != (unsigned int)0xfffffffffffffff",
-                  "tests/arith/cast.i",17);
-  /*@ assert (unsigned int)y ≢ (unsigned int)0xfffffffffffffff; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data,"x",0,x);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"y",0,y);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "(int)x == y";
+    __gen_e_acsl_assert_data.file = "tests/arith/cast.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 9;
+    __e_acsl_assert((int)x == y,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert (int)x == y; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_2,"x",0,x);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"y",0,y);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "x == (long)y";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/cast.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 10;
+    __e_acsl_assert(x == (long)y,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+  }
+  /*@ assert x == (long)y; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"y",0,y);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "y == (int)0";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/cast.i";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 12;
+    __e_acsl_assert(y == 0,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+  }
+  /*@ assert y == (int)0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"y",0,y);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "(unsigned int)y == (unsigned int)0";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/cast.i";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 13;
+    __e_acsl_assert((unsigned int)y == 0U,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+  }
+  /*@ assert (unsigned int)y == (unsigned int)0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"y",0,y);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "y != (int)0xfffffffffffffff";
+    __gen_e_acsl_assert_data_5.file = "tests/arith/cast.i";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 16;
+    __e_acsl_assert(y != -1,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+  }
+  /*@ assert y != (int)0xfffffffffffffff; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"y",0,y);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "(unsigned int)y != (unsigned int)0xfffffffffffffff";
+    __gen_e_acsl_assert_data_6.file = "tests/arith/cast.i";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 17;
+    __e_acsl_assert((unsigned int)y != 4294967295U,
+                    & __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+  }
+  /*@ assert (unsigned int)y != (unsigned int)0xfffffffffffffff; */ ;
   int t[2] = {0, 1};
-  /*@ assert (float)x ≡ t[(int)0.1]; */ ;
+  /*@ assert (float)x == t[(int)0.1]; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_comparison.c b/src/plugins/e-acsl/tests/arith/oracle/gen_comparison.c
index 54bd5b922db1f35431245daea4cb02c20ae03002..680a1b603445ca1e2ed7db3df6c9427d54e1012c 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_comparison.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_comparison.c
@@ -1,67 +1,234 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int x = 0;
   int y = 1;
-  __e_acsl_assert(x < y,1,"Assertion","main","x < y",
-                  "tests/arith/comparison.i",7);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"y",0,y);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "x < y";
+    __gen_e_acsl_assert_data.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 7;
+    __e_acsl_assert(x < y,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
   /*@ assert x < y; */ ;
-  __e_acsl_assert(y > x,1,"Assertion","main","y > x",
-                  "tests/arith/comparison.i",8);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"y",0,y);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "y > x";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 8;
+    __e_acsl_assert(y > x,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+  }
   /*@ assert y > x; */ ;
-  __e_acsl_assert(x <= 0,1,"Assertion","main","x <= 0",
-                  "tests/arith/comparison.i",9);
-  /*@ assert x ≤ 0; */ ;
-  __e_acsl_assert(y >= 1,1,"Assertion","main","y >= 1",
-                  "tests/arith/comparison.i",10);
-  /*@ assert y ≥ 1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"x",0,x);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "x <= 0";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 9;
+    __e_acsl_assert(x <= 0,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+  }
+  /*@ assert x <= 0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"y",0,y);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "y >= 1";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 10;
+    __e_acsl_assert(y >= 1,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+  }
+  /*@ assert y >= 1; */ ;
   char *s = (char *)"toto";
-  __e_acsl_assert(s == s,1,"Assertion","main","s == s",
-                  "tests/arith/comparison.i",12);
-  /*@ assert s ≡ s; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","5 < 18","tests/arith/comparison.i",
-                  15);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"s",(void *)s);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"s",(void *)s);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "s == s";
+    __gen_e_acsl_assert_data_5.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 12;
+    __e_acsl_assert(s == s,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+  }
+  /*@ assert s == s; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "5 < 18";
+    __gen_e_acsl_assert_data_6.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 15;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_6);
+  }
   /*@ assert 5 < 18; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","32 > 3","tests/arith/comparison.i",
-                  16);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "32 > 3";
+    __gen_e_acsl_assert_data_7.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 16;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_7);
+  }
   /*@ assert 32 > 3; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","12 <= 13",
-                  "tests/arith/comparison.i",17);
-  /*@ assert 12 ≤ 13; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","123 >= 12",
-                  "tests/arith/comparison.i",18);
-  /*@ assert 123 ≥ 12; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","0xff == 0xff",
-                  "tests/arith/comparison.i",19);
-  /*@ assert 0xff ≡ 0xff; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","1 != 2","tests/arith/comparison.i",
-                  20);
-  /*@ assert 1 ≢ 2; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","-5 < 18",
-                  "tests/arith/comparison.i",22);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "12 <= 13";
+    __gen_e_acsl_assert_data_8.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 17;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_8);
+  }
+  /*@ assert 12 <= 13; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "123 >= 12";
+    __gen_e_acsl_assert_data_9.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 18;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_9);
+  }
+  /*@ assert 123 >= 12; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "0xff == 0xff";
+    __gen_e_acsl_assert_data_10.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 19;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_10);
+  }
+  /*@ assert 0xff == 0xff; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "1 != 2";
+    __gen_e_acsl_assert_data_11.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 20;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_11);
+  }
+  /*@ assert 1 != 2; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "-5 < 18";
+    __gen_e_acsl_assert_data_12.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 22;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_12);
+  }
   /*@ assert -5 < 18; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","32 > -3",
-                  "tests/arith/comparison.i",23);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "32 > -3";
+    __gen_e_acsl_assert_data_13.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 23;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_13);
+  }
   /*@ assert 32 > -3; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","-12 <= 13",
-                  "tests/arith/comparison.i",24);
-  /*@ assert -12 ≤ 13; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","123 >= -12",
-                  "tests/arith/comparison.i",25);
-  /*@ assert 123 ≥ -12; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","-0xff == -0xff",
-                  "tests/arith/comparison.i",26);
-  /*@ assert -0xff ≡ -0xff; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","1 != -2",
-                  "tests/arith/comparison.i",27);
-  /*@ assert 1 ≢ -2; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_14.blocking = 1;
+    __gen_e_acsl_assert_data_14.kind = "Assertion";
+    __gen_e_acsl_assert_data_14.pred_txt = "-12 <= 13";
+    __gen_e_acsl_assert_data_14.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_14.fct = "main";
+    __gen_e_acsl_assert_data_14.line = 24;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_14);
+  }
+  /*@ assert -12 <= 13; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_15.blocking = 1;
+    __gen_e_acsl_assert_data_15.kind = "Assertion";
+    __gen_e_acsl_assert_data_15.pred_txt = "123 >= -12";
+    __gen_e_acsl_assert_data_15.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_15.fct = "main";
+    __gen_e_acsl_assert_data_15.line = 25;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_15);
+  }
+  /*@ assert 123 >= -12; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_16.blocking = 1;
+    __gen_e_acsl_assert_data_16.kind = "Assertion";
+    __gen_e_acsl_assert_data_16.pred_txt = "-0xff == -0xff";
+    __gen_e_acsl_assert_data_16.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_16.fct = "main";
+    __gen_e_acsl_assert_data_16.line = 26;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_16);
+  }
+  /*@ assert -0xff == -0xff; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "Assertion";
+    __gen_e_acsl_assert_data_17.pred_txt = "1 != -2";
+    __gen_e_acsl_assert_data_17.file = "tests/arith/comparison.i";
+    __gen_e_acsl_assert_data_17.fct = "main";
+    __gen_e_acsl_assert_data_17.line = 27;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_17);
+  }
+  /*@ assert 1 != -2; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_extended_quantifiers.c b/src/plugins/e-acsl/tests/arith/oracle/gen_extended_quantifiers.c
index da4ae76d9a2dc941cd22be41c7151f8fe73144aa..9a9cae008d301bd15f1fea36d2f59ae3057ec6b0 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_extended_quantifiers.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_extended_quantifiers.c
@@ -1,12 +1,13 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   unsigned long x = (unsigned long)4294967295U;
   int y = 10;
   {
@@ -15,6 +16,7 @@ int main(void)
     int __gen_e_acsl_cond;
     int __gen_e_acsl_lambda;
     int __gen_e_acsl_accumulator;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gen_e_acsl_one = 1;
     __gen_e_acsl_cond = 0;
     __gen_e_acsl_lambda = 0;
@@ -24,26 +26,34 @@ int main(void)
       __gen_e_acsl_cond = __gen_e_acsl_k > 10;
       if (__gen_e_acsl_cond) break;
       else {
-        /*@ assert Eva: signed_overflow: 2 * __gen_e_acsl_k ≤ 2147483647;
-        */
+        /*@ assert Eva: signed_overflow: 2 * __gen_e_acsl_k <= 2147483647; */
         __gen_e_acsl_lambda = 2 * __gen_e_acsl_k;
         /*@ assert
             Eva: signed_overflow:
-              __gen_e_acsl_accumulator + __gen_e_acsl_lambda ≤ 2147483647;
+              __gen_e_acsl_accumulator + __gen_e_acsl_lambda <= 2147483647;
         */
         __gen_e_acsl_accumulator += __gen_e_acsl_lambda;
         /*@ assert
             Eva: signed_overflow:
-              __gen_e_acsl_k + __gen_e_acsl_one ≤ 2147483647;
+              __gen_e_acsl_k + __gen_e_acsl_one <= 2147483647;
         */
         __gen_e_acsl_k += __gen_e_acsl_one;
       }
     }
-    __e_acsl_assert(__gen_e_acsl_accumulator == 108,1,"Assertion","main",
-                    "\\sum(2, 10, \\lambda integer k; 2 * k) == 108",
-                    "tests/arith/extended_quantifiers.c",11);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\sum(2, 10, \\lambda integer k; 2 * k)",0,
+                                 __gen_e_acsl_accumulator);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\sum(2, 10, \\lambda integer k; 2 * k) == 108";
+    __gen_e_acsl_assert_data.file = "tests/arith/extended_quantifiers.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 11;
+    __e_acsl_assert(__gen_e_acsl_accumulator == 108,
+                    & __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert \sum(2, 10, \lambda ℤ k; 2 * k) ≡ 108; */ ;
+  /*@ assert \sum(2, 10, \lambda integer k; 2 * k) == 108; */ ;
   {
     int __gen_e_acsl_k_2;
     int __gen_e_acsl_one_2;
@@ -52,6 +62,8 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_accumulator_2;
     __e_acsl_mpz_t __gen_e_acsl__2;
     int __gen_e_acsl_ne;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
     __gen_e_acsl_one_2 = 1;
     __gen_e_acsl_cond_2 = 0;
     __gmpz_init_set_si(__gen_e_acsl_lambda_2,0L);
@@ -73,28 +85,40 @@ int main(void)
                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_lambda_2));
         /*@ assert
             Eva: signed_overflow:
-              __gen_e_acsl_k_2 + __gen_e_acsl_one_2 ≤ 2147483647;
+              __gen_e_acsl_k_2 + __gen_e_acsl_one_2 <= 2147483647;
         */
         __gen_e_acsl_k_2 += __gen_e_acsl_one_2;
       }
     }
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2,
+                                 "\\sum(2, 35, \\lambda integer k; 18446744073709551615ULL)",
+                                 0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_2));
     __gmpz_init_set_si(__gen_e_acsl__2,0L);
     __gen_e_acsl_ne = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_2),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
-    __e_acsl_assert(__gen_e_acsl_ne != 0,1,"Assertion","main",
-                    "\\sum(2, 35, \\lambda integer k; 18446744073709551615ULL) != 0",
-                    "tests/arith/extended_quantifiers.c",12);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\sum(2, 35, \\lambda integer k; 18446744073709551615ULL) != 0";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/extended_quantifiers.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 12;
+    __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     __gmpz_clear(__gen_e_acsl_lambda_2);
     __gmpz_clear(__gen_e_acsl_accumulator_2);
     __gmpz_clear(__gen_e_acsl__2);
   }
-  /*@ assert \sum(2, 35, \lambda ℤ k; 18446744073709551615ULL) ≢ 0; */ ;
+  /*@ assert \sum(2, 35, \lambda integer k; 18446744073709551615ULL) != 0; */
+  ;
   {
     int __gen_e_acsl_k_3;
     int __gen_e_acsl_one_3;
     int __gen_e_acsl_cond_3;
     int __gen_e_acsl_lambda_3;
     int __gen_e_acsl_accumulator_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
     __gen_e_acsl_one_3 = 1;
     __gen_e_acsl_cond_3 = 0;
     __gen_e_acsl_lambda_3 = 0;
@@ -109,11 +133,20 @@ int main(void)
         __gen_e_acsl_k_3 += __gen_e_acsl_one_3;
       }
     }
-    __e_acsl_assert(__gen_e_acsl_accumulator_3 == 0,1,"Assertion","main",
-                    "\\sum(10, 2, \\lambda integer k; k) == 0",
-                    "tests/arith/extended_quantifiers.c",13);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\sum(10, 2, \\lambda integer k; k)",0,
+                                 __gen_e_acsl_accumulator_3);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\sum(10, 2, \\lambda integer k; k) == 0";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/extended_quantifiers.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 13;
+    __e_acsl_assert(__gen_e_acsl_accumulator_3 == 0,
+                    & __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert \sum(10, 2, \lambda ℤ k; k) ≡ 0; */ ;
+  /*@ assert \sum(10, 2, \lambda integer k; k) == 0; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_x;
     __e_acsl_mpz_t __gen_e_acsl_mul;
@@ -125,7 +158,11 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_accumulator_4;
     __e_acsl_mpz_t __gen_e_acsl__4;
     int __gen_e_acsl_eq;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"x",0,x);
     __gmpz_init_set_ui(__gen_e_acsl_x,x);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"x",0,x);
     __gmpz_init(__gen_e_acsl_mul);
     __gmpz_mul(__gen_e_acsl_mul,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_x),
@@ -152,12 +189,20 @@ int main(void)
                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_one_4));
       }
     }
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_4,
+                                 "\\sum(x * x, 2, \\lambda integer k; k)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_4));
     __gmpz_init_set_si(__gen_e_acsl__4,0L);
     __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_4),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
-    __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main",
-                    "\\sum(x * x, 2, \\lambda integer k; k) == 0",
-                    "tests/arith/extended_quantifiers.c",14);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\sum(x * x, 2, \\lambda integer k; k) == 0";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/extended_quantifiers.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 14;
+    __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     __gmpz_clear(__gen_e_acsl_x);
     __gmpz_clear(__gen_e_acsl_mul);
     __gmpz_clear(__gen_e_acsl__3);
@@ -167,7 +212,7 @@ int main(void)
     __gmpz_clear(__gen_e_acsl_accumulator_4);
     __gmpz_clear(__gen_e_acsl__4);
   }
-  /*@ assert \sum(x * x, 2, \lambda ℤ k; k) ≡ 0; */ ;
+  /*@ assert \sum(x * x, 2, \lambda integer k; k) == 0; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__5;
     __e_acsl_mpz_t __gen_e_acsl__6;
@@ -176,6 +221,8 @@ int main(void)
     int __gen_e_acsl_cond_5;
     int __gen_e_acsl_lambda_5;
     int __gen_e_acsl_accumulator_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
     __gmpz_init_set_ui(__gen_e_acsl__5,18446744073709551615UL - 5UL);
     __gmpz_init_set_ui(__gen_e_acsl__6,18446744073709551615UL);
     __gmpz_init_set_si(__gen_e_acsl_one_5,1L);
@@ -192,7 +239,7 @@ int main(void)
         __gen_e_acsl_lambda_5 = 1;
         /*@ assert
             Eva: signed_overflow:
-              __gen_e_acsl_accumulator_5 + __gen_e_acsl_lambda_5 ≤
+              __gen_e_acsl_accumulator_5 + __gen_e_acsl_lambda_5 <=
               2147483647;
         */
         __gen_e_acsl_accumulator_5 += __gen_e_acsl_lambda_5;
@@ -201,9 +248,18 @@ int main(void)
                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_one_5));
       }
     }
-    __e_acsl_assert(__gen_e_acsl_accumulator_5 == 6,1,"Assertion","main",
-                    "\\sum(18446744073709551615ULL - 5, 18446744073709551615ULL,\n    \\lambda integer k; 1)\n== 6",
-                    "tests/arith/extended_quantifiers.c",15);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\sum(18446744073709551615ULL - 5, 18446744073709551615ULL,\n    \\lambda integer k; 1)",
+                                 0,__gen_e_acsl_accumulator_5);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "\\sum(18446744073709551615ULL - 5, 18446744073709551615ULL,\n    \\lambda integer k; 1)\n== 6";
+    __gen_e_acsl_assert_data_5.file = "tests/arith/extended_quantifiers.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 15;
+    __e_acsl_assert(__gen_e_acsl_accumulator_5 == 6,
+                    & __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     __gmpz_clear(__gen_e_acsl__5);
     __gmpz_clear(__gen_e_acsl__6);
     __gmpz_clear(__gen_e_acsl_k_5);
@@ -212,8 +268,8 @@ int main(void)
   /*@
   assert
   \sum(18446744073709551615ULL - 5, 18446744073709551615ULL,
-      \lambda ℤ k; 1)
-  ≡ 6; */
+      \lambda integer k; 1)
+  == 6; */
   ;
   {
     unsigned int __gen_e_acsl_k_6;
@@ -221,6 +277,8 @@ int main(void)
     int __gen_e_acsl_cond_6;
     unsigned int __gen_e_acsl_lambda_6;
     unsigned int __gen_e_acsl_accumulator_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
     __gen_e_acsl_one_6 = 1;
     __gen_e_acsl_cond_6 = 0;
     __gen_e_acsl_lambda_6 = 0;
@@ -235,12 +293,21 @@ int main(void)
         __gen_e_acsl_k_6 += __gen_e_acsl_one_6;
       }
     }
-    __e_acsl_assert(__gen_e_acsl_accumulator_6 + 1U > 2147483647U,1,
-                    "Assertion","main",
-                    "\\sum(2147483647, 2147483647, \\lambda integer k; k) + 1 > 2147483647",
-                    "tests/arith/extended_quantifiers.c",16);
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_6,
+                                  "\\sum(2147483647, 2147483647, \\lambda integer k; k)",
+                                  0,__gen_e_acsl_accumulator_6);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "\\sum(2147483647, 2147483647, \\lambda integer k; k) + 1 > 2147483647";
+    __gen_e_acsl_assert_data_6.file = "tests/arith/extended_quantifiers.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 16;
+    __e_acsl_assert(__gen_e_acsl_accumulator_6 + 1U > 2147483647U,
+                    & __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
-  /*@ assert \sum(2147483647, 2147483647, \lambda ℤ k; k) + 1 > 2147483647;
+  /*@
+  assert \sum(2147483647, 2147483647, \lambda integer k; k) + 1 > 2147483647;
    */
   ;
   {
@@ -250,7 +317,11 @@ int main(void)
     int __gen_e_acsl_cond_7;
     long __gen_e_acsl_lambda_7;
     long __gen_e_acsl_accumulator_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
     __gen_e_acsl_x_2 = 1;
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"x",0,
+                                 __gen_e_acsl_x_2);
     __gen_e_acsl_one_7 = 1;
     __gen_e_acsl_cond_7 = 0;
     __gen_e_acsl_lambda_7 = 0;
@@ -263,24 +334,33 @@ int main(void)
         __gen_e_acsl_lambda_7 = -2147483647 - 1;
         /*@ assert
             Eva: signed_overflow:
-              -9223372036854775808 ≤
+              -9223372036854775808 <=
               __gen_e_acsl_accumulator_7 + __gen_e_acsl_lambda_7;
         */
         __gen_e_acsl_accumulator_7 += __gen_e_acsl_lambda_7;
         /*@ assert
             Eva: signed_overflow:
-              __gen_e_acsl_k_7 + __gen_e_acsl_one_7 ≤ 2147483647;
+              __gen_e_acsl_k_7 + __gen_e_acsl_one_7 <= 2147483647;
         */
         __gen_e_acsl_k_7 += __gen_e_acsl_one_7;
       }
     }
-    __e_acsl_assert(__gen_e_acsl_accumulator_7 < 0L,1,"Assertion","main",
-                    "\\let x = 0 == 0? 1: 10; \\sum(x, 10, \\lambda integer k; -2147483647 - 1) < 0",
-                    "tests/arith/extended_quantifiers.c",17);
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_7,
+                                  "\\sum(x, 10, \\lambda integer k; -2147483647 - 1)",
+                                  0,__gen_e_acsl_accumulator_7);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "\\let x = 0 == 0? 1: 10; \\sum(x, 10, \\lambda integer k; -2147483647 - 1) < 0";
+    __gen_e_acsl_assert_data_7.file = "tests/arith/extended_quantifiers.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 17;
+    __e_acsl_assert(__gen_e_acsl_accumulator_7 < 0L,
+                    & __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
   /*@
   assert
-  \let x = 0 ≡ 0? 1: 10; \sum(x, 10, \lambda ℤ k; -2147483647 - 1) < 0;
+  \let x = 0 == 0? 1: 10; \sum(x, 10, \lambda integer k; -2147483647 - 1) < 0;
    */
   ;
   {
@@ -289,6 +369,8 @@ int main(void)
     int __gen_e_acsl_cond_8;
     int __gen_e_acsl_lambda_8;
     int __gen_e_acsl_accumulator_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
     __gen_e_acsl_one_8 = 1;
     __gen_e_acsl_cond_8 = 0;
     __gen_e_acsl_lambda_8 = 0;
@@ -306,28 +388,39 @@ int main(void)
         }
         /*@ assert
             Eva: signed_overflow:
-              __gen_e_acsl_accumulator_8 + __gen_e_acsl_lambda_8 ≤
+              __gen_e_acsl_accumulator_8 + __gen_e_acsl_lambda_8 <=
               2147483647;
         */
         __gen_e_acsl_accumulator_8 += __gen_e_acsl_lambda_8;
         /*@ assert
             Eva: signed_overflow:
-              __gen_e_acsl_k_8 + __gen_e_acsl_one_8 ≤ 2147483647;
+              __gen_e_acsl_k_8 + __gen_e_acsl_one_8 <= 2147483647;
         */
         __gen_e_acsl_k_8 += __gen_e_acsl_one_8;
       }
     }
-    __e_acsl_assert(__gen_e_acsl_accumulator_8 == 9,1,"Assertion","main",
-                    "\\numof(2, 10, \\lambda integer k; k - 2 >= 0) == 9",
-                    "tests/arith/extended_quantifiers.c",20);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                 "\\sum(2, 10, \\lambda integer k; k - 2 >= 0? 1: 0)",
+                                 0,__gen_e_acsl_accumulator_8);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "\\numof(2, 10, \\lambda integer k; k - 2 >= 0) == 9";
+    __gen_e_acsl_assert_data_8.file = "tests/arith/extended_quantifiers.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 20;
+    __e_acsl_assert(__gen_e_acsl_accumulator_8 == 9,
+                    & __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
-  /*@ assert \numof(2, 10, \lambda ℤ k; k - 2 ≥ 0) ≡ 9; */ ;
+  /*@ assert \numof(2, 10, \lambda integer k; k - 2 >= 0) == 9; */ ;
   {
     unsigned long __gen_e_acsl_k_9;
     unsigned long __gen_e_acsl_one_9;
     int __gen_e_acsl_cond_9;
     int __gen_e_acsl_lambda_9;
     int __gen_e_acsl_accumulator_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
     __gen_e_acsl_one_9 = 1;
     __gen_e_acsl_cond_9 = 0;
     __gen_e_acsl_lambda_9 = 0;
@@ -345,20 +438,30 @@ int main(void)
         }
         /*@ assert
             Eva: signed_overflow:
-              __gen_e_acsl_accumulator_9 + __gen_e_acsl_lambda_9 ≤
+              __gen_e_acsl_accumulator_9 + __gen_e_acsl_lambda_9 <=
               2147483647;
         */
         __gen_e_acsl_accumulator_9 += __gen_e_acsl_lambda_9;
         __gen_e_acsl_k_9 += __gen_e_acsl_one_9;
       }
     }
-    __e_acsl_assert(__gen_e_acsl_accumulator_9 == 3,1,"Assertion","main",
-                    "\\numof(4294967295U - 5, 4294967295U, \\lambda integer k; k % 2 == 1) == 3",
-                    "tests/arith/extended_quantifiers.c",21);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                 "\\sum(4294967295U - 5, 4294967295U, \\lambda integer k; k % 2 == 1? 1: 0)",
+                                 0,__gen_e_acsl_accumulator_9);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "\\numof(4294967295U - 5, 4294967295U, \\lambda integer k; k % 2 == 1) == 3";
+    __gen_e_acsl_assert_data_9.file = "tests/arith/extended_quantifiers.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 21;
+    __e_acsl_assert(__gen_e_acsl_accumulator_9 == 3,
+                    & __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
   /*@
   assert
-  \numof(4294967295U - 5, 4294967295U, \lambda ℤ k; k % 2 ≡ 1) ≡ 3; */
+  \numof(4294967295U - 5, 4294967295U, \lambda integer k; k % 2 == 1) == 3;
+   */
   ;
   {
     int __gen_e_acsl_k_10;
@@ -368,6 +471,8 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_accumulator_10;
     __e_acsl_mpz_t __gen_e_acsl__7;
     int __gen_e_acsl_ge;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
     __gen_e_acsl_one_10 = 1;
     __gen_e_acsl_cond_10 = 0;
     __gmpz_init_set_si(__gen_e_acsl_lambda_10,0L);
@@ -383,28 +488,39 @@ int main(void)
                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_lambda_10));
         /*@ assert
             Eva: signed_overflow:
-              __gen_e_acsl_k_10 + __gen_e_acsl_one_10 ≤ 2147483647;
+              __gen_e_acsl_k_10 + __gen_e_acsl_one_10 <= 2147483647;
         */
         __gen_e_acsl_k_10 += __gen_e_acsl_one_10;
       }
     }
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_10,
+                                 "\\product(1, 100, \\lambda integer k; k)",
+                                 0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_10));
     __gmpz_init_set_ui(__gen_e_acsl__7,3628800UL);
     __gen_e_acsl_ge = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_10),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__7));
-    __e_acsl_assert(__gen_e_acsl_ge >= 0,1,"Assertion","main",
-                    "\\product(1, 100, \\lambda integer k; k) >= 3628800",
-                    "tests/arith/extended_quantifiers.c",25);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "\\product(1, 100, \\lambda integer k; k) >= 3628800";
+    __gen_e_acsl_assert_data_10.file = "tests/arith/extended_quantifiers.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 25;
+    __e_acsl_assert(__gen_e_acsl_ge >= 0,& __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
     __gmpz_clear(__gen_e_acsl_lambda_10);
     __gmpz_clear(__gen_e_acsl_accumulator_10);
     __gmpz_clear(__gen_e_acsl__7);
   }
-  /*@ assert \product(1, 100, \lambda ℤ k; k) ≥ 3628800; */ ;
+  /*@ assert \product(1, 100, \lambda integer k; k) >= 3628800; */ ;
   {
     int __gen_e_acsl_k_11;
     int __gen_e_acsl_one_11;
     int __gen_e_acsl_cond_11;
     unsigned long __gen_e_acsl_lambda_11;
     unsigned long __gen_e_acsl_accumulator_11;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
     __gen_e_acsl_one_11 = 1;
     __gen_e_acsl_cond_11 = 0;
     __gen_e_acsl_lambda_11 = 0;
@@ -418,17 +534,25 @@ int main(void)
         __gen_e_acsl_accumulator_11 *= __gen_e_acsl_lambda_11;
         /*@ assert
             Eva: signed_overflow:
-              __gen_e_acsl_k_11 + __gen_e_acsl_one_11 ≤ 2147483647;
+              __gen_e_acsl_k_11 + __gen_e_acsl_one_11 <= 2147483647;
         */
         __gen_e_acsl_k_11 += __gen_e_acsl_one_11;
       }
     }
-    __e_acsl_assert(__gen_e_acsl_accumulator_11 == 3628800UL,1,"Assertion",
-                    "main",
-                    "\\product(1, 10, \\lambda integer k; k) == 3628800",
-                    "tests/arith/extended_quantifiers.c",26);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11,
+                                   "\\product(1, 10, \\lambda integer k; k)",
+                                   0,__gen_e_acsl_accumulator_11);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "\\product(1, 10, \\lambda integer k; k) == 3628800";
+    __gen_e_acsl_assert_data_11.file = "tests/arith/extended_quantifiers.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 26;
+    __e_acsl_assert(__gen_e_acsl_accumulator_11 == 3628800UL,
+                    & __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
   }
-  /*@ assert \product(1, 10, \lambda ℤ k; k) ≡ 3628800; */ ;
+  /*@ assert \product(1, 10, \lambda integer k; k) == 3628800; */ ;
   {
     int __gen_e_acsl_k_12;
     int __gen_e_acsl_one_12;
@@ -437,6 +561,8 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_accumulator_12;
     __e_acsl_mpz_t __gen_e_acsl__8;
     int __gen_e_acsl_eq_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
     __gen_e_acsl_one_12 = 1;
     __gen_e_acsl_cond_12 = 0;
     __gmpz_init_set_si(__gen_e_acsl_lambda_12,0L);
@@ -452,22 +578,31 @@ int main(void)
                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_lambda_12));
         /*@ assert
             Eva: signed_overflow:
-              __gen_e_acsl_k_12 + __gen_e_acsl_one_12 ≤ 2147483647;
+              __gen_e_acsl_k_12 + __gen_e_acsl_one_12 <= 2147483647;
         */
         __gen_e_acsl_k_12 += __gen_e_acsl_one_12;
       }
     }
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_12,
+                                 "\\product(-10, 10, \\lambda integer k; k)",
+                                 0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_12));
     __gmpz_init_set_si(__gen_e_acsl__8,0L);
     __gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_12),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__8));
-    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","main",
-                    "\\product(-10, 10, \\lambda integer k; k) == 0",
-                    "tests/arith/extended_quantifiers.c",27);
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "\\product(-10, 10, \\lambda integer k; k) == 0";
+    __gen_e_acsl_assert_data_12.file = "tests/arith/extended_quantifiers.c";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 27;
+    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
     __gmpz_clear(__gen_e_acsl_lambda_12);
     __gmpz_clear(__gen_e_acsl_accumulator_12);
     __gmpz_clear(__gen_e_acsl__8);
   }
-  /*@ assert \product(-10, 10, \lambda ℤ k; k) ≡ 0; */ ;
+  /*@ assert \product(-10, 10, \lambda integer k; k) == 0; */ ;
   {
     int __gen_e_acsl_k_13;
     int __gen_e_acsl_one_13;
@@ -480,6 +615,8 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_lambda_14;
     __e_acsl_mpz_t __gen_e_acsl_accumulator_14;
     int __gen_e_acsl_eq_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
     __gen_e_acsl_one_13 = 1;
     __gen_e_acsl_cond_13 = 0;
     __gmpz_init_set_si(__gen_e_acsl_lambda_13,0L);
@@ -492,7 +629,7 @@ int main(void)
         {
           __e_acsl_mpz_t __gen_e_acsl__9;
           /*@ assert
-              Eva: signed_overflow: 2 * __gen_e_acsl_k_13 ≤ 2147483647;
+              Eva: signed_overflow: 2 * __gen_e_acsl_k_13 <= 2147483647;
           */
           __gmpz_init_set_si(__gen_e_acsl__9,(long)(2 * __gen_e_acsl_k_13));
           __gmpz_set(__gen_e_acsl_lambda_13,
@@ -504,11 +641,15 @@ int main(void)
                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_lambda_13));
         /*@ assert
             Eva: signed_overflow:
-              __gen_e_acsl_k_13 + __gen_e_acsl_one_13 ≤ 2147483647;
+              __gen_e_acsl_k_13 + __gen_e_acsl_one_13 <= 2147483647;
         */
         __gen_e_acsl_k_13 += __gen_e_acsl_one_13;
       }
     }
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_13,
+                                 "\\product(-20, -1, \\lambda integer k; 2 * k)",
+                                 0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_13));
     __gen_e_acsl_one_14 = 1;
     __gen_e_acsl_cond_14 = 0;
     __gmpz_init_set_si(__gen_e_acsl_lambda_14,0L);
@@ -521,7 +662,7 @@ int main(void)
         {
           __e_acsl_mpz_t __gen_e_acsl__10;
           /*@ assert
-              Eva: signed_overflow: 2 * __gen_e_acsl_k_14 ≤ 2147483647;
+              Eva: signed_overflow: 2 * __gen_e_acsl_k_14 <= 2147483647;
           */
           __gmpz_init_set_si(__gen_e_acsl__10,(long)(2 * __gen_e_acsl_k_14));
           __gmpz_set(__gen_e_acsl_lambda_14,
@@ -533,16 +674,25 @@ int main(void)
                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_lambda_14));
         /*@ assert
             Eva: signed_overflow:
-              __gen_e_acsl_k_14 + __gen_e_acsl_one_14 ≤ 2147483647;
+              __gen_e_acsl_k_14 + __gen_e_acsl_one_14 <= 2147483647;
         */
         __gen_e_acsl_k_14 += __gen_e_acsl_one_14;
       }
     }
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_13,
+                                 "\\product(1, 20, \\lambda integer k; 2 * k)",
+                                 0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_14));
     __gen_e_acsl_eq_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_13),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_14));
-    __e_acsl_assert(__gen_e_acsl_eq_3 == 0,1,"Assertion","main",
-                    "\\product(-20, -1, \\lambda integer k; 2 * k) ==\n\\product(1, 20, \\lambda integer k; 2 * k)",
-                    "tests/arith/extended_quantifiers.c",28);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "\\product(-20, -1, \\lambda integer k; 2 * k) ==\n\\product(1, 20, \\lambda integer k; 2 * k)";
+    __gen_e_acsl_assert_data_13.file = "tests/arith/extended_quantifiers.c";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 28;
+    __e_acsl_assert(__gen_e_acsl_eq_3 == 0,& __gen_e_acsl_assert_data_13);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
     __gmpz_clear(__gen_e_acsl_lambda_13);
     __gmpz_clear(__gen_e_acsl_accumulator_13);
     __gmpz_clear(__gen_e_acsl_lambda_14);
@@ -550,10 +700,11 @@ int main(void)
   }
   /*@
   assert
-  \product(-20, -1, \lambda ℤ k; 2 * k) ≡
-  \product(1, 20, \lambda ℤ k; 2 * k); */
+  \product(-20, -1, \lambda integer k; 2 * k) ==
+  \product(1, 20, \lambda integer k; 2 * k); */
   ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_functions.c b/src/plugins/e-acsl/tests/arith/oracle/gen_functions.c
index dc51dcaf62a26dfaa493d6061af5d7f4c135475e..6bd2bbd73c66635ad276ec899f77a5d71adcb0a7 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_functions.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_functions.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -13,7 +13,7 @@ typedef struct mystruct mystruct;
  */
 int __gen_e_acsl_p1(int x, int y);
 
-/*@ predicate p2(ℤ x, ℤ y) = x + y > 0;
+/*@ predicate p2(integer x, integer y) = x + y > 0;
 
 */
 int __gen_e_acsl_p2(int x, int y);
@@ -22,7 +22,7 @@ int __gen_e_acsl_p2_5(int x, long y);
 
 int __gen_e_acsl_p2_3(int x, __e_acsl_mpz_struct * y);
 
-/*@ logic ℤ f1(ℤ x, ℤ y) = x + y;
+/*@ logic integer f1(integer x, integer y) = x + y;
 
 */
 long __gen_e_acsl_f1(int x, int y);
@@ -53,11 +53,11 @@ int __gen_e_acsl_g(int x);
  */
 mystruct __gen_e_acsl_t1(mystruct m);
 
-/*@ logic ℤ t2(mystruct m) = m.k + m.l;
+/*@ logic integer t2(mystruct m) = m.k + m.l;
  */
 long __gen_e_acsl_t2(mystruct m);
 
-/*@ predicate k_pred(ℤ x) = x > 0;
+/*@ predicate k_pred(integer x) = x > 0;
 
 */
 int __gen_e_acsl_k_pred(int x);
@@ -71,17 +71,17 @@ void k(int x)
 }
 
 int glob = 5;
-/*@ predicate never_called(int x) = x ≡ x;
+/*@ predicate never_called(int x) = x == x;
  */
 /*@ logic double f2(double x) = (double)(1 / x);
  */
 double __gen_e_acsl_f2(double x);
 
-/*@ predicate p_notyet{L}(ℤ x) = x > 0;
+/*@ predicate p_notyet{L}(integer x) = x > 0;
  */
-/*@ logic ℤ f_notyet{L}(ℤ x) = x;
+/*@ logic integer f_notyet{L}(integer x) = x;
  */
-/*@ logic ℤ f_sum(ℤ x) = \sum(1, x, \lambda ℤ y; 1);
+/*@ logic integer f_sum(integer x) = \sum(1, x, \lambda integer y; 1);
 
 */
 unsigned int __gen_e_acsl_f_sum(int x);
@@ -90,48 +90,105 @@ int main(void)
 {
   int __retres;
   mystruct m;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int x = 1;
   int y = 2;
   {
     int __gen_e_acsl_p1_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"y",0,y);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x);
     __gen_e_acsl_p1_2 = __gen_e_acsl_p1(x,y);
-    __e_acsl_assert(__gen_e_acsl_p1_2,1,"Assertion","main","p1(x, y)",
-                    "tests/arith/functions.c",48);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"p1(x, y)",0,
+                                 __gen_e_acsl_p1_2);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "p1(x, y)";
+    __gen_e_acsl_assert_data.file = "tests/arith/functions.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 48;
+    __e_acsl_assert(__gen_e_acsl_p1_2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert p1(x, y); */ ;
   {
     int __gen_e_acsl_p2_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
     __gen_e_acsl_p2_2 = __gen_e_acsl_p2(3,4);
-    __e_acsl_assert(__gen_e_acsl_p2_2,1,"Assertion","main","p2(3, 4)",
-                    "tests/arith/functions.c",49);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"p2(3, 4)",0,
+                                 __gen_e_acsl_p2_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "p2(3, 4)";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/functions.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 49;
+    __e_acsl_assert(__gen_e_acsl_p2_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert p2(3, 4); */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_;
     int __gen_e_acsl_p2_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
     __gmpz_init_set_str(__gen_e_acsl_,"99999999999999999999999999999",10);
     __gen_e_acsl_p2_4 = __gen_e_acsl_p2_3(5,
                                           (__e_acsl_mpz_struct *)__gen_e_acsl_);
-    __e_acsl_assert(__gen_e_acsl_p2_4,1,"Assertion","main",
-                    "p2(5, 99999999999999999999999999999)",
-                    "tests/arith/functions.c",50);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "p2(5, 99999999999999999999999999999)",0,
+                                 __gen_e_acsl_p2_4);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "p2(5, 99999999999999999999999999999)";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/functions.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 50;
+    __e_acsl_assert(__gen_e_acsl_p2_4,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __gmpz_clear(__gen_e_acsl_);
   }
   /*@ assert p2(5, 99999999999999999999999999999); */ ;
   {
     long __gen_e_acsl_f1_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"y",0,y);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"x",0,x);
     __gen_e_acsl_f1_2 = __gen_e_acsl_f1(x,y);
-    __e_acsl_assert(__gen_e_acsl_f1_2 == 3L,1,"Assertion","main",
-                    "f1(x, y) == 3","tests/arith/functions.c",52);
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_4,"f1(x, y)",0,
+                                  __gen_e_acsl_f1_2);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "f1(x, y) == 3";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/functions.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 52;
+    __e_acsl_assert(__gen_e_acsl_f1_2 == 3L,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  /*@ assert f1(x, y) ≡ 3; */ ;
+  /*@ assert f1(x, y) == 3; */ ;
   {
     long __gen_e_acsl_f1_4;
     int __gen_e_acsl_p2_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
     __gen_e_acsl_f1_4 = __gen_e_acsl_f1(3,4);
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_5,"f1(3, 4)",0,
+                                  __gen_e_acsl_f1_4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"x",0,x);
     __gen_e_acsl_p2_6 = __gen_e_acsl_p2_5(x,__gen_e_acsl_f1_4);
-    __e_acsl_assert(__gen_e_acsl_p2_6,1,"Assertion","main","p2(x, f1(3, 4))",
-                    "tests/arith/functions.c",53);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "p2(x, f1(3, 4))",0,__gen_e_acsl_p2_6);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "p2(x, f1(3, 4))";
+    __gen_e_acsl_assert_data_5.file = "tests/arith/functions.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 53;
+    __e_acsl_assert(__gen_e_acsl_p2_6,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
   /*@ assert p2(x, f1(3, 4)); */ ;
   {
@@ -139,15 +196,25 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_f1_6;
     __e_acsl_mpz_t __gen_e_acsl__5;
     int __gen_e_acsl_gt_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
     __gmpz_init_set_str(__gen_e_acsl__4,"99999999999999999999999999999",10);
     __gen_e_acsl_f1_5(& __gen_e_acsl_f1_6,9,
                       (__e_acsl_mpz_struct *)__gen_e_acsl__4);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,
+                                 "f1(9, 99999999999999999999999999999)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_6));
     __gmpz_init_set_si(__gen_e_acsl__5,0L);
     __gen_e_acsl_gt_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_6),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__5));
-    __e_acsl_assert(__gen_e_acsl_gt_3 > 0,1,"Assertion","main",
-                    "f1(9, 99999999999999999999999999999) > 0",
-                    "tests/arith/functions.c",54);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "f1(9, 99999999999999999999999999999) > 0";
+    __gen_e_acsl_assert_data_6.file = "tests/arith/functions.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 54;
+    __e_acsl_assert(__gen_e_acsl_gt_3 > 0,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     __gmpz_clear(__gen_e_acsl__4);
     __gmpz_clear(__gen_e_acsl_f1_6);
     __gmpz_clear(__gen_e_acsl__5);
@@ -158,76 +225,160 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_f1_8;
     __e_acsl_mpz_t __gen_e_acsl__7;
     int __gen_e_acsl_eq;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
     __gmpz_init_set_str(__gen_e_acsl__6,"99999999999999999999999999999",10);
     __gen_e_acsl_f1_7(& __gen_e_acsl_f1_8,
                       (__e_acsl_mpz_struct *)__gen_e_acsl__6,
                       (__e_acsl_mpz_struct *)__gen_e_acsl__6);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_7,
+                                 "f1(99999999999999999999999999999, 99999999999999999999999999999)",
+                                 0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_8));
     __gmpz_init_set_str(__gen_e_acsl__7,"199999999999999999999999999998",10);
     __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_8),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__7));
-    __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main",
-                    "f1(99999999999999999999999999999, 99999999999999999999999999999) ==\n199999999999999999999999999998",
-                    "tests/arith/functions.c",55);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "f1(99999999999999999999999999999, 99999999999999999999999999999) ==\n199999999999999999999999999998";
+    __gen_e_acsl_assert_data_7.file = "tests/arith/functions.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 55;
+    __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
     __gmpz_clear(__gen_e_acsl__6);
     __gmpz_clear(__gen_e_acsl_f1_8);
     __gmpz_clear(__gen_e_acsl__7);
   }
   /*@
   assert
-  f1(99999999999999999999999999999, 99999999999999999999999999999) ≡
+  f1(99999999999999999999999999999, 99999999999999999999999999999) ==
   199999999999999999999999999998; */
   ;
   {
     int __gen_e_acsl_g_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"x",0,x);
     __gen_e_acsl_g_2 = __gen_e_acsl_g(x);
-    __e_acsl_assert(__gen_e_acsl_g_2 == x,1,"Assertion","main","g(x) == x",
-                    "tests/arith/functions.c",60);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"g(x)",0,
+                                 __gen_e_acsl_g_2);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"x",0,x);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "g(x) == x";
+    __gen_e_acsl_assert_data_8.file = "tests/arith/functions.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 60;
+    __e_acsl_assert(__gen_e_acsl_g_2 == x,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
-  /*@ assert g(x) ≡ x; */ ;
+  /*@ assert g(x) == x; */ ;
   char c = (char)'c';
   {
     int __gen_e_acsl_h_char_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_char(& __gen_e_acsl_assert_data_9,"c",0,c);
     __gen_e_acsl_h_char_2 = __gen_e_acsl_h_char((int)c);
-    __e_acsl_assert(__gen_e_acsl_h_char_2 == (int)c,1,"Assertion","main",
-                    "h_char(c) == c","tests/arith/functions.c",63);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"h_char(c)",0,
+                                 __gen_e_acsl_h_char_2);
+    __e_acsl_assert_register_char(& __gen_e_acsl_assert_data_9,"c",0,c);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "h_char(c) == c";
+    __gen_e_acsl_assert_data_9.file = "tests/arith/functions.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 63;
+    __e_acsl_assert(__gen_e_acsl_h_char_2 == (int)c,
+                    & __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
-  /*@ assert h_char(c) ≡ c; */ ;
+  /*@ assert h_char(c) == c; */ ;
   short s = (short)1;
   {
     int __gen_e_acsl_h_short_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_10,"s",0,s);
     __gen_e_acsl_h_short_2 = __gen_e_acsl_h_short((int)s);
-    __e_acsl_assert(__gen_e_acsl_h_short_2 == (int)s,1,"Assertion","main",
-                    "h_short(s) == s","tests/arith/functions.c",65);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"h_short(s)",
+                                 0,__gen_e_acsl_h_short_2);
+    __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_10,"s",0,s);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "h_short(s) == s";
+    __gen_e_acsl_assert_data_10.file = "tests/arith/functions.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 65;
+    __e_acsl_assert(__gen_e_acsl_h_short_2 == (int)s,
+                    & __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
   }
-  /*@ assert h_short(s) ≡ s; */ ;
+  /*@ assert h_short(s) == s; */ ;
   m.k = 8;
   m.l = 9;
   {
     mystruct __gen_e_acsl_t1_2;
     long __gen_e_acsl_t2_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_struct(& __gen_e_acsl_assert_data_11,"m");
     __gen_e_acsl_t1_2 = __gen_e_acsl_t1(m);
+    __e_acsl_assert_register_struct(& __gen_e_acsl_assert_data_11,"t1(m)");
     __gen_e_acsl_t2_2 = __gen_e_acsl_t2(__gen_e_acsl_t1_2);
-    __e_acsl_assert(__gen_e_acsl_t2_2 == 17L,1,"Assertion","main",
-                    "t2(t1(m)) == 17","tests/arith/functions.c",70);
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_11,"t2(t1(m))",
+                                  0,__gen_e_acsl_t2_2);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "t2(t1(m)) == 17";
+    __gen_e_acsl_assert_data_11.file = "tests/arith/functions.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 70;
+    __e_acsl_assert(__gen_e_acsl_t2_2 == 17L,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
   }
-  /*@ assert t2(t1(m)) ≡ 17; */ ;
+  /*@ assert t2(t1(m)) == 17; */ ;
   __gen_e_acsl_k(9);
   double d = 2.0;
   {
     double __gen_e_acsl_f2_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_double(& __gen_e_acsl_assert_data_12,"d",d);
     __gen_e_acsl_f2_2 = __gen_e_acsl_f2(d);
-    __e_acsl_assert(__gen_e_acsl_f2_2 > 0.,1,"Assertion","main","f2(d) > 0",
-                    "tests/arith/functions.c",75);
+    __e_acsl_assert_register_double(& __gen_e_acsl_assert_data_12,"f2(d)",
+                                    __gen_e_acsl_f2_2);
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "f2(d) > 0";
+    __gen_e_acsl_assert_data_12.file = "tests/arith/functions.c";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 75;
+    __e_acsl_assert(__gen_e_acsl_f2_2 > 0.,& __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
   }
   /*@ assert f2(d) > 0; */ ;
   {
     unsigned int __gen_e_acsl_f_sum_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
     __gen_e_acsl_f_sum_2 = __gen_e_acsl_f_sum(100);
-    __e_acsl_assert(__gen_e_acsl_f_sum_2 == 100U,1,"Assertion","main",
-                    "f_sum(100) == 100","tests/arith/functions.c",77);
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_13,"f_sum(100)",
+                                  0,__gen_e_acsl_f_sum_2);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "f_sum(100) == 100";
+    __gen_e_acsl_assert_data_13.file = "tests/arith/functions.c";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 77;
+    __e_acsl_assert(__gen_e_acsl_f_sum_2 == 100U,
+                    & __gen_e_acsl_assert_data_13);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
   }
-  /*@ assert f_sum(100) ≡ 100; */ ;
+  /*@ assert f_sum(100) == 100; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
@@ -236,9 +387,19 @@ void __gen_e_acsl_k(int x)
 {
   {
     int __gen_e_acsl_k_pred_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x);
     __gen_e_acsl_k_pred_2 = __gen_e_acsl_k_pred(x);
-    __e_acsl_assert(__gen_e_acsl_k_pred_2,1,"Precondition","k","k_pred(x)",
-                    "tests/arith/functions.c",28);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"k_pred(x)",0,
+                                 __gen_e_acsl_k_pred_2);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "k_pred(x)";
+    __gen_e_acsl_assert_data.file = "tests/arith/functions.c";
+    __gen_e_acsl_assert_data.fct = "k";
+    __gen_e_acsl_assert_data.line = 28;
+    __e_acsl_assert(__gen_e_acsl_k_pred_2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   k(x);
   return;
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_functions_rec.c b/src/plugins/e-acsl/tests/arith/oracle/gen_functions_rec.c
index 42f39839d7871600dd9480a187537ec73c875f27..92fa407c338ab3cb602b50352115d53f785ec599 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_functions_rec.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_functions_rec.c
@@ -1,10 +1,10 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
-/*@ logic ℤ f1(ℤ n) = n ≤ 0? 0: f1(n - 1) + n;
+/*@ logic integer f1(integer n) = n <= 0? 0: f1(n - 1) + n;
 
 */
 void __gen_e_acsl_f1(__e_acsl_mpz_t *__retres_arg, int n);
@@ -13,7 +13,8 @@ void __gen_e_acsl_f1_2(__e_acsl_mpz_t *__retres_arg, long n);
 
 void __gen_e_acsl_f1_3(__e_acsl_mpz_t *__retres_arg, __e_acsl_mpz_struct * n);
 
-/*@ logic ℤ f2(ℤ n) = n < 0? 1: (f2(n - 1) * f2(n - 2)) / f2(n - 3);
+/*@
+logic integer f2(integer n) = n < 0? 1: (f2(n - 1) * f2(n - 2)) / f2(n - 3);
 
 */
 int __gen_e_acsl_f2(int n);
@@ -22,7 +23,7 @@ int __gen_e_acsl_f2_2(long n);
 
 int __gen_e_acsl_f2_3(__e_acsl_mpz_struct * n);
 
-/*@ logic ℤ g(ℤ n) = 0;
+/*@ logic integer g(integer n) = 0;
 
 */
 int __gen_e_acsl_g(int n);
@@ -31,7 +32,7 @@ int __gen_e_acsl_g_3(long n);
 
 int __gen_e_acsl_g_5(__e_acsl_mpz_struct * n);
 
-/*@ logic ℤ f3(ℤ n) = n > 0? g(n) * f3(n - 1) - 5: g(n + 1);
+/*@ logic integer f3(integer n) = n > 0? g(n) * f3(n - 1) - 5: g(n + 1);
 
 */
 int __gen_e_acsl_f3(int n);
@@ -41,7 +42,7 @@ int __gen_e_acsl_f3_2(long n);
 int __gen_e_acsl_f3_3(__e_acsl_mpz_struct * n);
 
 /*@
-logic ℤ f4(ℤ n) =
+logic integer f4(integer n) =
   n < 100? f4(n + 1): (n < 0x7fffffffffffffffL? 0x7fffffffffffffffL: 6);
 
 */
@@ -51,7 +52,7 @@ unsigned long __gen_e_acsl_f4_2(long n);
 
 unsigned long __gen_e_acsl_f4_3(__e_acsl_mpz_struct * n);
 
-/*@ logic ℤ f5(ℤ n) = n ≥ 0? 0: f5(n + 1) + n;
+/*@ logic integer f5(integer n) = n >= 0? 0: f5(n + 1) + n;
 
 */
 void __gen_e_acsl_f5(__e_acsl_mpz_t *__retres_arg, int n);
@@ -63,101 +64,183 @@ void __gen_e_acsl_f5_3(__e_acsl_mpz_t *__retres_arg, __e_acsl_mpz_struct * n);
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   {
     __e_acsl_mpz_t __gen_e_acsl_f1_8;
     __e_acsl_mpz_t __gen_e_acsl__7;
     int __gen_e_acsl_eq;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gen_e_acsl_f1(& __gen_e_acsl_f1_8,0);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"f1(0)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_8));
     __gmpz_init_set_si(__gen_e_acsl__7,0L);
     __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_8),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__7));
-    __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main","f1(0) == 0",
-                    "tests/arith/functions_rec.c",28);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "f1(0) == 0";
+    __gen_e_acsl_assert_data.file = "tests/arith/functions_rec.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 28;
+    __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __gmpz_clear(__gen_e_acsl_f1_8);
     __gmpz_clear(__gen_e_acsl__7);
   }
-  /*@ assert f1(0) ≡ 0; */ ;
+  /*@ assert f1(0) == 0; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_f1_10;
     __e_acsl_mpz_t __gen_e_acsl__8;
     int __gen_e_acsl_eq_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
     __gen_e_acsl_f1(& __gen_e_acsl_f1_10,1);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2,"f1(1)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_10));
     __gmpz_init_set_si(__gen_e_acsl__8,1L);
     __gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_10),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__8));
-    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","main","f1(1) == 1",
-                    "tests/arith/functions_rec.c",29);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "f1(1) == 1";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/functions_rec.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 29;
+    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     __gmpz_clear(__gen_e_acsl_f1_10);
     __gmpz_clear(__gen_e_acsl__8);
   }
-  /*@ assert f1(1) ≡ 1; */ ;
+  /*@ assert f1(1) == 1; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_f1_12;
     __e_acsl_mpz_t __gen_e_acsl__9;
     int __gen_e_acsl_eq_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
     __gen_e_acsl_f1(& __gen_e_acsl_f1_12,100);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_3,"f1(100)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_12));
     __gmpz_init_set_si(__gen_e_acsl__9,5050L);
     __gen_e_acsl_eq_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_12),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__9));
-    __e_acsl_assert(__gen_e_acsl_eq_3 == 0,1,"Assertion","main",
-                    "f1(100) == 5050","tests/arith/functions_rec.c",30);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "f1(100) == 5050";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/functions_rec.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 30;
+    __e_acsl_assert(__gen_e_acsl_eq_3 == 0,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __gmpz_clear(__gen_e_acsl_f1_12);
     __gmpz_clear(__gen_e_acsl__9);
   }
-  /*@ assert f1(100) ≡ 5050; */ ;
+  /*@ assert f1(100) == 5050; */ ;
   {
     int __gen_e_acsl_f2_20;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
     __gen_e_acsl_f2_20 = __gen_e_acsl_f2(7);
-    __e_acsl_assert(__gen_e_acsl_f2_20 == 1,1,"Assertion","main",
-                    "f2(7) == 1","tests/arith/functions_rec.c",32);
-  }
-  /*@ assert f2(7) ≡ 1; */ ;
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"f2(7)",0,
+                                 __gen_e_acsl_f2_20);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "f2(7) == 1";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/functions_rec.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 32;
+    __e_acsl_assert(__gen_e_acsl_f2_20 == 1,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+  }
+  /*@ assert f2(7) == 1; */ ;
   {
     int __gen_e_acsl_f3_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
     __gen_e_acsl_f3_8 = __gen_e_acsl_f3(6);
-    __e_acsl_assert(__gen_e_acsl_f3_8 == -5,1,"Assertion","main",
-                    "f3(6) == -5","tests/arith/functions_rec.c",34);
-  }
-  /*@ assert f3(6) ≡ -5; */ ;
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"f3(6)",0,
+                                 __gen_e_acsl_f3_8);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "f3(6) == -5";
+    __gen_e_acsl_assert_data_8.file = "tests/arith/functions_rec.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 34;
+    __e_acsl_assert(__gen_e_acsl_f3_8 == -5,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+  }
+  /*@ assert f3(6) == -5; */ ;
   {
     unsigned long __gen_e_acsl_f4_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
     __gen_e_acsl_f4_8 = __gen_e_acsl_f4(9);
-    __e_acsl_assert(__gen_e_acsl_f4_8 > 0UL,1,"Assertion","main","f4(9) > 0",
-                    "tests/arith/functions_rec.c",36);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,"f4(9)",0,
+                                   __gen_e_acsl_f4_8);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "f4(9) > 0";
+    __gen_e_acsl_assert_data_9.file = "tests/arith/functions_rec.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 36;
+    __e_acsl_assert(__gen_e_acsl_f4_8 > 0UL,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
   /*@ assert f4(9) > 0; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_f5_8;
     __e_acsl_mpz_t __gen_e_acsl__32;
     int __gen_e_acsl_eq_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
     __gen_e_acsl_f5(& __gen_e_acsl_f5_8,0);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_10,"f5(0)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_f5_8));
     __gmpz_init_set_si(__gen_e_acsl__32,0L);
     __gen_e_acsl_eq_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f5_8),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__32));
-    __e_acsl_assert(__gen_e_acsl_eq_4 == 0,1,"Assertion","main","f5(0) == 0",
-                    "tests/arith/functions_rec.c",38);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "f5(0) == 0";
+    __gen_e_acsl_assert_data_10.file = "tests/arith/functions_rec.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 38;
+    __e_acsl_assert(__gen_e_acsl_eq_4 == 0,& __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
     __gmpz_clear(__gen_e_acsl_f5_8);
     __gmpz_clear(__gen_e_acsl__32);
   }
-  /*@ assert f5(0) ≡ 0; */ ;
+  /*@ assert f5(0) == 0; */ ;
   {
     long __gen_e_acsl_n_9;
     __e_acsl_mpz_t __gen_e_acsl_f5_10;
     __e_acsl_mpz_t __gen_e_acsl__33;
     int __gen_e_acsl_eq_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
     __gen_e_acsl_n_9 = 9223372036854775807L;
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_11,"n",0,
+                                  __gen_e_acsl_n_9);
     __gen_e_acsl_f5_2(& __gen_e_acsl_f5_10,__gen_e_acsl_n_9);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_11,"f5(n)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_f5_10));
     __gmpz_init_set_si(__gen_e_acsl__33,0L);
     __gen_e_acsl_eq_5 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f5_10),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__33));
-    __e_acsl_assert(__gen_e_acsl_eq_5 == 0,1,"Assertion","main",
-                    "\\let n = 0 == 0? 0x7fffffffffffffffL: -1; f5(n) == 0",
-                    "tests/arith/functions_rec.c",40);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "\\let n = 0 == 0? 0x7fffffffffffffffL: -1; f5(n) == 0";
+    __gen_e_acsl_assert_data_11.file = "tests/arith/functions_rec.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 40;
+    __e_acsl_assert(__gen_e_acsl_eq_5 == 0,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
     __gmpz_clear(__gen_e_acsl_f5_10);
     __gmpz_clear(__gen_e_acsl__33);
   }
-  /*@ assert \let n = 0 ≡ 0? 0x7fffffffffffffffL: -1; f5(n) ≡ 0; */ ;
+  /*@ assert \let n = 0 == 0? 0x7fffffffffffffffL: -1; f5(n) == 0; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
@@ -307,22 +390,31 @@ int __gen_e_acsl_f2(int n)
     __gen_e_acsl_f2_15 = __gen_e_acsl_f2_2(n - 1L);
     __gen_e_acsl_f2_17 = __gen_e_acsl_f2_2(n - 2L);
     __gen_e_acsl_f2_19 = __gen_e_acsl_f2_2(n - 3L);
-    __e_acsl_assert(__gen_e_acsl_f2_19 != 0,1,"RTE","f2",
-                    "division_by_zero: __gen_e_acsl_f2_19 != 0",
-                    "tests/arith/functions_rec.c",13);
-    /*@ assert Eva: division_by_zero: __gen_e_acsl_f2_19 ≢ 0; */
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "__gen_e_acsl_f2_19",0,__gen_e_acsl_f2_19);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "RTE";
+    __gen_e_acsl_assert_data_7.pred_txt = "division_by_zero: __gen_e_acsl_f2_19 != 0";
+    __gen_e_acsl_assert_data_7.file = "tests/arith/functions_rec.c";
+    __gen_e_acsl_assert_data_7.fct = "f2";
+    __gen_e_acsl_assert_data_7.line = 13;
+    __e_acsl_assert(__gen_e_acsl_f2_19 != 0,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+    /*@ assert Eva: division_by_zero: __gen_e_acsl_f2_19 != 0; */
     /*@ assert
         Eva: signed_overflow:
-          -2147483648 ≤ __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17;
+          -2147483648 <= __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17;
     */
     /*@ assert
         Eva: signed_overflow:
-          __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17 ≤ 2147483647;
+          __gen_e_acsl_f2_15 * __gen_e_acsl_f2_17 <= 2147483647;
     */
     /*@ assert
         Eva: signed_overflow:
           (int)(__gen_e_acsl_f2_15 * __gen_e_acsl_f2_17) / __gen_e_acsl_f2_19
-          ≤ 2147483647;
+          <= 2147483647;
     */
     __gen_e_acsl_if_6 = (__gen_e_acsl_f2_15 * __gen_e_acsl_f2_17) / __gen_e_acsl_f2_19;
   }
@@ -377,22 +469,31 @@ int __gen_e_acsl_f2_2(long n)
           \initialized((__e_acsl_mpz_struct *)__gen_e_acsl_sub_8);
     */
     __gen_e_acsl_f2_14 = __gen_e_acsl_f2_3((__e_acsl_mpz_struct *)__gen_e_acsl_sub_8);
-    __e_acsl_assert(__gen_e_acsl_f2_14 != 0,1,"RTE","f2_2",
-                    "division_by_zero: __gen_e_acsl_f2_14 != 0",
-                    "tests/arith/functions_rec.c",13);
-    /*@ assert Eva: division_by_zero: __gen_e_acsl_f2_14 ≢ 0; */
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "__gen_e_acsl_f2_14",0,__gen_e_acsl_f2_14);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "RTE";
+    __gen_e_acsl_assert_data_6.pred_txt = "division_by_zero: __gen_e_acsl_f2_14 != 0";
+    __gen_e_acsl_assert_data_6.file = "tests/arith/functions_rec.c";
+    __gen_e_acsl_assert_data_6.fct = "f2_2";
+    __gen_e_acsl_assert_data_6.line = 13;
+    __e_acsl_assert(__gen_e_acsl_f2_14 != 0,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+    /*@ assert Eva: division_by_zero: __gen_e_acsl_f2_14 != 0; */
     /*@ assert
         Eva: signed_overflow:
-          -2147483648 ≤ __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12;
+          -2147483648 <= __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12;
     */
     /*@ assert
         Eva: signed_overflow:
-          __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12 ≤ 2147483647;
+          __gen_e_acsl_f2_10 * __gen_e_acsl_f2_12 <= 2147483647;
     */
     /*@ assert
         Eva: signed_overflow:
           (int)(__gen_e_acsl_f2_10 * __gen_e_acsl_f2_12) / __gen_e_acsl_f2_14
-          ≤ 2147483647;
+          <= 2147483647;
     */
     __gen_e_acsl_if_5 = (__gen_e_acsl_f2_10 * __gen_e_acsl_f2_12) / __gen_e_acsl_f2_14;
     __gmpz_clear(__gen_e_acsl_n_3);
@@ -454,22 +555,31 @@ int __gen_e_acsl_f2_3(__e_acsl_mpz_struct * n)
           \initialized((__e_acsl_mpz_struct *)__gen_e_acsl_sub_6);
     */
     __gen_e_acsl_f2_9 = __gen_e_acsl_f2_3((__e_acsl_mpz_struct *)__gen_e_acsl_sub_6);
-    __e_acsl_assert(__gen_e_acsl_f2_9 != 0,1,"RTE","f2_3",
-                    "division_by_zero: __gen_e_acsl_f2_9 != 0",
-                    "tests/arith/functions_rec.c",13);
-    /*@ assert Eva: division_by_zero: __gen_e_acsl_f2_9 ≢ 0; */
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "__gen_e_acsl_f2_9",0,__gen_e_acsl_f2_9);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "RTE";
+    __gen_e_acsl_assert_data_5.pred_txt = "division_by_zero: __gen_e_acsl_f2_9 != 0";
+    __gen_e_acsl_assert_data_5.file = "tests/arith/functions_rec.c";
+    __gen_e_acsl_assert_data_5.fct = "f2_3";
+    __gen_e_acsl_assert_data_5.line = 13;
+    __e_acsl_assert(__gen_e_acsl_f2_9 != 0,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+    /*@ assert Eva: division_by_zero: __gen_e_acsl_f2_9 != 0; */
     /*@ assert
         Eva: signed_overflow:
-          -2147483648 ≤ __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7;
+          -2147483648 <= __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7;
     */
     /*@ assert
         Eva: signed_overflow:
-          __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7 ≤ 2147483647;
+          __gen_e_acsl_f2_5 * __gen_e_acsl_f2_7 <= 2147483647;
     */
     /*@ assert
         Eva: signed_overflow:
-          (int)(__gen_e_acsl_f2_5 * __gen_e_acsl_f2_7) / __gen_e_acsl_f2_9
-          ≤ 2147483647;
+          (int)(__gen_e_acsl_f2_5 * __gen_e_acsl_f2_7) / __gen_e_acsl_f2_9 <=
+          2147483647;
     */
     __gen_e_acsl_if_4 = (__gen_e_acsl_f2_5 * __gen_e_acsl_f2_7) / __gen_e_acsl_f2_9;
     __gmpz_clear(__gen_e_acsl__12);
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_integer_constant.c b/src/plugins/e-acsl/tests/arith/oracle/gen_integer_constant.c
index bdfdae9e75ef7dcf2fb3e2a6e5ac1fdec59fd652..7d04ce7eac3f9d35e5038c89d9f32b0c154613a7 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_integer_constant.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_integer_constant.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -8,36 +8,69 @@ int main(void)
 {
   int __retres;
   int x;
-  __e_acsl_assert(1,1,"Assertion","main","0 == 0",
-                  "tests/arith/integer_constant.i",6);
-  /*@ assert 0 ≡ 0; */ ;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "0 == 0";
+    __gen_e_acsl_assert_data.file = "tests/arith/integer_constant.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 6;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data);
+  }
+  /*@ assert 0 == 0; */ ;
   x = 0;
   x ++;
-  __e_acsl_assert(1,1,"Assertion","main","0 != 1",
-                  "tests/arith/integer_constant.i",8);
-  /*@ assert 0 ≢ 1; */ ;
-  __e_acsl_assert(1,1,"Assertion","main",
-                  "1152921504606846975 == 0xfffffffffffffff",
-                  "tests/arith/integer_constant.i",9);
-  /*@ assert 1152921504606846975 ≡ 0xfffffffffffffff; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "0 != 1";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/integer_constant.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 8;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_2);
+  }
+  /*@ assert 0 != 1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "1152921504606846975 == 0xfffffffffffffff";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/integer_constant.i";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 9;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_3);
+  }
+  /*@ assert 1152921504606846975 == 0xfffffffffffffff; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_;
     int __gen_e_acsl_eq;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
     __gmpz_init_set_str(__gen_e_acsl_,
                         "340282366920938463463374607431768211455",10);
     __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl_));
-    __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main",
-                    "0xffffffffffffffffffffffffffffffff == 0xffffffffffffffffffffffffffffffff",
-                    "tests/arith/integer_constant.i",11);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "0xffffffffffffffffffffffffffffffff == 0xffffffffffffffffffffffffffffffff";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/integer_constant.i";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 11;
+    __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data_4);
     __gmpz_clear(__gen_e_acsl_);
   }
   /*@
   assert
-  0xffffffffffffffffffffffffffffffff ≡ 0xffffffffffffffffffffffffffffffff;
+  0xffffffffffffffffffffffffffffffff == 0xffffffffffffffffffffffffffffffff;
    */
   ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_let.c b/src/plugins/e-acsl/tests/arith/oracle/gen_let.c
index f1d72daba9f0904a47d80254bdaf919b2a494d4e..8c2202056fe5ab5d37c2914d0c21678a56c2b41f 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_let.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_let.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -20,48 +20,104 @@ int main(void)
   int n = -2;
   {
     long __gen_e_acsl_u;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n);
     __gen_e_acsl_u = n * (long)n;
-    __e_acsl_assert(__gen_e_acsl_u >= 0L,1,"Assertion","main",
-                    "\\let u = n * n; u >= 0","tests/arith/let.c",7);
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data,"u",0,
+                                  __gen_e_acsl_u);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\let u = n * n; u >= 0";
+    __gen_e_acsl_assert_data.file = "tests/arith/let.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 7;
+    __e_acsl_assert(__gen_e_acsl_u >= 0L,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert \let u = n * n; u ≥ 0; */ ;
+  /*@ assert \let u = n * n; u >= 0; */ ;
   {
     long __gen_e_acsl_u_2;
     long __gen_e_acsl_v;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"n",0,n);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"n",0,n);
     __gen_e_acsl_u_2 = n * (long)n;
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_2,"u",0,
+                                  __gen_e_acsl_u_2);
     __gen_e_acsl_v = __gen_e_acsl_u_2 + 1L;
-    __e_acsl_assert(__gen_e_acsl_u_2 > 0L,1,"Assertion","main",
-                    "\\let u = n * n;\n\\let v = u + 1; u > 0",
-                    "tests/arith/let.c",9);
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_2,"u",0,
+                                  __gen_e_acsl_u_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\let u = n * n;\n\\let v = u + 1; u > 0";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/let.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 9;
+    __e_acsl_assert(__gen_e_acsl_u_2 > 0L,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \let u = n * n; \let v = u + 1; u > 0; */ ;
   {
     int __gen_e_acsl_u_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
     __gen_e_acsl_u_3 = 1;
-    __e_acsl_assert(__gen_e_acsl_u_3 + 1 == 2,1,"Assertion","main",
-                    "(\\let u = 1; u) + 1 == 2","tests/arith/let.c",13);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"u",0,
+                                 __gen_e_acsl_u_3);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "(\\let u = 1; u) + 1 == 2";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/let.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 13;
+    __e_acsl_assert(__gen_e_acsl_u_3 + 1 == 2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert (\let u = 1; u) + 1 ≡ 2; */ ;
+  /*@ assert (\let u = 1; u) + 1 == 2; */ ;
   {
     int __gen_e_acsl_u_4;
     int __gen_e_acsl_v_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
     __gen_e_acsl_u_4 = 1;
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"u",0,
+                                 __gen_e_acsl_u_4);
     __gen_e_acsl_v_2 = __gen_e_acsl_u_4 + 1;
-    __e_acsl_assert(__gen_e_acsl_v_2 == 2,1,"Assertion","main",
-                    "\\let u = 1; (\\let v = u + 1; v) == 2",
-                    "tests/arith/let.c",15);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"v",0,
+                                 __gen_e_acsl_v_2);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\let u = 1; (\\let v = u + 1; v) == 2";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/let.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 15;
+    __e_acsl_assert(__gen_e_acsl_v_2 == 2,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  /*@ assert \let u = 1; (\let v = u + 1; v) ≡ 2; */ ;
+  /*@ assert \let u = 1; (\let v = u + 1; v) == 2; */ ;
   {
     int __gen_e_acsl_u_5;
     int __gen_e_acsl_u_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
     __gen_e_acsl_u_5 = 1;
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"u",0,
+                                 __gen_e_acsl_u_5);
     __gen_e_acsl_u_6 = __gen_e_acsl_u_5 + 1;
-    __e_acsl_assert(__gen_e_acsl_u_6 == 2,1,"Assertion","main",
-                    "\\let u = 1; (\\let u = u + 1; u) == 2",
-                    "tests/arith/let.c",19);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"u",0,
+                                 __gen_e_acsl_u_6);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "\\let u = 1; (\\let u = u + 1; u) == 2";
+    __gen_e_acsl_assert_data_5.file = "tests/arith/let.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 19;
+    __e_acsl_assert(__gen_e_acsl_u_6 == 2,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert \let u = 1; (\let u = u + 1; u) ≡ 2; */ ;
+  /*@ assert \let u = 1; (\let u = u + 1; u) == 2; */ ;
   long m = 0x7fffffffffffffffL;
   {
     long __gen_e_acsl_u_7;
@@ -69,17 +125,31 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_mul;
     __e_acsl_mpz_t __gen_e_acsl_m;
     int __gen_e_acsl_gt;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_6,"m",0,m);
     __gen_e_acsl_u_7 = m;
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_6,"u",0,
+                                  __gen_e_acsl_u_7);
     __gmpz_init_set_si(__gen_e_acsl_u_8,__gen_e_acsl_u_7);
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_6,"u",0,
+                                  __gen_e_acsl_u_7);
     __gmpz_init(__gen_e_acsl_mul);
     __gmpz_mul(__gen_e_acsl_mul,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_u_8),
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_u_8));
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_6,"m",0,m);
     __gmpz_init_set_si(__gen_e_acsl_m,m);
     __gen_e_acsl_gt = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl_m));
-    __e_acsl_assert(__gen_e_acsl_gt > 0,1,"Assertion","main",
-                    "(\\let u = m; u * u) > m","tests/arith/let.c",24);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "(\\let u = m; u * u) > m";
+    __gen_e_acsl_assert_data_6.file = "tests/arith/let.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 24;
+    __e_acsl_assert(__gen_e_acsl_gt > 0,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     __gmpz_clear(__gen_e_acsl_u_8);
     __gmpz_clear(__gen_e_acsl_mul);
     __gmpz_clear(__gen_e_acsl_m);
@@ -88,9 +158,20 @@ int main(void)
   char c = (char)'a';
   {
     int __gen_e_acsl_u_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
     __gen_e_acsl_u_9 = 'b';
-    __e_acsl_assert((int)c < __gen_e_acsl_u_9,1,"Assertion","main",
-                    "\\let u = \'b\'; c < u","tests/arith/let.c",27);
+    __e_acsl_assert_register_char(& __gen_e_acsl_assert_data_7,"c",0,c);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"u",0,
+                                 __gen_e_acsl_u_9);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "\\let u = \'b\'; c < u";
+    __gen_e_acsl_assert_data_7.file = "tests/arith/let.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 27;
+    __e_acsl_assert((int)c < __gen_e_acsl_u_9,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
   /*@ assert \let u = 'b'; c < u; */ ;
   float f = 1.0f;
@@ -98,43 +179,99 @@ int main(void)
   __e_acsl_full_init((void *)(& f));
   {
     float __gen_e_acsl_u_10;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_8,"f",f);
     __gen_e_acsl_u_10 = f;
-    __e_acsl_assert(__gen_e_acsl_u_10 == f,1,"Assertion","main",
-                    "\\let u = f; u == f","tests/arith/let.c",30);
+    __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_8,"u",
+                                   __gen_e_acsl_u_10);
+    __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_8,"f",f);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "\\let u = f; u == f";
+    __gen_e_acsl_assert_data_8.file = "tests/arith/let.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 30;
+    __e_acsl_assert(__gen_e_acsl_u_10 == f,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
-  /*@ assert \let u = f; u ≡ f; */ ;
+  /*@ assert \let u = f; u == f; */ ;
   int t[4] = {1, 2, 3, 4};
   {
     int * /*[4]*/ __gen_e_acsl_u_11;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&t[1]",
+                                 (void *)(& t[1]));
     __gen_e_acsl_u_11 = & t[1];
-    __e_acsl_assert(1,1,"Assertion","main","\\let u = &t[1]; 1 == 1",
-                    "tests/arith/let.c",34);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "\\let u = &t[1]; 1 == 1";
+    __gen_e_acsl_assert_data_9.file = "tests/arith/let.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 34;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
-  /*@ assert \let u = &t[1]; 1 ≡ 1; */ ;
+  /*@ assert \let u = &t[1]; 1 == 1; */ ;
   {
     int * /*[4]*/ __gen_e_acsl_u_12;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&t[1]",
+                                 (void *)(& t[1]));
     __gen_e_acsl_u_12 = & t[1];
-    __e_acsl_assert(1,1,"Assertion","main","(\\let u = &t[1]; 1) == 1",
-                    "tests/arith/let.c",36);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "(\\let u = &t[1]; 1) == 1";
+    __gen_e_acsl_assert_data_10.file = "tests/arith/let.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 36;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
   }
-  /*@ assert (\let u = &t[1]; 1) ≡ 1; */ ;
+  /*@ assert (\let u = &t[1]; 1) == 1; */ ;
   struct __anonstruct_r_1 r = {.x = 1, .y = 2};
   __e_acsl_store_block((void *)(& r),(size_t)8);
   __e_acsl_full_init((void *)(& r));
   {
     struct __anonstruct_r_1 __gen_e_acsl_u_13;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_struct(& __gen_e_acsl_assert_data_11,"r");
     __gen_e_acsl_u_13 = r;
-    __e_acsl_assert(__gen_e_acsl_u_13.x + (long)__gen_e_acsl_u_13.y == 3L,1,
-                    "Assertion","main","\\let u = r; u.x + u.y == 3",
-                    "tests/arith/let.c",41);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"u.x",0,
+                                 __gen_e_acsl_u_13.x);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"u.y",0,
+                                 __gen_e_acsl_u_13.y);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "\\let u = r; u.x + u.y == 3";
+    __gen_e_acsl_assert_data_11.file = "tests/arith/let.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 41;
+    __e_acsl_assert(__gen_e_acsl_u_13.x + (long)__gen_e_acsl_u_13.y == 3L,
+                    & __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
   }
-  /*@ assert \let u = r; u.x + u.y ≡ 3; */ ;
+  /*@ assert \let u = r; u.x + u.y == 3; */ ;
   s.x = 5;
   {
     union __anonunion_s_2 __gen_e_acsl_u_14;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_union(& __gen_e_acsl_assert_data_12,"s");
     __gen_e_acsl_u_14 = s;
-    __e_acsl_assert(__gen_e_acsl_u_14.x > 0,1,"Assertion","main",
-                    "(\\let u = s; u.x) > 0","tests/arith/let.c",48);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"u.x",0,
+                                 __gen_e_acsl_u_14.x);
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "(\\let u = s; u.x) > 0";
+    __gen_e_acsl_assert_data_12.file = "tests/arith/let.c";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 48;
+    __e_acsl_assert(__gen_e_acsl_u_14.x > 0,& __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
   }
   /*@ assert (\let u = s; u.x) > 0; */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_longlong.c b/src/plugins/e-acsl/tests/arith/oracle/gen_longlong.c
index 90b0651a11521588af3b3799ee98b8a02010c5a5..aacd6577e217ef94514d96cad4286bd4564e8900 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_longlong.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_longlong.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -27,6 +27,7 @@ unsigned long long my_pow(unsigned int x, unsigned int n)
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   unsigned long long x = my_pow((unsigned int)2,(unsigned int)63);
   {
     __e_acsl_mpz_t __gen_e_acsl_;
@@ -38,7 +39,9 @@ int main(void)
     int __gen_e_acsl_mod_guard;
     __e_acsl_mpz_t __gen_e_acsl_mod;
     long __gen_e_acsl__4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl_,2L);
+    __e_acsl_assert_register_ulonglong(& __gen_e_acsl_assert_data,"x",0,x);
     __gmpz_init(__gen_e_acsl_x);
     __gmpz_import(__gen_e_acsl_x,(size_t)1,1,(size_t)8,0,(size_t)0,
                   (void const *)(& x));
@@ -50,19 +53,35 @@ int main(void)
     __gmpz_add(__gen_e_acsl_add,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul),
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__3,0L);
     __gen_e_acsl_mod_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_),
                                         (__e_acsl_mpz_struct const *)(__gen_e_acsl__3));
     __gmpz_init(__gen_e_acsl_mod);
-    /*@ assert E_ACSL: 2 ≢ 0; */
-    __e_acsl_assert(__gen_e_acsl_mod_guard != 0,1,"Assertion","main",
-                    "2 != 0","tests/arith/longlong.i",19);
+    /*@ assert E_ACSL: 2 != 0; */
+    {
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Assertion";
+      __gen_e_acsl_assert_data_2.pred_txt = "2 != 0";
+      __gen_e_acsl_assert_data_2.file = "tests/arith/longlong.i";
+      __gen_e_acsl_assert_data_2.fct = "main";
+      __gen_e_acsl_assert_data_2.line = 19;
+      __e_acsl_assert(__gen_e_acsl_mod_guard != 0,
+                      & __gen_e_acsl_assert_data_2);
+    }
     __gmpz_tdiv_r(__gen_e_acsl_mod,
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_add),
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_));
     __gen_e_acsl__4 = __gmpz_get_si((__e_acsl_mpz_struct const *)(__gen_e_acsl_mod));
-    __e_acsl_assert(__gen_e_acsl__4 == 1L,1,"Assertion","main",
-                    "(2 * x + 1) % 2 == 1","tests/arith/longlong.i",19);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "(2 * x + 1) % 2 == 1";
+    __gen_e_acsl_assert_data.file = "tests/arith/longlong.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 19;
+    __e_acsl_assert(__gen_e_acsl__4 == 1L,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __gmpz_clear(__gen_e_acsl_);
     __gmpz_clear(__gen_e_acsl_x);
     __gmpz_clear(__gen_e_acsl_mul);
@@ -71,8 +90,9 @@ int main(void)
     __gmpz_clear(__gen_e_acsl__3);
     __gmpz_clear(__gen_e_acsl_mod);
   }
-  /*@ assert (2 * x + 1) % 2 ≡ 1; */ ;
+  /*@ assert (2 * x + 1) % 2 == 1; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_not.c b/src/plugins/e-acsl/tests/arith/oracle/gen_not.c
index a553f45a4423e9f96ccaef8deae944e4361dc3c3..60d41d15d8314cb2926dda6a82525235aaebeed4 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_not.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_not.c
@@ -1,21 +1,45 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int x = 0;
-  __e_acsl_assert(x == 0,1,"Assertion","main","x == 0","tests/arith/not.i",6);
-  /*@ assert x ≡ 0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "x == 0";
+    __gen_e_acsl_assert_data.file = "tests/arith/not.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 6;
+    __e_acsl_assert(x == 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert x == 0; */ ;
   if (x) {
-    __e_acsl_assert(x != 0,1,"Assertion","main","x != 0","tests/arith/not.i",
-                    8);
-    /*@ assert x ≢ 0; */ ;
+    {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Assertion";
+      __gen_e_acsl_assert_data_2.pred_txt = "x != 0";
+      __gen_e_acsl_assert_data_2.file = "tests/arith/not.i";
+      __gen_e_acsl_assert_data_2.fct = "main";
+      __gen_e_acsl_assert_data_2.line = 8;
+      __e_acsl_assert(x != 0,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    }
+    /*@ assert x != 0; */ ;
   }
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_quantif.c b/src/plugins/e-acsl/tests/arith/oracle/gen_quantif.c
index e0b0c88196bc2999ad0b71823873a96b033e8fa1..0999e13db427e306d56468343543299256d9936c 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_quantif.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_quantif.c
@@ -1,24 +1,28 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 /*@
-predicate p1(ℤ i, ℤ j, ℤ k) =
-  0 ≤ i < 10 ∧ 1 < j ≤ 11 ∧ 2 ≤ k ≤ 12;
+predicate p1(integer i, integer j, integer k) =
+  0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12;
  */
 int __gen_e_acsl_p1(int i, int j, int k);
 
-/*@ predicate p2(ℤ i, ℤ j, ℤ k) = 0 ≤ i ≤ j < k ≤ 10;
+/*@ predicate p2(integer i, integer j, integer k) = 0 <= i <= j < k <= 10;
  */
 int __gen_e_acsl_p2(int i, int j, int k);
 
-/*@ predicate p3(ℤ i, ℤ j, ℤ k) = 0 ≤ i < j ≤ 10 ∧ 1 < k < 11;
+/*@
+predicate p3(integer i, integer j, integer k) =
+  0 <= i < j <= 10 && 1 < k < 11;
  */
 int __gen_e_acsl_p3(int i, int j, int k);
 
-/*@ predicate p4(ℤ i, ℤ j, ℤ k) = 0 ≤ i ≤ k ≤ 10 ∧ 1 ≤ j < k;
+/*@
+predicate p4(integer i, integer j, integer k) =
+  0 <= i <= k <= 10 && 1 <= j < k;
 
 */
 int __gen_e_acsl_p4(int i, int j, int k);
@@ -30,6 +34,7 @@ int main(void)
   {
     int __gen_e_acsl_forall;
     int __gen_e_acsl_x;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gen_e_acsl_forall = 1;
     __gen_e_acsl_x = 0;
     while (1) {
@@ -47,14 +52,24 @@ int main(void)
       __gen_e_acsl_x ++;
     }
     e_acsl_end_loop1: ;
-    __e_acsl_assert(__gen_e_acsl_forall,1,"Assertion","main",
-                    "\\forall integer x; 0 <= x <= 1 ==> x == 0 || x == 1",
-                    "tests/arith/quantif.i",16);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\forall integer x; 0 <= x <= 1 ==> x == 0 || x == 1",
+                                 0,__gen_e_acsl_forall);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\forall integer x; 0 <= x <= 1 ==> x == 0 || x == 1";
+    __gen_e_acsl_assert_data.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 16;
+    __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert ∀ ℤ x; 0 ≤ x ≤ 1 ⇒ x ≡ 0 ∨ x ≡ 1; */ ;
+  /*@ assert \forall integer x; 0 <= x <= 1 ==> x == 0 || x == 1; */ ;
   {
     int __gen_e_acsl_forall_2;
     int __gen_e_acsl_x_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
     __gen_e_acsl_forall_2 = 1;
     __gen_e_acsl_x_2 = 0 + 1;
     while (1) {
@@ -67,14 +82,24 @@ int main(void)
       __gen_e_acsl_x_2 ++;
     }
     e_acsl_end_loop2: ;
-    __e_acsl_assert(__gen_e_acsl_forall_2,1,"Assertion","main",
-                    "\\forall integer x; 0 < x <= 1 ==> x == 1",
-                    "tests/arith/quantif.i",17);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\forall integer x; 0 < x <= 1 ==> x == 1",
+                                 0,__gen_e_acsl_forall_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\forall integer x; 0 < x <= 1 ==> x == 1";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 17;
+    __e_acsl_assert(__gen_e_acsl_forall_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert ∀ ℤ x; 0 < x ≤ 1 ⇒ x ≡ 1; */ ;
+  /*@ assert \forall integer x; 0 < x <= 1 ==> x == 1; */ ;
   {
     int __gen_e_acsl_forall_3;
     int __gen_e_acsl_x_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
     __gen_e_acsl_forall_3 = 1;
     __gen_e_acsl_x_3 = 0;
     while (1) {
@@ -87,16 +112,26 @@ int main(void)
       __gen_e_acsl_x_3 ++;
     }
     e_acsl_end_loop3: ;
-    __e_acsl_assert(__gen_e_acsl_forall_3,1,"Assertion","main",
-                    "\\forall integer x; 0 <= x < 1 ==> x == 0",
-                    "tests/arith/quantif.i",18);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\forall integer x; 0 <= x < 1 ==> x == 0",
+                                 0,__gen_e_acsl_forall_3);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\forall integer x; 0 <= x < 1 ==> x == 0";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 18;
+    __e_acsl_assert(__gen_e_acsl_forall_3,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert ∀ ℤ x; 0 ≤ x < 1 ⇒ x ≡ 0; */ ;
+  /*@ assert \forall integer x; 0 <= x < 1 ==> x == 0; */ ;
   {
     int __gen_e_acsl_forall_4;
     int __gen_e_acsl_x_4;
     int __gen_e_acsl_y;
     int __gen_e_acsl_z;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
     __gen_e_acsl_forall_4 = 1;
     __gen_e_acsl_x_4 = 0;
     while (1) {
@@ -120,19 +155,29 @@ int main(void)
       __gen_e_acsl_x_4 ++;
     }
     e_acsl_end_loop4: ;
-    __e_acsl_assert(__gen_e_acsl_forall_4,1,"Assertion","main",
-                    "\\forall integer x, integer y, integer z;\n  0 <= x < 2 && 0 <= y < 5 && 0 <= z <= y ==> x + z <= y + 1",
-                    "tests/arith/quantif.i",22);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\forall integer x, integer y, integer z;\n  0 <= x < 2 && 0 <= y < 5 && 0 <= z <= y ==> x + z <= y + 1",
+                                 0,__gen_e_acsl_forall_4);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\forall integer x, integer y, integer z;\n  0 <= x < 2 && 0 <= y < 5 && 0 <= z <= y ==> x + z <= y + 1";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 22;
+    __e_acsl_assert(__gen_e_acsl_forall_4,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
   /*@
   assert
-  ∀ ℤ x, ℤ y, ℤ z;
-    0 ≤ x < 2 ∧ 0 ≤ y < 5 ∧ 0 ≤ z ≤ y ⇒ x + z ≤ y + 1;
+  \forall integer x, integer y, integer z;
+    0 <= x < 2 && 0 <= y < 5 && 0 <= z <= y ==> x + z <= y + 1;
    */
   ;
   {
     int __gen_e_acsl_exists;
     int __gen_e_acsl_x_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
     __gen_e_acsl_exists = 0;
     __gen_e_acsl_x_5 = 0;
     while (1) {
@@ -145,14 +190,24 @@ int main(void)
       __gen_e_acsl_x_5 ++;
     }
     e_acsl_end_loop5: ;
-    __e_acsl_assert(__gen_e_acsl_exists,1,"Assertion","main",
-                    "\\exists int x; 0 <= x < 10 && x == 5",
-                    "tests/arith/quantif.i",27);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\exists int x; 0 <= x < 10 && x == 5",0,
+                                 __gen_e_acsl_exists);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "\\exists int x; 0 <= x < 10 && x == 5";
+    __gen_e_acsl_assert_data_5.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 27;
+    __e_acsl_assert(__gen_e_acsl_exists,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert ∃ int x; 0 ≤ x < 10 ∧ x ≡ 5; */ ;
+  /*@ assert \exists int x; 0 <= x < 10 && x == 5; */ ;
   {
     int __gen_e_acsl_forall_5;
     int __gen_e_acsl_x_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
     __gen_e_acsl_forall_5 = 1;
     __gen_e_acsl_x_6 = 0;
     while (1) {
@@ -186,20 +241,30 @@ int main(void)
       __gen_e_acsl_x_6 ++;
     }
     e_acsl_end_loop7: ;
-    __e_acsl_assert(__gen_e_acsl_forall_5,1,"Assertion","main",
-                    "\\forall int x;\n  0 <= x < 10 ==>\n  x % 2 == 0 ==> (\\exists integer y; 0 <= y <= x / 2 && x == 2 * y)",
-                    "tests/arith/quantif.i",31);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "\\forall int x;\n  0 <= x < 10 ==>\n  x % 2 == 0 ==> (\\exists integer y; 0 <= y <= x / 2 && x == 2 * y)",
+                                 0,__gen_e_acsl_forall_5);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "\\forall int x;\n  0 <= x < 10 ==>\n  x % 2 == 0 ==> (\\exists integer y; 0 <= y <= x / 2 && x == 2 * y)";
+    __gen_e_acsl_assert_data_6.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 31;
+    __e_acsl_assert(__gen_e_acsl_forall_5,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
   /*@
   assert
-  ∀ int x;
-    0 ≤ x < 10 ⇒
-    x % 2 ≡ 0 ⇒ (∃ ℤ y; 0 ≤ y ≤ x / 2 ∧ x ≡ 2 * y);
+  \forall int x;
+    0 <= x < 10 ==>
+    x % 2 == 0 ==> (\exists integer y; 0 <= y <= x / 2 && x == 2 * y);
    */
   ;
   {
     int __gen_e_acsl_forall_6;
     int __gen_e_acsl_x_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
     __gen_e_acsl_forall_6 = 1;
     __gen_e_acsl_x_7 = 0;
     while (1) {
@@ -247,16 +312,24 @@ int main(void)
       __gen_e_acsl_x_7 ++;
     }
     e_acsl_end_loop10: ;
-    __e_acsl_assert(__gen_e_acsl_forall_6,1,"Assertion","main",
-                    "\\forall int x;\n  0 <= x < 10 ==>\n  (\\forall int y; 10 <= y < 20 ==> x <= y) &&\n  (\\forall int y; -10 <= y < 0 ==> y <= x)",
-                    "tests/arith/quantif.i",36);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "\\forall int x;\n  0 <= x < 10 ==>\n  (\\forall int y; 10 <= y < 20 ==> x <= y) &&\n  (\\forall int y; -10 <= y < 0 ==> y <= x)",
+                                 0,__gen_e_acsl_forall_6);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "\\forall int x;\n  0 <= x < 10 ==>\n  (\\forall int y; 10 <= y < 20 ==> x <= y) &&\n  (\\forall int y; -10 <= y < 0 ==> y <= x)";
+    __gen_e_acsl_assert_data_7.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 36;
+    __e_acsl_assert(__gen_e_acsl_forall_6,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
   /*@
   assert
-  ∀ int x;
-    0 ≤ x < 10 ⇒
-    (∀ int y; 10 ≤ y < 20 ⇒ x ≤ y) ∧
-    (∀ int y; -10 ≤ y < 0 ⇒ y ≤ x);
+  \forall int x;
+    0 <= x < 10 ==>
+    (\forall int y; 10 <= y < 20 ==> x <= y) &&
+    (\forall int y; -10 <= y < 0 ==> y <= x);
    */
   ;
   {
@@ -266,6 +339,8 @@ int main(void)
     {
       int __gen_e_acsl_forall_9;
       int __gen_e_acsl_i;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_9 = 1;
       __gen_e_acsl_i = 0;
       while (1) {
@@ -284,14 +359,24 @@ int main(void)
         __gen_e_acsl_i ++;
       }
       e_acsl_end_loop11: ;
-      __e_acsl_assert(__gen_e_acsl_forall_9,1,"Assertion","main",
-                      "\\forall integer i; 0 <= i < 10 ==> \\valid(&buf[i])",
-                      "tests/arith/quantif.i",43);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "\\forall integer i; 0 <= i < 10 ==> \\valid(&buf[i])",
+                                   0,__gen_e_acsl_forall_9);
+      __gen_e_acsl_assert_data_8.blocking = 1;
+      __gen_e_acsl_assert_data_8.kind = "Assertion";
+      __gen_e_acsl_assert_data_8.pred_txt = "\\forall integer i; 0 <= i < 10 ==> \\valid(&buf[i])";
+      __gen_e_acsl_assert_data_8.file = "tests/arith/quantif.i";
+      __gen_e_acsl_assert_data_8.fct = "main";
+      __gen_e_acsl_assert_data_8.line = 43;
+      __e_acsl_assert(__gen_e_acsl_forall_9,& __gen_e_acsl_assert_data_8);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
     }
-    /*@ assert ∀ ℤ i; 0 ≤ i < 10 ⇒ \valid(&buf[i]); */ ;
+    /*@ assert \forall integer i; 0 <= i < 10 ==> \valid(&buf[i]); */ ;
     {
       int __gen_e_acsl_forall_10;
       int __gen_e_acsl_i_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_10 = 1;
       __gen_e_acsl_i_2 = (char)0;
       while (1) {
@@ -310,14 +395,24 @@ int main(void)
         __gen_e_acsl_i_2 ++;
       }
       e_acsl_end_loop12: ;
-      __e_acsl_assert(__gen_e_acsl_forall_10,1,"Assertion","main",
-                      "\\forall char i; 0 <= i < 10 ==> \\valid(&buf[i])",
-                      "tests/arith/quantif.i",44);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "\\forall char i; 0 <= i < 10 ==> \\valid(&buf[i])",
+                                   0,__gen_e_acsl_forall_10);
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "Assertion";
+      __gen_e_acsl_assert_data_9.pred_txt = "\\forall char i; 0 <= i < 10 ==> \\valid(&buf[i])";
+      __gen_e_acsl_assert_data_9.file = "tests/arith/quantif.i";
+      __gen_e_acsl_assert_data_9.fct = "main";
+      __gen_e_acsl_assert_data_9.line = 44;
+      __e_acsl_assert(__gen_e_acsl_forall_10,& __gen_e_acsl_assert_data_9);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
     }
-    /*@ assert ∀ char i; 0 ≤ i < 10 ⇒ \valid(&buf[i]); */ ;
+    /*@ assert \forall char i; 0 <= i < 10 ==> \valid(&buf[i]); */ ;
     {
       int __gen_e_acsl_forall_11;
       unsigned long __gen_e_acsl_i_3;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_11 = 1;
       __gen_e_acsl_i_3 = 0UL;
       while (1) {
@@ -336,14 +431,24 @@ int main(void)
         __gen_e_acsl_i_3 ++;
       }
       e_acsl_end_loop13: ;
-      __e_acsl_assert(__gen_e_acsl_forall_11,1,"Assertion","main",
-                      "\\forall integer i; 0 <= i < len ==> \\valid(&buf[i])",
-                      "tests/arith/quantif.i",45);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "\\forall integer i; 0 <= i < len ==> \\valid(&buf[i])",
+                                   0,__gen_e_acsl_forall_11);
+      __gen_e_acsl_assert_data_10.blocking = 1;
+      __gen_e_acsl_assert_data_10.kind = "Assertion";
+      __gen_e_acsl_assert_data_10.pred_txt = "\\forall integer i; 0 <= i < len ==> \\valid(&buf[i])";
+      __gen_e_acsl_assert_data_10.file = "tests/arith/quantif.i";
+      __gen_e_acsl_assert_data_10.fct = "main";
+      __gen_e_acsl_assert_data_10.line = 45;
+      __e_acsl_assert(__gen_e_acsl_forall_11,& __gen_e_acsl_assert_data_10);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
     }
-    /*@ assert ∀ ℤ i; 0 ≤ i < len ⇒ \valid(&buf[i]); */ ;
+    /*@ assert \forall integer i; 0 <= i < len ==> \valid(&buf[i]); */ ;
     {
       int __gen_e_acsl_forall_12;
       __e_acsl_mpz_t __gen_e_acsl_i_4;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_12 = 1;
       __gmpz_init(__gen_e_acsl_i_4);
       {
@@ -391,38 +496,70 @@ int main(void)
         }
       }
       e_acsl_end_loop14: ;
-      __e_acsl_assert(__gen_e_acsl_forall_12,1,"Assertion","main",
-                      "\\forall integer i; 0 <= i <= len ==> \\valid(&buf[i])",
-                      "tests/arith/quantif.i",46);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                   "\\forall integer i; 0 <= i <= len ==> \\valid(&buf[i])",
+                                   0,__gen_e_acsl_forall_12);
+      __gen_e_acsl_assert_data_11.blocking = 1;
+      __gen_e_acsl_assert_data_11.kind = "Assertion";
+      __gen_e_acsl_assert_data_11.pred_txt = "\\forall integer i; 0 <= i <= len ==> \\valid(&buf[i])";
+      __gen_e_acsl_assert_data_11.file = "tests/arith/quantif.i";
+      __gen_e_acsl_assert_data_11.fct = "main";
+      __gen_e_acsl_assert_data_11.line = 46;
+      __e_acsl_assert(__gen_e_acsl_forall_12,& __gen_e_acsl_assert_data_11);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
       __gmpz_clear(__gen_e_acsl_i_4);
     }
-    /*@ assert ∀ ℤ i; 0 ≤ i ≤ len ⇒ \valid(&buf[i]); */ ;
+    /*@ assert \forall integer i; 0 <= i <= len ==> \valid(&buf[i]); */ ;
     __e_acsl_delete_block((void *)(buf));
   }
-  __e_acsl_assert(1,1,"Assertion","main",
-                  "\\forall integer x; 0 < x < 1 ==> \\false",
-                  "tests/arith/quantif.i",50);
-  /*@ assert ∀ ℤ x; 0 < x < 1 ⇒ \false; */ ;
-  __e_acsl_assert(! 0,1,"Assertion","main",
-                  "!(\\exists char c; 10 <= c < 10 && c == 10)",
-                  "tests/arith/quantif.i",51);
-  /*@ assert ¬(∃ char c; 10 ≤ c < 10 ∧ c ≡ 10); */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "\\forall integer x; 0 < x < 1 ==> \\false";
+    __gen_e_acsl_assert_data_12.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 50;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_12);
+  }
+  /*@ assert \forall integer x; 0 < x < 1 ==> \false; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "!(\\exists char c; 10 <= c < 10 && c == 10)";
+    __gen_e_acsl_assert_data_13.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 51;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_13);
+  }
+  /*@ assert !(\exists char c; 10 <= c < 10 && c == 10); */ ;
   {
     int __gen_e_acsl_u;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
     __gen_e_acsl_u = 5;
-    __e_acsl_assert(1,1,"Assertion","main",
-                    "\\let u = 5;\n\\forall integer x, integer y; 0 <= x < 2 && 4 < y < u ==> \\false",
-                    "tests/arith/quantif.i",53);
+    __gen_e_acsl_assert_data_14.blocking = 1;
+    __gen_e_acsl_assert_data_14.kind = "Assertion";
+    __gen_e_acsl_assert_data_14.pred_txt = "\\let u = 5;\n\\forall integer x, integer y; 0 <= x < 2 && 4 < y < u ==> \\false";
+    __gen_e_acsl_assert_data_14.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_14.fct = "main";
+    __gen_e_acsl_assert_data_14.line = 53;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_14);
   }
   /*@
-  assert \let u = 5; ∀ ℤ x, ℤ y; 0 ≤ x < 2 ∧ 4 < y < u ⇒ \false;
-   */
+  assert \let u = 5;
+  \forall integer x, integer y; 0 <= x < 2 && 4 < y < u ==> \false; */
   ;
   {
     int __gen_e_acsl_forall_13;
     int __gen_e_acsl_i_6;
     int __gen_e_acsl_j;
     int __gen_e_acsl_k;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
     __gen_e_acsl_forall_13 = 1;
     __gen_e_acsl_i_6 = 0;
     while (1) {
@@ -451,15 +588,23 @@ int main(void)
       __gen_e_acsl_i_6 ++;
     }
     e_acsl_end_loop15: ;
-    __e_acsl_assert(__gen_e_acsl_forall_13,1,"Assertion","main",
-                    "forall_multiple_binders_1:\n  \\forall integer i, integer j, integer k;\n    0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 ==> p1(i, j, k)",
-                    "tests/arith/quantif.i",59);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,
+                                 "forall_multiple_binders_1:\n  \\forall integer i, integer j, integer k;\n    0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 ==> p1(i, j, k)",
+                                 0,__gen_e_acsl_forall_13);
+    __gen_e_acsl_assert_data_15.blocking = 1;
+    __gen_e_acsl_assert_data_15.kind = "Assertion";
+    __gen_e_acsl_assert_data_15.pred_txt = "forall_multiple_binders_1:\n  \\forall integer i, integer j, integer k;\n    0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 ==> p1(i, j, k)";
+    __gen_e_acsl_assert_data_15.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_15.fct = "main";
+    __gen_e_acsl_assert_data_15.line = 59;
+    __e_acsl_assert(__gen_e_acsl_forall_13,& __gen_e_acsl_assert_data_15);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
   }
   /*@
   assert
   forall_multiple_binders_1:
-    ∀ ℤ i, ℤ j, ℤ k;
-      0 ≤ i < 10 ∧ 1 < j ≤ 11 ∧ 2 ≤ k ≤ 12 ⇒ p1(i, j, k);
+    \forall integer i, integer j, integer k;
+      0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 ==> p1(i, j, k);
    */
   ;
   {
@@ -467,6 +612,8 @@ int main(void)
     int __gen_e_acsl_i_7;
     int __gen_e_acsl_j_2;
     int __gen_e_acsl_k_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
     __gen_e_acsl_forall_14 = 1;
     __gen_e_acsl_i_7 = 0;
     while (1) {
@@ -495,14 +642,23 @@ int main(void)
       __gen_e_acsl_i_7 ++;
     }
     e_acsl_end_loop16: ;
-    __e_acsl_assert(__gen_e_acsl_forall_14,1,"Assertion","main",
-                    "forall_multiple_binders_2:\n  \\forall integer i, integer j, integer k;\n    0 <= i <= j < k <= 10 ==> p2(i, j, k)",
-                    "tests/arith/quantif.i",62);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,
+                                 "forall_multiple_binders_2:\n  \\forall integer i, integer j, integer k;\n    0 <= i <= j < k <= 10 ==> p2(i, j, k)",
+                                 0,__gen_e_acsl_forall_14);
+    __gen_e_acsl_assert_data_16.blocking = 1;
+    __gen_e_acsl_assert_data_16.kind = "Assertion";
+    __gen_e_acsl_assert_data_16.pred_txt = "forall_multiple_binders_2:\n  \\forall integer i, integer j, integer k;\n    0 <= i <= j < k <= 10 ==> p2(i, j, k)";
+    __gen_e_acsl_assert_data_16.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_16.fct = "main";
+    __gen_e_acsl_assert_data_16.line = 62;
+    __e_acsl_assert(__gen_e_acsl_forall_14,& __gen_e_acsl_assert_data_16);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
   }
   /*@
   assert
   forall_multiple_binders_2:
-    ∀ ℤ i, ℤ j, ℤ k; 0 ≤ i ≤ j < k ≤ 10 ⇒ p2(i, j, k);
+    \forall integer i, integer j, integer k;
+      0 <= i <= j < k <= 10 ==> p2(i, j, k);
    */
   ;
   {
@@ -510,6 +666,8 @@ int main(void)
     int __gen_e_acsl_i_8;
     int __gen_e_acsl_j_3;
     int __gen_e_acsl_k_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
     __gen_e_acsl_forall_15 = 1;
     __gen_e_acsl_i_8 = 0;
     while (1) {
@@ -538,15 +696,23 @@ int main(void)
       __gen_e_acsl_i_8 ++;
     }
     e_acsl_end_loop17: ;
-    __e_acsl_assert(__gen_e_acsl_forall_15,1,"Assertion","main",
-                    "forall_multiple_binders_3:\n  \\forall integer i, integer j, integer k;\n    0 <= i < j <= 10 && 1 < k < 11 ==> p3(i, j, k)",
-                    "tests/arith/quantif.i",65);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,
+                                 "forall_multiple_binders_3:\n  \\forall integer i, integer j, integer k;\n    0 <= i < j <= 10 && 1 < k < 11 ==> p3(i, j, k)",
+                                 0,__gen_e_acsl_forall_15);
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "Assertion";
+    __gen_e_acsl_assert_data_17.pred_txt = "forall_multiple_binders_3:\n  \\forall integer i, integer j, integer k;\n    0 <= i < j <= 10 && 1 < k < 11 ==> p3(i, j, k)";
+    __gen_e_acsl_assert_data_17.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_17.fct = "main";
+    __gen_e_acsl_assert_data_17.line = 65;
+    __e_acsl_assert(__gen_e_acsl_forall_15,& __gen_e_acsl_assert_data_17);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
   }
   /*@
   assert
   forall_multiple_binders_3:
-    ∀ ℤ i, ℤ j, ℤ k;
-      0 ≤ i < j ≤ 10 ∧ 1 < k < 11 ⇒ p3(i, j, k);
+    \forall integer i, integer j, integer k;
+      0 <= i < j <= 10 && 1 < k < 11 ==> p3(i, j, k);
    */
   ;
   {
@@ -554,6 +720,8 @@ int main(void)
     int __gen_e_acsl_i_9;
     int __gen_e_acsl_j_4;
     int __gen_e_acsl_k_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+      {.values = (void *)0};
     __gen_e_acsl_forall_16 = 1;
     __gen_e_acsl_i_9 = 0;
     while (1) {
@@ -582,15 +750,23 @@ int main(void)
       __gen_e_acsl_i_9 ++;
     }
     e_acsl_end_loop18: ;
-    __e_acsl_assert(__gen_e_acsl_forall_16,1,"Assertion","main",
-                    "forall_multiple_binders_4:\n  \\forall integer i, integer j, integer k;\n    0 <= i < 10 ==> 1 < j <= 11 ==> 2 <= k <= 12 ==> p1(i, j, k)",
-                    "tests/arith/quantif.i",68);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,
+                                 "forall_multiple_binders_4:\n  \\forall integer i, integer j, integer k;\n    0 <= i < 10 ==> 1 < j <= 11 ==> 2 <= k <= 12 ==> p1(i, j, k)",
+                                 0,__gen_e_acsl_forall_16);
+    __gen_e_acsl_assert_data_18.blocking = 1;
+    __gen_e_acsl_assert_data_18.kind = "Assertion";
+    __gen_e_acsl_assert_data_18.pred_txt = "forall_multiple_binders_4:\n  \\forall integer i, integer j, integer k;\n    0 <= i < 10 ==> 1 < j <= 11 ==> 2 <= k <= 12 ==> p1(i, j, k)";
+    __gen_e_acsl_assert_data_18.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_18.fct = "main";
+    __gen_e_acsl_assert_data_18.line = 68;
+    __e_acsl_assert(__gen_e_acsl_forall_16,& __gen_e_acsl_assert_data_18);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18);
   }
   /*@
   assert
   forall_multiple_binders_4:
-    ∀ ℤ i, ℤ j, ℤ k;
-      0 ≤ i < 10 ⇒ 1 < j ≤ 11 ⇒ 2 ≤ k ≤ 12 ⇒ p1(i, j, k);
+    \forall integer i, integer j, integer k;
+      0 <= i < 10 ==> 1 < j <= 11 ==> 2 <= k <= 12 ==> p1(i, j, k);
    */
   ;
   {
@@ -598,6 +774,8 @@ int main(void)
     int __gen_e_acsl_i_10;
     int __gen_e_acsl_k_5;
     int __gen_e_acsl_j_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 =
+      {.values = (void *)0};
     __gen_e_acsl_forall_17 = 1;
     __gen_e_acsl_i_10 = 0;
     while (1) {
@@ -626,15 +804,23 @@ int main(void)
       __gen_e_acsl_i_10 ++;
     }
     e_acsl_end_loop19: ;
-    __e_acsl_assert(__gen_e_acsl_forall_17,1,"Assertion","main",
-                    "forall_unordered_binders:\n  \\forall integer i, integer j, integer k;\n    0 <= i <= k <= 10 && 1 <= j < k ==> p4(i, j, k)",
-                    "tests/arith/quantif.i",71);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,
+                                 "forall_unordered_binders:\n  \\forall integer i, integer j, integer k;\n    0 <= i <= k <= 10 && 1 <= j < k ==> p4(i, j, k)",
+                                 0,__gen_e_acsl_forall_17);
+    __gen_e_acsl_assert_data_19.blocking = 1;
+    __gen_e_acsl_assert_data_19.kind = "Assertion";
+    __gen_e_acsl_assert_data_19.pred_txt = "forall_unordered_binders:\n  \\forall integer i, integer j, integer k;\n    0 <= i <= k <= 10 && 1 <= j < k ==> p4(i, j, k)";
+    __gen_e_acsl_assert_data_19.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_19.fct = "main";
+    __gen_e_acsl_assert_data_19.line = 71;
+    __e_acsl_assert(__gen_e_acsl_forall_17,& __gen_e_acsl_assert_data_19);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19);
   }
   /*@
   assert
   forall_unordered_binders:
-    ∀ ℤ i, ℤ j, ℤ k;
-      0 ≤ i ≤ k ≤ 10 ∧ 1 ≤ j < k ⇒ p4(i, j, k);
+    \forall integer i, integer j, integer k;
+      0 <= i <= k <= 10 && 1 <= j < k ==> p4(i, j, k);
    */
   ;
   {
@@ -642,6 +828,8 @@ int main(void)
     int __gen_e_acsl_i_11;
     int __gen_e_acsl_j_6;
     int __gen_e_acsl_k_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 =
+      {.values = (void *)0};
     __gen_e_acsl_exists_3 = 0;
     __gen_e_acsl_i_11 = 0;
     while (1) {
@@ -670,15 +858,23 @@ int main(void)
       __gen_e_acsl_i_11 ++;
     }
     e_acsl_end_loop20: ;
-    __e_acsl_assert(__gen_e_acsl_exists_3,1,"Assertion","main",
-                    "exists_multiple_binders_1:\n  \\exists integer i, integer j, integer k;\n    0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 && p1(i, j, k)",
-                    "tests/arith/quantif.i",74);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,
+                                 "exists_multiple_binders_1:\n  \\exists integer i, integer j, integer k;\n    0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 && p1(i, j, k)",
+                                 0,__gen_e_acsl_exists_3);
+    __gen_e_acsl_assert_data_20.blocking = 1;
+    __gen_e_acsl_assert_data_20.kind = "Assertion";
+    __gen_e_acsl_assert_data_20.pred_txt = "exists_multiple_binders_1:\n  \\exists integer i, integer j, integer k;\n    0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 && p1(i, j, k)";
+    __gen_e_acsl_assert_data_20.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_20.fct = "main";
+    __gen_e_acsl_assert_data_20.line = 74;
+    __e_acsl_assert(__gen_e_acsl_exists_3,& __gen_e_acsl_assert_data_20);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20);
   }
   /*@
   assert
   exists_multiple_binders_1:
-    ∃ ℤ i, ℤ j, ℤ k;
-      0 ≤ i < 10 ∧ 1 < j ≤ 11 ∧ 2 ≤ k ≤ 12 ∧ p1(i, j, k);
+    \exists integer i, integer j, integer k;
+      0 <= i < 10 && 1 < j <= 11 && 2 <= k <= 12 && p1(i, j, k);
    */
   ;
   {
@@ -686,6 +882,8 @@ int main(void)
     int __gen_e_acsl_i_12;
     int __gen_e_acsl_j_7;
     int __gen_e_acsl_k_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 =
+      {.values = (void *)0};
     __gen_e_acsl_exists_4 = 0;
     __gen_e_acsl_i_12 = 0;
     while (1) {
@@ -714,14 +912,23 @@ int main(void)
       __gen_e_acsl_i_12 ++;
     }
     e_acsl_end_loop21: ;
-    __e_acsl_assert(__gen_e_acsl_exists_4,1,"Assertion","main",
-                    "exists_multiple_binders_2:\n  \\exists integer i, integer j, integer k;\n    0 <= i <= j < k <= 10 && p2(i, j, k)",
-                    "tests/arith/quantif.i",77);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21,
+                                 "exists_multiple_binders_2:\n  \\exists integer i, integer j, integer k;\n    0 <= i <= j < k <= 10 && p2(i, j, k)",
+                                 0,__gen_e_acsl_exists_4);
+    __gen_e_acsl_assert_data_21.blocking = 1;
+    __gen_e_acsl_assert_data_21.kind = "Assertion";
+    __gen_e_acsl_assert_data_21.pred_txt = "exists_multiple_binders_2:\n  \\exists integer i, integer j, integer k;\n    0 <= i <= j < k <= 10 && p2(i, j, k)";
+    __gen_e_acsl_assert_data_21.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_21.fct = "main";
+    __gen_e_acsl_assert_data_21.line = 77;
+    __e_acsl_assert(__gen_e_acsl_exists_4,& __gen_e_acsl_assert_data_21);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21);
   }
   /*@
   assert
   exists_multiple_binders_2:
-    ∃ ℤ i, ℤ j, ℤ k; 0 ≤ i ≤ j < k ≤ 10 ∧ p2(i, j, k);
+    \exists integer i, integer j, integer k;
+      0 <= i <= j < k <= 10 && p2(i, j, k);
    */
   ;
   {
@@ -729,6 +936,8 @@ int main(void)
     int __gen_e_acsl_i_13;
     int __gen_e_acsl_j_8;
     int __gen_e_acsl_k_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 =
+      {.values = (void *)0};
     __gen_e_acsl_exists_5 = 0;
     __gen_e_acsl_i_13 = 0;
     while (1) {
@@ -757,15 +966,23 @@ int main(void)
       __gen_e_acsl_i_13 ++;
     }
     e_acsl_end_loop22: ;
-    __e_acsl_assert(__gen_e_acsl_exists_5,1,"Assertion","main",
-                    "exists_multiple_binders_3:\n  \\exists integer i, integer j, integer k;\n    0 <= i < j <= 10 && 1 < k < 11 && p3(i, j, k)",
-                    "tests/arith/quantif.i",80);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,
+                                 "exists_multiple_binders_3:\n  \\exists integer i, integer j, integer k;\n    0 <= i < j <= 10 && 1 < k < 11 && p3(i, j, k)",
+                                 0,__gen_e_acsl_exists_5);
+    __gen_e_acsl_assert_data_22.blocking = 1;
+    __gen_e_acsl_assert_data_22.kind = "Assertion";
+    __gen_e_acsl_assert_data_22.pred_txt = "exists_multiple_binders_3:\n  \\exists integer i, integer j, integer k;\n    0 <= i < j <= 10 && 1 < k < 11 && p3(i, j, k)";
+    __gen_e_acsl_assert_data_22.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_22.fct = "main";
+    __gen_e_acsl_assert_data_22.line = 80;
+    __e_acsl_assert(__gen_e_acsl_exists_5,& __gen_e_acsl_assert_data_22);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22);
   }
   /*@
   assert
   exists_multiple_binders_3:
-    ∃ ℤ i, ℤ j, ℤ k;
-      0 ≤ i < j ≤ 10 ∧ 1 < k < 11 ∧ p3(i, j, k);
+    \exists integer i, integer j, integer k;
+      0 <= i < j <= 10 && 1 < k < 11 && p3(i, j, k);
    */
   ;
   {
@@ -773,6 +990,8 @@ int main(void)
     int __gen_e_acsl_i_14;
     int __gen_e_acsl_k_9;
     int __gen_e_acsl_j_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 =
+      {.values = (void *)0};
     __gen_e_acsl_exists_6 = 0;
     __gen_e_acsl_i_14 = 0;
     while (1) {
@@ -801,71 +1020,86 @@ int main(void)
       __gen_e_acsl_i_14 ++;
     }
     e_acsl_end_loop23: ;
-    __e_acsl_assert(__gen_e_acsl_exists_6,1,"Assertion","main",
-                    "exists_unordered_binders:\n  \\exists integer i, integer j, integer k;\n    0 <= i <= k <= 10 && 1 <= j < k && p4(i, j, k)",
-                    "tests/arith/quantif.i",83);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,
+                                 "exists_unordered_binders:\n  \\exists integer i, integer j, integer k;\n    0 <= i <= k <= 10 && 1 <= j < k && p4(i, j, k)",
+                                 0,__gen_e_acsl_exists_6);
+    __gen_e_acsl_assert_data_23.blocking = 1;
+    __gen_e_acsl_assert_data_23.kind = "Assertion";
+    __gen_e_acsl_assert_data_23.pred_txt = "exists_unordered_binders:\n  \\exists integer i, integer j, integer k;\n    0 <= i <= k <= 10 && 1 <= j < k && p4(i, j, k)";
+    __gen_e_acsl_assert_data_23.file = "tests/arith/quantif.i";
+    __gen_e_acsl_assert_data_23.fct = "main";
+    __gen_e_acsl_assert_data_23.line = 83;
+    __e_acsl_assert(__gen_e_acsl_exists_6,& __gen_e_acsl_assert_data_23);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23);
   }
   /*@
   assert
   exists_unordered_binders:
-    ∃ ℤ i, ℤ j, ℤ k;
-      0 ≤ i ≤ k ≤ 10 ∧ 1 ≤ j < k ∧ p4(i, j, k);
+    \exists integer i, integer j, integer k;
+      0 <= i <= k <= 10 && 1 <= j < k && p4(i, j, k);
    */
   ;
-  /*@ assert failed_invalid_guards: ∀ ℤ i; 10 > i ≥ 0 ⇒ p1(i, 2, 2);
-   */
+  /*@
+  assert
+  failed_invalid_guards: \forall integer i; 10 > i >= 0 ==> p1(i, 2, 2); */
   ;
   /*@
   assert
   failed_unguarded_k:
-    ∀ ℤ i, ℤ j, ℤ k; 0 ≤ i < 10 ∧ 1 < j ≤ 11 ⇒ p1(i, j, k);
+    \forall integer i, integer j, integer k;
+      0 <= i < 10 && 1 < j <= 11 ==> p1(i, j, k);
    */
   ;
   /*@
   assert
-  failed_non_integer: ∀ ℝ i; 0 ≤ i < 10 ⇒ p1(\truncate(i), 2, 2); */
-  ;
-  /*@ assert failed_missing_lower_bound: ∀ ℤ i; i < 10 ⇒ p1(i, 2, 2);
+  failed_non_integer: \forall real i; 0 <= i < 10 ==> p1(\truncate(i), 2, 2);
    */
   ;
-  /*@ assert failded_missing_upper_bound: ∀ ℤ i; 0 ≤ i ⇒ p1(i, 2, 2);
-   */
+  /*@
+  assert
+  failed_missing_lower_bound: \forall integer i; i < 10 ==> p1(i, 2, 2); */
+  ;
+  /*@
+  assert
+  failded_missing_upper_bound: \forall integer i; 0 <= i ==> p1(i, 2, 2); */
   ;
   /*@
   assert
-  failed_invalid_upper_bound_1: ∀ ℤ i, ℤ j; 0 ≤ i < j ⇒ p1(i, j, 2);
+  failed_invalid_upper_bound_1:
+    \forall integer i, integer j; 0 <= i < j ==> p1(i, j, 2);
    */
   ;
   /*@
   assert
   failed_invalid_upper_bound_2:
-    ∀ ℤ i, ℤ j; i < j ∧ 0 ≤ i ⇒ p1(i, 2, 2);
+    \forall integer i, integer j; i < j && 0 <= i ==> p1(i, 2, 2);
    */
   ;
   /*@
   assert
   failed_extra_constraint:
-    ∀ ℤ i, ℤ j; 0 ≤ i < j ∧ i < 10 ∧ 3 ≤ j < 5 ⇒ p1(i, j, 2);
+    \forall integer i, integer j;
+      0 <= i < j && i < 10 && 3 <= j < 5 ==> p1(i, j, 2);
    */
   ;
   /*@
   assert
   failed_multiple_upper_bounds:
-    ∀ ℤ i, ℤ j; 0 ≤ i < j < i ∧ j ≤ 10 ⇒ p1(i, j, 2);
+    \forall integer i, integer j; 0 <= i < j < i && j <= 10 ==> p1(i, j, 2);
    */
   ;
   /*@
   assert
   multiple_linked_upper:
-    ∀ ℤ i, ℤ j, ℤ k;
-      0 ≤ i < k ∧ 1 ≤ j < k ∧ 2 ≤ k < 10 ⇒ p1(i, j, k);
+    \forall integer i, integer j, integer k;
+      0 <= i < k && 1 <= j < k && 2 <= k < 10 ==> p1(i, j, k);
    */
   ;
   /*@
   assert
   multiple_guard:
-    ∀ ℤ i, ℤ j;
-      0 ≤ i < 10 ∧ 2 ≤ i < 8 ∧ 4 ≤ j < 6 ⇒ p1(i, j, 2);
+    \forall integer i, integer j;
+      0 <= i < 10 && 2 <= i < 8 && 4 <= j < 6 ==> p1(i, j, 2);
    */
   ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/arith/oracle/gen_rationals.c b/src/plugins/e-acsl/tests/arith/oracle/gen_rationals.c
index e50e4e0f0f1a4c6a8d156203d2ca0c30e8ad12c8..2574283ecfb701c08296fd950fd36f3b9f10a59d 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/gen_rationals.c
+++ b/src/plugins/e-acsl/tests/arith/oracle/gen_rationals.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -20,12 +20,14 @@ double avg(double a, double b)
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   {
     __e_acsl_mpq_t __gen_e_acsl_;
     __e_acsl_mpq_t __gen_e_acsl__2;
     __e_acsl_mpq_t __gen_e_acsl__3;
     __e_acsl_mpq_t __gen_e_acsl_add;
     int __gen_e_acsl_eq;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gmpq_init(__gen_e_acsl_);
     __gmpq_set_str(__gen_e_acsl_,"3",10);
     __gmpq_init(__gen_e_acsl__2);
@@ -38,34 +40,57 @@ int main(void)
                (__e_acsl_mpq_struct const *)(__gen_e_acsl__3));
     __gen_e_acsl_eq = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl_),
                                  (__e_acsl_mpq_struct const *)(__gen_e_acsl_add));
-    __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main",
-                    "3 == 1.5 + 1.5","tests/arith/rationals.c",12);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "3 == 1.5 + 1.5";
+    __gen_e_acsl_assert_data.file = "tests/arith/rationals.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 12;
+    __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data);
     __gmpq_clear(__gen_e_acsl_);
     __gmpq_clear(__gen_e_acsl__2);
     __gmpq_clear(__gen_e_acsl__3);
     __gmpq_clear(__gen_e_acsl_add);
   }
-  /*@ assert 3 ≡ 1.5 + 1.5; */ ;
+  /*@ assert 3 == 1.5 + 1.5; */ ;
   {
     __e_acsl_mpq_t __gen_e_acsl__4;
     int __gen_e_acsl_eq_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
     __gmpq_init(__gen_e_acsl__4);
     __gmpq_set_str(__gen_e_acsl__4,"01/10",10);
     __gen_e_acsl_eq_2 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__4),
                                    (__e_acsl_mpq_struct const *)(__gen_e_acsl__4));
-    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","main","0.1 == 0.1",
-                    "tests/arith/rationals.c",13);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "0.1 == 0.1";
+    __gen_e_acsl_assert_data_2.file = "tests/arith/rationals.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 13;
+    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_2);
     __gmpq_clear(__gen_e_acsl__4);
   }
-  /*@ assert 0.1 ≡ 0.1; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","1.0 == 1.0",
-                  "tests/arith/rationals.c",14);
-  /*@ assert 1.0 ≡ 1.0; */ ;
+  /*@ assert 0.1 == 0.1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "1.0 == 1.0";
+    __gen_e_acsl_assert_data_3.file = "tests/arith/rationals.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 14;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_3);
+  }
+  /*@ assert 1.0 == 1.0; */ ;
   {
     __e_acsl_mpq_t __gen_e_acsl__5;
     double __gen_e_acsl__6;
     __e_acsl_mpq_t __gen_e_acsl__7;
     int __gen_e_acsl_ne;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
     __gmpq_init(__gen_e_acsl__5);
     __gmpq_set_str(__gen_e_acsl__5,"01/10",10);
     __gen_e_acsl__6 = __gmpq_get_d((__e_acsl_mpq_struct const *)(__gen_e_acsl__5));
@@ -74,30 +99,42 @@ int main(void)
     __gmpq_set_d(__gen_e_acsl__7,__gen_e_acsl__6);
     __gen_e_acsl_ne = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__7),
                                  (__e_acsl_mpq_struct const *)(__gen_e_acsl__5));
-    __e_acsl_assert(__gen_e_acsl_ne != 0,1,"Assertion","main",
-                    "(double)0.1 != 0.1","tests/arith/rationals.c",15);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "(double)0.1 != 0.1";
+    __gen_e_acsl_assert_data_4.file = "tests/arith/rationals.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 15;
+    __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_4);
     __gmpq_clear(__gen_e_acsl__5);
     __gmpq_clear(__gen_e_acsl__7);
   }
-  /*@ assert (double)0.1 ≢ 0.1; */ ;
+  /*@ assert (double)0.1 != 0.1; */ ;
   {
     __e_acsl_mpq_t __gen_e_acsl__8;
     double __gen_e_acsl__9;
     double __gen_e_acsl__10;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
     __gmpq_init(__gen_e_acsl__8);
     __gmpq_set_str(__gen_e_acsl__8,"01/10",10);
     __gen_e_acsl__9 = __gmpq_get_d((__e_acsl_mpq_struct const *)(__gen_e_acsl__8));
     __gen_e_acsl__10 = __gmpq_get_d((__e_acsl_mpq_struct const *)(__gen_e_acsl__8));
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "(float)0.1 != (double)0.1";
+    __gen_e_acsl_assert_data_5.file = "tests/arith/rationals.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 16;
     /*@ assert Eva: is_nan_or_infinite: \is_finite(__gen_e_acsl__9); */
     /*@ assert Eva: is_nan_or_infinite: \is_finite(__gen_e_acsl__10); */
     /*@ assert Eva: is_nan_or_infinite: \is_finite((float)__gen_e_acsl__9);
     */
-    __e_acsl_assert((double)((float)__gen_e_acsl__9) != __gen_e_acsl__10,1,
-                    "Assertion","main","(float)0.1 != (double)0.1",
-                    "tests/arith/rationals.c",16);
+    __e_acsl_assert((double)((float)__gen_e_acsl__9) != __gen_e_acsl__10,
+                    & __gen_e_acsl_assert_data_5);
     __gmpq_clear(__gen_e_acsl__8);
   }
-  /*@ assert (float)0.1 ≢ (double)0.1; */ ;
+  /*@ assert (float)0.1 != (double)0.1; */ ;
   {
     __e_acsl_mpq_t __gen_e_acsl__11;
     double __gen_e_acsl__12;
@@ -106,6 +143,8 @@ int main(void)
     __e_acsl_mpq_t __gen_e_acsl_add_2;
     __e_acsl_mpq_t __gen_e_acsl__15;
     int __gen_e_acsl_ne_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
     __gmpq_init(__gen_e_acsl__11);
     __gmpq_set_str(__gen_e_acsl__11,"11/10",10);
     __gen_e_acsl__12 = __gmpq_get_d((__e_acsl_mpq_struct const *)(__gen_e_acsl__11));
@@ -122,15 +161,20 @@ int main(void)
     __gmpq_set_d(__gen_e_acsl__15,__gen_e_acsl__12);
     __gen_e_acsl_ne_2 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__15),
                                    (__e_acsl_mpq_struct const *)(__gen_e_acsl_add_2));
-    __e_acsl_assert(__gen_e_acsl_ne_2 != 0,1,"Assertion","main",
-                    "(double)1.1 != 1 + 0.1","tests/arith/rationals.c",17);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "(double)1.1 != 1 + 0.1";
+    __gen_e_acsl_assert_data_7.file = "tests/arith/rationals.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 17;
+    __e_acsl_assert(__gen_e_acsl_ne_2 != 0,& __gen_e_acsl_assert_data_7);
     __gmpq_clear(__gen_e_acsl__11);
     __gmpq_clear(__gen_e_acsl__13);
     __gmpq_clear(__gen_e_acsl__14);
     __gmpq_clear(__gen_e_acsl_add_2);
     __gmpq_clear(__gen_e_acsl__15);
   }
-  /*@ assert (double)1.1 ≢ 1 + 0.1; */ ;
+  /*@ assert (double)1.1 != 1 + 0.1; */ ;
   {
     __e_acsl_mpq_t __gen_e_acsl__16;
     __e_acsl_mpq_t __gen_e_acsl__17;
@@ -139,6 +183,8 @@ int main(void)
     __e_acsl_mpq_t __gen_e_acsl__19;
     __e_acsl_mpq_t __gen_e_acsl_sub;
     int __gen_e_acsl_eq_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
     __gmpq_init(__gen_e_acsl__16);
     __gmpq_set_str(__gen_e_acsl__16,"1",10);
     __gmpq_init(__gen_e_acsl__17);
@@ -157,8 +203,13 @@ int main(void)
                (__e_acsl_mpq_struct const *)(__gen_e_acsl__19));
     __gen_e_acsl_eq_3 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl_add_3),
                                    (__e_acsl_mpq_struct const *)(__gen_e_acsl_sub));
-    __e_acsl_assert(__gen_e_acsl_eq_3 == 0,1,"Assertion","main",
-                    "1 + 0.1 == 2 - 0.9","tests/arith/rationals.c",18);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "1 + 0.1 == 2 - 0.9";
+    __gen_e_acsl_assert_data_8.file = "tests/arith/rationals.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 18;
+    __e_acsl_assert(__gen_e_acsl_eq_3 == 0,& __gen_e_acsl_assert_data_8);
     __gmpq_clear(__gen_e_acsl__16);
     __gmpq_clear(__gen_e_acsl__17);
     __gmpq_clear(__gen_e_acsl_add_3);
@@ -166,7 +217,7 @@ int main(void)
     __gmpq_clear(__gen_e_acsl__19);
     __gmpq_clear(__gen_e_acsl_sub);
   }
-  /*@ assert 1 + 0.1 ≡ 2 - 0.9; */ ;
+  /*@ assert 1 + 0.1 == 2 - 0.9; */ ;
   float x = 0.2f;
   float y = 0.3f;
   float sum = x + y;
@@ -176,6 +227,11 @@ int main(void)
     __e_acsl_mpq_t __gen_e_acsl_mul;
     __e_acsl_mpq_t __gen_e_acsl__21;
     int __gen_e_acsl_ne_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_9,"sum",sum);
+    __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_9,"x",x);
+    __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_9,"y",y);
     __gmpq_init(__gen_e_acsl_y);
     __gmpq_set_d(__gen_e_acsl_y,(double)y);
     __gmpq_init(__gen_e_acsl__20);
@@ -188,14 +244,20 @@ int main(void)
     __gmpq_set_d(__gen_e_acsl__21,(double)sum);
     __gen_e_acsl_ne_3 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__21),
                                    (__e_acsl_mpq_struct const *)(__gen_e_acsl_mul));
-    __e_acsl_assert(__gen_e_acsl_ne_3 != 0,1,"Assertion","main",
-                    "sum != x * y","tests/arith/rationals.c",20);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "sum != x * y";
+    __gen_e_acsl_assert_data_9.file = "tests/arith/rationals.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 20;
+    __e_acsl_assert(__gen_e_acsl_ne_3 != 0,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
     __gmpq_clear(__gen_e_acsl_y);
     __gmpq_clear(__gen_e_acsl__20);
     __gmpq_clear(__gen_e_acsl_mul);
     __gmpq_clear(__gen_e_acsl__21);
   }
-  /*@ assert sum ≢ x * y; */ ;
+  /*@ assert sum != x * y; */ ;
   double d = 0.1;
   __gen_e_acsl_avg(4.3,11.7);
   {
@@ -204,6 +266,8 @@ int main(void)
     __e_acsl_mpq_t __gen_e_acsl_add_4;
     __e_acsl_mpq_t __gen_e_acsl__24;
     int __gen_e_acsl_ne_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
     __gmpq_init(__gen_e_acsl__22);
     __gmpq_set_str(__gen_e_acsl__22,"1",10);
     __gmpq_init(__gen_e_acsl__23);
@@ -216,14 +280,19 @@ int main(void)
     __gmpq_set_d(__gen_e_acsl__24,1.1);
     __gen_e_acsl_ne_4 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__24),
                                    (__e_acsl_mpq_struct const *)(__gen_e_acsl_add_4));
-    __e_acsl_assert(__gen_e_acsl_ne_4 != 0,1,"Assertion","main",
-                    "1.1d != 1 + 0.1","tests/arith/rationals.c",28);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "1.1d != 1 + 0.1";
+    __gen_e_acsl_assert_data_10.file = "tests/arith/rationals.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 28;
+    __e_acsl_assert(__gen_e_acsl_ne_4 != 0,& __gen_e_acsl_assert_data_10);
     __gmpq_clear(__gen_e_acsl__22);
     __gmpq_clear(__gen_e_acsl__23);
     __gmpq_clear(__gen_e_acsl_add_4);
     __gmpq_clear(__gen_e_acsl__24);
   }
-  /*@ assert 1.1d ≢ 1 + 0.1; */ ;
+  /*@ assert 1.1d != 1 + 0.1; */ ;
   short a = (short)1;
   short b = (short)1;
   {
@@ -234,6 +303,10 @@ int main(void)
     __e_acsl_mpq_t __gen_e_acsl__28;
     __e_acsl_mpq_t __gen_e_acsl_sub_2;
     int __gen_e_acsl_gt;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_11,"a",0,a);
+    __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_11,"b",0,b);
     __gmpq_init(__gen_e_acsl__25);
     __gmpq_set_si(__gen_e_acsl__25,(long)a,1UL);
     __gmpq_init(__gen_e_acsl__26);
@@ -252,8 +325,14 @@ int main(void)
                (__e_acsl_mpq_struct const *)(__gen_e_acsl__28));
     __gen_e_acsl_gt = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl_add_5),
                                  (__e_acsl_mpq_struct const *)(__gen_e_acsl_sub_2));
-    __e_acsl_assert(__gen_e_acsl_gt > 0,1,"Assertion","main",
-                    "a + b > 2. - 1.","tests/arith/rationals.c",31);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "a + b > 2. - 1.";
+    __gen_e_acsl_assert_data_11.file = "tests/arith/rationals.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 31;
+    __e_acsl_assert(__gen_e_acsl_gt > 0,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
     __gmpq_clear(__gen_e_acsl__25);
     __gmpq_clear(__gen_e_acsl__26);
     __gmpq_clear(__gen_e_acsl_add_5);
@@ -263,6 +342,7 @@ int main(void)
   }
   /*@ assert a + b > 2. - 1.; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
@@ -297,7 +377,12 @@ double __gen_e_acsl_avg(double a, double b)
     __e_acsl_mpq_t __gen_e_acsl__3;
     int __gen_e_acsl_lt;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gen_e_acsl_delta = 1;
+    __e_acsl_assert_register_mpq(& __gen_e_acsl_assert_data,"\\old(a)",
+                                 (__e_acsl_mpq_struct const *)(__gen_e_acsl_at));
+    __e_acsl_assert_register_double(& __gen_e_acsl_assert_data,"\\old(b)",
+                                    __gen_e_acsl_at_2);
     __gmpq_init(__gen_e_acsl_);
     __gmpq_set_d(__gen_e_acsl_,__gen_e_acsl_at_2);
     __gmpq_init(__gen_e_acsl_add);
@@ -313,12 +398,18 @@ double __gen_e_acsl_avg(double a, double b)
     __gmpq_init(__gen_e_acsl_avg_real);
     __gmpq_set(__gen_e_acsl_avg_real,
                (__e_acsl_mpq_struct const *)(__gen_e_acsl_div));
+    __e_acsl_assert_register_mpq(& __gen_e_acsl_assert_data,"avg_real",
+                                 (__e_acsl_mpq_struct const *)(__gen_e_acsl_avg_real));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"delta",0,
+                                 __gen_e_acsl_delta);
     __gmpq_init(__gen_e_acsl_delta_2);
     __gmpq_set_si(__gen_e_acsl_delta_2,(long)__gen_e_acsl_delta,1UL);
     __gmpq_init(__gen_e_acsl_sub);
     __gmpq_sub(__gen_e_acsl_sub,
                (__e_acsl_mpq_struct const *)(__gen_e_acsl_avg_real),
                (__e_acsl_mpq_struct const *)(__gen_e_acsl_delta_2));
+    __e_acsl_assert_register_double(& __gen_e_acsl_assert_data,"\\result",
+                                    __retres);
     __gmpq_init(__gen_e_acsl__3);
     __gmpq_set_d(__gen_e_acsl__3,__retres);
     __gen_e_acsl_lt = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl_sub),
@@ -328,6 +419,12 @@ double __gen_e_acsl_avg(double a, double b)
       __e_acsl_mpq_t __gen_e_acsl_add_2;
       __e_acsl_mpq_t __gen_e_acsl__4;
       int __gen_e_acsl_lt_2;
+      __e_acsl_assert_register_double(& __gen_e_acsl_assert_data,"\\result",
+                                      __retres);
+      __e_acsl_assert_register_mpq(& __gen_e_acsl_assert_data,"avg_real",
+                                   (__e_acsl_mpq_struct const *)(__gen_e_acsl_avg_real));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"delta",0,
+                                   __gen_e_acsl_delta);
       __gmpq_init(__gen_e_acsl_delta_3);
       __gmpq_set_si(__gen_e_acsl_delta_3,(long)__gen_e_acsl_delta,1UL);
       __gmpq_init(__gen_e_acsl_add_2);
@@ -344,9 +441,14 @@ double __gen_e_acsl_avg(double a, double b)
       __gmpq_clear(__gen_e_acsl__4);
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Postcondition","avg",
-                    "\\let delta = 1;\n\\let avg_real = (\\old(a) + \\old(b)) / 2;\n  avg_real - delta < \\result < avg_real + delta",
-                    "tests/arith/rationals.c",4);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\let delta = 1;\n\\let avg_real = (\\old(a) + \\old(b)) / 2;\n  avg_real - delta < \\result < avg_real + delta";
+    __gen_e_acsl_assert_data.file = "tests/arith/rationals.c";
+    __gen_e_acsl_assert_data.fct = "avg";
+    __gen_e_acsl_assert_data.line = 4;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __gmpq_clear(__gen_e_acsl_avg_real);
     __gmpq_clear(__gen_e_acsl_);
     __gmpq_clear(__gen_e_acsl_add);
diff --git a/src/plugins/e-acsl/tests/arith/oracle/let.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/let.res.oracle
index 761e0a99df75073bd2c6b624a90886f3ce9daf7d..a481bf0eed1d199fefb02fc50031cc2a8555c70a 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/let.res.oracle
+++ b/src/plugins/e-acsl/tests/arith/oracle/let.res.oracle
@@ -3,17 +3,65 @@
   E-ACSL construct `let-binding on array or pointer' is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/arith/let.c:7: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/let.c:7: Warning: 
+  function __e_acsl_assert_register_long: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/let.c:7: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/let.c:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/let.c:10: Warning: 
+  function __e_acsl_assert_register_long: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/let.c:10: Warning: 
+  function __e_acsl_assert_register_long: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/let.c:9: Warning: assertion got status unknown.
 [eva:alarm] tests/arith/let.c:13: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/let.c:16: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/let.c:15: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/let.c:20: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/let.c:19: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/let.c:24: Warning: 
+  function __e_acsl_assert_register_long: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/let.c:24: Warning: 
+  function __e_acsl_assert_register_long: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/let.c:24: Warning: 
+  function __e_acsl_assert_register_long: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/let.c:24: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/let.c:24: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/let.c:27: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/let.c:27: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/let.c:30: Warning: 
+  function __e_acsl_assert_register_float: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/let.c:30: Warning: 
+  function __e_acsl_assert_register_float: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/let.c:30: Warning: assertion got status unknown.
 [eva:alarm] tests/arith/let.c:34: Warning: assertion got status unknown.
 [eva:alarm] tests/arith/let.c:36: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/let.c:41: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/let.c:41: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/let.c:41: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/let.c:48: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/let.c:48: Warning: assertion got status unknown.
diff --git a/src/plugins/e-acsl/tests/arith/oracle/quantif.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/quantif.res.oracle
index 2eaa50601e582586894367106078a8ef630d85eb..7e5ee50865ee1b646c0390af22d90c2782795d18 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/quantif.res.oracle
+++ b/src/plugins/e-acsl/tests/arith/oracle/quantif.res.oracle
@@ -2,37 +2,39 @@
 [e-acsl] tests/arith/quantif.i:88: Warning: 
   invalid E-ACSL construct
   `invalid guard 10 > i in quantification
-  failed_invalid_guards: ∀ ℤ i; 10 > i ≥ 0 ⇒ p1(i, 2, 2).
-  Missing guard for i. Only < and ≤ are allowed to guard quantifier variables'.
+  failed_invalid_guards: \forall integer i; 10 > i >= 0 ==> p1(i, 2, 2).
+  Missing guard for i. Only < and <= are allowed to guard quantifier variables'.
   Ignoring annotation.
 [e-acsl] tests/arith/quantif.i:90: Warning: 
   invalid E-ACSL construct
   `invalid guard p1(i, j, k) in quantification
   failed_unguarded_k:
-    ∀ ℤ i, ℤ j, ℤ k; 0 ≤ i < 10 ∧ 1 < j ≤ 11 ⇒ p1(i, j, k).
+    \forall integer i, integer j, integer k;
+      0 <= i < 10 && 1 < j <= 11 ==> p1(i, j, k).
   Missing guard for k. '.
   Ignoring annotation.
 [e-acsl] tests/arith/quantif.i:92: Warning: 
   E-ACSL construct
   `non integer variable i in quantification
-  failed_non_integer: ∀ ℝ i; 0 ≤ i < 10 ⇒ p1(\truncate(i), 2, 2)'
+  failed_non_integer: \forall real i; 0 <= i < 10 ==> p1(\truncate(i), 2, 2)'
   is not yet supported.
   Ignoring annotation.
 [e-acsl] tests/arith/quantif.i:94: Warning: 
   invalid E-ACSL construct
   `missing lower bound for i in quantification
-  failed_missing_lower_bound: ∀ ℤ i; i < 10 ⇒ p1(i, 2, 2)'.
+  failed_missing_lower_bound: \forall integer i; i < 10 ==> p1(i, 2, 2)'.
   Ignoring annotation.
 [e-acsl] tests/arith/quantif.i:96: Warning: 
   invalid E-ACSL construct
   `invalid guard p1(i, 2, 2) in quantification
-  failded_missing_upper_bound: ∀ ℤ i; 0 ≤ i ⇒ p1(i, 2, 2). 
+  failded_missing_upper_bound: \forall integer i; 0 <= i ==> p1(i, 2, 2). 
   Missing upper bound for i. '.
   Ignoring annotation.
 [e-acsl] tests/arith/quantif.i:98: Warning: 
   invalid E-ACSL construct
   `invalid guard p1(i, j, 2) in quantification
-  failed_invalid_upper_bound_1: ∀ ℤ i, ℤ j; 0 ≤ i < j ⇒ p1(i, j, 2). 
+  failed_invalid_upper_bound_1:
+    \forall integer i, integer j; 0 <= i < j ==> p1(i, j, 2).
   Missing upper bound for j. '.
   Ignoring annotation.
 [e-acsl] tests/arith/quantif.i:100: Warning: 
@@ -40,33 +42,34 @@
   `missing lower bound for i when processing the linked upper bound i < j
   in quantification
   failed_invalid_upper_bound_2:
-    ∀ ℤ i, ℤ j; i < j ∧ 0 ≤ i ⇒ p1(i, 2, 2)'.
+    \forall integer i, integer j; i < j && 0 <= i ==> p1(i, 2, 2)'.
   Ignoring annotation.
 [e-acsl] tests/arith/quantif.i:102: Warning: 
   invalid E-ACSL construct
-  `found existing lower bound i < j when processing 3 ≤ j in quantification
+  `found existing lower bound i < j when processing 3 <= j in quantification
   failed_extra_constraint:
-    ∀ ℤ i, ℤ j; 0 ≤ i < j ∧ i < 10 ∧ 3 ≤ j < 5 ⇒ p1(i, j, 2)'.
+    \forall integer i, integer j;
+      0 <= i < j && i < 10 && 3 <= j < 5 ==> p1(i, j, 2)'.
   Ignoring annotation.
 [e-acsl] tests/arith/quantif.i:104: Warning: 
   invalid E-ACSL construct
-  `found existing lower bound 0 ≤ i when processing j < i in quantification
+  `found existing lower bound 0 <= i when processing j < i in quantification
   failed_multiple_upper_bounds:
-    ∀ ℤ i, ℤ j; 0 ≤ i < j < i ∧ j ≤ 10 ⇒ p1(i, j, 2)'.
+    \forall integer i, integer j; 0 <= i < j < i && j <= 10 ==> p1(i, j, 2)'.
   Ignoring annotation.
 [e-acsl] tests/arith/quantif.i:106: Warning: 
   invalid E-ACSL construct
   `found existing lower bound i < k when processing j < k in quantification
   multiple_linked_upper:
-    ∀ ℤ i, ℤ j, ℤ k;
-      0 ≤ i < k ∧ 1 ≤ j < k ∧ 2 ≤ k < 10 ⇒ p1(i, j, k)'.
+    \forall integer i, integer j, integer k;
+      0 <= i < k && 1 <= j < k && 2 <= k < 10 ==> p1(i, j, k)'.
   Ignoring annotation.
 [e-acsl] tests/arith/quantif.i:108: Warning: 
   invalid E-ACSL construct
-  `invalid constraint 2 ≤ i, both operands are constants or already bounded in quantification
+  `invalid constraint 2 <= i, both operands are constants or already bounded in quantification
   multiple_guard:
-    ∀ ℤ i, ℤ j;
-      0 ≤ i < 10 ∧ 2 ≤ i < 8 ∧ 4 ≤ j < 6 ⇒ p1(i, j, 2)'.
+    \forall integer i, integer j;
+      0 <= i < 10 && 2 <= i < 8 && 4 <= j < 6 ==> p1(i, j, 2)'.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
 [eva:alarm] tests/arith/quantif.i:22: Warning: assertion got status unknown.
diff --git a/src/plugins/e-acsl/tests/arith/oracle/rationals.res.oracle b/src/plugins/e-acsl/tests/arith/oracle/rationals.res.oracle
index 2fe8336c2779dad2856a000f5f37523658474df1..4b69e0773d5feaef3ac4f2fb162c2586c814a1ac 100644
--- a/src/plugins/e-acsl/tests/arith/oracle/rationals.res.oracle
+++ b/src/plugins/e-acsl/tests/arith/oracle/rationals.res.oracle
@@ -35,8 +35,32 @@
 [eva:alarm] tests/arith/rationals.c:18: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/rationals.c:18: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/rationals.c:20: Warning: 
+  function __e_acsl_assert_register_float: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/rationals.c:20: Warning: 
+  function __e_acsl_assert_register_float: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/rationals.c:20: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/arith/rationals.c:5: Warning: 
+  function __e_acsl_assert_register_double: precondition data->values == \null ||
+                                                         \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/rationals.c:6: Warning: 
+  function __e_acsl_assert_register_mpq: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/rationals.c:6: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/rationals.c:6: Warning: 
+  function __e_acsl_assert_register_double: precondition data->values == \null ||
+                                                         \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/rationals.c:6: Warning: 
+  function __e_acsl_assert_register_mpq: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/arith/rationals.c:6: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/rationals.c:4: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/rationals.c:4: Warning: 
@@ -44,5 +68,8 @@
 [eva:alarm] tests/arith/rationals.c:28: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/arith/rationals.c:28: Warning: assertion got status unknown.
+[eva:alarm] tests/arith/rationals.c:31: Warning: 
+  function __e_acsl_assert_register_short: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/arith/rationals.c:31: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1304.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1304.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..86232db36ffcac8f8c28b462dd6a09b8b08900ce 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts1304.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts1304.res.oracle
@@ -1,2 +1,8 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/bts/bts1304.i:32: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1304.i:32: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1326.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1326.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..b6bb7a865262dce7611cc9f289a3163ada2c6e7a 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts1326.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts1326.res.oracle
@@ -1,2 +1,23 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/bts/bts1326.i:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1326.i:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1326.i:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1326.i:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1326.i:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1326.i:8: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] :0: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1399.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1399.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..fa29801de2b58ea8f86ef784924e8dd1d29a2d0d 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts1399.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts1399.res.oracle
@@ -1,2 +1,8 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/bts/bts1399.c:19: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1399.c:19: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1478.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1478.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..d51edaf2d2c386a2ac861558821bc8bc672b570c 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts1478.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts1478.res.oracle
@@ -1,2 +1,11 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/bts/bts1478.c:10: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1478.c:10: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1478.c:11: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1700.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1700.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..f79db5868c842f78312deac36e3bcd14ad14d603 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts1700.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts1700.res.oracle
@@ -1,2 +1,20 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/bts/bts1700.i:9: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1700.i:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1700.i:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1700.i:12: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1700.i:12: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1700.i:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1717.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1717.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..4b03ca476eb47a1f4d15c81b3a21dc5dcb49b3e4 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts1717.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts1717.res.oracle
@@ -1,2 +1,14 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/bts/bts1717.i:10: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1717.i:10: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1717.i:10: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1717.i:10: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1718.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1718.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..113ee6ecd8402bb090d9a998d7e704206cced536 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts1718.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts1718.res.oracle
@@ -1,2 +1,14 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/bts/bts1718.i:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1718.i:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1718.i:13: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1718.i:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1740.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1740.res.oracle
index 120779645cf314b1e6e1d9272bf454d1899ca0f5..ce37712a8261231304302530b0cdb7e55fedc29a 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts1740.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts1740.res.oracle
@@ -1,7 +1,24 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/bts/bts1740.i:11: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1740.i:11: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1740.i:11: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1740.i:11: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:locals-escaping] tests/bts/bts1740.i:12: Warning: 
   locals {a} escaping the scope of a block of main through p
 [eva:alarm] tests/bts/bts1740.i:16: Warning: 
-  accessing left-value that contains escaping addresses.
-  assert ¬\dangling(&p);
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1740.i:16: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1740.i:16: Warning: 
+  accessing left-value that contains escaping addresses. assert !\dangling(&p);
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1837.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1837.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..329c7caad6b0784c018fc36eae353c77afd8b5b4 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts1837.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts1837.res.oracle
@@ -1,2 +1,56 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/bts/bts1837.i:21: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:21: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:21: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:21: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:22: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:22: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:22: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:22: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:11: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:11: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:12: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:12: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:13: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts1837.i:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts2191.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts2191.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..48090f57abde8f0ece3cedd270396f1105bde879 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts2191.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts2191.res.oracle
@@ -1,2 +1,14 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/bts/bts2191.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts2191.c:14: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts2191.c:14: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts2191.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts2192.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts2192.res.oracle
index 5e19b9d7d6eecf52c360612ac19e7e7406a776f2..c3b727f9f15cbec8d940ee81081ccc586625237f 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts2192.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts2192.res.oracle
@@ -6,3 +6,9 @@
   E-ACSL construct `assigns clause in behavior' is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] FRAMAC_SHARE/libc/stdlib.h:78: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdlib.h:78: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts2231.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts2231.res.oracle
index 1ea3c8ae98490869fa6b0957443425e07dde6807..d25b09520078c72af45f4c7b0e3823f09a147da8 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts2231.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts2231.res.oracle
@@ -1,6 +1,9 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
 [eva:alarm] tests/bts/bts2231.i:8: Warning: 
-  signed overflow. assert -9223372036854775808 ≤ __gen_e_acsl__2 - 1;
+  function __e_acsl_assert_register_long: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts2231.i:8: Warning: 
+  signed overflow. assert -9223372036854775808 <= __gen_e_acsl__2 - 1;
 [eva:alarm] tests/bts/bts2231.i:8: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts2252.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts2252.res.oracle
index 911524192af0f41e118d953a0cd66c42751df0c1..abb0a4b867b9cc06cf9b53f3ce515b1cf529eb7c 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts2252.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts2252.res.oracle
@@ -30,5 +30,14 @@
   E-ACSL construct `assigns clause in behavior' is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/bts/bts2252.c:17: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts2252.c:17: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts2252.c:17: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/bts/bts2252.c:18: Warning: 
   out of bounds read. assert \valid_read(srcbuf + i);
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts2386.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts2386.res.oracle
index 2ccd0176049ef668c0d7ccace06550886fe3b6f7..0667fd1650c5c167cbfb9344af3579b44ae85cb5 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts2386.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts2386.res.oracle
@@ -1,4 +1,16 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/bts/bts2386.c:7: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts2386.c:7: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts2386.c:7: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/bts/bts2386.c:7: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/bts/bts2386.c:8: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts2406.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts2406.res.oracle
index 7c1384a1c04f5c52a72a6548da780955c26fe900..e9ae2d5d9d627ba753d8bbafc819f3c118068fae 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts2406.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts2406.res.oracle
@@ -3,3 +3,9 @@
 [eva:unknown-size] tests/bts/bts2406.c:5: Warning: 
   during initialization of variable 'tab', size of type 'char const []'
   cannot be computed (Size of array without number of elements.)
+[eva:alarm] tests/bts/bts2406.c:10: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/bts2406.c:11: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1304.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1304.c
index 8c7d12a1602c19079507484fd0419b37327805fd..ba84dea73fed8ff4d318665ad08c7c49201b29b5 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1304.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1304.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -43,11 +43,24 @@ int main(void)
   }
   {
     int __gen_e_acsl_initialized;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,
+                                 "(unsigned char *)buf",(void *)(buf));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(union msg)",0,sizeof(union msg));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(buf),
                                                     sizeof(union msg));
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main",
-                    "\\initialized((union msg *)((unsigned char *)buf))",
-                    "tests/bts/bts1304.i",32);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized((union msg *)((unsigned char *)buf))",
+                                 0,__gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\initialized((union msg *)((unsigned char *)buf))";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts1304.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 32;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \initialized((union msg *)((unsigned char *)buf)); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1307.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1307.c
index aa6edd56fa7dddc19ec5c7a78c4ffe0f97881415..12c10eb3b08db2833c9b8fe3902916e3f20b4981 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1307.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1307.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -11,7 +11,7 @@ extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
     behavior OverEstimate_Motoring:
       assumes \true;
       ensures
-        *\old(Mtmax_out) ≢
+        *\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);
@@ -37,9 +37,9 @@ void foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out)
     behavior UnderEstimate_Motoring:
       assumes \true;
       ensures
-        *\old(Mtmin_out) ≡ *\old(Mtmin_in) < 0.85 * *\old(Mwmin)?
-          *\old(Mtmin_in) ≢ 0.:
-          0.85 * *\old(Mwmin) ≢ 0.;
+        *\old(Mtmin_out) == *\old(Mtmin_in) < 0.85 * *\old(Mwmin)?
+          *\old(Mtmin_in) != 0.:
+          0.85 * *\old(Mwmin) != 0.;
  */
 void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out);
 
@@ -85,9 +85,9 @@ int main(void)
     behavior UnderEstimate_Motoring:
       assumes \true;
       ensures
-        *\old(Mtmin_out) ≡ *\old(Mtmin_in) < 0.85 * *\old(Mwmin)?
-          *\old(Mtmin_in) ≢ 0.:
-          0.85 * *\old(Mwmin) ≢ 0.;
+        *\old(Mtmin_out) == *\old(Mtmin_in) < 0.85 * *\old(Mwmin)?
+          *\old(Mtmin_in) != 0.:
+          0.85 * *\old(Mwmin) != 0.;
  */
 void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out)
 {
@@ -106,20 +106,61 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out)
     __e_acsl_store_block((void *)(& Mwmin),(size_t)8);
     __e_acsl_store_block((void *)(& Mtmin_in),(size_t)8);
     __gen_e_acsl_contract = __e_acsl_contract_init((size_t)1);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"Mtmin_in",
+                                 (void *)Mtmin_in);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(float)",0,sizeof(float));
     __gen_e_acsl_valid = __e_acsl_valid((void *)Mtmin_in,sizeof(float),
                                         (void *)Mtmin_in,
                                         (void *)(& Mtmin_in));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","bar",
-                    "\\valid(Mtmin_in)","tests/bts/bts1307.i",20);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\valid(Mtmin_in)",0,__gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(Mtmin_in)";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts1307.i";
+    __gen_e_acsl_assert_data.fct = "bar";
+    __gen_e_acsl_assert_data.line = 20;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"Mwmin",
+                                 (void *)Mwmin);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(float)",0,sizeof(float));
     __gen_e_acsl_valid_2 = __e_acsl_valid((void *)Mwmin,sizeof(float),
                                           (void *)Mwmin,(void *)(& Mwmin));
-    __e_acsl_assert(__gen_e_acsl_valid_2,1,"Precondition","bar",
-                    "\\valid(Mwmin)","tests/bts/bts1307.i",21);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\valid(Mwmin)",0,__gen_e_acsl_valid_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Precondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(Mwmin)";
+    __gen_e_acsl_assert_data_2.file = "tests/bts/bts1307.i";
+    __gen_e_acsl_assert_data_2.fct = "bar";
+    __gen_e_acsl_assert_data_2.line = 21;
+    __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"Mtmin_out",
+                                 (void *)Mtmin_out);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(float)",0,sizeof(float));
     __gen_e_acsl_valid_3 = __e_acsl_valid((void *)Mtmin_out,sizeof(float),
                                           (void *)Mtmin_out,
                                           (void *)(& Mtmin_out));
-    __e_acsl_assert(__gen_e_acsl_valid_3,1,"Precondition","bar",
-                    "\\valid(Mtmin_out)","tests/bts/bts1307.i",22);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\valid(Mtmin_out)",0,__gen_e_acsl_valid_3);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Precondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\valid(Mtmin_out)";
+    __gen_e_acsl_assert_data_3.file = "tests/bts/bts1307.i";
+    __gen_e_acsl_assert_data_3.fct = "bar";
+    __gen_e_acsl_assert_data_3.line = 22;
+    __e_acsl_assert(__gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0,1);
   }
   __gen_e_acsl_at_6 = Mwmin;
@@ -138,28 +179,61 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out)
       int __gen_e_acsl_valid_read_2;
       int __gen_e_acsl_and;
       int __gen_e_acsl_if;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4,
+                                     "*\\old(Mtmin_out)",*__gen_e_acsl_at);
+      __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4,
+                                     "*\\old(Mtmin_in)",*__gen_e_acsl_at_2);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,
+                                   "__gen_e_acsl_at_2",
+                                   (void *)__gen_e_acsl_at_2);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(float)",0,sizeof(float));
       __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)__gen_e_acsl_at_2,
                                                     sizeof(float),
                                                     (void *)__gen_e_acsl_at_2,
                                                     (void *)(& __gen_e_acsl_at_2));
-      __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","bar",
-                      "mem_access: \\valid_read(__gen_e_acsl_at_2)",
-                      "tests/bts/bts1307.i",26);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "RTE";
+      __gen_e_acsl_assert_data_5.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_2)";
+      __gen_e_acsl_assert_data_5.file = "tests/bts/bts1307.i";
+      __gen_e_acsl_assert_data_5.fct = "bar";
+      __gen_e_acsl_assert_data_5.line = 26;
+      __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,
+                                   "__gen_e_acsl_at",(void *)__gen_e_acsl_at);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(float)",0,sizeof(float));
       __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)__gen_e_acsl_at,
                                                       sizeof(float),
                                                       (void *)__gen_e_acsl_at,
                                                       (void *)(& __gen_e_acsl_at));
-      __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","bar",
-                      "mem_access: \\valid_read(__gen_e_acsl_at)",
-                      "tests/bts/bts1307.i",26);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "RTE";
+      __gen_e_acsl_assert_data_6.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at)";
+      __gen_e_acsl_assert_data_6.file = "tests/bts/bts1307.i";
+      __gen_e_acsl_assert_data_6.fct = "bar";
+      __gen_e_acsl_assert_data_6.line = 26;
+      __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
       if (*__gen_e_acsl_at == *__gen_e_acsl_at_2) {
         __e_acsl_mpq_t __gen_e_acsl_;
         __e_acsl_mpq_t __gen_e_acsl__2;
         __e_acsl_mpq_t __gen_e_acsl_mul;
         __e_acsl_mpq_t __gen_e_acsl__3;
         int __gen_e_acsl_lt;
+        __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4,
+                                       "*\\old(Mtmin_in)",*__gen_e_acsl_at_3);
         __gmpq_init(__gen_e_acsl_);
         __gmpq_set_str(__gen_e_acsl_,"085/100",10);
+        __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4,
+                                       "*\\old(Mwmin)",*__gen_e_acsl_at_4);
         __gmpq_init(__gen_e_acsl__2);
         __gmpq_set_d(__gen_e_acsl__2,(double)*__gen_e_acsl_at_4);
         __gmpq_init(__gen_e_acsl_mul);
@@ -179,13 +253,28 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out)
       else __gen_e_acsl_and = 0;
       if (__gen_e_acsl_and) {
         int __gen_e_acsl_valid_read_3;
+        __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4,
+                                       "*\\old(Mtmin_in)",*__gen_e_acsl_at_5);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,
+                                     "__gen_e_acsl_at_5",
+                                     (void *)__gen_e_acsl_at_5);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                       "sizeof(float)",0,sizeof(float));
         __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)__gen_e_acsl_at_5,
                                                         sizeof(float),
                                                         (void *)__gen_e_acsl_at_5,
                                                         (void *)(& __gen_e_acsl_at_5));
-        __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","bar",
-                        "mem_access: \\valid_read(__gen_e_acsl_at_5)",
-                        "tests/bts/bts1307.i",26);
+        __gen_e_acsl_assert_data_7.blocking = 1;
+        __gen_e_acsl_assert_data_7.kind = "RTE";
+        __gen_e_acsl_assert_data_7.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at_5)";
+        __gen_e_acsl_assert_data_7.file = "tests/bts/bts1307.i";
+        __gen_e_acsl_assert_data_7.fct = "bar";
+        __gen_e_acsl_assert_data_7.line = 26;
+        __e_acsl_assert(__gen_e_acsl_valid_read_3,
+                        & __gen_e_acsl_assert_data_7);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
         __gen_e_acsl_if = (double)*__gen_e_acsl_at_5 != 0.;
       }
       else {
@@ -196,6 +285,8 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out)
         int __gen_e_acsl_ne;
         __gmpq_init(__gen_e_acsl__4);
         __gmpq_set_str(__gen_e_acsl__4,"085/100",10);
+        __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4,
+                                       "*\\old(Mwmin)",*__gen_e_acsl_at_6);
         __gmpq_init(__gen_e_acsl__5);
         __gmpq_set_d(__gen_e_acsl__5,(double)*__gen_e_acsl_at_6);
         __gmpq_init(__gen_e_acsl_mul_2);
@@ -212,9 +303,14 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out)
         __gmpq_clear(__gen_e_acsl_mul_2);
         __gmpq_clear(__gen_e_acsl__6);
       }
-      __e_acsl_assert(__gen_e_acsl_if,1,"Postcondition","bar",
-                      "UnderEstimate_Motoring:\n  *\\old(Mtmin_out) == *\\old(Mtmin_in) < 0.85 * *\\old(Mwmin)?\n    *\\old(Mtmin_in) != 0.:\n    0.85 * *\\old(Mwmin) != 0.",
-                      "tests/bts/bts1307.i",26);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Postcondition";
+      __gen_e_acsl_assert_data_4.pred_txt = "UnderEstimate_Motoring:\n  *\\old(Mtmin_out) == *\\old(Mtmin_in) < 0.85 * *\\old(Mwmin)?\n    *\\old(Mtmin_in) != 0.:\n    0.85 * *\\old(Mwmin) != 0.";
+      __gen_e_acsl_assert_data_4.file = "tests/bts/bts1307.i";
+      __gen_e_acsl_assert_data_4.fct = "bar";
+      __gen_e_acsl_assert_data_4.line = 26;
+      __e_acsl_assert(__gen_e_acsl_if,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     __e_acsl_delete_block((void *)(& Mtmin_out));
@@ -231,7 +327,7 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out)
     behavior OverEstimate_Motoring:
       assumes \true;
       ensures
-        *\old(Mtmax_out) ≢
+        *\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)
@@ -248,20 +344,61 @@ void __gen_e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out)
     __e_acsl_store_block((void *)(& Mwmax),(size_t)8);
     __e_acsl_store_block((void *)(& Mtmax_in),(size_t)8);
     __gen_e_acsl_contract = __e_acsl_contract_init((size_t)1);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"Mtmax_in",
+                                 (void *)Mtmax_in);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(float)",0,sizeof(float));
     __gen_e_acsl_valid = __e_acsl_valid((void *)Mtmax_in,sizeof(float),
                                         (void *)Mtmax_in,
                                         (void *)(& Mtmax_in));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","foo",
-                    "\\valid(Mtmax_in)","tests/bts/bts1307.i",5);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\valid(Mtmax_in)",0,__gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(Mtmax_in)";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts1307.i";
+    __gen_e_acsl_assert_data.fct = "foo";
+    __gen_e_acsl_assert_data.line = 5;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"Mwmax",
+                                 (void *)Mwmax);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(float)",0,sizeof(float));
     __gen_e_acsl_valid_2 = __e_acsl_valid((void *)Mwmax,sizeof(float),
                                           (void *)Mwmax,(void *)(& Mwmax));
-    __e_acsl_assert(__gen_e_acsl_valid_2,1,"Precondition","foo",
-                    "\\valid(Mwmax)","tests/bts/bts1307.i",6);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\valid(Mwmax)",0,__gen_e_acsl_valid_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Precondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(Mwmax)";
+    __gen_e_acsl_assert_data_2.file = "tests/bts/bts1307.i";
+    __gen_e_acsl_assert_data_2.fct = "foo";
+    __gen_e_acsl_assert_data_2.line = 6;
+    __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"Mtmax_out",
+                                 (void *)Mtmax_out);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(float)",0,sizeof(float));
     __gen_e_acsl_valid_3 = __e_acsl_valid((void *)Mtmax_out,sizeof(float),
                                           (void *)Mtmax_out,
                                           (void *)(& Mtmax_out));
-    __e_acsl_assert(__gen_e_acsl_valid_3,1,"Precondition","foo",
-                    "\\valid(Mtmax_out)","tests/bts/bts1307.i",7);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\valid(Mtmax_out)",0,__gen_e_acsl_valid_3);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Precondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\valid(Mtmax_out)";
+    __gen_e_acsl_assert_data_3.file = "tests/bts/bts1307.i";
+    __gen_e_acsl_assert_data_3.fct = "foo";
+    __gen_e_acsl_assert_data_3.line = 7;
+    __e_acsl_assert(__gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0,1);
   }
   __gen_e_acsl_at_3 = Mwmax;
@@ -286,6 +423,12 @@ void __gen_e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out)
       __e_acsl_mpq_t __gen_e_acsl_add;
       __e_acsl_mpq_t __gen_e_acsl__7;
       int __gen_e_acsl_ne;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4,
+                                     "*\\old(Mtmax_out)",*__gen_e_acsl_at);
+      __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4,
+                                     "*\\old(Mtmax_in)",*__gen_e_acsl_at_2);
       __gmpq_init(__gen_e_acsl_);
       __gmpq_set_str(__gen_e_acsl_,"5",10);
       __gmpq_init(__gen_e_acsl__2);
@@ -296,6 +439,8 @@ void __gen_e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out)
       __gmpq_div(__gen_e_acsl_div,
                  (__e_acsl_mpq_struct const *)(__gen_e_acsl__2),
                  (__e_acsl_mpq_struct const *)(__gen_e_acsl__3));
+      __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_4,
+                                     "*\\old(Mwmax)",*__gen_e_acsl_at_3);
       __gmpq_init(__gen_e_acsl__4);
       __gmpq_set_d(__gen_e_acsl__4,(double)*__gen_e_acsl_at_3);
       __gmpq_init(__gen_e_acsl_mul);
@@ -322,9 +467,14 @@ void __gen_e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out)
       __gmpq_set_d(__gen_e_acsl__7,(double)*__gen_e_acsl_at);
       __gen_e_acsl_ne = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__7),
                                    (__e_acsl_mpq_struct const *)(__gen_e_acsl_add));
-      __e_acsl_assert(__gen_e_acsl_ne != 0,1,"Postcondition","foo",
-                      "OverEstimate_Motoring:\n  *\\old(Mtmax_out) != *\\old(Mtmax_in) + (5 - ((5 / 80) * *\\old(Mwmax)) * 0.4)",
-                      "tests/bts/bts1307.i",11);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Postcondition";
+      __gen_e_acsl_assert_data_4.pred_txt = "OverEstimate_Motoring:\n  *\\old(Mtmax_out) != *\\old(Mtmax_in) + (5 - ((5 / 80) * *\\old(Mwmax)) * 0.4)";
+      __gen_e_acsl_assert_data_4.file = "tests/bts/bts1307.i";
+      __gen_e_acsl_assert_data_4.fct = "foo";
+      __gen_e_acsl_assert_data_4.line = 11;
+      __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
       __gmpq_clear(__gen_e_acsl_);
       __gmpq_clear(__gen_e_acsl__2);
       __gmpq_clear(__gen_e_acsl__3);
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1324.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1324.c
index 9755e8cd106f5a74c39689df65735c50ff024ad0..40969df29026a65fc79e055ca6c6745b3560904c 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1324.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1324.c
@@ -1,12 +1,12 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 /*@ behavior yes:
-      assumes ∀ int i; 0 < i < n ⇒ *(t + (i - 1)) ≤ *(t + i);
-      ensures \result ≡ 1;
+      assumes \forall int i; 0 < i < n ==> *(t + (i - 1)) <= *(t + i);
+      ensures \result == 1;
  */
 int __gen_e_acsl_sorted(int *t, int n);
 
@@ -38,9 +38,19 @@ int main(void)
   __e_acsl_store_block((void *)(t),(size_t)28);
   __e_acsl_full_init((void *)(& t));
   int n = __gen_e_acsl_sorted(t,7);
-  __e_acsl_assert(n == 1,1,"Assertion","main","n == 1","tests/bts/bts1324.i",
-                  23);
-  /*@ assert n ≡ 1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "n == 1";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts1324.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 23;
+    __e_acsl_assert(n == 1,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert n == 1; */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(t));
   __e_acsl_memory_clean();
@@ -48,8 +58,8 @@ int main(void)
 }
 
 /*@ behavior yes:
-      assumes ∀ int i; 0 < i < n ⇒ *(t + (i - 1)) ≤ *(t + i);
-      ensures \result ≡ 1;
+      assumes \forall int i; 0 < i < n ==> *(t + (i - 1)) <= *(t + i);
+      ensures \result == 1;
  */
 int __gen_e_acsl_sorted(int *t, int n)
 {
@@ -67,20 +77,47 @@ int __gen_e_acsl_sorted(int *t, int n)
       {
         int __gen_e_acsl_valid_read;
         int __gen_e_acsl_valid_read_2;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"t",
+                                     (void *)t);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                     "__gen_e_acsl_i",0,__gen_e_acsl_i);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(t + __gen_e_acsl_i),
                                                       sizeof(int),(void *)t,
                                                       (void *)(& t));
-        __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","sorted",
-                        "mem_access: \\valid_read(t + __gen_e_acsl_i)",
-                        "tests/bts/bts1324.i",6);
+        __gen_e_acsl_assert_data.blocking = 1;
+        __gen_e_acsl_assert_data.kind = "RTE";
+        __gen_e_acsl_assert_data.pred_txt = "mem_access: \\valid_read(t + __gen_e_acsl_i)";
+        __gen_e_acsl_assert_data.file = "tests/bts/bts1324.i";
+        __gen_e_acsl_assert_data.fct = "sorted";
+        __gen_e_acsl_assert_data.line = 6;
+        __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"t",
+                                     (void *)t);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "__gen_e_acsl_i",0,__gen_e_acsl_i);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(t + (
                                                                  __gen_e_acsl_i - 1L)),
                                                         sizeof(int),
                                                         (void *)t,
                                                         (void *)(& t));
-        __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","sorted",
-                        "mem_access: \\valid_read(t + (long)(__gen_e_acsl_i - 1))",
-                        "tests/bts/bts1324.i",6);
+        __gen_e_acsl_assert_data_2.blocking = 1;
+        __gen_e_acsl_assert_data_2.kind = "RTE";
+        __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(t + (long)(__gen_e_acsl_i - 1))";
+        __gen_e_acsl_assert_data_2.file = "tests/bts/bts1324.i";
+        __gen_e_acsl_assert_data_2.fct = "sorted";
+        __gen_e_acsl_assert_data_2.line = 6;
+        __e_acsl_assert(__gen_e_acsl_valid_read_2,
+                        & __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
         if (*(t + (__gen_e_acsl_i - 1L)) <= *(t + __gen_e_acsl_i)) ;
         else {
           __gen_e_acsl_forall = 0;
@@ -98,10 +135,20 @@ int __gen_e_acsl_sorted(int *t, int n)
     int __gen_e_acsl_assumes_value;
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == 1,1,
-                                                    "Postcondition","sorted",
-                                                    "yes: \\result == 1",
-                                                    "tests/bts/bts1324.i",7);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Postcondition";
+      __gen_e_acsl_assert_data_3.pred_txt = "yes: \\result == 1";
+      __gen_e_acsl_assert_data_3.file = "tests/bts/bts1324.i";
+      __gen_e_acsl_assert_data_3.fct = "sorted";
+      __gen_e_acsl_assert_data_3.line = 7;
+      __e_acsl_assert(__retres == 1,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+    }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     __e_acsl_delete_block((void *)(& t));
     return __retres;
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1326.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1326.c
index 68220ac9996606c8d648333cf04fb942bb7d1e31..5116b129a3ddb98cff260c6231e85aa0f7081837 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1326.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1326.c
@@ -1,12 +1,12 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 typedef int ArrayInt[5];
 /*@ ensures
-      *\old(AverageAccel) ≡
+      *\old(AverageAccel) ==
       (((((*\old(Accel))[4] + (*\old(Accel))[3]) + (*\old(Accel))[2]) +
         (*\old(Accel))[1])
        + (*\old(Accel))[0])
@@ -44,7 +44,7 @@ int main(void)
 }
 
 /*@ ensures
-      *\old(AverageAccel) ≡
+      *\old(AverageAccel) ==
       (((((*\old(Accel))[4] + (*\old(Accel))[3]) + (*\old(Accel))[2]) +
         (*\old(Accel))[1])
        + (*\old(Accel))[0])
@@ -75,58 +75,146 @@ void __gen_e_acsl_atp_NORMAL_computeAverageAccel(ArrayInt *Accel,
     int __gen_e_acsl_valid_read_4;
     int __gen_e_acsl_valid_read_5;
     int __gen_e_acsl_valid_read_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "*\\old(AverageAccel)",0,*__gen_e_acsl_at);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "(*\\old(Accel))[4]",0,
+                                 (*__gen_e_acsl_at_2)[4]);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "(*\\old(Accel))[3]",0,
+                                 (*__gen_e_acsl_at_3)[3]);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "(*\\old(Accel))[2]",0,
+                                 (*__gen_e_acsl_at_4)[2]);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "(*\\old(Accel))[1]",0,
+                                 (*__gen_e_acsl_at_5)[1]);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "(*\\old(Accel))[0]",0,
+                                 (*__gen_e_acsl_at_6)[0]);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,
+                                 "(int *)*__gen_e_acsl_at_6",
+                                 (void *)(*__gen_e_acsl_at_6));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(*__gen_e_acsl_at_6),
                                                   sizeof(int),
                                                   (void *)(*__gen_e_acsl_at_6),
                                                   (void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE",
-                    "atp_NORMAL_computeAverageAccel",
-                    "mem_access: \\valid_read((int *)*__gen_e_acsl_at_6)",
-                    "tests/bts/bts1326.i",8);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read((int *)*__gen_e_acsl_at_6)";
+    __gen_e_acsl_assert_data_2.file = "tests/bts/bts1326.i";
+    __gen_e_acsl_assert_data_2.fct = "atp_NORMAL_computeAverageAccel";
+    __gen_e_acsl_assert_data_2.line = 8;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                 "&(*__gen_e_acsl_at_5)[1]",
+                                 (void *)(& (*__gen_e_acsl_at_5)[1]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at_5)[1]),
                                                     sizeof(int),
                                                     (void *)(*__gen_e_acsl_at_5),
                                                     (void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE",
-                    "atp_NORMAL_computeAverageAccel",
-                    "mem_access: \\valid_read(&(*__gen_e_acsl_at_5)[1])",
-                    "tests/bts/bts1326.i",8);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "RTE";
+    __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(&(*__gen_e_acsl_at_5)[1])";
+    __gen_e_acsl_assert_data_3.file = "tests/bts/bts1326.i";
+    __gen_e_acsl_assert_data_3.fct = "atp_NORMAL_computeAverageAccel";
+    __gen_e_acsl_assert_data_3.line = 8;
+    __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,
+                                 "&(*__gen_e_acsl_at_4)[2]",
+                                 (void *)(& (*__gen_e_acsl_at_4)[2]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at_4)[2]),
                                                     sizeof(int),
                                                     (void *)(*__gen_e_acsl_at_4),
                                                     (void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE",
-                    "atp_NORMAL_computeAverageAccel",
-                    "mem_access: \\valid_read(&(*__gen_e_acsl_at_4)[2])",
-                    "tests/bts/bts1326.i",8);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "RTE";
+    __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read(&(*__gen_e_acsl_at_4)[2])";
+    __gen_e_acsl_assert_data_4.file = "tests/bts/bts1326.i";
+    __gen_e_acsl_assert_data_4.fct = "atp_NORMAL_computeAverageAccel";
+    __gen_e_acsl_assert_data_4.line = 8;
+    __e_acsl_assert(__gen_e_acsl_valid_read_3,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,
+                                 "&(*__gen_e_acsl_at_3)[3]",
+                                 (void *)(& (*__gen_e_acsl_at_3)[3]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at_3)[3]),
                                                     sizeof(int),
                                                     (void *)(*__gen_e_acsl_at_3),
                                                     (void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE",
-                    "atp_NORMAL_computeAverageAccel",
-                    "mem_access: \\valid_read(&(*__gen_e_acsl_at_3)[3])",
-                    "tests/bts/bts1326.i",8);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "RTE";
+    __gen_e_acsl_assert_data_5.pred_txt = "mem_access: \\valid_read(&(*__gen_e_acsl_at_3)[3])";
+    __gen_e_acsl_assert_data_5.file = "tests/bts/bts1326.i";
+    __gen_e_acsl_assert_data_5.fct = "atp_NORMAL_computeAverageAccel";
+    __gen_e_acsl_assert_data_5.line = 8;
+    __e_acsl_assert(__gen_e_acsl_valid_read_4,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,
+                                 "&(*__gen_e_acsl_at_2)[4]",
+                                 (void *)(& (*__gen_e_acsl_at_2)[4]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)(& (*__gen_e_acsl_at_2)[4]),
                                                     sizeof(int),
                                                     (void *)(*__gen_e_acsl_at_2),
                                                     (void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_read_5,1,"RTE",
-                    "atp_NORMAL_computeAverageAccel",
-                    "mem_access: \\valid_read(&(*__gen_e_acsl_at_2)[4])",
-                    "tests/bts/bts1326.i",8);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "RTE";
+    __gen_e_acsl_assert_data_6.pred_txt = "mem_access: \\valid_read(&(*__gen_e_acsl_at_2)[4])";
+    __gen_e_acsl_assert_data_6.file = "tests/bts/bts1326.i";
+    __gen_e_acsl_assert_data_6.fct = "atp_NORMAL_computeAverageAccel";
+    __gen_e_acsl_assert_data_6.line = 8;
+    __e_acsl_assert(__gen_e_acsl_valid_read_5,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,
+                                 "__gen_e_acsl_at",(void *)__gen_e_acsl_at);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)__gen_e_acsl_at,
                                                     sizeof(int),
                                                     (void *)__gen_e_acsl_at,
                                                     (void *)(& __gen_e_acsl_at));
-    __e_acsl_assert(__gen_e_acsl_valid_read_6,1,"RTE",
-                    "atp_NORMAL_computeAverageAccel",
-                    "mem_access: \\valid_read(__gen_e_acsl_at)",
-                    "tests/bts/bts1326.i",8);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "RTE";
+    __gen_e_acsl_assert_data_7.pred_txt = "mem_access: \\valid_read(__gen_e_acsl_at)";
+    __gen_e_acsl_assert_data_7.file = "tests/bts/bts1326.i";
+    __gen_e_acsl_assert_data_7.fct = "atp_NORMAL_computeAverageAccel";
+    __gen_e_acsl_assert_data_7.line = 8;
+    __e_acsl_assert(__gen_e_acsl_valid_read_6,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "*\\old(AverageAccel) ==\n(((((*\\old(Accel))[4] + (*\\old(Accel))[3]) + (*\\old(Accel))[2]) +\n  (*\\old(Accel))[1])\n + (*\\old(Accel))[0])\n/ 5";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts1326.i";
+    __gen_e_acsl_assert_data.fct = "atp_NORMAL_computeAverageAccel";
+    __gen_e_acsl_assert_data.line = 8;
     __e_acsl_assert(*__gen_e_acsl_at == (int)((((((*__gen_e_acsl_at_2)[4] + (long)(*__gen_e_acsl_at_3)[3]) + (*__gen_e_acsl_at_4)[2]) + (*__gen_e_acsl_at_5)[1]) + (*__gen_e_acsl_at_6)[0]) / 5L),
-                    1,"Postcondition","atp_NORMAL_computeAverageAccel",
-                    "*\\old(AverageAccel) ==\n(((((*\\old(Accel))[4] + (*\\old(Accel))[3]) + (*\\old(Accel))[2]) +\n  (*\\old(Accel))[1])\n + (*\\old(Accel))[0])\n/ 5",
-                    "tests/bts/bts1326.i",8);
+                    & __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __e_acsl_delete_block((void *)(& AverageAccel));
     __e_acsl_delete_block((void *)(& Accel));
     return;
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1386_complex_flowgraph.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1386_complex_flowgraph.c
index 1b997cf7e674d9090b7b2d3ef1c870a9f539a731..3b3f0b60cae7b496dec1484fc541a33d35d386c1 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1386_complex_flowgraph.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1386_complex_flowgraph.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1390.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1390.c
index 3b092ae6734c01a72b86c39495bbafe588b7b386..63c8499eead6e44d73e9bcfff9d7039fc445dffa 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1390.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1390.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 char *__gen_e_acsl_literal_string;
@@ -7,15 +8,17 @@ char *__gen_e_acsl_literal_string_2;
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 /*@ behavior exists:
-      assumes ∃ ℤ i; 0 ≤ i < (int)n ∧ (int)*((char *)buf + i) ≡ c;
+      assumes
+        \exists integer i; 0 <= i < (int)n && (int)*((char *)buf + i) == c;
       ensures
-        ∀ int j;
-          0 ≤ j < (int)\offset((char *)\result) ⇒
-          (int)*((char *)\old(buf) + j) ≢ \old(c);
+        \forall int j;
+          0 <= j < (int)\offset((char *)\result) ==>
+          (int)*((char *)\old(buf) + j) != \old(c);
     
     behavior not_exists:
-      assumes ∀ ℤ k; 0 ≤ k < (int)n ⇒ (int)*((char *)buf + k) ≢ c;
-      ensures \result ≡ (void *)0;
+      assumes
+        \forall integer k; 0 <= k < (int)n ==> (int)*((char *)buf + k) != c;
+      ensures \result == (void *)0;
  */
 void *__gen_e_acsl_memchr(void const *buf, int c, size_t n);
 
@@ -51,15 +54,17 @@ void *memchr(void const *buf, int c, size_t n)
 }
 
 /*@ behavior exists:
-      assumes ∃ ℤ i; 0 ≤ i < (int)n ∧ (int)*((char *)buf + i) ≡ c;
+      assumes
+        \exists integer i; 0 <= i < (int)n && (int)*((char *)buf + i) == c;
       ensures
-        ∀ int j;
-          0 ≤ j < (int)\offset((char *)\result) ⇒
-          (int)*((char *)\old(buf) + j) ≢ \old(c);
+        \forall int j;
+          0 <= j < (int)\offset((char *)\result) ==>
+          (int)*((char *)\old(buf) + j) != \old(c);
     
     behavior not_exists:
-      assumes ∀ ℤ k; 0 ≤ k < (int)n ⇒ (int)*((char *)buf + k) ≢ c;
-      ensures \result ≡ (void *)0;
+      assumes
+        \forall integer k; 0 <= k < (int)n ==> (int)*((char *)buf + k) != c;
+      ensures \result == (void *)0;
  */
 void *__gen_e_acsl_memchr(void const *buf, int c, size_t n)
 {
@@ -82,13 +87,26 @@ void *__gen_e_acsl_memchr(void const *buf, int c, size_t n)
       else break;
       {
         int __gen_e_acsl_valid_read;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"buf",
+                                     (void *)buf);
+        __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data,
+                                      "__gen_e_acsl_i",0,__gen_e_acsl_i);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)((char *)buf + __gen_e_acsl_i),
                                                       sizeof(char),
                                                       (void *)buf,
                                                       (void *)(& buf));
-        __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","memchr",
-                        "mem_access: \\valid_read((char *)buf + __gen_e_acsl_i)",
-                        "tests/bts/bts1390.c",8);
+        __gen_e_acsl_assert_data.blocking = 1;
+        __gen_e_acsl_assert_data.kind = "RTE";
+        __gen_e_acsl_assert_data.pred_txt = "mem_access: \\valid_read((char *)buf + __gen_e_acsl_i)";
+        __gen_e_acsl_assert_data.file = "tests/bts/bts1390.c";
+        __gen_e_acsl_assert_data.fct = "memchr";
+        __gen_e_acsl_assert_data.line = 8;
+        __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
         if (! ((int)*((char *)buf + __gen_e_acsl_i) == c)) ;
         else {
           __gen_e_acsl_exists = 1;
@@ -107,13 +125,27 @@ void *__gen_e_acsl_memchr(void const *buf, int c, size_t n)
       else break;
       {
         int __gen_e_acsl_valid_read_2;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"buf",
+                                     (void *)buf);
+        __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_2,
+                                      "__gen_e_acsl_k",0,__gen_e_acsl_k);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)((char *)buf + __gen_e_acsl_k),
                                                         sizeof(char),
                                                         (void *)buf,
                                                         (void *)(& buf));
-        __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","memchr",
-                        "mem_access: \\valid_read((char *)buf + __gen_e_acsl_k)",
-                        "tests/bts/bts1390.c",11);
+        __gen_e_acsl_assert_data_2.blocking = 1;
+        __gen_e_acsl_assert_data_2.kind = "RTE";
+        __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read((char *)buf + __gen_e_acsl_k)";
+        __gen_e_acsl_assert_data_2.file = "tests/bts/bts1390.c";
+        __gen_e_acsl_assert_data_2.fct = "memchr";
+        __gen_e_acsl_assert_data_2.line = 11;
+        __e_acsl_assert(__gen_e_acsl_valid_read_2,
+                        & __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
         if ((int)*((char *)buf + __gen_e_acsl_k) != c) ;
         else {
           __gen_e_acsl_forall = 0;
@@ -136,6 +168,8 @@ void *__gen_e_acsl_memchr(void const *buf, int c, size_t n)
     if (__gen_e_acsl_assumes_value) {
       int __gen_e_acsl_forall_2;
       unsigned int __gen_e_acsl_j;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_2 = 1;
       __gen_e_acsl_j = 0;
       while (1) {
@@ -148,13 +182,28 @@ void *__gen_e_acsl_memchr(void const *buf, int c, size_t n)
         }
         {
           int __gen_e_acsl_valid_read_3;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,
+                                       "__gen_e_acsl_at",
+                                       (void *)__gen_e_acsl_at);
+          __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_4,
+                                        "__gen_e_acsl_j",0,__gen_e_acsl_j);
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                         "sizeof(char)",0,sizeof(char));
           __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)((char *)__gen_e_acsl_at + __gen_e_acsl_j),
                                                           sizeof(char),
                                                           (void *)__gen_e_acsl_at,
                                                           (void *)(& __gen_e_acsl_at));
-          __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","memchr",
-                          "mem_access: \\valid_read((char *)__gen_e_acsl_at + __gen_e_acsl_j)",
-                          "tests/bts/bts1390.c",9);
+          __gen_e_acsl_assert_data_4.blocking = 1;
+          __gen_e_acsl_assert_data_4.kind = "RTE";
+          __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read((char *)__gen_e_acsl_at + __gen_e_acsl_j)";
+          __gen_e_acsl_assert_data_4.file = "tests/bts/bts1390.c";
+          __gen_e_acsl_assert_data_4.fct = "memchr";
+          __gen_e_acsl_assert_data_4.line = 9;
+          __e_acsl_assert(__gen_e_acsl_valid_read_3,
+                          & __gen_e_acsl_assert_data_4);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
           if ((int)*((char *)__gen_e_acsl_at + __gen_e_acsl_j) != __gen_e_acsl_at_2) 
             ;
           else {
@@ -165,16 +214,34 @@ void *__gen_e_acsl_memchr(void const *buf, int c, size_t n)
         __gen_e_acsl_j ++;
       }
       e_acsl_end_loop3: ;
-      __e_acsl_assert(__gen_e_acsl_forall_2,1,"Postcondition","memchr",
-                      "exists:\n  \\forall int j;\n    0 <= j < (int)\\offset((char *)\\result) ==>\n    (int)*((char *)\\old(buf) + j) != \\old(c)",
-                      "tests/bts/bts1390.c",9);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "exists:\n  \\forall int j;\n    0 <= j < (int)\\offset((char *)\\result) ==>\n    (int)*((char *)\\old(buf) + j) != \\old(c)",
+                                   0,__gen_e_acsl_forall_2);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Postcondition";
+      __gen_e_acsl_assert_data_3.pred_txt = "exists:\n  \\forall int j;\n    0 <= j < (int)\\offset((char *)\\result) ==>\n    (int)*((char *)\\old(buf) + j) != \\old(c)";
+      __gen_e_acsl_assert_data_3.file = "tests/bts/bts1390.c";
+      __gen_e_acsl_assert_data_3.fct = "memchr";
+      __gen_e_acsl_assert_data_3.line = 9;
+      __e_acsl_assert(__gen_e_acsl_forall_2,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     }
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == (void *)0,1,
-                                                    "Postcondition","memchr",
-                                                    "not_exists: \\result == (void *)0",
-                                                    "tests/bts/bts1390.c",12);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"\\result",
+                                   __retres);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Postcondition";
+      __gen_e_acsl_assert_data_5.pred_txt = "not_exists: \\result == (void *)0";
+      __gen_e_acsl_assert_data_5.file = "tests/bts/bts1390.c";
+      __gen_e_acsl_assert_data_5.fct = "memchr";
+      __gen_e_acsl_assert_data_5.line = 12;
+      __e_acsl_assert(__retres == (void *)0,& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+    }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     __e_acsl_delete_block((void *)(& buf));
     __e_acsl_delete_block((void *)(& __retres));
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1395.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1395.c
index e22850aba10b0f49c53415da9b086424d516621d..6c395f6b4b1e586123564b7497c14a73dc9d7988 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1395.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1395.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -24,11 +24,23 @@ int fact(int n)
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int x = __gen_e_acsl_fact(5);
-  __e_acsl_assert(x == 120,1,"Assertion","main","x == 120",
-                  "tests/bts/bts1395.i",15);
-  /*@ assert x ≡ 120; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "x == 120";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts1395.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 15;
+    __e_acsl_assert(x == 120,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert x == 120; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
@@ -36,8 +48,18 @@ int main(void)
 int __gen_e_acsl_fact(int n)
 {
   int __retres;
-  __e_acsl_assert(n > 0,1,"Precondition","fact","n > 0",
-                  "tests/bts/bts1395.i",6);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "n > 0";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts1395.i";
+    __gen_e_acsl_assert_data.fct = "fact";
+    __gen_e_acsl_assert_data.line = 6;
+    __e_acsl_assert(n > 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
   __retres = fact(n);
   return __retres;
 }
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1398.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1398.c
index 1709bdc247e2c455a34cd1ea655f48e80062dda7..62eedb96d6bb73d9aea151b013a92e4c9730d051 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1398.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1398.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 char *__gen_e_acsl_literal_string;
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1399.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1399.c
index 35354e15a4a3ee1319c32cb1f7bf4ddc15c63cf0..df2577913c7e41c9209e3f6685ec04d31db9daaf 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1399.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1399.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -22,22 +23,52 @@ int main(void)
   {
     int __gen_e_acsl_valid_read;
     int __gen_e_acsl_initialized;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,
+                                 "&state->dataQueue[state->bitsInQueue / 8]",
+                                 (void *)(& state->dataQueue[state->bitsInQueue / 8U]));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,
+                                 "&state->bitsInQueue",
+                                 (void *)(& state->bitsInQueue));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(unsigned int)",0,
+                                   sizeof(unsigned int));
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(& state->bitsInQueue),
                                                   sizeof(unsigned int),
                                                   (void *)(& state->bitsInQueue),
                                                   (void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main",
-                    "mem_access: \\valid_read(&state->bitsInQueue)",
-                    "tests/bts/bts1399.c",19);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(&state->bitsInQueue)";
+    __gen_e_acsl_assert_data_2.file = "tests/bts/bts1399.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 19;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(unsigned char __attribute__((__aligned__(32))))",
+                                   0,
+                                   sizeof(unsigned char __attribute__((
+                                   __aligned__(32)))));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& state->dataQueue[
                                                     state->bitsInQueue / 8U]),
                                                     sizeof(unsigned char __attribute__((
                                                     __aligned__(32)))));
-    __e_acsl_assert(! __gen_e_acsl_initialized,1,"Assertion","main",
-                    "!\\initialized(&state->dataQueue[state->bitsInQueue / 8])",
-                    "tests/bts/bts1399.c",19);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&state->dataQueue[state->bitsInQueue / 8])",
+                                 0,__gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "!\\initialized(&state->dataQueue[state->bitsInQueue / 8])";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts1399.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 19;
+    __e_acsl_assert(! __gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert ¬\initialized(&state->dataQueue[state->bitsInQueue / 8]); */ ;
+  /*@ assert !\initialized(&state->dataQueue[state->bitsInQueue / 8]); */ ;
   free((void *)state);
   __retres = 0;
   __e_acsl_delete_block((void *)(& state));
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1478.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1478.c
index f235a94655c43df645f7f898406274d5f66049dd..4de286d405b1f1019492c6277d6b851eafea5f96 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1478.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1478.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -8,9 +8,9 @@ int global_i;
 
 int *global_i_ptr = & global_i;
 int global_i = 0;
-/*@ requires global_i ≡ 0;
+/*@ requires global_i == 0;
     requires \valid(global_i_ptr);
-    requires global_i_ptr ≡ &global_i;
+    requires global_i_ptr == &global_i;
  */
 void __gen_e_acsl_loop(void);
 
@@ -19,23 +19,59 @@ void loop(void)
   return;
 }
 
-/*@ requires global_i ≡ 0;
+/*@ requires global_i == 0;
     requires \valid(global_i_ptr);
-    requires global_i_ptr ≡ &global_i;
+    requires global_i_ptr == &global_i;
  */
 void __gen_e_acsl_loop(void)
 {
   {
     int __gen_e_acsl_valid;
-    __e_acsl_assert(global_i == 0,1,"Precondition","loop","global_i == 0",
-                    "tests/bts/bts1478.c",9);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"global_i",0,
+                                 global_i);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "global_i == 0";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts1478.c";
+    __gen_e_acsl_assert_data.fct = "loop";
+    __gen_e_acsl_assert_data.line = 9;
+    __e_acsl_assert(global_i == 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"global_i_ptr",
+                                 (void *)global_i_ptr);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)global_i_ptr,sizeof(int),
                                         (void *)global_i_ptr,
                                         (void *)(& global_i_ptr));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","loop",
-                    "\\valid(global_i_ptr)","tests/bts/bts1478.c",10);
-    __e_acsl_assert(global_i_ptr == & global_i,1,"Precondition","loop",
-                    "global_i_ptr == &global_i","tests/bts/bts1478.c",11);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\valid(global_i_ptr)",0,
+                                 __gen_e_acsl_valid);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Precondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(global_i_ptr)";
+    __gen_e_acsl_assert_data_2.file = "tests/bts/bts1478.c";
+    __gen_e_acsl_assert_data_2.fct = "loop";
+    __gen_e_acsl_assert_data_2.line = 10;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"global_i_ptr",
+                                 (void *)global_i_ptr);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&global_i",
+                                 (void *)(& global_i));
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Precondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "global_i_ptr == &global_i";
+    __gen_e_acsl_assert_data_3.file = "tests/bts/bts1478.c";
+    __gen_e_acsl_assert_data_3.fct = "loop";
+    __gen_e_acsl_assert_data_3.line = 11;
+    __e_acsl_assert(global_i_ptr == & global_i,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   loop();
   return;
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1700.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1700.c
index 235b00e3ce39f982b658a892f2b6c39bc4540062..6b59906b4145dde0fa279341bf4af2bc96b813e1 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1700.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1700.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -17,10 +17,24 @@ int main(void)
   __e_acsl_store_block((void *)(& s),(size_t)0);
   {
     int __gen_e_acsl_valid;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&s",
+                                 (void *)(& s));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(struct toto)",0,
+                                   sizeof(struct toto));
     __gen_e_acsl_valid = __e_acsl_valid((void *)(& s),sizeof(struct toto),
                                         (void *)(& s),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main","\\valid(&s)",
-                    "tests/bts/bts1700.i",9);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&s)",0,
+                                 __gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(&s)";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts1700.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 9;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(&s); */ ;
   __e_acsl_full_init((void *)(& p));
@@ -28,17 +42,40 @@ int main(void)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(struct toto *)",0,
+                                   sizeof(struct toto *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                     sizeof(struct toto *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(struct toto)",0,
+                                     sizeof(struct toto));
       __gen_e_acsl_valid_2 = __e_acsl_valid((void *)p,sizeof(struct toto),
                                             (void *)p,(void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(p)",
+                                   0,__gen_e_acsl_valid_2);
       __gen_e_acsl_and = __gen_e_acsl_valid_2;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)",
-                    "tests/bts/bts1700.i",12);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(p)";
+    __gen_e_acsl_assert_data_2.file = "tests/bts/bts1700.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 12;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid(p); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1717.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1717.c
index 12837b756e42c9db9a7d9ec9d136bec4f93cbedb..b20490f30a41b0da548398af226178cf1104c4ce 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1717.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1717.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -19,17 +19,36 @@ int main(void)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                           (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0,
+                                   __gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)",
-                    "tests/bts/bts1717.i",10);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(p)";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts1717.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 10;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   __retres = 0;
   goto return_label;
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1718.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1718.c
index 248e0c5dac9a77836ed676ee647a64e8ba15dc1b..3cc04964acabdec262a0c3c16160452167dba042 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1718.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1718.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -19,17 +19,36 @@ int main(void)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                           (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0,
+                                   __gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)",
-                    "tests/bts/bts1718.i",13);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(p)";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts1718.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 13;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   __retres = 0;
   goto return_label;
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1740.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1740.c
index 71d5655e76f7283ef6b7fbb843c8725b835c3358..7413b868d898efde6359f8da31ab1a11789df32f 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1740.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1740.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -19,17 +19,38 @@ int main(void)
     {
       int __gen_e_acsl_initialized;
       int __gen_e_acsl_and;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                   (void *)(& p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                       sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&p)",0,
+                                   __gen_e_acsl_initialized);
       if (__gen_e_acsl_initialized) {
         int __gen_e_acsl_valid;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",
+                                     (void *)p);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                             (void *)(& p));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",
+                                     0,__gen_e_acsl_valid);
         __gen_e_acsl_and = __gen_e_acsl_valid;
       }
       else __gen_e_acsl_and = 0;
-      __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)",
-                      "tests/bts/bts1740.i",11);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "\\valid(p)";
+      __gen_e_acsl_assert_data.file = "tests/bts/bts1740.i";
+      __gen_e_acsl_assert_data.fct = "main";
+      __gen_e_acsl_assert_data.line = 11;
+      __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
     /*@ assert \valid(p); */ ;
     __e_acsl_delete_block((void *)(& a));
@@ -37,22 +58,43 @@ int main(void)
     __e_acsl_delete_block((void *)(& a));
   }
   L:
-  /*@ assert ¬\valid(p); */
+  /*@ assert !\valid(p); */
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& p),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_valid_2;
-      /*@ assert Eva: dangling_pointer: ¬\dangling(&p); */
+      /*@ assert Eva: dangling_pointer: !\dangling(&p); */
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_2 = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                             (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(p)",
+                                   0,__gen_e_acsl_valid_2);
       __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main","!\\valid(p)",
-                    "tests/bts/bts1740.i",16);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(p)";
+    __gen_e_acsl_assert_data_2.file = "tests/bts/bts1740.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 16;
+    __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   __retres = 0;
   __e_acsl_delete_block((void *)(& p));
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1837.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1837.c
index 68b811cf123a0c069ef8392ef08d26b80b9ed603..8ba680fa8caf75e8fc2f875e176d725528d0a746 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1837.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1837.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 char *__gen_e_acsl_literal_string_3;
 char *__gen_e_acsl_literal_string;
@@ -19,46 +19,102 @@ int f(void)
   __e_acsl_full_init((void *)(& s2));
   {
     int __gen_e_acsl_valid_read;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"S",(void *)S);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(char)",
+                                   0,sizeof(char));
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)S,sizeof(char),
                                                   (void *)S,(void *)(& S));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"Assertion","f",
-                    "\\valid_read(S)","tests/bts/bts1837.i",11);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\valid_read(S)",0,__gen_e_acsl_valid_read);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid_read(S)";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts1837.i";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 11;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid_read(S); */ ;
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&s1",
+                                 (void *)(& s1));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& s1),
                                                     sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&s1)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid_read_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"s1",
+                                   (void *)s1);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)s1,
                                                       sizeof(char),
                                                       (void *)s1,
                                                       (void *)(& s1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\valid_read(s1)",0,
+                                   __gen_e_acsl_valid_read_2);
       __gen_e_acsl_and = __gen_e_acsl_valid_read_2;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","f","\\valid_read(s1)",
-                    "tests/bts/bts1837.i",12);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid_read(s1)";
+    __gen_e_acsl_assert_data_2.file = "tests/bts/bts1837.i";
+    __gen_e_acsl_assert_data_2.fct = "f";
+    __gen_e_acsl_assert_data_2.line = 12;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid_read(s1); */ ;
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&s2",
+                                 (void *)(& s2));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& s2),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized(&s2)",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_valid_read_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"s2",
+                                   (void *)s2);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)s2,
                                                       sizeof(char),
                                                       (void *)s2,
                                                       (void *)(& s2));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\valid_read(s2)",0,
+                                   __gen_e_acsl_valid_read_3);
       __gen_e_acsl_and_2 = __gen_e_acsl_valid_read_3;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","f","\\valid_read(s2)",
-                    "tests/bts/bts1837.i",13);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\valid_read(s2)";
+    __gen_e_acsl_assert_data_3.file = "tests/bts/bts1837.i";
+    __gen_e_acsl_assert_data_3.fct = "f";
+    __gen_e_acsl_assert_data_3.line = 13;
+    __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   /*@ assert \valid_read(s2); */ ;
   __retres = 0;
@@ -116,37 +172,80 @@ int main(void)
       {
         int __gen_e_acsl_initialized;
         int __gen_e_acsl_and;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&s",
+                                     (void *)(& s));
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(char *)",0,sizeof(char *));
         __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& s),
                                                         sizeof(char *));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                     "\\initialized(&s)",0,
+                                     __gen_e_acsl_initialized);
         if (__gen_e_acsl_initialized) {
           int __gen_e_acsl_valid_read;
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"s",
+                                       (void *)s);
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                         "sizeof(char)",0,sizeof(char));
           __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)s,
                                                         sizeof(char),
                                                         (void *)s,
                                                         (void *)(& s));
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                       "\\valid_read(s)",0,
+                                       __gen_e_acsl_valid_read);
           __gen_e_acsl_and = __gen_e_acsl_valid_read;
         }
         else __gen_e_acsl_and = 0;
-        __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main",
-                        "\\valid_read(s)","tests/bts/bts1837.i",21);
+        __gen_e_acsl_assert_data.blocking = 1;
+        __gen_e_acsl_assert_data.kind = "Assertion";
+        __gen_e_acsl_assert_data.pred_txt = "\\valid_read(s)";
+        __gen_e_acsl_assert_data.file = "tests/bts/bts1837.i";
+        __gen_e_acsl_assert_data.fct = "main";
+        __gen_e_acsl_assert_data.line = 21;
+        __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
       }
       /*@ assert \valid_read(s); */ ;
       {
         int __gen_e_acsl_initialized_2;
         int __gen_e_acsl_and_2;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&s",
+                                     (void *)(& s));
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                       "sizeof(char *)",0,sizeof(char *));
         __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& s),
                                                           sizeof(char *));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "\\initialized(&s)",0,
+                                     __gen_e_acsl_initialized_2);
         if (__gen_e_acsl_initialized_2) {
           int __gen_e_acsl_valid;
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"s",
+                                       (void *)s);
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                         "sizeof(char)",0,sizeof(char));
           __gen_e_acsl_valid = __e_acsl_valid((void *)s,sizeof(char),
                                               (void *)s,(void *)(& s));
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                       "\\valid(s)",0,__gen_e_acsl_valid);
           __gen_e_acsl_and_2 = __gen_e_acsl_valid;
         }
         else __gen_e_acsl_and_2 = 0;
-        __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main",
-                        "!\\valid(s)","tests/bts/bts1837.i",22);
+        __gen_e_acsl_assert_data_2.blocking = 1;
+        __gen_e_acsl_assert_data_2.kind = "Assertion";
+        __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(s)";
+        __gen_e_acsl_assert_data_2.file = "tests/bts/bts1837.i";
+        __gen_e_acsl_assert_data_2.fct = "main";
+        __gen_e_acsl_assert_data_2.line = 22;
+        __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
       }
-      /*@ assert ¬\valid(s); */ ;
+      /*@ assert !\valid(s); */ ;
       __e_acsl_delete_block((void *)(& s));
     }
   }
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2191.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2191.c
index b83815b665daf90d54ba40bef0923b97c7da0338..32463190ef073d30250225801c4c266b8b59331b 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2191.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2191.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 char *__gen_e_acsl_literal_string;
 char *__gen_e_acsl_literal_string_2;
@@ -48,19 +48,40 @@ int main(int argc, char **argv)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&_G[0].str",
+                                 (void *)(& _G[0].str));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& _G[0].str),
                                                     sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&_G[0].str)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid_read;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"_G[0].str",
+                                   (void *)_G[0].str);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)_G[0].str,
                                                     sizeof(char),
                                                     (void *)_G[0].str,
                                                     (void *)(& _G[0].str));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid_read(_G[0].str)",0,
+                                   __gen_e_acsl_valid_read);
       __gen_e_acsl_and = __gen_e_acsl_valid_read;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main",
-                    "\\valid_read(_G[0].str)","tests/bts/bts2191.c",14);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid_read(_G[0].str)";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts2191.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 14;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid_read(_G[0].str); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2192.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2192.c
index d71a4c41cf78610b9bd88b1f2eb3f8163381ee20..f265fe806dd9486d28826d5730133fd5fe7e4a74 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2192.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2192.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 char *__gen_e_acsl_literal_string;
@@ -23,13 +24,26 @@ int __gen_e_acsl_atoi(char const *nptr)
   {
     int __gen_e_acsl_valid_read;
     __e_acsl_store_block((void *)(& nptr),(size_t)8);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"nptr",
+                                 (void *)nptr);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(char const)",0,sizeof(char const));
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)nptr,
                                                   sizeof(char const),
                                                   (void *)nptr,
                                                   (void *)(& nptr));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"Precondition","atoi",
-                    "valid_nptr: \\valid_read(nptr)",
-                    "FRAMAC_SHARE/libc/stdlib.h",78);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\valid_read(nptr)",0,
+                                 __gen_e_acsl_valid_read);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "valid_nptr: \\valid_read(nptr)";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h";
+    __gen_e_acsl_assert_data.fct = "atoi";
+    __gen_e_acsl_assert_data.line = 78;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   __retres = atoi(nptr);
   __e_acsl_delete_block((void *)(& nptr));
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2231.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2231.c
index beb8f456827b957dd1ca4ea3e6612b0b11bd4349..bbaf3461677ab8f8571d84b6f459df6ab248f6ea 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2231.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2231.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -8,6 +8,7 @@ long A = (long)0;
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   {
     __e_acsl_mpz_t __gen_e_acsl_A;
     __e_acsl_mpz_t __gen_e_acsl_;
@@ -17,14 +18,17 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_add;
     __e_acsl_mpz_t __gen_e_acsl__4;
     int __gen_e_acsl_eq;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data,"A",0,A);
     __gmpz_init_set_si(__gen_e_acsl_A,A);
     __gmpz_init_set_si(__gen_e_acsl_,3L);
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data,"A",0,A);
     __gmpz_init(__gen_e_acsl_mul);
     __gmpz_mul(__gen_e_acsl_mul,(__e_acsl_mpz_struct const *)(__gen_e_acsl_),
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_A));
     __gen_e_acsl__2 = __gmpz_get_si((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul));
     /*@ assert
-        Eva: signed_overflow: -9223372036854775808 ≤ __gen_e_acsl__2 - 1;
+        Eva: signed_overflow: -9223372036854775808 <= __gen_e_acsl__2 - 1;
     */
     __gmpz_init_set_si(__gen_e_acsl__3,__gen_e_acsl__2 - 1L);
     __gmpz_init(__gen_e_acsl_add);
@@ -34,9 +38,14 @@ int main(void)
     __gmpz_init_set_si(__gen_e_acsl__4,(long)(-1));
     __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
-    __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main",
-                    "A + (long)((long)(3 * A) - 1) == -1",
-                    "tests/bts/bts2231.i",8);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "A + (long)((long)(3 * A) - 1) == -1";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts2231.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 8;
+    __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __gmpz_clear(__gen_e_acsl_A);
     __gmpz_clear(__gen_e_acsl_);
     __gmpz_clear(__gen_e_acsl_mul);
@@ -44,8 +53,9 @@ int main(void)
     __gmpz_clear(__gen_e_acsl_add);
     __gmpz_clear(__gen_e_acsl__4);
   }
-  /*@ assert A + (long)((long)(3 * A) - 1) ≡ -1; */ ;
+  /*@ assert A + (long)((long)(3 * A) - 1) == -1; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2252.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2252.c
index d5ae3f9c19149dec4caa469becf4312261f7bc43..9fdc1841758b4e793b87e2e3d0987e3863b01d2d 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2252.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2252.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 #include "string.h"
@@ -9,7 +10,7 @@ extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 /*@ requires valid_nstring_src: valid_read_nstring(src, n);
     requires room_nstring: \valid(dest + (0 .. n - 1));
     requires separation: \separated(dest + (0 .. n - 1), src + (0 .. n - 1));
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures result_ptr: \result == \old(dest);
     ensures initialization: \initialized(\old(dest) + (0 .. \old(n) - 1));
     assigns *(dest + (0 .. n - 1)), \result;
     assigns *(dest + (0 .. n - 1)) \from *(src + (0 .. n - 1));
@@ -17,13 +18,12 @@ extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
     
     behavior complete:
       assumes src_fits: strlen(src) < n;
-      ensures equal_after_copy: strcmp(\old(dest), \old(src)) ≡ 0;
+      ensures equal_after_copy: strcmp(\old(dest), \old(src)) == 0;
     
     behavior partial:
-      assumes src_too_long: n ≤ strlen(src);
+      assumes src_too_long: n <= strlen(src);
       ensures
-        equal_prefix:
-          memcmp{Post, Post}(\old(dest), \old(src), \old(n)) ≡ 0;
+        equal_prefix: memcmp{Post, Post}(\old(dest), \old(src), \old(n)) == 0;
  */
 char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
                            size_t n);
@@ -31,7 +31,7 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
 /*@ requires valid_nstring_src: valid_read_nstring(src, n);
     requires room_nstring: \valid(dest + (0 .. n - 1));
     requires separation: \separated(dest + (0 .. n - 1), src + (0 .. n - 1));
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures result_ptr: \result == \old(dest);
     ensures initialization: \initialized(\old(dest) + (0 .. \old(n) - 1));
     assigns *(dest + (0 .. n - 1)), \result;
     assigns *(dest + (0 .. n - 1)) \from *(src + (0 .. n - 1));
@@ -39,13 +39,12 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
     
     behavior complete:
       assumes src_fits: strlen(src) < n;
-      ensures equal_after_copy: strcmp(\old(dest), \old(src)) ≡ 0;
+      ensures equal_after_copy: strcmp(\old(dest), \old(src)) == 0;
     
     behavior partial:
-      assumes src_too_long: n ≤ strlen(src);
+      assumes src_too_long: n <= strlen(src);
       ensures
-        equal_prefix:
-          memcmp{Post, Post}(\old(dest), \old(src), \old(n)) ≡ 0;
+        equal_prefix: memcmp{Post, Post}(\old(dest), \old(src), \old(n)) == 0;
  */
 char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
                            size_t n)
@@ -84,6 +83,15 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
     __e_acsl_store_block((void *)(& src),(size_t)8);
     __e_acsl_store_block((void *)(& dest),(size_t)8);
     __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"dest",
+                                 (void *)dest);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"n",0,n);
     __gmpz_init_set_ui(__gen_e_acsl_n,n);
     __gmpz_init_set_si(__gen_e_acsl_,1L);
     __gmpz_init(__gen_e_acsl_sub);
@@ -101,51 +109,141 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_));
     __gen_e_acsl__3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size = 1UL * __gen_e_acsl__3;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"size",0,
+                                   __gen_e_acsl_size);
     if (__gen_e_acsl_size <= 0UL) __gen_e_acsl_if = 0UL;
-    else __gen_e_acsl_if = __gen_e_acsl_size;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"size",0,
+                                     __gen_e_acsl_size);
+      __gen_e_acsl_if = __gen_e_acsl_size;
+    }
     __gen_e_acsl_valid = __e_acsl_valid((void *)(dest + 1 * 0),
                                         __gen_e_acsl_if,(void *)dest,
                                         (void *)(& dest));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","strncpy",
-                    "room_nstring: \\valid(dest + (0 .. n - 1))",
-                    "FRAMAC_SHARE/libc/string.h",380);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "room_nstring: \\valid(dest + (0 .. n - 1))",
+                                 0,__gen_e_acsl_valid);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Precondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "room_nstring: \\valid(dest + (0 .. n - 1))";
+    __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_2.fct = "strncpy";
+    __gen_e_acsl_assert_data_2.line = 380;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"dest",
+                                 (void *)dest);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"n",0,n);
     __gen_e_acsl__4 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size_2 = 1UL * __gen_e_acsl__4;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0,
+                                   __gen_e_acsl_size_2);
     if (__gen_e_acsl_size_2 <= 0UL) __gen_e_acsl_if_2 = 0UL;
-    else __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0,
+                                     __gen_e_acsl_size_2);
+      __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    }
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(dest + 1 * 0),
                                                   __gen_e_acsl_if_2,
                                                   (void *)dest,
                                                   (void *)(& dest));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","strncpy",
-                    "separated_guard: \\valid_read(dest + (0 .. n - 1))",
-                    "FRAMAC_SHARE/libc/string.h",382);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "RTE";
+    __gen_e_acsl_assert_data_4.pred_txt = "separated_guard: \\valid_read(dest + (0 .. n - 1))";
+    __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_4.fct = "strncpy";
+    __gen_e_acsl_assert_data_4.line = 382;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"src",
+                                 (void *)src);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "sizeof(char const)",0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "sizeof(char const)",0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"n",0,n);
     __gen_e_acsl__5 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size_3 = 1UL * __gen_e_acsl__5;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0,
+                                   __gen_e_acsl_size_3);
     if (__gen_e_acsl_size_3 <= 0UL) __gen_e_acsl_if_3 = 0UL;
-    else __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0,
+                                     __gen_e_acsl_size_3);
+      __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+    }
     __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(src + 1 * 0),
                                                     __gen_e_acsl_if_3,
                                                     (void *)src,
                                                     (void *)(& src));
-    __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","strncpy",
-                    "separated_guard: \\valid_read(src + (0 .. n - 1))",
-                    "FRAMAC_SHARE/libc/string.h",382);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "RTE";
+    __gen_e_acsl_assert_data_5.pred_txt = "separated_guard: \\valid_read(src + (0 .. n - 1))";
+    __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_5.fct = "strncpy";
+    __gen_e_acsl_assert_data_5.line = 382;
+    __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"dest",
+                                 (void *)dest);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n);
     __gen_e_acsl__6 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size_4 = 1UL * __gen_e_acsl__6;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                   __gen_e_acsl_size_4);
     if (__gen_e_acsl_size_4 <= 0UL) __gen_e_acsl_if_4 = 0UL;
-    else __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                     __gen_e_acsl_size_4);
+      __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+    }
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"src",
+                                 (void *)src);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "sizeof(char const)",0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "sizeof(char const)",0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n);
     __gen_e_acsl__7 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size_5 = 1UL * __gen_e_acsl__7;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                   __gen_e_acsl_size_5);
     if (__gen_e_acsl_size_5 <= 0UL) __gen_e_acsl_if_5 = 0UL;
-    else __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                     __gen_e_acsl_size_5);
+      __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+    }
     __gen_e_acsl_separated = __e_acsl_separated((size_t)2,dest + 1 * 0,
                                                 __gen_e_acsl_if_4,
                                                 src + 1 * 0,
                                                 __gen_e_acsl_if_5);
-    __e_acsl_assert(__gen_e_acsl_separated,1,"Precondition","strncpy",
-                    "separation: \\separated(dest + (0 .. n - 1), src + (0 .. n - 1))",
-                    "FRAMAC_SHARE/libc/string.h",382);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "separation: \\separated(dest + (0 .. n - 1), src + (0 .. n - 1))",
+                                 0,__gen_e_acsl_separated);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Precondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "separation: \\separated(dest + (0 .. n - 1), src + (0 .. n - 1))";
+    __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_3.fct = "strncpy";
+    __gen_e_acsl_assert_data_3.line = 382;
+    __e_acsl_assert(__gen_e_acsl_separated,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __gmpz_clear(__gen_e_acsl_n);
     __gmpz_clear(__gen_e_acsl_);
     __gmpz_clear(__gen_e_acsl_sub);
@@ -174,9 +272,30 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
     unsigned long __gen_e_acsl__10;
     unsigned long __gen_e_acsl_if_6;
     int __gen_e_acsl_initialized;
-    __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","strncpy",
-                    "result_ptr: \\result == \\old(dest)",
-                    "FRAMAC_SHARE/libc/string.h",385);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\result",
+                                 (void *)__retres);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\old(dest)",
+                                 (void *)__gen_e_acsl_at);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Postcondition";
+    __gen_e_acsl_assert_data_6.pred_txt = "result_ptr: \\result == \\old(dest)";
+    __gen_e_acsl_assert_data_6.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_6.fct = "strncpy";
+    __gen_e_acsl_assert_data_6.line = 385;
+    __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"\\old(dest)",
+                                 (void *)__gen_e_acsl_at_2);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_7,"\\old(n)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_3));
     __gmpz_init_set_si(__gen_e_acsl__8,1L);
     __gmpz_init(__gen_e_acsl_sub_3);
     __gmpz_sub(__gen_e_acsl_sub_3,
@@ -193,14 +312,28 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__8));
     __gen_e_acsl__10 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2));
     __gen_e_acsl_size_6 = 1UL * __gen_e_acsl__10;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,"size",0,
+                                   __gen_e_acsl_size_6);
     if (__gen_e_acsl_size_6 <= 0UL) __gen_e_acsl_if_6 = 0UL;
-    else __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,"size",0,
+                                     __gen_e_acsl_size_6);
+      __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+    }
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(__gen_e_acsl_at_2 + 
                                                              1 * 0),
                                                     __gen_e_acsl_if_6);
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Postcondition","strncpy",
-                    "initialization: \\initialized(\\old(dest) + (0 .. \\old(n) - 1))",
-                    "FRAMAC_SHARE/libc/string.h",386);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "initialization: \\initialized(\\old(dest) + (0 .. \\old(n) - 1))",
+                                 0,__gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Postcondition";
+    __gen_e_acsl_assert_data_7.pred_txt = "initialization: \\initialized(\\old(dest) + (0 .. \\old(n) - 1))";
+    __gen_e_acsl_assert_data_7.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_7.fct = "strncpy";
+    __gen_e_acsl_assert_data_7.line = 386;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     __e_acsl_delete_block((void *)(& src));
     __e_acsl_delete_block((void *)(& dest));
@@ -247,14 +380,30 @@ int main(void)
     while (i < 0) {
       {
         int __gen_e_acsl_valid_read;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"srcbuf",
+                                     (void *)srcbuf);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(srcbuf + i),
                                                       sizeof(char),
                                                       (void *)srcbuf,
                                                       (void *)(& srcbuf));
-        __e_acsl_assert(! __gen_e_acsl_valid_read,1,"Assertion","main",
-                        "!\\valid_read(srcbuf + i)","tests/bts/bts2252.c",17);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                     "\\valid_read(srcbuf + i)",0,
+                                     __gen_e_acsl_valid_read);
+        __gen_e_acsl_assert_data.blocking = 1;
+        __gen_e_acsl_assert_data.kind = "Assertion";
+        __gen_e_acsl_assert_data.pred_txt = "!\\valid_read(srcbuf + i)";
+        __gen_e_acsl_assert_data.file = "tests/bts/bts2252.c";
+        __gen_e_acsl_assert_data.fct = "main";
+        __gen_e_acsl_assert_data.line = 17;
+        __e_acsl_assert(! __gen_e_acsl_valid_read,& __gen_e_acsl_assert_data);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
       }
-      /*@ assert ¬\valid_read(srcbuf + i); */ ;
+      /*@ assert !\valid_read(srcbuf + i); */ ;
       /*@ assert Eva: mem_access: \valid_read(srcbuf + i); */
       if ((int)*(srcbuf + i) == (int)ch) loc = i;
       i ++;
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2305.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2305.c
index 3e6032ceff5d360da26a744d1e92abf383164fad..1eb6cb65ad02597b2a440e03249f1038c807b386 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2305.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2305.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2386.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2386.c
index 60838e80f0077118a75fd3c90152cd1d6a173af9..47653dd4a62b3c6bfc7e9a1f2b3d30d9fd46b4c2 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2386.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2386.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 char *__gen_e_acsl_literal_string;
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -16,26 +16,48 @@ void f(void const *s, int c, unsigned long n)
     __e_acsl_mpz_t __gen_e_acsl_n;
     __e_acsl_mpz_t __gen_e_acsl_sub;
     int __gen_e_acsl_eq;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"s",(void *)s);
     __gmpz_init_set_ui(__gen_e_acsl_,p - (unsigned char const *)s);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"n",0,n);
     __gmpz_init_set_ui(__gen_e_acsl_n,n);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"n",0,n);
     __gmpz_init(__gen_e_acsl_sub);
     __gmpz_sub(__gen_e_acsl_sub,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_n),
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_n));
     __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub));
-    __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","f",
-                    "p - (unsigned char const *)s == n - n",
-                    "tests/bts/bts2386.c",7);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "p - (unsigned char const *)s == n - n";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts2386.c";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 7;
+    __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __gmpz_clear(__gen_e_acsl_);
     __gmpz_clear(__gen_e_acsl_n);
     __gmpz_clear(__gen_e_acsl_sub);
   }
-  /*@ assert p - (unsigned char const *)s ≡ n - n; */ ;
-  __e_acsl_assert(p - (unsigned char const *)s == 0UL,1,"Assertion","f",
-                  "p - (unsigned char const *)s == 0","tests/bts/bts2386.c",
-                  8);
-  /*@ assert p - (unsigned char const *)s ≡ 0; */ ;
+  /*@ assert p - (unsigned char const *)s == n - n; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",(void *)p);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"s",(void *)s);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "p - (unsigned char const *)s == 0";
+    __gen_e_acsl_assert_data_2.file = "tests/bts/bts2386.c";
+    __gen_e_acsl_assert_data_2.fct = "f";
+    __gen_e_acsl_assert_data_2.line = 8;
+    __e_acsl_assert(p - (unsigned char const *)s == 0UL,
+                    & __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+  }
+  /*@ assert p - (unsigned char const *)s == 0; */ ;
   __e_acsl_delete_block((void *)(& s));
   __e_acsl_delete_block((void *)(& p));
   return;
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2406.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2406.c
index 3005fdba28a0e7fde0476a544deb1cee8ad1c2aa..97e118a8083f74257a68bb77a651384dbdbeb2e4 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts2406.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts2406.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -35,28 +35,72 @@ int main(void)
     int __gen_e_acsl_size;
     int __gen_e_acsl_if;
     int __gen_e_acsl_valid;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0,
+                                 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0,
+                                 1);
     __gen_e_acsl_size = 1 * ((9 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0,
+                                 __gen_e_acsl_size);
     if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0;
-    else __gen_e_acsl_if = __gen_e_acsl_size;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0,
+                                   __gen_e_acsl_size);
+      __gen_e_acsl_if = __gen_e_acsl_size;
+    }
     __gen_e_acsl_valid = __e_acsl_valid((void *)(p + 1 * 0),
                                         (size_t)__gen_e_acsl_if,(void *)p,
                                         (void *)(& p));
-    __e_acsl_assert(! __gen_e_acsl_valid,1,"Assertion","main",
-                    "!\\valid(p + (0 .. 9))","tests/bts/bts2406.c",10);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\valid(p + (0 .. 9))",0,
+                                 __gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "!\\valid(p + (0 .. 9))";
+    __gen_e_acsl_assert_data.file = "tests/bts/bts2406.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 10;
+    __e_acsl_assert(! __gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert ¬\valid(p + (0 .. 9)); */ ;
+  /*@ assert !\valid(p + (0 .. 9)); */ ;
   {
     int __gen_e_acsl_size_2;
     int __gen_e_acsl_if_2;
     int __gen_e_acsl_valid_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"(char *)t",
+                                 (void *)(t));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(char)",
+                                 0,1);
     __gen_e_acsl_size_2 = 1 * ((9 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0,
+                                 __gen_e_acsl_size_2);
     if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0;
-    else __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0,
+                                   __gen_e_acsl_size_2);
+      __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    }
     __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(t + 1 * 0),
                                           (size_t)__gen_e_acsl_if_2,
                                           (void *)(t),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","main",
-                    "\\valid(&t[0 .. 9])","tests/bts/bts2406.c",11);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\valid(&t[0 .. 9])",0,
+                                 __gen_e_acsl_valid_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(&t[0 .. 9])";
+    __gen_e_acsl_assert_data_2.file = "tests/bts/bts2406.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 11;
+    __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid(&t[0 .. 9]); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-105.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-105.c
index 5a48d337504908d0c693c30fd49b517d85fb46a6..3a6985a9a8c718b605bc19704d321282d7ad91c7 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-105.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-105.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -15,10 +15,23 @@ int f(void)
   /*@ assert \valid(&a); */
   {
     int __gen_e_acsl_valid;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a",
+                                 (void *)(& a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)(& a),sizeof(int),
                                         (void *)(& a),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","f","\\valid(&a)",
-                    "tests/bts/issue-eacsl-105.c",11);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&a)",0,
+                                 __gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(&a)";
+    __gen_e_acsl_assert_data.file = "tests/bts/issue-eacsl-105.c";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 11;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   __retres = 0;
   goto return_label;
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-139.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-139.c
index e5d36213c8486363a11a0192fd2b883a5b7122c2..d3d900437fd0c9ee1850c872259f0a0c09d66bf6 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-139.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-139.c
@@ -1,13 +1,13 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 struct X {
    int i ;
 };
-/*@ ensures *\old(item) ≡ \old(*item); */
+/*@ ensures *\old(item) == \old(*item); */
 void __gen_e_acsl_f(struct X *item);
 
 void f(struct X *item)
@@ -31,7 +31,7 @@ int main(void)
   return __retres;
 }
 
-/*@ ensures *\old(item) ≡ \old(*item); */
+/*@ ensures *\old(item) == \old(*item); */
 void __gen_e_acsl_f(struct X *item)
 {
   struct X __gen_e_acsl_at_2;
@@ -39,13 +39,24 @@ void __gen_e_acsl_f(struct X *item)
   __e_acsl_store_block((void *)(& item),(size_t)8);
   {
     int __gen_e_acsl_valid_read;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"item",
+                                 (void *)item);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(struct X)",0,sizeof(struct X));
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)item,
                                                   sizeof(struct X),
                                                   (void *)item,
                                                   (void *)(& item));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","f",
-                    "mem_access: \\valid_read(item)",
-                    "tests/bts/issue-eacsl-139.c",9);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(item)";
+    __gen_e_acsl_assert_data_2.file = "tests/bts/issue-eacsl-139.c";
+    __gen_e_acsl_assert_data_2.fct = "f";
+    __gen_e_acsl_assert_data_2.line = 9;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     __gen_e_acsl_at_2 = *item;
   }
   __gen_e_acsl_at = item;
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-145.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-145.c
index 072539c22ae052daad7e7f24e6eeb21173da8bc6..5e77a29db646b87d8c1110e88d85af210d279273 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-145.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-145.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -29,10 +29,23 @@ int main(void)
   __e_acsl_globals_init();
   {
     int __gen_e_acsl_valid;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&G",
+                                 (void *)(& G));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)(& G),sizeof(int),
                                         (void *)(& G),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main","\\valid(&G)",
-                    "tests/bts/issue-eacsl-145.c",9);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&G)",0,
+                                 __gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(&G)";
+    __gen_e_acsl_assert_data.file = "tests/bts/issue-eacsl-145.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 9;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(&G); */ ;
   int a = G;
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-149.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-149.c
index 8d33325a01f4ce58d9de5e794582195de7b1d3f7..49b0d3b8bf1a090df731fb091e239d438125148c 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-149.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-149.c
@@ -1,15 +1,17 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(int argc, char **argv)
 {
   int __retres;
+  __e_acsl_memory_init(& argc,& argv,(size_t)8);
   {
     int __gen_e_acsl_exists;
     int __gen_e_acsl_x;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gen_e_acsl_exists = 0;
     __gen_e_acsl_x = (unsigned int)(-1 + 1);
     while (1) {
@@ -22,14 +24,24 @@ int main(int argc, char **argv)
       __gen_e_acsl_x ++;
     }
     e_acsl_end_loop1: ;
-    __e_acsl_assert(__gen_e_acsl_exists,1,"Assertion","main",
-                    "\\exists unsigned int x; -1 < x < 5 && x == 0",
-                    "tests/bts/issue-eacsl-149.c",4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\exists unsigned int x; -1 < x < 5 && x == 0",
+                                 0,__gen_e_acsl_exists);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\exists unsigned int x; -1 < x < 5 && x == 0";
+    __gen_e_acsl_assert_data.file = "tests/bts/issue-eacsl-149.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 4;
+    __e_acsl_assert(__gen_e_acsl_exists,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert ∃ unsigned int x; -1 < x < 5 ∧ x ≡ 0; */ ;
+  /*@ assert \exists unsigned int x; -1 < x < 5 && x == 0; */ ;
   {
     int __gen_e_acsl_forall;
     int __gen_e_acsl_x_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
     __gen_e_acsl_forall = 1;
     __gen_e_acsl_x_2 = (unsigned int)(-1 + 1);
     while (1) {
@@ -42,12 +54,21 @@ int main(int argc, char **argv)
       __gen_e_acsl_x_2 ++;
     }
     e_acsl_end_loop2: ;
-    __e_acsl_assert(! __gen_e_acsl_forall,1,"Assertion","main",
-                    "!(\\forall unsigned int x; -1 < x < 5 ==> x != 0)",
-                    "tests/bts/issue-eacsl-149.c",5);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\forall unsigned int x; -1 < x < 5 ==> x != 0",
+                                 0,__gen_e_acsl_forall);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "!(\\forall unsigned int x; -1 < x < 5 ==> x != 0)";
+    __gen_e_acsl_assert_data_2.file = "tests/bts/issue-eacsl-149.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 5;
+    __e_acsl_assert(! __gen_e_acsl_forall,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert ¬(∀ unsigned int x; -1 < x < 5 ⇒ x ≢ 0); */ ;
+  /*@ assert !(\forall unsigned int x; -1 < x < 5 ==> x != 0); */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-172.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-172.c
index 91b232c39ba10381933188988101853b64531d2a..6efb4bde152db550893469d59f695983dbc2835b 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-172.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-172.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -8,16 +8,44 @@ double d2 = 11.;
 int main(void)
 {
   int __retres;
-  __e_acsl_assert(-2147483649. < d2,1,"RTE","main",
-                  "float_to_int: -2147483649 < d2",
-                  "tests/bts/issue-eacsl-172.c",7);
-  __e_acsl_assert(d2 < 2147483648.,1,"RTE","main",
-                  "float_to_int: d2 < 2147483648",
-                  "tests/bts/issue-eacsl-172.c",7);
-  __e_acsl_assert((int)d2 > 10,1,"Assertion","main","(int)d2 > 10",
-                  "tests/bts/issue-eacsl-172.c",7);
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_double(& __gen_e_acsl_assert_data,"d2",d2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_double(& __gen_e_acsl_assert_data_2,"d2",d2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "float_to_int: -2147483649 < d2";
+    __gen_e_acsl_assert_data_2.file = "tests/bts/issue-eacsl-172.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 7;
+    __e_acsl_assert(-2147483649. < d2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_double(& __gen_e_acsl_assert_data_3,"d2",d2);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "RTE";
+    __gen_e_acsl_assert_data_3.pred_txt = "float_to_int: d2 < 2147483648";
+    __gen_e_acsl_assert_data_3.file = "tests/bts/issue-eacsl-172.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 7;
+    __e_acsl_assert(d2 < 2147483648.,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "(int)d2 > 10";
+    __gen_e_acsl_assert_data.file = "tests/bts/issue-eacsl-172.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 7;
+    __e_acsl_assert((int)d2 > 10,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
   /*@ assert (int)d2 > 10; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-177.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-177.c
index f3b0980fe6050cb156957fba63de14a803b15060..df715b41a9d7e7687f4fbab81eed0f244cfc47a1 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-177.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-177.c
@@ -1,12 +1,12 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 /*@
-logic ℤ f(ℤ n) =
-  n ≤ 2147483647 + 1 ∨ n ≥ 9223372036854775807L + 1? 0: f(n + 1) + n;
+logic integer f(integer n) =
+  n <= 2147483647 + 1 || n >= 9223372036854775807L + 1? 0: f(n + 1) + n;
 
 */
 void __gen_e_acsl_f(__e_acsl_mpz_t *__retres_arg, int n);
@@ -18,38 +18,60 @@ void __gen_e_acsl_f_3(__e_acsl_mpz_t *__retres_arg, __e_acsl_mpz_struct * n);
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   {
     __e_acsl_mpz_t __gen_e_acsl_f_8;
     __e_acsl_mpz_t __gen_e_acsl__10;
     int __gen_e_acsl_eq;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gen_e_acsl_f(& __gen_e_acsl_f_8,0);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"f(0)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_f_8));
     __gmpz_init_set_si(__gen_e_acsl__10,0L);
     __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f_8),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__10));
-    __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main","f(0) == 0",
-                    "tests/bts/issue-eacsl-177.c",12);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "f(0) == 0";
+    __gen_e_acsl_assert_data.file = "tests/bts/issue-eacsl-177.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 12;
+    __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __gmpz_clear(__gen_e_acsl_f_8);
     __gmpz_clear(__gen_e_acsl__10);
   }
-  /*@ assert f(0) ≡ 0; */ ;
+  /*@ assert f(0) == 0; */ ;
   {
     long __gen_e_acsl_n_5;
     __e_acsl_mpz_t __gen_e_acsl_f_10;
     __e_acsl_mpz_t __gen_e_acsl__11;
     int __gen_e_acsl_ne;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
     __gen_e_acsl_n_5 = 9223372036854775807L;
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_2,"n",0,
+                                  __gen_e_acsl_n_5);
     __gen_e_acsl_f_2(& __gen_e_acsl_f_10,__gen_e_acsl_n_5);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2,"f(n)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_f_10));
     __gmpz_init_set_si(__gen_e_acsl__11,0L);
     __gen_e_acsl_ne = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f_10),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__11));
-    __e_acsl_assert(__gen_e_acsl_ne != 0,1,"Assertion","main",
-                    "\\let n = 0 == 0? 9223372036854775807L: -1; f(n) != 0",
-                    "tests/bts/issue-eacsl-177.c",14);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\let n = 0 == 0? 9223372036854775807L: -1; f(n) != 0";
+    __gen_e_acsl_assert_data_2.file = "tests/bts/issue-eacsl-177.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 14;
+    __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     __gmpz_clear(__gen_e_acsl_f_10);
     __gmpz_clear(__gen_e_acsl__11);
   }
-  /*@ assert \let n = 0 ≡ 0? 9223372036854775807L: -1; f(n) ≢ 0; */ ;
+  /*@ assert \let n = 0 == 0? 9223372036854775807L: -1; f(n) != 0; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-40.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-40.c
index 559ef66c07d1b3649d063335a8f41b015fe6f4e8..7eafbcd172d38a45945b46eb36cef07cd59acdf6 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-40.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-40.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 char *__gen_e_acsl_literal_string;
 char *__gen_e_acsl_literal_string_2;
@@ -9,7 +10,7 @@ extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
     requires valid_mode: valid_read_string(mode);
     ensures
       result_null_or_valid_fd:
-        \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]);
+        \result == \null || \subset(\result, &__fc_fopen[0 .. 16 - 1]);
     assigns \result;
     assigns \result
       \from (indirect: *(filename + (0 .. strlen{Old}(filename)))),
@@ -20,7 +21,7 @@ FILE *__gen_e_acsl_fopen(char const * restrict filename,
 
 /*@ requires valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1));
     requires valid_stream: \valid(stream);
-    ensures size_read: \result ≤ \old(nmemb);
+    ensures size_read: \result <= \old(nmemb);
     ensures
       initialization:
         \initialized((char *)\old(ptr) + (0 .. \result * \old(size) - 1));
@@ -36,7 +37,7 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
 
 /*@ requires valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1));
     requires valid_stream: \valid(stream);
-    ensures size_read: \result ≤ \old(nmemb);
+    ensures size_read: \result <= \old(nmemb);
     ensures
       initialization:
         \initialized((char *)\old(ptr) + (0 .. \result * \old(size) - 1));
@@ -75,8 +76,17 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
     int __gen_e_acsl_valid_2;
     __e_acsl_store_block((void *)(& stream),(size_t)8);
     __e_acsl_store_block((void *)(& ptr),(size_t)8);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"ptr",ptr);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0,
+                                 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0,
+                                 1);
     __gmpz_init_set_si(__gen_e_acsl_sizeof,1L);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"nmemb",0,
+                                   nmemb);
     __gmpz_init_set_ui(__gen_e_acsl_nmemb,nmemb);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"size",0,size);
     __gmpz_init_set_ui(__gen_e_acsl_size_2,size);
     __gmpz_init(__gen_e_acsl_mul);
     __gmpz_mul(__gen_e_acsl_mul,
@@ -102,6 +112,8 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gmpz_init_set(__gen_e_acsl_size,
                     (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_2));
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
     __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
     if (__gen_e_acsl_le <= 0) {
@@ -111,26 +123,64 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
                       (__e_acsl_mpz_struct const *)(__gen_e_acsl__3));
       __gmpz_clear(__gen_e_acsl__3);
     }
-    else __gmpz_init_set(__gen_e_acsl_if,
-                         (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
+    else {
+      __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0,
+                                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
+      __gmpz_init_set(__gen_e_acsl_if,
+                      (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
+    }
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2,
+                                 "__gen_e_acsl_if",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_if));
     __gmpz_init_set_ui(__gen_e_acsl__4,18446744073709551615UL);
     __gen_e_acsl_le_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
-    __e_acsl_assert(__gen_e_acsl_le_2 <= 0,1,"RTE","fread",
-                    "offset_lesser_or_eq_than_SIZE_MAX:\n  (\\let size = sizeof(char) * (((nmemb * size - 1) - 0) + 1);\n   size <= 0? 0: size)\n  <= 18446744073709551615",
-                    "FRAMAC_SHARE/libc/stdio.h",351);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,
+                                 "__gen_e_acsl_if",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_if));
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "offset_lesser_or_eq_than_SIZE_MAX:\n  (\\let size = sizeof(char) * (((nmemb * size - 1) - 0) + 1);\n   size <= 0? 0: size)\n  <= 18446744073709551615";
+    __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data_2.fct = "fread";
+    __gen_e_acsl_assert_data_2.line = 351;
+    __e_acsl_assert(__gen_e_acsl_le_2 <= 0,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     __gen_e_acsl_size_3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if));
     __gen_e_acsl_valid = __e_acsl_valid((void *)((char *)ptr + 1 * 0),
                                         __gen_e_acsl_size_3,ptr,
                                         (void *)(& ptr));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","fread",
-                    "valid_ptr_block: \\valid((char *)ptr + (0 .. nmemb * size - 1))",
-                    "FRAMAC_SHARE/libc/stdio.h",351);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "valid_ptr_block: \\valid((char *)ptr + (0 .. nmemb * size - 1))",
+                                 0,__gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "valid_ptr_block: \\valid((char *)ptr + (0 .. nmemb * size - 1))";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data.fct = "fread";
+    __gen_e_acsl_assert_data.line = 351;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"stream",
+                                 (void *)stream);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(FILE)",0,sizeof(FILE));
     __gen_e_acsl_valid_2 = __e_acsl_valid((void *)stream,sizeof(FILE),
                                           (void *)stream,(void *)(& stream));
-    __e_acsl_assert(__gen_e_acsl_valid_2,1,"Precondition","fread",
-                    "valid_stream: \\valid(stream)",
-                    "FRAMAC_SHARE/libc/stdio.h",352);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\valid(stream)",0,__gen_e_acsl_valid_2);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Precondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "valid_stream: \\valid(stream)";
+    __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data_3.fct = "fread";
+    __gen_e_acsl_assert_data_3.line = 352;
+    __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __gmpz_clear(__gen_e_acsl_size);
     __gmpz_clear(__gen_e_acsl_sizeof);
     __gmpz_clear(__gen_e_acsl_nmemb);
@@ -162,7 +212,13 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
     __e_acsl_mpz_t __gen_e_acsl__5;
     int __gen_e_acsl_le_3;
     unsigned long __gen_e_acsl_size_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"__retres",0,
+                                   __retres);
     __gmpz_init_set_ui(__gen_e_acsl___retres,__retres);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0,
+                                   size);
     __gmpz_init_set_ui(__gen_e_acsl_size_4,size);
     __gmpz_init(__gen_e_acsl_mul_3);
     __gmpz_mul(__gen_e_acsl_mul_3,
@@ -171,9 +227,14 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
     __gmpz_init_set_ui(__gen_e_acsl__5,18446744073709551615UL);
     __gen_e_acsl_le_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_3),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__5));
-    __e_acsl_assert(__gen_e_acsl_le_3 <= 0,1,"RTE","fread",
-                    "size_lesser_or_eq_than_SIZE_MAX: __retres * size <= 18446744073709551615",
-                    "FRAMAC_SHARE/libc/stdio.h",350);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "RTE";
+    __gen_e_acsl_assert_data_4.pred_txt = "size_lesser_or_eq_than_SIZE_MAX: __retres * size <= 18446744073709551615";
+    __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data_4.fct = "fread";
+    __gen_e_acsl_assert_data_4.line = 350;
+    __e_acsl_assert(__gen_e_acsl_le_3 <= 0,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     __gen_e_acsl_size_5 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_3));
     __e_acsl_initialize(ptr,__gen_e_acsl_size_5);
     __gmpz_clear(__gen_e_acsl___retres);
@@ -198,11 +259,35 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
     int __gen_e_acsl_le_5;
     unsigned long __gen_e_acsl_size_8;
     int __gen_e_acsl_initialized;
-    __e_acsl_assert(__retres <= __gen_e_acsl_at,1,"Postcondition","fread",
-                    "size_read: \\result <= \\old(nmemb)",
-                    "FRAMAC_SHARE/libc/stdio.h",356);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"\\result",0,
+                                   __retres);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "\\old(nmemb)",0,__gen_e_acsl_at);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Postcondition";
+    __gen_e_acsl_assert_data_5.pred_txt = "size_read: \\result <= \\old(nmemb)";
+    __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data_5.fct = "fread";
+    __gen_e_acsl_assert_data_5.line = 356;
+    __e_acsl_assert(__retres <= __gen_e_acsl_at,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\old(ptr)",
+                                 __gen_e_acsl_at_2);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(char)",
+                                 0,1);
     __gmpz_init_set_si(__gen_e_acsl_sizeof_2,1L);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,"\\result",0,
+                                   __retres);
     __gmpz_init_set_ui(__gen_e_acsl_result,__retres);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,"\\old(size)",
+                                 0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_3));
     __gmpz_init(__gen_e_acsl_mul_4);
     __gmpz_mul(__gen_e_acsl_mul_4,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_result),
@@ -227,6 +312,8 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2));
     __gmpz_init_set(__gen_e_acsl_size_6,
                     (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_5));
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,"size",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6));
     __gen_e_acsl_le_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__7));
     if (__gen_e_acsl_le_4 <= 0) {
@@ -236,21 +323,46 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
                       (__e_acsl_mpz_struct const *)(__gen_e_acsl__8));
       __gmpz_clear(__gen_e_acsl__8);
     }
-    else __gmpz_init_set(__gen_e_acsl_if_2,
-                         (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6));
+    else {
+      __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,"size",0,
+                                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6));
+      __gmpz_init_set(__gen_e_acsl_if_2,
+                      (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6));
+    }
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_7,
+                                 "__gen_e_acsl_if_2",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2));
     __gmpz_init_set_ui(__gen_e_acsl__9,18446744073709551615UL);
     __gen_e_acsl_le_5 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__9));
-    __e_acsl_assert(__gen_e_acsl_le_5 <= 0,1,"RTE","fread",
-                    "offset_lesser_or_eq_than_SIZE_MAX:\n  (\\let size = sizeof(char) * (((\\result * \\old(size) - 1) - 0) + 1);\n   size <= 0? 0: size)\n  <= 18446744073709551615",
-                    "FRAMAC_SHARE/libc/stdio.h",357);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,
+                                 "__gen_e_acsl_if_2",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2));
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "RTE";
+    __gen_e_acsl_assert_data_7.pred_txt = "offset_lesser_or_eq_than_SIZE_MAX:\n  (\\let size = sizeof(char) * (((\\result * \\old(size) - 1) - 0) + 1);\n   size <= 0? 0: size)\n  <= 18446744073709551615";
+    __gen_e_acsl_assert_data_7.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data_7.fct = "fread";
+    __gen_e_acsl_assert_data_7.line = 357;
+    __e_acsl_assert(__gen_e_acsl_le_5 <= 0,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
     __gen_e_acsl_size_8 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)((char *)__gen_e_acsl_at_2 + 
                                                              1 * 0),
                                                     __gen_e_acsl_size_8);
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Postcondition","fread",
-                    "initialization:\n  \\initialized((char *)\\old(ptr) + (0 .. \\result * \\old(size) - 1))",
-                    "FRAMAC_SHARE/libc/stdio.h",357);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "initialization:\n  \\initialized((char *)\\old(ptr) + (0 .. \\result * \\old(size) - 1))",
+                                 0,__gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Postcondition";
+    __gen_e_acsl_assert_data_6.pred_txt = "initialization:\n  \\initialized((char *)\\old(ptr) + (0 .. \\result * \\old(size) - 1))";
+    __gen_e_acsl_assert_data_6.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data_6.fct = "fread";
+    __gen_e_acsl_assert_data_6.line = 357;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     __e_acsl_delete_block((void *)(& stream));
     __e_acsl_delete_block((void *)(& ptr));
     __gmpz_clear(__gen_e_acsl_size_6);
@@ -274,7 +386,7 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
     requires valid_mode: valid_read_string(mode);
     ensures
       result_null_or_valid_fd:
-        \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]);
+        \result == \null || \subset(\result, &__fc_fopen[0 .. 16 - 1]);
     assigns \result;
     assigns \result
       \from (indirect: *(filename + (0 .. strlen{Old}(filename)))),
@@ -329,11 +441,25 @@ int main(void)
     if (res == 4) {
       {
         int __gen_e_acsl_initialized;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&buf_0[3]",
+                                     (void *)(& buf_0[3]));
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& buf_0[3]),
                                                         sizeof(char));
-        __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main",
-                        "\\initialized(&buf_0[3])",
-                        "tests/bts/issue-eacsl-40.c",15);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                     "\\initialized(&buf_0[3])",0,
+                                     __gen_e_acsl_initialized);
+        __gen_e_acsl_assert_data.blocking = 1;
+        __gen_e_acsl_assert_data.kind = "Assertion";
+        __gen_e_acsl_assert_data.pred_txt = "\\initialized(&buf_0[3])";
+        __gen_e_acsl_assert_data.file = "tests/bts/issue-eacsl-40.c";
+        __gen_e_acsl_assert_data.fct = "main";
+        __gen_e_acsl_assert_data.line = 15;
+        __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
       }
       /*@ assert \initialized(&buf_0[3]); */ ;
       __e_acsl_initialize((void *)(buf_0),sizeof(char));
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-91.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-91.c
index 24396bfc82b95133eb8119e99c3557439a09461c..a547dad399d3fad6dd02badaeff16b05d18d4c43 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-91.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue-eacsl-91.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_issue69.c b/src/plugins/e-acsl/tests/bts/oracle/gen_issue69.c
index c5762d971dea76d2d8ac74cdb935ff134fad1b8b..aa08a91b85f061484af0a502377b1b198b6e5b44 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_issue69.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_issue69.c
@@ -1,15 +1,17 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   {
     int __gen_e_acsl_forall;
     int __gen_e_acsl_c;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gen_e_acsl_forall = 1;
     __gen_e_acsl_c = (unsigned char)4;
     while (1) {
@@ -27,28 +29,53 @@ int main(void)
       __gen_e_acsl_c ++;
     }
     e_acsl_end_loop1: ;
-    __e_acsl_assert(__gen_e_acsl_forall,1,"Assertion","main",
-                    "\\forall unsigned char c; 4 <= c <= 300 ==> 0 <= c <= 255",
-                    "tests/bts/issue69.c",6);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\forall unsigned char c; 4 <= c <= 300 ==> 0 <= c <= 255",
+                                 0,__gen_e_acsl_forall);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\forall unsigned char c; 4 <= c <= 300 ==> 0 <= c <= 255";
+    __gen_e_acsl_assert_data.file = "tests/bts/issue69.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 6;
+    __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert ∀ unsigned char c; 4 ≤ c ≤ 300 ⇒ 0 ≤ c ≤ 255; */ ;
+  /*@ assert \forall unsigned char c; 4 <= c <= 300 ==> 0 <= c <= 255; */ ;
   int n = 5;
   {
     int __gen_e_acsl_m;
     int __gen_e_acsl_if;
     int __gen_e_acsl_forall_2;
     int __gen_e_acsl_u;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"n",0,n);
     if (n > 0) __gen_e_acsl_if = 4; else __gen_e_acsl_if = 341;
     __gen_e_acsl_m = __gen_e_acsl_if;
     __gen_e_acsl_forall_2 = 1;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
     __gen_e_acsl_u = (char)(1 + 1);
     while (1) {
       {
         int __gen_e_acsl_and_2;
-        if (-128 <= __gen_e_acsl_u) __gen_e_acsl_and_2 = __gen_e_acsl_u < 128;
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"u",0,
+                                     __gen_e_acsl_u);
+        if (-128 <= __gen_e_acsl_u) {
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"u",0,
+                                       __gen_e_acsl_u);
+          __gen_e_acsl_and_2 = __gen_e_acsl_u < 128;
+        }
         else __gen_e_acsl_and_2 = 0;
-        __e_acsl_assert(__gen_e_acsl_and_2,1,"RTE","main","-128 <= u < 128",
-                        "tests/bts/issue69.c",11);
+        __gen_e_acsl_assert_data_3.blocking = 1;
+        __gen_e_acsl_assert_data_3.kind = "RTE";
+        __gen_e_acsl_assert_data_3.pred_txt = "-128 <= u < 128";
+        __gen_e_acsl_assert_data_3.file = "tests/bts/issue69.c";
+        __gen_e_acsl_assert_data_3.fct = "main";
+        __gen_e_acsl_assert_data_3.line = 11;
+        __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_3);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
       }
       if (__gen_e_acsl_u < __gen_e_acsl_m) ; else break;
       if (__gen_e_acsl_u > 0) ;
@@ -59,12 +86,22 @@ int main(void)
       __gen_e_acsl_u ++;
     }
     e_acsl_end_loop2: ;
-    __e_acsl_assert(__gen_e_acsl_forall_2,1,"Assertion","main",
-                    "\\let m = n > 0? 4: 341;\n\\forall char u; 1 < u < m ==> u > 0",
-                    "tests/bts/issue69.c",10);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\forall char u; 1 < u < m ==> u > 0",0,
+                                 __gen_e_acsl_forall_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\let m = n > 0? 4: 341;\n\\forall char u; 1 < u < m ==> u > 0";
+    __gen_e_acsl_assert_data_2.file = "tests/bts/issue69.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 10;
+    __e_acsl_assert(__gen_e_acsl_forall_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert \let m = n > 0? 4: 341; ∀ char u; 1 < u < m ⇒ u > 0; */ ;
+  /*@ assert \let m = n > 0? 4: 341; \forall char u; 1 < u < m ==> u > 0; */
+  ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-105.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-105.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..694a6ace7a1a9a43050452f0b58ea629e93e275d 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-105.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-105.res.oracle
@@ -1,2 +1,8 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/bts/issue-eacsl-105.c:11: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/issue-eacsl-105.c:11: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-139.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-139.res.oracle
index ac3528903af3bd4f306a3e7a91c535efefa046e6..7f3b6aca0f90ae15a80966ca7f9143f03520d159 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-139.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-139.res.oracle
@@ -4,5 +4,8 @@
   is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/bts/issue-eacsl-139.c:9: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/bts/issue-eacsl-139.c:9: Warning: 
   function __gen_e_acsl_f: postcondition got status unknown.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-145.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-145.res.oracle
index 8d646242f63b276a80e5b1aecbe4798c58561b3d..6e51cc6899fa4c0308d20c0f4864a97ff0458adf 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-145.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-145.res.oracle
@@ -6,20 +6,30 @@
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  G ∈ {0}
-  __e_acsl_sound_verdict ∈ [--..--]
-  __e_acsl_sound_verdict ∈ [--..--]
-  __e_acsl_heap_allocation_size ∈ [--..--]
-  __e_acsl_heap_allocated_blocks ∈ [--..--]
-  __e_acsl_math_HUGE_VAL ∈ [-1.79769313486e+308 .. 1.79769313486e+308]
-  __e_acsl_math_HUGE_VALF ∈ [-3.40282346639e+38 .. 3.40282346639e+38]
-  __e_acsl_math_INFINITY ∈ [-1.79769313486e+308 .. 1.79769313486e+308]
-  __e_acsl_init ∈ [--..--]
+  G IN {0}
+  __e_acsl_sound_verdict IN [--..--]
+  __e_acsl_init IN [--..--]
+  __e_acsl_sound_verdict IN [--..--]
+  __e_acsl_heap_allocation_size IN [--..--]
+  __e_acsl_heap_allocated_blocks IN [--..--]
+  __e_acsl_math_HUGE_VAL IN [-1.79769313486e+308 .. 1.79769313486e+308]
+  __e_acsl_math_HUGE_VALF IN [-3.40282346639e+38 .. 3.40282346639e+38]
+  __e_acsl_math_INFINITY IN [-1.79769313486e+308 .. 1.79769313486e+308]
 [eva] using specification for function __e_acsl_memory_init
 [eva] using specification for function __e_acsl_store_block
 [eva] using specification for function __e_acsl_full_init
+[eva] using specification for function __e_acsl_assert_register_ptr
+[eva] using specification for function __e_acsl_assert_register_ulong
+[eva:alarm] tests/bts/issue-eacsl-145.c:9: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva] using specification for function __e_acsl_valid
+[eva] using specification for function __e_acsl_assert_register_int
+[eva:alarm] tests/bts/issue-eacsl-145.c:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva] using specification for function __e_acsl_assert
+[eva] using specification for function __e_acsl_assert_clean
 [eva] using specification for function __e_acsl_delete_block
 [eva] using specification for function __e_acsl_memory_clean
 [eva] done for function main
@@ -27,7 +37,7 @@
 [eva:summary] ====== ANALYSIS SUMMARY ======
   ----------------------------------------------------------------------------
   3 functions analyzed (out of 5): 60% coverage.
-  In these functions, 23 statements reached (out of 23): 100% coverage.
+  In these functions, 36 statements reached (out of 36): 100% coverage.
   ----------------------------------------------------------------------------
   No errors or warnings raised during the analysis.
   ----------------------------------------------------------------------------
@@ -35,6 +45,6 @@
   ----------------------------------------------------------------------------
   Evaluation of the logical properties reached by the analysis:
     Assertions        1 valid     0 unknown     0 invalid      1 total
-    Preconditions     2 valid     0 unknown     0 invalid      2 total
-  100% of the logical properties reached have been proven.
+    Preconditions     8 valid     2 unknown     0 invalid     10 total
+  81% of the logical properties reached have been proven.
   ----------------------------------------------------------------------------
diff --git a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-177.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-177.res.oracle
index dd6d9ea6b9d61f63e64152c3df0492c92862875b..eda654cff5b552f579fb68376a178448e4dae4f6 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-177.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-177.res.oracle
@@ -14,6 +14,9 @@
   Using specification of function __gen_e_acsl_f_3
   for recursive calls of depth 100. Analysis of function __gen_e_acsl_f_3
   is thus incomplete and its soundness relies on the written specification.
+[eva:alarm] tests/bts/issue-eacsl-177.c:14: Warning: 
+  function __e_acsl_assert_register_mpz: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/bts/issue-eacsl-177.c:14: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/bts/issue-eacsl-177.c:14: Warning: 
diff --git a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-40.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-40.res.oracle
index 206e0f2af8778fd0860ed99a149a6d8c837113c8..99eb8b87048de208995e26ad5544d36eb211a1d7 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-40.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-40.res.oracle
@@ -31,16 +31,58 @@
   is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: 
+  function __e_acsl_assert_register_mpz: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:352: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:352: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/stdio.h:352: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:350: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/stdio.h:350: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:356: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: 
+  function __e_acsl_assert_register_mpz: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: 
+  function __e_acsl_assert_register_mpz: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: 
   function __gen_e_acsl_fread: postcondition 'initialization' got status unknown.
+[eva:alarm] tests/bts/issue-eacsl-40.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/bts/issue-eacsl-40.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/bts/issue-eacsl-40.c:15: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/bts/issue-eacsl-40.c:15: Warning: 
diff --git a/src/plugins/e-acsl/tests/bts/oracle/issue69.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/issue69.res.oracle
index a3f1846d9e3c3d39035133222a4eb354bac869d2..627fd7acc98533afb4318d7dd26335fb27af9b2d 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/issue69.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/issue69.res.oracle
@@ -1,3 +1,6 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/bts/issue69.c:11: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/bts/issue69.c:10: Warning: assertion got status unknown.
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string.c
index f457dfd771a8c76e09af205888795157c0950a05..34edaef3d580b28d2270027e2fe08f1a2e01b101 100644
--- a/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string.c
+++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "string.h"
 char *__gen_e_acsl_literal_string;
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string_local_init.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string_local_init.c
index 93dcd481afdc60b43b20dc4f9acfe2457e4e5fc3..55d378e45483e210528e4f7e92c8f05702072b08 100644
--- a/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string_local_init.c
+++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_builtin_literal_string_local_init.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "string.h"
 char *__gen_e_acsl_literal_string;
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c
index 313fcf00ef198538e9a90fa4e936f8e944731937..76184e157cb74d313132d37a6040e0f145897c61 100644
--- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c
+++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcat.c
@@ -1,6 +1,7 @@
 /* Generated by Frama-C */
 #include "signal.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 #include "string.h"
@@ -41,36 +42,35 @@ char *__gen_e_acsl_literal_string_4;
 char *__gen_e_acsl_literal_string_8;
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
-/*@ exits status: \exit_status ≡ \old(status);
+/*@ exits status: \exit_status == \old(status);
     ensures never_terminates: \false;
     
     assigns \exit_status \from status;
  */
 void __gen_e_acsl_exit(int status);
 
-/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0;
+/*@ ensures result_ok_or_error: \result == -1 || \result >= 0;
     ensures
       initialization: stat_loc_init_on_success:
-        \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒
+        \result >= 0 && \old(stat_loc) != \null ==>
         \initialized(\old(stat_loc));
     assigns \result, *stat_loc;
     assigns \result \from (indirect: options);
     assigns *stat_loc \from (indirect: options);
     
     behavior stat_loc_null:
-      assumes stat_loc_null: stat_loc ≡ \null;
+      assumes stat_loc_null: stat_loc == \null;
       assigns \result;
       assigns \result \from \nothing;
     
     behavior stat_loc_non_null:
-      assumes stat_loc_non_null: stat_loc ≢ \null;
+      assumes stat_loc_non_null: stat_loc != \null;
       requires valid_stat_loc: \valid(stat_loc);
  */
 pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options);
 
 /*@ ensures
-      result_ok_child_or_error:
-        \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1;
+      result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1;
     assigns \result;
     assigns \result \from \nothing;
  */
@@ -89,42 +89,110 @@ void test_memory_tracking(void)
       int __gen_e_acsl_size;
       int __gen_e_acsl_if;
       int __gen_e_acsl_initialized;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(char *)dest",
+                                   (void *)(dest));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",
+                                   0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",
+                                   0,1);
       __gen_e_acsl_size = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0,
+                                   __gen_e_acsl_size);
       if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0;
-      else __gen_e_acsl_if = __gen_e_acsl_size;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0,
+                                     __gen_e_acsl_size);
+        __gen_e_acsl_if = __gen_e_acsl_size;
+      }
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)(dest + 1 * 0),
                                                       (size_t)__gen_e_acsl_if);
-      __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion",
-                      "test_memory_tracking","\\initialized(&dest[0 .. 1])",
-                      "tests/builtin/strcat.c",15);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&dest[0 .. 1])",0,
+                                   __gen_e_acsl_initialized);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "\\initialized(&dest[0 .. 1])";
+      __gen_e_acsl_assert_data.file = "tests/builtin/strcat.c";
+      __gen_e_acsl_assert_data.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data.line = 15;
+      __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
     /*@ assert \initialized(&dest[0 .. 1]); */ ;
     {
       int __gen_e_acsl_size_2;
       int __gen_e_acsl_if_2;
       int __gen_e_acsl_initialized_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,
+                                   "(char *)dest",(void *)(dest));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_2 = 1 * ((3 - 2) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0,
+                                   __gen_e_acsl_size_2);
       if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0;
-      else __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0,
+                                     __gen_e_acsl_size_2);
+        __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+      }
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(dest + 1 * 2),
                                                         (size_t)__gen_e_acsl_if_2);
-      __e_acsl_assert(! __gen_e_acsl_initialized_2,1,"Assertion",
-                      "test_memory_tracking","!\\initialized(&dest[2 .. 3])",
-                      "tests/builtin/strcat.c",16);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\initialized(&dest[2 .. 3])",0,
+                                   __gen_e_acsl_initialized_2);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Assertion";
+      __gen_e_acsl_assert_data_2.pred_txt = "!\\initialized(&dest[2 .. 3])";
+      __gen_e_acsl_assert_data_2.file = "tests/builtin/strcat.c";
+      __gen_e_acsl_assert_data_2.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_2.line = 16;
+      __e_acsl_assert(! __gen_e_acsl_initialized_2,
+                      & __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
-    /*@ assert ¬\initialized(&dest[2 .. 3]); */ ;
+    /*@ assert !\initialized(&dest[2 .. 3]); */ ;
     {
       int __gen_e_acsl_size_3;
       int __gen_e_acsl_if_3;
       int __gen_e_acsl_initialized_3;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "(char *)src",(void *)(src));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_3 = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0,
+                                   __gen_e_acsl_size_3);
       if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0;
-      else __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0,
+                                     __gen_e_acsl_size_3);
+        __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+      }
       __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(src + 1 * 0),
                                                         (size_t)__gen_e_acsl_if_3);
-      __e_acsl_assert(__gen_e_acsl_initialized_3,1,"Assertion",
-                      "test_memory_tracking","\\initialized(&src[0 .. 1])",
-                      "tests/builtin/strcat.c",17);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(&src[0 .. 1])",0,
+                                   __gen_e_acsl_initialized_3);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Assertion";
+      __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(&src[0 .. 1])";
+      __gen_e_acsl_assert_data_3.file = "tests/builtin/strcat.c";
+      __gen_e_acsl_assert_data_3.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_3.line = 17;
+      __e_acsl_assert(__gen_e_acsl_initialized_3,
+                      & __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     }
     /*@ assert \initialized(&src[0 .. 1]); */ ;
     __e_acsl_builtin_strcat(dest,(char const *)(src));
@@ -132,25 +200,63 @@ void test_memory_tracking(void)
       int __gen_e_acsl_size_4;
       int __gen_e_acsl_if_4;
       int __gen_e_acsl_initialized_4;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,
+                                   "(char *)dest",(void *)(dest));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_4 = 1 * ((2 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0,
+                                   __gen_e_acsl_size_4);
       if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0;
-      else __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0,
+                                     __gen_e_acsl_size_4);
+        __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+      }
       __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(dest + 1 * 0),
                                                         (size_t)__gen_e_acsl_if_4);
-      __e_acsl_assert(__gen_e_acsl_initialized_4,1,"Assertion",
-                      "test_memory_tracking","\\initialized(&dest[0 .. 2])",
-                      "tests/builtin/strcat.c",20);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\initialized(&dest[0 .. 2])",0,
+                                   __gen_e_acsl_initialized_4);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Assertion";
+      __gen_e_acsl_assert_data_4.pred_txt = "\\initialized(&dest[0 .. 2])";
+      __gen_e_acsl_assert_data_4.file = "tests/builtin/strcat.c";
+      __gen_e_acsl_assert_data_4.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_4.line = 20;
+      __e_acsl_assert(__gen_e_acsl_initialized_4,
+                      & __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     }
     /*@ assert \initialized(&dest[0 .. 2]); */ ;
     {
       int __gen_e_acsl_initialized_5;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&dest[3]",
+                                   (void *)(& dest[3]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& dest[3]),
                                                         sizeof(char));
-      __e_acsl_assert(! __gen_e_acsl_initialized_5,1,"Assertion",
-                      "test_memory_tracking","!\\initialized(&dest[3])",
-                      "tests/builtin/strcat.c",21);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\initialized(&dest[3])",0,
+                                   __gen_e_acsl_initialized_5);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Assertion";
+      __gen_e_acsl_assert_data_5.pred_txt = "!\\initialized(&dest[3])";
+      __gen_e_acsl_assert_data_5.file = "tests/builtin/strcat.c";
+      __gen_e_acsl_assert_data_5.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_5.line = 21;
+      __e_acsl_assert(! __gen_e_acsl_initialized_5,
+                      & __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     }
-    /*@ assert ¬\initialized(&dest[3]); */ ;
+    /*@ assert !\initialized(&dest[3]); */ ;
     __e_acsl_delete_block((void *)(src));
     __e_acsl_delete_block((void *)(dest));
   }
@@ -165,47 +271,114 @@ void test_memory_tracking(void)
       int __gen_e_acsl_size_5;
       int __gen_e_acsl_if_5;
       int __gen_e_acsl_initialized_6;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,
+                                   "(char *)dest_0",(void *)(dest_0));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_5 = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0,
+                                   __gen_e_acsl_size_5);
       if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0;
-      else __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0,
+                                     __gen_e_acsl_size_5);
+        __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+      }
       __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(dest_0 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_5);
-      __e_acsl_assert(__gen_e_acsl_initialized_6,1,"Assertion",
-                      "test_memory_tracking",
-                      "\\initialized(&dest_0[0 .. 1])",
-                      "tests/builtin/strcat.c",27);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "\\initialized(&dest_0[0 .. 1])",0,
+                                   __gen_e_acsl_initialized_6);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "Assertion";
+      __gen_e_acsl_assert_data_6.pred_txt = "\\initialized(&dest_0[0 .. 1])";
+      __gen_e_acsl_assert_data_6.file = "tests/builtin/strcat.c";
+      __gen_e_acsl_assert_data_6.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_6.line = 27;
+      __e_acsl_assert(__gen_e_acsl_initialized_6,
+                      & __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     }
     /*@ assert \initialized(&dest_0[0 .. 1]); */ ;
     {
       int __gen_e_acsl_size_6;
       int __gen_e_acsl_if_6;
       int __gen_e_acsl_initialized_7;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,
+                                   "(char *)dest_0",(void *)(dest_0));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_6 = 1 * ((3 - 2) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"size",0,
+                                   __gen_e_acsl_size_6);
       if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0;
-      else __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"size",0,
+                                     __gen_e_acsl_size_6);
+        __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+      }
       __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(dest_0 + 
                                                                  1 * 2),
                                                         (size_t)__gen_e_acsl_if_6);
-      __e_acsl_assert(! __gen_e_acsl_initialized_7,1,"Assertion",
-                      "test_memory_tracking",
-                      "!\\initialized(&dest_0[2 .. 3])",
-                      "tests/builtin/strcat.c",28);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                   "\\initialized(&dest_0[2 .. 3])",0,
+                                   __gen_e_acsl_initialized_7);
+      __gen_e_acsl_assert_data_7.blocking = 1;
+      __gen_e_acsl_assert_data_7.kind = "Assertion";
+      __gen_e_acsl_assert_data_7.pred_txt = "!\\initialized(&dest_0[2 .. 3])";
+      __gen_e_acsl_assert_data_7.file = "tests/builtin/strcat.c";
+      __gen_e_acsl_assert_data_7.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_7.line = 28;
+      __e_acsl_assert(! __gen_e_acsl_initialized_7,
+                      & __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
     }
-    /*@ assert ¬\initialized(&dest_0[2 .. 3]); */ ;
+    /*@ assert !\initialized(&dest_0[2 .. 3]); */ ;
     {
       int __gen_e_acsl_size_7;
       int __gen_e_acsl_if_7;
       int __gen_e_acsl_initialized_8;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,
+                                   "(char *)src_0",(void *)(src_0));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_7 = 1 * ((2 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0,
+                                   __gen_e_acsl_size_7);
       if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0;
-      else __gen_e_acsl_if_7 = __gen_e_acsl_size_7;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0,
+                                     __gen_e_acsl_size_7);
+        __gen_e_acsl_if_7 = __gen_e_acsl_size_7;
+      }
       __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(src_0 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_7);
-      __e_acsl_assert(__gen_e_acsl_initialized_8,1,"Assertion",
-                      "test_memory_tracking","\\initialized(&src_0[0 .. 2])",
-                      "tests/builtin/strcat.c",29);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "\\initialized(&src_0[0 .. 2])",0,
+                                   __gen_e_acsl_initialized_8);
+      __gen_e_acsl_assert_data_8.blocking = 1;
+      __gen_e_acsl_assert_data_8.kind = "Assertion";
+      __gen_e_acsl_assert_data_8.pred_txt = "\\initialized(&src_0[0 .. 2])";
+      __gen_e_acsl_assert_data_8.file = "tests/builtin/strcat.c";
+      __gen_e_acsl_assert_data_8.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_8.line = 29;
+      __e_acsl_assert(__gen_e_acsl_initialized_8,
+                      & __gen_e_acsl_assert_data_8);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
     }
     /*@ assert \initialized(&src_0[0 .. 2]); */ ;
     __e_acsl_builtin_strncat(dest_0,(char const *)(src_0),(unsigned long)1);
@@ -213,27 +386,64 @@ void test_memory_tracking(void)
       int __gen_e_acsl_size_8;
       int __gen_e_acsl_if_8;
       int __gen_e_acsl_initialized_9;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,
+                                   "(char *)dest_0",(void *)(dest_0));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_8 = 1 * ((2 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0,
+                                   __gen_e_acsl_size_8);
       if (__gen_e_acsl_size_8 <= 0) __gen_e_acsl_if_8 = 0;
-      else __gen_e_acsl_if_8 = __gen_e_acsl_size_8;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0,
+                                     __gen_e_acsl_size_8);
+        __gen_e_acsl_if_8 = __gen_e_acsl_size_8;
+      }
       __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(dest_0 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_8);
-      __e_acsl_assert(__gen_e_acsl_initialized_9,1,"Assertion",
-                      "test_memory_tracking",
-                      "\\initialized(&dest_0[0 .. 2])",
-                      "tests/builtin/strcat.c",32);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "\\initialized(&dest_0[0 .. 2])",0,
+                                   __gen_e_acsl_initialized_9);
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "Assertion";
+      __gen_e_acsl_assert_data_9.pred_txt = "\\initialized(&dest_0[0 .. 2])";
+      __gen_e_acsl_assert_data_9.file = "tests/builtin/strcat.c";
+      __gen_e_acsl_assert_data_9.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_9.line = 32;
+      __e_acsl_assert(__gen_e_acsl_initialized_9,
+                      & __gen_e_acsl_assert_data_9);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
     }
     /*@ assert \initialized(&dest_0[0 .. 2]); */ ;
     {
       int __gen_e_acsl_initialized_10;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,
+                                   "&dest_0[3]",(void *)(& dest_0[3]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& dest_0[3]),
                                                          sizeof(char));
-      __e_acsl_assert(! __gen_e_acsl_initialized_10,1,"Assertion",
-                      "test_memory_tracking","!\\initialized(&dest_0[3])",
-                      "tests/builtin/strcat.c",33);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "\\initialized(&dest_0[3])",0,
+                                   __gen_e_acsl_initialized_10);
+      __gen_e_acsl_assert_data_10.blocking = 1;
+      __gen_e_acsl_assert_data_10.kind = "Assertion";
+      __gen_e_acsl_assert_data_10.pred_txt = "!\\initialized(&dest_0[3])";
+      __gen_e_acsl_assert_data_10.file = "tests/builtin/strcat.c";
+      __gen_e_acsl_assert_data_10.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_10.line = 33;
+      __e_acsl_assert(! __gen_e_acsl_initialized_10,
+                      & __gen_e_acsl_assert_data_10);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
     }
-    /*@ assert ¬\initialized(&dest_0[3]); */ ;
+    /*@ assert !\initialized(&dest_0[3]); */ ;
     __e_acsl_delete_block((void *)(src_0));
     __e_acsl_delete_block((void *)(dest_0));
   }
@@ -248,47 +458,114 @@ void test_memory_tracking(void)
       int __gen_e_acsl_size_9;
       int __gen_e_acsl_if_9;
       int __gen_e_acsl_initialized_11;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,
+                                   "(char *)dest_1",(void *)(dest_1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_9 = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0,
+                                   __gen_e_acsl_size_9);
       if (__gen_e_acsl_size_9 <= 0) __gen_e_acsl_if_9 = 0;
-      else __gen_e_acsl_if_9 = __gen_e_acsl_size_9;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0,
+                                     __gen_e_acsl_size_9);
+        __gen_e_acsl_if_9 = __gen_e_acsl_size_9;
+      }
       __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(dest_1 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_9);
-      __e_acsl_assert(__gen_e_acsl_initialized_11,1,"Assertion",
-                      "test_memory_tracking",
-                      "\\initialized(&dest_1[0 .. 1])",
-                      "tests/builtin/strcat.c",39);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                   "\\initialized(&dest_1[0 .. 1])",0,
+                                   __gen_e_acsl_initialized_11);
+      __gen_e_acsl_assert_data_11.blocking = 1;
+      __gen_e_acsl_assert_data_11.kind = "Assertion";
+      __gen_e_acsl_assert_data_11.pred_txt = "\\initialized(&dest_1[0 .. 1])";
+      __gen_e_acsl_assert_data_11.file = "tests/builtin/strcat.c";
+      __gen_e_acsl_assert_data_11.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_11.line = 39;
+      __e_acsl_assert(__gen_e_acsl_initialized_11,
+                      & __gen_e_acsl_assert_data_11);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
     }
     /*@ assert \initialized(&dest_1[0 .. 1]); */ ;
     {
       int __gen_e_acsl_size_10;
       int __gen_e_acsl_if_10;
       int __gen_e_acsl_initialized_12;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,
+                                   "(char *)dest_1",(void *)(dest_1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_10 = 1 * ((3 - 2) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"size",0,
+                                   __gen_e_acsl_size_10);
       if (__gen_e_acsl_size_10 <= 0) __gen_e_acsl_if_10 = 0;
-      else __gen_e_acsl_if_10 = __gen_e_acsl_size_10;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"size",0,
+                                     __gen_e_acsl_size_10);
+        __gen_e_acsl_if_10 = __gen_e_acsl_size_10;
+      }
       __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(dest_1 + 
                                                                   1 * 2),
                                                          (size_t)__gen_e_acsl_if_10);
-      __e_acsl_assert(! __gen_e_acsl_initialized_12,1,"Assertion",
-                      "test_memory_tracking",
-                      "!\\initialized(&dest_1[2 .. 3])",
-                      "tests/builtin/strcat.c",40);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                   "\\initialized(&dest_1[2 .. 3])",0,
+                                   __gen_e_acsl_initialized_12);
+      __gen_e_acsl_assert_data_12.blocking = 1;
+      __gen_e_acsl_assert_data_12.kind = "Assertion";
+      __gen_e_acsl_assert_data_12.pred_txt = "!\\initialized(&dest_1[2 .. 3])";
+      __gen_e_acsl_assert_data_12.file = "tests/builtin/strcat.c";
+      __gen_e_acsl_assert_data_12.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_12.line = 40;
+      __e_acsl_assert(! __gen_e_acsl_initialized_12,
+                      & __gen_e_acsl_assert_data_12);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
     }
-    /*@ assert ¬\initialized(&dest_1[2 .. 3]); */ ;
+    /*@ assert !\initialized(&dest_1[2 .. 3]); */ ;
     {
       int __gen_e_acsl_size_11;
       int __gen_e_acsl_if_11;
       int __gen_e_acsl_initialized_13;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,
+                                   "(char *)src_1",(void *)(src_1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_11 = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0,
+                                   __gen_e_acsl_size_11);
       if (__gen_e_acsl_size_11 <= 0) __gen_e_acsl_if_11 = 0;
-      else __gen_e_acsl_if_11 = __gen_e_acsl_size_11;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0,
+                                     __gen_e_acsl_size_11);
+        __gen_e_acsl_if_11 = __gen_e_acsl_size_11;
+      }
       __gen_e_acsl_initialized_13 = __e_acsl_initialized((void *)(src_1 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_11);
-      __e_acsl_assert(__gen_e_acsl_initialized_13,1,"Assertion",
-                      "test_memory_tracking","\\initialized(&src_1[0 .. 1])",
-                      "tests/builtin/strcat.c",41);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                   "\\initialized(&src_1[0 .. 1])",0,
+                                   __gen_e_acsl_initialized_13);
+      __gen_e_acsl_assert_data_13.blocking = 1;
+      __gen_e_acsl_assert_data_13.kind = "Assertion";
+      __gen_e_acsl_assert_data_13.pred_txt = "\\initialized(&src_1[0 .. 1])";
+      __gen_e_acsl_assert_data_13.file = "tests/builtin/strcat.c";
+      __gen_e_acsl_assert_data_13.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_13.line = 41;
+      __e_acsl_assert(__gen_e_acsl_initialized_13,
+                      & __gen_e_acsl_assert_data_13);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
     }
     /*@ assert \initialized(&src_1[0 .. 1]); */ ;
     __e_acsl_builtin_strncat(dest_1,(char const *)(src_1),(unsigned long)2);
@@ -296,27 +573,64 @@ void test_memory_tracking(void)
       int __gen_e_acsl_size_12;
       int __gen_e_acsl_if_12;
       int __gen_e_acsl_initialized_14;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,
+                                   "(char *)dest_1",(void *)(dest_1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_12 = 1 * ((2 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"size",0,
+                                   __gen_e_acsl_size_12);
       if (__gen_e_acsl_size_12 <= 0) __gen_e_acsl_if_12 = 0;
-      else __gen_e_acsl_if_12 = __gen_e_acsl_size_12;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"size",0,
+                                     __gen_e_acsl_size_12);
+        __gen_e_acsl_if_12 = __gen_e_acsl_size_12;
+      }
       __gen_e_acsl_initialized_14 = __e_acsl_initialized((void *)(dest_1 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_12);
-      __e_acsl_assert(__gen_e_acsl_initialized_14,1,"Assertion",
-                      "test_memory_tracking",
-                      "\\initialized(&dest_1[0 .. 2])",
-                      "tests/builtin/strcat.c",44);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,
+                                   "\\initialized(&dest_1[0 .. 2])",0,
+                                   __gen_e_acsl_initialized_14);
+      __gen_e_acsl_assert_data_14.blocking = 1;
+      __gen_e_acsl_assert_data_14.kind = "Assertion";
+      __gen_e_acsl_assert_data_14.pred_txt = "\\initialized(&dest_1[0 .. 2])";
+      __gen_e_acsl_assert_data_14.file = "tests/builtin/strcat.c";
+      __gen_e_acsl_assert_data_14.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_14.line = 44;
+      __e_acsl_assert(__gen_e_acsl_initialized_14,
+                      & __gen_e_acsl_assert_data_14);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
     }
     /*@ assert \initialized(&dest_1[0 .. 2]); */ ;
     {
       int __gen_e_acsl_initialized_15;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,
+                                   "&dest_1[3]",(void *)(& dest_1[3]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_15 = __e_acsl_initialized((void *)(& dest_1[3]),
                                                          sizeof(char));
-      __e_acsl_assert(! __gen_e_acsl_initialized_15,1,"Assertion",
-                      "test_memory_tracking","!\\initialized(&dest_1[3])",
-                      "tests/builtin/strcat.c",45);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,
+                                   "\\initialized(&dest_1[3])",0,
+                                   __gen_e_acsl_initialized_15);
+      __gen_e_acsl_assert_data_15.blocking = 1;
+      __gen_e_acsl_assert_data_15.kind = "Assertion";
+      __gen_e_acsl_assert_data_15.pred_txt = "!\\initialized(&dest_1[3])";
+      __gen_e_acsl_assert_data_15.file = "tests/builtin/strcat.c";
+      __gen_e_acsl_assert_data_15.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_15.line = 45;
+      __e_acsl_assert(! __gen_e_acsl_initialized_15,
+                      & __gen_e_acsl_assert_data_15);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
     }
-    /*@ assert ¬\initialized(&dest_1[3]); */ ;
+    /*@ assert !\initialized(&dest_1[3]); */ ;
     __e_acsl_delete_block((void *)(src_1));
     __e_acsl_delete_block((void *)(dest_1));
   }
@@ -324,8 +638,7 @@ void test_memory_tracking(void)
 }
 
 /*@ ensures
-      result_ok_child_or_error:
-        \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1;
+      result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1;
     assigns \result;
     assigns \result \from \nothing;
  */
@@ -336,33 +649,49 @@ pid_t __gen_e_acsl_fork(void)
   {
     int __gen_e_acsl_or;
     int __gen_e_acsl_or_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                 __retres);
     if (__retres == 0) __gen_e_acsl_or = 1;
-    else __gen_e_acsl_or = __retres > 0;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or = __retres > 0;
+    }
     if (__gen_e_acsl_or) __gen_e_acsl_or_2 = 1;
-    else __gen_e_acsl_or_2 = __retres == -1;
-    __e_acsl_assert(__gen_e_acsl_or_2,1,"Postcondition","fork",
-                    "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1",
-                    "FRAMAC_SHARE/libc/unistd.h",846);
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or_2 = __retres == -1;
+    }
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/unistd.h";
+    __gen_e_acsl_assert_data.fct = "fork";
+    __gen_e_acsl_assert_data.line = 846;
+    __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     return __retres;
   }
 }
 
-/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0;
+/*@ ensures result_ok_or_error: \result == -1 || \result >= 0;
     ensures
       initialization: stat_loc_init_on_success:
-        \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒
+        \result >= 0 && \old(stat_loc) != \null ==>
         \initialized(\old(stat_loc));
     assigns \result, *stat_loc;
     assigns \result \from (indirect: options);
     assigns *stat_loc \from (indirect: options);
     
     behavior stat_loc_null:
-      assumes stat_loc_null: stat_loc ≡ \null;
+      assumes stat_loc_null: stat_loc == \null;
       assigns \result;
       assigns \result \from \nothing;
     
     behavior stat_loc_non_null:
-      assumes stat_loc_non_null: stat_loc ≢ \null;
+      assumes stat_loc_non_null: stat_loc != \null;
       requires valid_stat_loc: \valid(stat_loc);
  */
 pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
@@ -383,12 +712,25 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
     if (__gen_e_acsl_assumes_value) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"stat_loc",
+                                   (void *)stat_loc);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)stat_loc,sizeof(int),
                                           (void *)stat_loc,
                                           (void *)(& stat_loc));
-      __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","waitpid",
-                      "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)",
-                      "FRAMAC_SHARE/libc/sys/wait.h",92);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid(stat_loc)",0,__gen_e_acsl_valid);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Precondition";
+      __gen_e_acsl_assert_data.pred_txt = "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)";
+      __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/sys/wait.h";
+      __gen_e_acsl_assert_data.fct = "waitpid";
+      __gen_e_acsl_assert_data.line = 92;
+      __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
   }
   __gen_e_acsl_at_2 = stat_loc;
@@ -398,30 +740,64 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
     int __gen_e_acsl_or;
     int __gen_e_acsl_and;
     int __gen_e_acsl_implies;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                 __retres);
     if (__retres == -1) __gen_e_acsl_or = 1;
-    else __gen_e_acsl_or = __retres >= 0;
-    __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","waitpid",
-                    "result_ok_or_error: \\result == -1 || \\result >= 0",
-                    "FRAMAC_SHARE/libc/sys/wait.h",84);
-    if (__retres >= 0) __gen_e_acsl_and = __gen_e_acsl_at != (int *)0;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or = __retres >= 0;
+    }
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Postcondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "result_ok_or_error: \\result == -1 || \\result >= 0";
+    __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/sys/wait.h";
+    __gen_e_acsl_assert_data_2.fct = "waitpid";
+    __gen_e_acsl_assert_data_2.line = 84;
+    __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\result",0,
+                                 __retres);
+    if (__retres >= 0) {
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "\\old(stat_loc)",(void *)__gen_e_acsl_at);
+      __gen_e_acsl_and = __gen_e_acsl_at != (int *)0;
+    }
     else __gen_e_acsl_and = 0;
     if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1;
     else {
       int __gen_e_acsl_initialized;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "\\old(stat_loc)",
+                                   (void *)__gen_e_acsl_at_2);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)__gen_e_acsl_at_2,
                                                       sizeof(int));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(\\old(stat_loc))",0,
+                                   __gen_e_acsl_initialized);
       __gen_e_acsl_implies = __gen_e_acsl_initialized;
     }
-    __e_acsl_assert(__gen_e_acsl_implies,1,"Postcondition","waitpid",
-                    "initialization: stat_loc_init_on_success:\n  \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))",
-                    "FRAMAC_SHARE/libc/sys/wait.h",86);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Postcondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "initialization: stat_loc_init_on_success:\n  \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))";
+    __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/sys/wait.h";
+    __gen_e_acsl_assert_data_3.fct = "waitpid";
+    __gen_e_acsl_assert_data_3.line = 86;
+    __e_acsl_assert(__gen_e_acsl_implies,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     __e_acsl_delete_block((void *)(& stat_loc));
     return __retres;
   }
 }
 
-/*@ exits status: \exit_status ≡ \old(status);
+/*@ exits status: \exit_status == \old(status);
     ensures never_terminates: \false;
     
     assigns \exit_status \from status;
@@ -429,9 +805,17 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
 void __gen_e_acsl_exit(int status)
 {
   exit(status);
-  __e_acsl_assert(0,1,"Postcondition","exit","never_terminates: \\false",
-                  "FRAMAC_SHARE/libc/stdlib.h",473);
-  return;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h";
+    __gen_e_acsl_assert_data.fct = "exit";
+    __gen_e_acsl_assert_data.line = 473;
+    __e_acsl_assert(0,& __gen_e_acsl_assert_data);
+    return;
+  }
 }
 
 void __e_acsl_globals_init(void)
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c
index cb77e05860c921f2af86471a47a16fd3556fad20..0f0aa26e6d14542c8f36a0b17799cea189aee69e 100644
--- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c
+++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcmp.c
@@ -1,6 +1,7 @@
 /* Generated by Frama-C */
 #include "signal.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 #include "string.h"
@@ -43,43 +44,42 @@ char *__gen_e_acsl_literal_string_5;
 char *__gen_e_acsl_literal_string_4;
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
-/*@ exits status: \exit_status ≢ 0;
+/*@ exits status: \exit_status != 0;
     ensures never_terminates: \false;
     
     assigns \exit_status \from \nothing;
  */
 void __gen_e_acsl_abort(void);
 
-/*@ exits status: \exit_status ≡ \old(status);
+/*@ exits status: \exit_status == \old(status);
     ensures never_terminates: \false;
     
     assigns \exit_status \from status;
  */
 void __gen_e_acsl_exit(int status);
 
-/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0;
+/*@ ensures result_ok_or_error: \result == -1 || \result >= 0;
     ensures
       initialization: stat_loc_init_on_success:
-        \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒
+        \result >= 0 && \old(stat_loc) != \null ==>
         \initialized(\old(stat_loc));
     assigns \result, *stat_loc;
     assigns \result \from (indirect: options);
     assigns *stat_loc \from (indirect: options);
     
     behavior stat_loc_null:
-      assumes stat_loc_null: stat_loc ≡ \null;
+      assumes stat_loc_null: stat_loc == \null;
       assigns \result;
       assigns \result \from \nothing;
     
     behavior stat_loc_non_null:
-      assumes stat_loc_non_null: stat_loc ≢ \null;
+      assumes stat_loc_non_null: stat_loc != \null;
       requires valid_stat_loc: \valid(stat_loc);
  */
 pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options);
 
 /*@ ensures
-      result_ok_child_or_error:
-        \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1;
+      result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1;
     assigns \result;
     assigns \result \from \nothing;
  */
@@ -97,7 +97,7 @@ pid_t __gen_e_acsl_fork(void);
       ensures allocation: \fresh{Old, Here}(\result,strlen(\old(s)));
       ensures
         result_valid_string_and_same_contents:
-          valid_string(\result) ∧ strcmp(\result, \old(s)) ≡ 0;
+          valid_string(\result) && strcmp(\result, \old(s)) == 0;
       assigns __fc_heap_status, \result;
       assigns __fc_heap_status \from (indirect: s), __fc_heap_status;
       assigns \result
@@ -105,8 +105,8 @@ pid_t __gen_e_acsl_fork(void);
               (indirect: __fc_heap_status);
     
     behavior no_allocation:
-      assumes cannot_allocate: ¬is_allocable(strlen(s));
-      ensures result_null: \result ≡ \null;
+      assumes cannot_allocate: !is_allocable(strlen(s));
+      ensures result_null: \result == \null;
       assigns \result;
       assigns \result \from \nothing;
       allocates \nothing;
@@ -134,7 +134,7 @@ __inline static void fail_ncomp(int cond, char *fmt, int l, int r)
       ensures allocation: \fresh{Old, Here}(\result,strlen(\old(s)));
       ensures
         result_valid_string_and_same_contents:
-          valid_string(\result) ∧ strcmp(\result, \old(s)) ≡ 0;
+          valid_string(\result) && strcmp(\result, \old(s)) == 0;
       assigns __fc_heap_status, \result;
       assigns __fc_heap_status \from (indirect: s), __fc_heap_status;
       assigns \result
@@ -142,8 +142,8 @@ __inline static void fail_ncomp(int cond, char *fmt, int l, int r)
               (indirect: __fc_heap_status);
     
     behavior no_allocation:
-      assumes cannot_allocate: ¬is_allocable(strlen(s));
-      ensures result_null: \result ≡ \null;
+      assumes cannot_allocate: !is_allocable(strlen(s));
+      ensures result_null: \result == \null;
       assigns \result;
       assigns \result \from \nothing;
       allocates \nothing;
@@ -158,19 +158,27 @@ char *__gen_e_acsl_strdup(char const *s)
     int __gen_e_acsl_assumes_value;
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == (char *)0,1,
-                                                    "Postcondition","strdup",
-                                                    "no_allocation: result_null: \\result == \\null",
-                                                    "FRAMAC_SHARE/libc/string.h",
-                                                    498);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"\\result",
+                                   (void *)__retres);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Postcondition";
+      __gen_e_acsl_assert_data_4.pred_txt = "no_allocation: result_null: \\result == \\null";
+      __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h";
+      __gen_e_acsl_assert_data_4.fct = "strdup";
+      __gen_e_acsl_assert_data_4.line = 498;
+      __e_acsl_assert(__retres == (char *)0,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     return __retres;
   }
 }
 
 /*@ ensures
-      result_ok_child_or_error:
-        \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1;
+      result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1;
     assigns \result;
     assigns \result \from \nothing;
  */
@@ -181,33 +189,49 @@ pid_t __gen_e_acsl_fork(void)
   {
     int __gen_e_acsl_or;
     int __gen_e_acsl_or_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                 __retres);
     if (__retres == 0) __gen_e_acsl_or = 1;
-    else __gen_e_acsl_or = __retres > 0;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or = __retres > 0;
+    }
     if (__gen_e_acsl_or) __gen_e_acsl_or_2 = 1;
-    else __gen_e_acsl_or_2 = __retres == -1;
-    __e_acsl_assert(__gen_e_acsl_or_2,1,"Postcondition","fork",
-                    "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1",
-                    "FRAMAC_SHARE/libc/unistd.h",846);
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or_2 = __retres == -1;
+    }
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/unistd.h";
+    __gen_e_acsl_assert_data.fct = "fork";
+    __gen_e_acsl_assert_data.line = 846;
+    __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     return __retres;
   }
 }
 
-/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0;
+/*@ ensures result_ok_or_error: \result == -1 || \result >= 0;
     ensures
       initialization: stat_loc_init_on_success:
-        \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒
+        \result >= 0 && \old(stat_loc) != \null ==>
         \initialized(\old(stat_loc));
     assigns \result, *stat_loc;
     assigns \result \from (indirect: options);
     assigns *stat_loc \from (indirect: options);
     
     behavior stat_loc_null:
-      assumes stat_loc_null: stat_loc ≡ \null;
+      assumes stat_loc_null: stat_loc == \null;
       assigns \result;
       assigns \result \from \nothing;
     
     behavior stat_loc_non_null:
-      assumes stat_loc_non_null: stat_loc ≢ \null;
+      assumes stat_loc_non_null: stat_loc != \null;
       requires valid_stat_loc: \valid(stat_loc);
  */
 pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
@@ -228,12 +252,25 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
     if (__gen_e_acsl_assumes_value) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"stat_loc",
+                                   (void *)stat_loc);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)stat_loc,sizeof(int),
                                           (void *)stat_loc,
                                           (void *)(& stat_loc));
-      __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","waitpid",
-                      "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)",
-                      "FRAMAC_SHARE/libc/sys/wait.h",92);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid(stat_loc)",0,__gen_e_acsl_valid);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Precondition";
+      __gen_e_acsl_assert_data.pred_txt = "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)";
+      __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/sys/wait.h";
+      __gen_e_acsl_assert_data.fct = "waitpid";
+      __gen_e_acsl_assert_data.line = 92;
+      __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
   }
   __gen_e_acsl_at_2 = stat_loc;
@@ -243,30 +280,64 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
     int __gen_e_acsl_or;
     int __gen_e_acsl_and;
     int __gen_e_acsl_implies;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                 __retres);
     if (__retres == -1) __gen_e_acsl_or = 1;
-    else __gen_e_acsl_or = __retres >= 0;
-    __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","waitpid",
-                    "result_ok_or_error: \\result == -1 || \\result >= 0",
-                    "FRAMAC_SHARE/libc/sys/wait.h",84);
-    if (__retres >= 0) __gen_e_acsl_and = __gen_e_acsl_at != (int *)0;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or = __retres >= 0;
+    }
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Postcondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "result_ok_or_error: \\result == -1 || \\result >= 0";
+    __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/sys/wait.h";
+    __gen_e_acsl_assert_data_2.fct = "waitpid";
+    __gen_e_acsl_assert_data_2.line = 84;
+    __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\result",0,
+                                 __retres);
+    if (__retres >= 0) {
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "\\old(stat_loc)",(void *)__gen_e_acsl_at);
+      __gen_e_acsl_and = __gen_e_acsl_at != (int *)0;
+    }
     else __gen_e_acsl_and = 0;
     if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1;
     else {
       int __gen_e_acsl_initialized;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "\\old(stat_loc)",
+                                   (void *)__gen_e_acsl_at_2);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)__gen_e_acsl_at_2,
                                                       sizeof(int));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(\\old(stat_loc))",0,
+                                   __gen_e_acsl_initialized);
       __gen_e_acsl_implies = __gen_e_acsl_initialized;
     }
-    __e_acsl_assert(__gen_e_acsl_implies,1,"Postcondition","waitpid",
-                    "initialization: stat_loc_init_on_success:\n  \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))",
-                    "FRAMAC_SHARE/libc/sys/wait.h",86);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Postcondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "initialization: stat_loc_init_on_success:\n  \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))";
+    __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/sys/wait.h";
+    __gen_e_acsl_assert_data_3.fct = "waitpid";
+    __gen_e_acsl_assert_data_3.line = 86;
+    __e_acsl_assert(__gen_e_acsl_implies,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     __e_acsl_delete_block((void *)(& stat_loc));
     return __retres;
   }
 }
 
-/*@ exits status: \exit_status ≡ \old(status);
+/*@ exits status: \exit_status == \old(status);
     ensures never_terminates: \false;
     
     assigns \exit_status \from status;
@@ -274,12 +345,20 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
 void __gen_e_acsl_exit(int status)
 {
   exit(status);
-  __e_acsl_assert(0,1,"Postcondition","exit","never_terminates: \\false",
-                  "FRAMAC_SHARE/libc/stdlib.h",473);
-  return;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h";
+    __gen_e_acsl_assert_data.fct = "exit";
+    __gen_e_acsl_assert_data.line = 473;
+    __e_acsl_assert(0,& __gen_e_acsl_assert_data);
+    return;
+  }
 }
 
-/*@ exits status: \exit_status ≢ 0;
+/*@ exits status: \exit_status != 0;
     ensures never_terminates: \false;
     
     assigns \exit_status \from \nothing;
@@ -287,9 +366,17 @@ void __gen_e_acsl_exit(int status)
 void __gen_e_acsl_abort(void)
 {
   abort();
-  __e_acsl_assert(0,1,"Postcondition","abort","never_terminates: \\false",
-                  "FRAMAC_SHARE/libc/stdlib.h",460);
-  return;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h";
+    __gen_e_acsl_assert_data.fct = "abort";
+    __gen_e_acsl_assert_data.line = 460;
+    __e_acsl_assert(0,& __gen_e_acsl_assert_data);
+    return;
+  }
 }
 
 void __e_acsl_globals_init(void)
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c
index bb72f2bbc63f1b9bba44621ad6fa764bf561cf00..41d960dd3f800c5cf02b351fdbe1e0e759cafbdb 100644
--- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c
+++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strcpy.c
@@ -1,6 +1,7 @@
 /* Generated by Frama-C */
 #include "signal.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 #include "string.h"
@@ -35,36 +36,35 @@ char *__gen_e_acsl_literal_string_4;
 char *__gen_e_acsl_literal_string_8;
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
-/*@ exits status: \exit_status ≡ \old(status);
+/*@ exits status: \exit_status == \old(status);
     ensures never_terminates: \false;
     
     assigns \exit_status \from status;
  */
 void __gen_e_acsl_exit(int status);
 
-/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0;
+/*@ ensures result_ok_or_error: \result == -1 || \result >= 0;
     ensures
       initialization: stat_loc_init_on_success:
-        \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒
+        \result >= 0 && \old(stat_loc) != \null ==>
         \initialized(\old(stat_loc));
     assigns \result, *stat_loc;
     assigns \result \from (indirect: options);
     assigns *stat_loc \from (indirect: options);
     
     behavior stat_loc_null:
-      assumes stat_loc_null: stat_loc ≡ \null;
+      assumes stat_loc_null: stat_loc == \null;
       assigns \result;
       assigns \result \from \nothing;
     
     behavior stat_loc_non_null:
-      assumes stat_loc_non_null: stat_loc ≢ \null;
+      assumes stat_loc_non_null: stat_loc != \null;
       requires valid_stat_loc: \valid(stat_loc);
  */
 pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options);
 
 /*@ ensures
-      result_ok_child_or_error:
-        \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1;
+      result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1;
     assigns \result;
     assigns \result \from \nothing;
  */
@@ -82,7 +82,7 @@ pid_t __gen_e_acsl_fork(void);
       ensures allocation: \fresh{Old, Here}(\result,strlen(\old(s)));
       ensures
         result_valid_string_and_same_contents:
-          valid_string(\result) ∧ strcmp(\result, \old(s)) ≡ 0;
+          valid_string(\result) && strcmp(\result, \old(s)) == 0;
       assigns __fc_heap_status, \result;
       assigns __fc_heap_status \from (indirect: s), __fc_heap_status;
       assigns \result
@@ -90,8 +90,8 @@ pid_t __gen_e_acsl_fork(void);
               (indirect: __fc_heap_status);
     
     behavior no_allocation:
-      assumes cannot_allocate: ¬is_allocable(strlen(s));
-      ensures result_null: \result ≡ \null;
+      assumes cannot_allocate: !is_allocable(strlen(s));
+      ensures result_null: \result == \null;
       assigns \result;
       assigns \result \from \nothing;
       allocates \nothing;
@@ -110,28 +110,73 @@ void test_memory_tracking(void)
       int __gen_e_acsl_size;
       int __gen_e_acsl_if;
       int __gen_e_acsl_initialized;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(char *)dest",
+                                   (void *)(dest));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",
+                                   0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",
+                                   0,1);
       __gen_e_acsl_size = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0,
+                                   __gen_e_acsl_size);
       if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0;
-      else __gen_e_acsl_if = __gen_e_acsl_size;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0,
+                                     __gen_e_acsl_size);
+        __gen_e_acsl_if = __gen_e_acsl_size;
+      }
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)(dest + 1 * 0),
                                                       (size_t)__gen_e_acsl_if);
-      __e_acsl_assert(! __gen_e_acsl_initialized,1,"Assertion",
-                      "test_memory_tracking","!\\initialized(&dest[0 .. 3])",
-                      "tests/builtin/strcpy.c",13);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&dest[0 .. 3])",0,
+                                   __gen_e_acsl_initialized);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "!\\initialized(&dest[0 .. 3])";
+      __gen_e_acsl_assert_data.file = "tests/builtin/strcpy.c";
+      __gen_e_acsl_assert_data.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data.line = 13;
+      __e_acsl_assert(! __gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
-    /*@ assert ¬\initialized(&dest[0 .. 3]); */ ;
+    /*@ assert !\initialized(&dest[0 .. 3]); */ ;
     {
       int __gen_e_acsl_size_2;
       int __gen_e_acsl_if_2;
       int __gen_e_acsl_initialized_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,
+                                   "(char *)src",(void *)(src));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_2 = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0,
+                                   __gen_e_acsl_size_2);
       if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0;
-      else __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0,
+                                     __gen_e_acsl_size_2);
+        __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+      }
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(src + 1 * 0),
                                                         (size_t)__gen_e_acsl_if_2);
-      __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion",
-                      "test_memory_tracking","\\initialized(&src[0 .. 1])",
-                      "tests/builtin/strcpy.c",14);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\initialized(&src[0 .. 1])",0,
+                                   __gen_e_acsl_initialized_2);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Assertion";
+      __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&src[0 .. 1])";
+      __gen_e_acsl_assert_data_2.file = "tests/builtin/strcpy.c";
+      __gen_e_acsl_assert_data_2.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_2.line = 14;
+      __e_acsl_assert(__gen_e_acsl_initialized_2,
+                      & __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
     /*@ assert \initialized(&src[0 .. 1]); */ ;
     __e_acsl_builtin_strcpy(dest,(char const *)(src));
@@ -139,30 +184,76 @@ void test_memory_tracking(void)
       int __gen_e_acsl_size_3;
       int __gen_e_acsl_if_3;
       int __gen_e_acsl_initialized_3;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "(char *)dest",(void *)(dest));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_3 = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0,
+                                   __gen_e_acsl_size_3);
       if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0;
-      else __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0,
+                                     __gen_e_acsl_size_3);
+        __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+      }
       __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(dest + 1 * 0),
                                                         (size_t)__gen_e_acsl_if_3);
-      __e_acsl_assert(__gen_e_acsl_initialized_3,1,"Assertion",
-                      "test_memory_tracking","\\initialized(&dest[0 .. 1])",
-                      "tests/builtin/strcpy.c",17);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(&dest[0 .. 1])",0,
+                                   __gen_e_acsl_initialized_3);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Assertion";
+      __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(&dest[0 .. 1])";
+      __gen_e_acsl_assert_data_3.file = "tests/builtin/strcpy.c";
+      __gen_e_acsl_assert_data_3.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_3.line = 17;
+      __e_acsl_assert(__gen_e_acsl_initialized_3,
+                      & __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     }
     /*@ assert \initialized(&dest[0 .. 1]); */ ;
     {
       int __gen_e_acsl_size_4;
       int __gen_e_acsl_if_4;
       int __gen_e_acsl_initialized_4;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,
+                                   "(char *)dest",(void *)(dest));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_4 = 1 * ((3 - 2) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0,
+                                   __gen_e_acsl_size_4);
       if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0;
-      else __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0,
+                                     __gen_e_acsl_size_4);
+        __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+      }
       __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(dest + 1 * 2),
                                                         (size_t)__gen_e_acsl_if_4);
-      __e_acsl_assert(! __gen_e_acsl_initialized_4,1,"Assertion",
-                      "test_memory_tracking","!\\initialized(&dest[2 .. 3])",
-                      "tests/builtin/strcpy.c",18);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\initialized(&dest[2 .. 3])",0,
+                                   __gen_e_acsl_initialized_4);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Assertion";
+      __gen_e_acsl_assert_data_4.pred_txt = "!\\initialized(&dest[2 .. 3])";
+      __gen_e_acsl_assert_data_4.file = "tests/builtin/strcpy.c";
+      __gen_e_acsl_assert_data_4.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_4.line = 18;
+      __e_acsl_assert(! __gen_e_acsl_initialized_4,
+                      & __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     }
-    /*@ assert ¬\initialized(&dest[2 .. 3]); */ ;
+    /*@ assert !\initialized(&dest[2 .. 3]); */ ;
     __e_acsl_delete_block((void *)(src));
     __e_acsl_delete_block((void *)(dest));
   }
@@ -176,59 +267,141 @@ void test_memory_tracking(void)
       int __gen_e_acsl_size_5;
       int __gen_e_acsl_if_5;
       int __gen_e_acsl_initialized_5;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,
+                                   "(char *)dest_0",(void *)(dest_0));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_5 = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0,
+                                   __gen_e_acsl_size_5);
       if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0;
-      else __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0,
+                                     __gen_e_acsl_size_5);
+        __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+      }
       __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(dest_0 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_5);
-      __e_acsl_assert(! __gen_e_acsl_initialized_5,1,"Assertion",
-                      "test_memory_tracking",
-                      "!\\initialized(&dest_0[0 .. 3])",
-                      "tests/builtin/strcpy.c",23);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\initialized(&dest_0[0 .. 3])",0,
+                                   __gen_e_acsl_initialized_5);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Assertion";
+      __gen_e_acsl_assert_data_5.pred_txt = "!\\initialized(&dest_0[0 .. 3])";
+      __gen_e_acsl_assert_data_5.file = "tests/builtin/strcpy.c";
+      __gen_e_acsl_assert_data_5.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_5.line = 23;
+      __e_acsl_assert(! __gen_e_acsl_initialized_5,
+                      & __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     }
-    /*@ assert ¬\initialized(&dest_0[0 .. 3]); */ ;
+    /*@ assert !\initialized(&dest_0[0 .. 3]); */ ;
     {
       int __gen_e_acsl_size_6;
       int __gen_e_acsl_if_6;
       int __gen_e_acsl_initialized_6;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,
+                                   "(char *)src_0",(void *)(src_0));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_6 = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0,
+                                   __gen_e_acsl_size_6);
       if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0;
-      else __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0,
+                                     __gen_e_acsl_size_6);
+        __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+      }
       __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(src_0 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_6);
-      __e_acsl_assert(__gen_e_acsl_initialized_6,1,"Assertion",
-                      "test_memory_tracking","\\initialized(&src_0[0 .. 3])",
-                      "tests/builtin/strcpy.c",24);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "\\initialized(&src_0[0 .. 3])",0,
+                                   __gen_e_acsl_initialized_6);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "Assertion";
+      __gen_e_acsl_assert_data_6.pred_txt = "\\initialized(&src_0[0 .. 3])";
+      __gen_e_acsl_assert_data_6.file = "tests/builtin/strcpy.c";
+      __gen_e_acsl_assert_data_6.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_6.line = 24;
+      __e_acsl_assert(__gen_e_acsl_initialized_6,
+                      & __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     }
     /*@ assert \initialized(&src_0[0 .. 3]); */ ;
     __e_acsl_builtin_strncpy(dest_0,(char const *)(src_0),(unsigned long)1);
     {
       int __gen_e_acsl_initialized_7;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,
+                                   "(char *)dest_0",(void *)(dest_0));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(dest_0),
                                                         sizeof(char));
-      __e_acsl_assert(__gen_e_acsl_initialized_7,1,"Assertion",
-                      "test_memory_tracking","\\initialized((char *)dest_0)",
-                      "tests/builtin/strcpy.c",27);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                   "\\initialized((char *)dest_0)",0,
+                                   __gen_e_acsl_initialized_7);
+      __gen_e_acsl_assert_data_7.blocking = 1;
+      __gen_e_acsl_assert_data_7.kind = "Assertion";
+      __gen_e_acsl_assert_data_7.pred_txt = "\\initialized((char *)dest_0)";
+      __gen_e_acsl_assert_data_7.file = "tests/builtin/strcpy.c";
+      __gen_e_acsl_assert_data_7.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_7.line = 27;
+      __e_acsl_assert(__gen_e_acsl_initialized_7,
+                      & __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
     }
     /*@ assert \initialized((char *)dest_0); */ ;
     {
       int __gen_e_acsl_size_7;
       int __gen_e_acsl_if_7;
       int __gen_e_acsl_initialized_8;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,
+                                   "(char *)dest_0",(void *)(dest_0));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_7 = 1 * ((3 - 1) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0,
+                                   __gen_e_acsl_size_7);
       if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0;
-      else __gen_e_acsl_if_7 = __gen_e_acsl_size_7;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0,
+                                     __gen_e_acsl_size_7);
+        __gen_e_acsl_if_7 = __gen_e_acsl_size_7;
+      }
       __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(dest_0 + 
                                                                  1 * 1),
                                                         (size_t)__gen_e_acsl_if_7);
-      __e_acsl_assert(! __gen_e_acsl_initialized_8,1,"Assertion",
-                      "test_memory_tracking",
-                      "!\\initialized(&dest_0[1 .. 3])",
-                      "tests/builtin/strcpy.c",28);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "\\initialized(&dest_0[1 .. 3])",0,
+                                   __gen_e_acsl_initialized_8);
+      __gen_e_acsl_assert_data_8.blocking = 1;
+      __gen_e_acsl_assert_data_8.kind = "Assertion";
+      __gen_e_acsl_assert_data_8.pred_txt = "!\\initialized(&dest_0[1 .. 3])";
+      __gen_e_acsl_assert_data_8.file = "tests/builtin/strcpy.c";
+      __gen_e_acsl_assert_data_8.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_8.line = 28;
+      __e_acsl_assert(! __gen_e_acsl_initialized_8,
+                      & __gen_e_acsl_assert_data_8);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
     }
-    /*@ assert ¬\initialized(&dest_0[1 .. 3]); */ ;
+    /*@ assert !\initialized(&dest_0[1 .. 3]); */ ;
     __e_acsl_delete_block((void *)(src_0));
     __e_acsl_delete_block((void *)(dest_0));
   }
@@ -242,31 +415,76 @@ void test_memory_tracking(void)
       int __gen_e_acsl_size_8;
       int __gen_e_acsl_if_8;
       int __gen_e_acsl_initialized_9;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,
+                                   "(char *)dest_1",(void *)(dest_1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_8 = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0,
+                                   __gen_e_acsl_size_8);
       if (__gen_e_acsl_size_8 <= 0) __gen_e_acsl_if_8 = 0;
-      else __gen_e_acsl_if_8 = __gen_e_acsl_size_8;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0,
+                                     __gen_e_acsl_size_8);
+        __gen_e_acsl_if_8 = __gen_e_acsl_size_8;
+      }
       __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(dest_1 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_8);
-      __e_acsl_assert(! __gen_e_acsl_initialized_9,1,"Assertion",
-                      "test_memory_tracking",
-                      "!\\initialized(&dest_1[0 .. 3])",
-                      "tests/builtin/strcpy.c",33);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "\\initialized(&dest_1[0 .. 3])",0,
+                                   __gen_e_acsl_initialized_9);
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "Assertion";
+      __gen_e_acsl_assert_data_9.pred_txt = "!\\initialized(&dest_1[0 .. 3])";
+      __gen_e_acsl_assert_data_9.file = "tests/builtin/strcpy.c";
+      __gen_e_acsl_assert_data_9.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_9.line = 33;
+      __e_acsl_assert(! __gen_e_acsl_initialized_9,
+                      & __gen_e_acsl_assert_data_9);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
     }
-    /*@ assert ¬\initialized(&dest_1[0 .. 3]); */ ;
+    /*@ assert !\initialized(&dest_1[0 .. 3]); */ ;
     {
       int __gen_e_acsl_size_9;
       int __gen_e_acsl_if_9;
       int __gen_e_acsl_initialized_10;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,
+                                   "(char *)src_1",(void *)(src_1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_9 = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0,
+                                   __gen_e_acsl_size_9);
       if (__gen_e_acsl_size_9 <= 0) __gen_e_acsl_if_9 = 0;
-      else __gen_e_acsl_if_9 = __gen_e_acsl_size_9;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0,
+                                     __gen_e_acsl_size_9);
+        __gen_e_acsl_if_9 = __gen_e_acsl_size_9;
+      }
       __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(src_1 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_9);
-      __e_acsl_assert(__gen_e_acsl_initialized_10,1,"Assertion",
-                      "test_memory_tracking","\\initialized(&src_1[0 .. 3])",
-                      "tests/builtin/strcpy.c",34);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "\\initialized(&src_1[0 .. 3])",0,
+                                   __gen_e_acsl_initialized_10);
+      __gen_e_acsl_assert_data_10.blocking = 1;
+      __gen_e_acsl_assert_data_10.kind = "Assertion";
+      __gen_e_acsl_assert_data_10.pred_txt = "\\initialized(&src_1[0 .. 3])";
+      __gen_e_acsl_assert_data_10.file = "tests/builtin/strcpy.c";
+      __gen_e_acsl_assert_data_10.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_10.line = 34;
+      __e_acsl_assert(__gen_e_acsl_initialized_10,
+                      & __gen_e_acsl_assert_data_10);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
     }
     /*@ assert \initialized(&src_1[0 .. 3]); */ ;
     __e_acsl_builtin_strncpy(dest_1,(char const *)(src_1),(unsigned long)3);
@@ -274,27 +492,64 @@ void test_memory_tracking(void)
       int __gen_e_acsl_size_10;
       int __gen_e_acsl_if_10;
       int __gen_e_acsl_initialized_11;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,
+                                   "(char *)dest_1",(void *)(dest_1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_10 = 1 * ((2 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0,
+                                   __gen_e_acsl_size_10);
       if (__gen_e_acsl_size_10 <= 0) __gen_e_acsl_if_10 = 0;
-      else __gen_e_acsl_if_10 = __gen_e_acsl_size_10;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0,
+                                     __gen_e_acsl_size_10);
+        __gen_e_acsl_if_10 = __gen_e_acsl_size_10;
+      }
       __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(dest_1 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_10);
-      __e_acsl_assert(__gen_e_acsl_initialized_11,1,"Assertion",
-                      "test_memory_tracking",
-                      "\\initialized(&dest_1[0 .. 2])",
-                      "tests/builtin/strcpy.c",37);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                   "\\initialized(&dest_1[0 .. 2])",0,
+                                   __gen_e_acsl_initialized_11);
+      __gen_e_acsl_assert_data_11.blocking = 1;
+      __gen_e_acsl_assert_data_11.kind = "Assertion";
+      __gen_e_acsl_assert_data_11.pred_txt = "\\initialized(&dest_1[0 .. 2])";
+      __gen_e_acsl_assert_data_11.file = "tests/builtin/strcpy.c";
+      __gen_e_acsl_assert_data_11.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_11.line = 37;
+      __e_acsl_assert(__gen_e_acsl_initialized_11,
+                      & __gen_e_acsl_assert_data_11);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
     }
     /*@ assert \initialized(&dest_1[0 .. 2]); */ ;
     {
       int __gen_e_acsl_initialized_12;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,
+                                   "&dest_1[3]",(void *)(& dest_1[3]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& dest_1[3]),
                                                          sizeof(char));
-      __e_acsl_assert(! __gen_e_acsl_initialized_12,1,"Assertion",
-                      "test_memory_tracking","!\\initialized(&dest_1[3])",
-                      "tests/builtin/strcpy.c",38);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                   "\\initialized(&dest_1[3])",0,
+                                   __gen_e_acsl_initialized_12);
+      __gen_e_acsl_assert_data_12.blocking = 1;
+      __gen_e_acsl_assert_data_12.kind = "Assertion";
+      __gen_e_acsl_assert_data_12.pred_txt = "!\\initialized(&dest_1[3])";
+      __gen_e_acsl_assert_data_12.file = "tests/builtin/strcpy.c";
+      __gen_e_acsl_assert_data_12.fct = "test_memory_tracking";
+      __gen_e_acsl_assert_data_12.line = 38;
+      __e_acsl_assert(! __gen_e_acsl_initialized_12,
+                      & __gen_e_acsl_assert_data_12);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
     }
-    /*@ assert ¬\initialized(&dest_1[3]); */ ;
+    /*@ assert !\initialized(&dest_1[3]); */ ;
     __e_acsl_delete_block((void *)(src_1));
     __e_acsl_delete_block((void *)(dest_1));
   }
@@ -313,7 +568,7 @@ void test_memory_tracking(void)
       ensures allocation: \fresh{Old, Here}(\result,strlen(\old(s)));
       ensures
         result_valid_string_and_same_contents:
-          valid_string(\result) ∧ strcmp(\result, \old(s)) ≡ 0;
+          valid_string(\result) && strcmp(\result, \old(s)) == 0;
       assigns __fc_heap_status, \result;
       assigns __fc_heap_status \from (indirect: s), __fc_heap_status;
       assigns \result
@@ -321,8 +576,8 @@ void test_memory_tracking(void)
               (indirect: __fc_heap_status);
     
     behavior no_allocation:
-      assumes cannot_allocate: ¬is_allocable(strlen(s));
-      ensures result_null: \result ≡ \null;
+      assumes cannot_allocate: !is_allocable(strlen(s));
+      ensures result_null: \result == \null;
       assigns \result;
       assigns \result \from \nothing;
       allocates \nothing;
@@ -337,19 +592,27 @@ char *__gen_e_acsl_strdup(char const *s)
     int __gen_e_acsl_assumes_value;
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == (char *)0,1,
-                                                    "Postcondition","strdup",
-                                                    "no_allocation: result_null: \\result == \\null",
-                                                    "FRAMAC_SHARE/libc/string.h",
-                                                    498);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"\\result",
+                                   (void *)__retres);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Postcondition";
+      __gen_e_acsl_assert_data_4.pred_txt = "no_allocation: result_null: \\result == \\null";
+      __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h";
+      __gen_e_acsl_assert_data_4.fct = "strdup";
+      __gen_e_acsl_assert_data_4.line = 498;
+      __e_acsl_assert(__retres == (char *)0,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     return __retres;
   }
 }
 
 /*@ ensures
-      result_ok_child_or_error:
-        \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1;
+      result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1;
     assigns \result;
     assigns \result \from \nothing;
  */
@@ -360,33 +623,49 @@ pid_t __gen_e_acsl_fork(void)
   {
     int __gen_e_acsl_or;
     int __gen_e_acsl_or_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                 __retres);
     if (__retres == 0) __gen_e_acsl_or = 1;
-    else __gen_e_acsl_or = __retres > 0;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or = __retres > 0;
+    }
     if (__gen_e_acsl_or) __gen_e_acsl_or_2 = 1;
-    else __gen_e_acsl_or_2 = __retres == -1;
-    __e_acsl_assert(__gen_e_acsl_or_2,1,"Postcondition","fork",
-                    "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1",
-                    "FRAMAC_SHARE/libc/unistd.h",846);
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or_2 = __retres == -1;
+    }
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/unistd.h";
+    __gen_e_acsl_assert_data.fct = "fork";
+    __gen_e_acsl_assert_data.line = 846;
+    __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     return __retres;
   }
 }
 
-/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0;
+/*@ ensures result_ok_or_error: \result == -1 || \result >= 0;
     ensures
       initialization: stat_loc_init_on_success:
-        \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒
+        \result >= 0 && \old(stat_loc) != \null ==>
         \initialized(\old(stat_loc));
     assigns \result, *stat_loc;
     assigns \result \from (indirect: options);
     assigns *stat_loc \from (indirect: options);
     
     behavior stat_loc_null:
-      assumes stat_loc_null: stat_loc ≡ \null;
+      assumes stat_loc_null: stat_loc == \null;
       assigns \result;
       assigns \result \from \nothing;
     
     behavior stat_loc_non_null:
-      assumes stat_loc_non_null: stat_loc ≢ \null;
+      assumes stat_loc_non_null: stat_loc != \null;
       requires valid_stat_loc: \valid(stat_loc);
  */
 pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
@@ -407,12 +686,25 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
     if (__gen_e_acsl_assumes_value) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"stat_loc",
+                                   (void *)stat_loc);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)stat_loc,sizeof(int),
                                           (void *)stat_loc,
                                           (void *)(& stat_loc));
-      __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","waitpid",
-                      "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)",
-                      "FRAMAC_SHARE/libc/sys/wait.h",92);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid(stat_loc)",0,__gen_e_acsl_valid);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Precondition";
+      __gen_e_acsl_assert_data.pred_txt = "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)";
+      __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/sys/wait.h";
+      __gen_e_acsl_assert_data.fct = "waitpid";
+      __gen_e_acsl_assert_data.line = 92;
+      __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
   }
   __gen_e_acsl_at_2 = stat_loc;
@@ -422,30 +714,64 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
     int __gen_e_acsl_or;
     int __gen_e_acsl_and;
     int __gen_e_acsl_implies;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                 __retres);
     if (__retres == -1) __gen_e_acsl_or = 1;
-    else __gen_e_acsl_or = __retres >= 0;
-    __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","waitpid",
-                    "result_ok_or_error: \\result == -1 || \\result >= 0",
-                    "FRAMAC_SHARE/libc/sys/wait.h",84);
-    if (__retres >= 0) __gen_e_acsl_and = __gen_e_acsl_at != (int *)0;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or = __retres >= 0;
+    }
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Postcondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "result_ok_or_error: \\result == -1 || \\result >= 0";
+    __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/sys/wait.h";
+    __gen_e_acsl_assert_data_2.fct = "waitpid";
+    __gen_e_acsl_assert_data_2.line = 84;
+    __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\result",0,
+                                 __retres);
+    if (__retres >= 0) {
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "\\old(stat_loc)",(void *)__gen_e_acsl_at);
+      __gen_e_acsl_and = __gen_e_acsl_at != (int *)0;
+    }
     else __gen_e_acsl_and = 0;
     if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1;
     else {
       int __gen_e_acsl_initialized;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "\\old(stat_loc)",
+                                   (void *)__gen_e_acsl_at_2);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)__gen_e_acsl_at_2,
                                                       sizeof(int));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(\\old(stat_loc))",0,
+                                   __gen_e_acsl_initialized);
       __gen_e_acsl_implies = __gen_e_acsl_initialized;
     }
-    __e_acsl_assert(__gen_e_acsl_implies,1,"Postcondition","waitpid",
-                    "initialization: stat_loc_init_on_success:\n  \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))",
-                    "FRAMAC_SHARE/libc/sys/wait.h",86);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Postcondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "initialization: stat_loc_init_on_success:\n  \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))";
+    __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/sys/wait.h";
+    __gen_e_acsl_assert_data_3.fct = "waitpid";
+    __gen_e_acsl_assert_data_3.line = 86;
+    __e_acsl_assert(__gen_e_acsl_implies,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     __e_acsl_delete_block((void *)(& stat_loc));
     return __retres;
   }
 }
 
-/*@ exits status: \exit_status ≡ \old(status);
+/*@ exits status: \exit_status == \old(status);
     ensures never_terminates: \false;
     
     assigns \exit_status \from status;
@@ -453,9 +779,17 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
 void __gen_e_acsl_exit(int status)
 {
   exit(status);
-  __e_acsl_assert(0,1,"Postcondition","exit","never_terminates: \\false",
-                  "FRAMAC_SHARE/libc/stdlib.h",473);
-  return;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h";
+    __gen_e_acsl_assert_data.fct = "exit";
+    __gen_e_acsl_assert_data.line = 473;
+    __e_acsl_assert(0,& __gen_e_acsl_assert_data);
+    return;
+  }
 }
 
 void __e_acsl_globals_init(void)
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c b/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c
index 5288ad885239b257ee03115041beef1d1b10e5e5..836035907163c2fae009d5aefc28a64ad03f4b57 100644
--- a/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c
+++ b/src/plugins/e-acsl/tests/builtin/oracle/gen_strlen.c
@@ -1,6 +1,7 @@
 /* Generated by Frama-C */
 #include "signal.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 #include "string.h"
@@ -26,43 +27,42 @@ char *__gen_e_acsl_literal_string_4;
 char *__gen_e_acsl_literal_string_6;
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
-/*@ exits status: \exit_status ≢ 0;
+/*@ exits status: \exit_status != 0;
     ensures never_terminates: \false;
     
     assigns \exit_status \from \nothing;
  */
 void __gen_e_acsl_abort(void);
 
-/*@ exits status: \exit_status ≡ \old(status);
+/*@ exits status: \exit_status == \old(status);
     ensures never_terminates: \false;
     
     assigns \exit_status \from status;
  */
 void __gen_e_acsl_exit(int status);
 
-/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0;
+/*@ ensures result_ok_or_error: \result == -1 || \result >= 0;
     ensures
       initialization: stat_loc_init_on_success:
-        \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒
+        \result >= 0 && \old(stat_loc) != \null ==>
         \initialized(\old(stat_loc));
     assigns \result, *stat_loc;
     assigns \result \from (indirect: options);
     assigns *stat_loc \from (indirect: options);
     
     behavior stat_loc_null:
-      assumes stat_loc_null: stat_loc ≡ \null;
+      assumes stat_loc_null: stat_loc == \null;
       assigns \result;
       assigns \result \from \nothing;
     
     behavior stat_loc_non_null:
-      assumes stat_loc_non_null: stat_loc ≢ \null;
+      assumes stat_loc_non_null: stat_loc != \null;
       requires valid_stat_loc: \valid(stat_loc);
  */
 pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options);
 
 /*@ ensures
-      result_ok_child_or_error:
-        \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1;
+      result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1;
     assigns \result;
     assigns \result \from \nothing;
  */
@@ -80,7 +80,7 @@ pid_t __gen_e_acsl_fork(void);
       ensures allocation: \fresh{Old, Here}(\result,strlen(\old(s)));
       ensures
         result_valid_string_and_same_contents:
-          valid_string(\result) ∧ strcmp(\result, \old(s)) ≡ 0;
+          valid_string(\result) && strcmp(\result, \old(s)) == 0;
       assigns __fc_heap_status, \result;
       assigns __fc_heap_status \from (indirect: s), __fc_heap_status;
       assigns \result
@@ -88,8 +88,8 @@ pid_t __gen_e_acsl_fork(void);
               (indirect: __fc_heap_status);
     
     behavior no_allocation:
-      assumes cannot_allocate: ¬is_allocable(strlen(s));
-      ensures result_null: \result ≡ \null;
+      assumes cannot_allocate: !is_allocable(strlen(s));
+      ensures result_null: \result == \null;
       assigns \result;
       assigns \result \from \nothing;
       allocates \nothing;
@@ -108,7 +108,7 @@ char *__gen_e_acsl_strdup(char const *s);
       ensures allocation: \fresh{Old, Here}(\result,strlen(\old(s)));
       ensures
         result_valid_string_and_same_contents:
-          valid_string(\result) ∧ strcmp(\result, \old(s)) ≡ 0;
+          valid_string(\result) && strcmp(\result, \old(s)) == 0;
       assigns __fc_heap_status, \result;
       assigns __fc_heap_status \from (indirect: s), __fc_heap_status;
       assigns \result
@@ -116,8 +116,8 @@ char *__gen_e_acsl_strdup(char const *s);
               (indirect: __fc_heap_status);
     
     behavior no_allocation:
-      assumes cannot_allocate: ¬is_allocable(strlen(s));
-      ensures result_null: \result ≡ \null;
+      assumes cannot_allocate: !is_allocable(strlen(s));
+      ensures result_null: \result == \null;
       assigns \result;
       assigns \result \from \nothing;
       allocates \nothing;
@@ -132,19 +132,27 @@ char *__gen_e_acsl_strdup(char const *s)
     int __gen_e_acsl_assumes_value;
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == (char *)0,1,
-                                                    "Postcondition","strdup",
-                                                    "no_allocation: result_null: \\result == \\null",
-                                                    "FRAMAC_SHARE/libc/string.h",
-                                                    498);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"\\result",
+                                   (void *)__retres);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Postcondition";
+      __gen_e_acsl_assert_data_4.pred_txt = "no_allocation: result_null: \\result == \\null";
+      __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h";
+      __gen_e_acsl_assert_data_4.fct = "strdup";
+      __gen_e_acsl_assert_data_4.line = 498;
+      __e_acsl_assert(__retres == (char *)0,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     return __retres;
   }
 }
 
 /*@ ensures
-      result_ok_child_or_error:
-        \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1;
+      result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1;
     assigns \result;
     assigns \result \from \nothing;
  */
@@ -155,33 +163,49 @@ pid_t __gen_e_acsl_fork(void)
   {
     int __gen_e_acsl_or;
     int __gen_e_acsl_or_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                 __retres);
     if (__retres == 0) __gen_e_acsl_or = 1;
-    else __gen_e_acsl_or = __retres > 0;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or = __retres > 0;
+    }
     if (__gen_e_acsl_or) __gen_e_acsl_or_2 = 1;
-    else __gen_e_acsl_or_2 = __retres == -1;
-    __e_acsl_assert(__gen_e_acsl_or_2,1,"Postcondition","fork",
-                    "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1",
-                    "FRAMAC_SHARE/libc/unistd.h",846);
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or_2 = __retres == -1;
+    }
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/unistd.h";
+    __gen_e_acsl_assert_data.fct = "fork";
+    __gen_e_acsl_assert_data.line = 846;
+    __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     return __retres;
   }
 }
 
-/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0;
+/*@ ensures result_ok_or_error: \result == -1 || \result >= 0;
     ensures
       initialization: stat_loc_init_on_success:
-        \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒
+        \result >= 0 && \old(stat_loc) != \null ==>
         \initialized(\old(stat_loc));
     assigns \result, *stat_loc;
     assigns \result \from (indirect: options);
     assigns *stat_loc \from (indirect: options);
     
     behavior stat_loc_null:
-      assumes stat_loc_null: stat_loc ≡ \null;
+      assumes stat_loc_null: stat_loc == \null;
       assigns \result;
       assigns \result \from \nothing;
     
     behavior stat_loc_non_null:
-      assumes stat_loc_non_null: stat_loc ≢ \null;
+      assumes stat_loc_non_null: stat_loc != \null;
       requires valid_stat_loc: \valid(stat_loc);
  */
 pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
@@ -202,12 +226,25 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
     if (__gen_e_acsl_assumes_value) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"stat_loc",
+                                   (void *)stat_loc);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)stat_loc,sizeof(int),
                                           (void *)stat_loc,
                                           (void *)(& stat_loc));
-      __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","waitpid",
-                      "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)",
-                      "FRAMAC_SHARE/libc/sys/wait.h",92);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid(stat_loc)",0,__gen_e_acsl_valid);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Precondition";
+      __gen_e_acsl_assert_data.pred_txt = "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)";
+      __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/sys/wait.h";
+      __gen_e_acsl_assert_data.fct = "waitpid";
+      __gen_e_acsl_assert_data.line = 92;
+      __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
   }
   __gen_e_acsl_at_2 = stat_loc;
@@ -217,30 +254,64 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
     int __gen_e_acsl_or;
     int __gen_e_acsl_and;
     int __gen_e_acsl_implies;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                 __retres);
     if (__retres == -1) __gen_e_acsl_or = 1;
-    else __gen_e_acsl_or = __retres >= 0;
-    __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","waitpid",
-                    "result_ok_or_error: \\result == -1 || \\result >= 0",
-                    "FRAMAC_SHARE/libc/sys/wait.h",84);
-    if (__retres >= 0) __gen_e_acsl_and = __gen_e_acsl_at != (int *)0;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or = __retres >= 0;
+    }
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Postcondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "result_ok_or_error: \\result == -1 || \\result >= 0";
+    __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/sys/wait.h";
+    __gen_e_acsl_assert_data_2.fct = "waitpid";
+    __gen_e_acsl_assert_data_2.line = 84;
+    __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\result",0,
+                                 __retres);
+    if (__retres >= 0) {
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "\\old(stat_loc)",(void *)__gen_e_acsl_at);
+      __gen_e_acsl_and = __gen_e_acsl_at != (int *)0;
+    }
     else __gen_e_acsl_and = 0;
     if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1;
     else {
       int __gen_e_acsl_initialized;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "\\old(stat_loc)",
+                                   (void *)__gen_e_acsl_at_2);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)__gen_e_acsl_at_2,
                                                       sizeof(int));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(\\old(stat_loc))",0,
+                                   __gen_e_acsl_initialized);
       __gen_e_acsl_implies = __gen_e_acsl_initialized;
     }
-    __e_acsl_assert(__gen_e_acsl_implies,1,"Postcondition","waitpid",
-                    "initialization: stat_loc_init_on_success:\n  \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))",
-                    "FRAMAC_SHARE/libc/sys/wait.h",86);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Postcondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "initialization: stat_loc_init_on_success:\n  \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))";
+    __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/sys/wait.h";
+    __gen_e_acsl_assert_data_3.fct = "waitpid";
+    __gen_e_acsl_assert_data_3.line = 86;
+    __e_acsl_assert(__gen_e_acsl_implies,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     __e_acsl_delete_block((void *)(& stat_loc));
     return __retres;
   }
 }
 
-/*@ exits status: \exit_status ≡ \old(status);
+/*@ exits status: \exit_status == \old(status);
     ensures never_terminates: \false;
     
     assigns \exit_status \from status;
@@ -248,12 +319,20 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
 void __gen_e_acsl_exit(int status)
 {
   exit(status);
-  __e_acsl_assert(0,1,"Postcondition","exit","never_terminates: \\false",
-                  "FRAMAC_SHARE/libc/stdlib.h",473);
-  return;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h";
+    __gen_e_acsl_assert_data.fct = "exit";
+    __gen_e_acsl_assert_data.line = 473;
+    __e_acsl_assert(0,& __gen_e_acsl_assert_data);
+    return;
+  }
 }
 
-/*@ exits status: \exit_status ≢ 0;
+/*@ exits status: \exit_status != 0;
     ensures never_terminates: \false;
     
     assigns \exit_status \from \nothing;
@@ -261,9 +340,17 @@ void __gen_e_acsl_exit(int status)
 void __gen_e_acsl_abort(void)
 {
   abort();
-  __e_acsl_assert(0,1,"Postcondition","abort","never_terminates: \\false",
-                  "FRAMAC_SHARE/libc/stdlib.h",460);
-  return;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h";
+    __gen_e_acsl_assert_data.fct = "abort";
+    __gen_e_acsl_assert_data.line = 460;
+    __e_acsl_assert(0,& __gen_e_acsl_assert_data);
+    return;
+  }
 }
 
 void __e_acsl_globals_init(void)
diff --git a/src/plugins/e-acsl/tests/builtin/oracle/strcat.res.oracle b/src/plugins/e-acsl/tests/builtin/oracle/strcat.res.oracle
index 355bf7bb1f029994a75c785588cf61c82170aeb9..19dbb447c775cdf3cef0296249455486845756dc 100644
--- a/src/plugins/e-acsl/tests/builtin/oracle/strcat.res.oracle
+++ b/src/plugins/e-acsl/tests/builtin/oracle/strcat.res.oracle
@@ -25,3 +25,9 @@
   is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] FRAMAC_SHARE/libc/unistd.h:846: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/unistd.h:847: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/constructs/acsl_check.c b/src/plugins/e-acsl/tests/constructs/acsl_check.c
index 7c7659f8dda7fe7dfc3e42102563799849306fcc..28ef52feadf8f65a1292ad5be9745bbb0d0d4200 100644
--- a/src/plugins/e-acsl/tests/constructs/acsl_check.c
+++ b/src/plugins/e-acsl/tests/constructs/acsl_check.c
@@ -1,3 +1,6 @@
+/* run.config_dev
+   MACRO: ROOT_EACSL_GCC_OPTS_EXT -F -no-unicode
+*/
 #include <stdio.h>
 
 /*@
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/acsl_check.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/acsl_check.res.oracle
index cd045de605e4fc95c9335a74fdd6fda6c67ef425..d71920c4f9ef7a73008baf658e86291de49e74cf 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/acsl_check.res.oracle
+++ b/src/plugins/e-acsl/tests/constructs/oracle/acsl_check.res.oracle
@@ -1,13 +1,19 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
-[eva:alarm] tests/constructs/acsl_check.c:18: Warning: 
+[eva:alarm] tests/constructs/acsl_check.c:21: Warning: 
   function __e_acsl_assert, behavior non_blocking: precondition got status invalid.
-[eva:alarm] tests/constructs/acsl_check.c:18: Warning: check got status invalid.
-[eva:alarm] tests/constructs/acsl_check.c:19: Warning: 
+[eva:alarm] tests/constructs/acsl_check.c:21: Warning: check got status invalid.
+[eva:alarm] tests/constructs/acsl_check.c:22: Warning: 
   function __gen_e_acsl_f: precondition got status invalid.
-[eva:alarm] tests/constructs/acsl_check.c:4: Warning: 
+[eva:alarm] tests/constructs/acsl_check.c:7: Warning: 
   function __e_acsl_assert, behavior non_blocking: precondition got status invalid.
-[eva:alarm] tests/constructs/acsl_check.c:5: Warning: 
+[eva:alarm] tests/constructs/acsl_check.c:8: Warning: 
   function __e_acsl_assert, behavior non_blocking: precondition got status invalid.
-[eva:alarm] tests/constructs/acsl_check.c:5: Warning: 
+[eva:alarm] tests/constructs/acsl_check.c:8: Warning: 
   function __gen_e_acsl_f: postcondition got status invalid.
+[eva:alarm] tests/constructs/acsl_check.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/acsl_check.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/decrease.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/decrease.res.oracle
index 314fbc84400356f43d67a0b874aa9397989b3e8c..472fc5ee310bd1e9a54cda63a3d48e9606cdd91d 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/decrease.res.oracle
+++ b/src/plugins/e-acsl/tests/constructs/oracle/decrease.res.oracle
@@ -12,5 +12,26 @@
   E-ACSL construct `decreases clause' is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/constructs/decrease.c:10: Warning: 
+  function __e_acsl_assert_copy_values: precondition src->values == \null ||
+                                                     \valid(src->values) got status unknown.
+[eva:alarm] tests/constructs/decrease.c:10: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/decrease.c:21: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/decrease.c:33: Warning: 
+  function __e_acsl_assert_copy_values: precondition src->values == \null ||
+                                                     \valid(src->values) got status unknown.
+[eva:alarm] tests/constructs/decrease.c:33: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/decrease.c:44: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/decrease.c:44: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/constructs/decrease.c:93: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_acsl_check.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_acsl_check.c
index d6c33875d6093cf058a4ec369c57e8a702191643..ec38efd9caf38ec735d7a108e2ac734c311dd90a 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/gen_acsl_check.c
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_acsl_check.c
@@ -1,11 +1,12 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 char *__gen_e_acsl_literal_string;
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
-/*@ check requires a ≢ 0;
-    check ensures \result ≢ 0; */
+/*@ check requires a != 0;
+    check ensures \result != 0; */
 int __gen_e_acsl_f(int a);
 
 int f(int a)
@@ -18,34 +19,85 @@ void g(int a, int *b)
   {
     int __gen_e_acsl_valid_read;
     __e_acsl_store_block((void *)(& b),(size_t)8);
-    __e_acsl_assert((long)*(b + 1) != 0L,1,"RTE","g",
-                    "division_by_zero: (long)*(b + 1) != 0",
-                    "tests/constructs/acsl_check.c",12);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"a",0,a);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"*(b + 1)",0,
+                                 *(b + 1));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"*(b + 1)",0,
+                                 *(b + 1));
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "division_by_zero: (long)*(b + 1) != 0";
+    __gen_e_acsl_assert_data_2.file = "tests/constructs/acsl_check.c";
+    __gen_e_acsl_assert_data_2.fct = "g";
+    __gen_e_acsl_assert_data_2.line = 15;
+    __e_acsl_assert((long)*(b + 1) != 0L,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"b",(void *)b);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(b + 1),
                                                   sizeof(int),(void *)b,
                                                   (void *)(& b));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","g",
-                    "mem_access: \\valid_read(b + 1)",
-                    "tests/constructs/acsl_check.c",12);
-    __e_acsl_assert(a / (long)*(b + 1) == 0L,0,"Assertion","g",
-                    "a / *(b + 1) == 0","tests/constructs/acsl_check.c",12);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "RTE";
+    __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(b + 1)";
+    __gen_e_acsl_assert_data_3.file = "tests/constructs/acsl_check.c";
+    __gen_e_acsl_assert_data_3.fct = "g";
+    __gen_e_acsl_assert_data_3.line = 15;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+    __gen_e_acsl_assert_data.blocking = 0;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "a / *(b + 1) == 0";
+    __gen_e_acsl_assert_data.file = "tests/constructs/acsl_check.c";
+    __gen_e_acsl_assert_data.fct = "g";
+    __gen_e_acsl_assert_data.line = 15;
+    __e_acsl_assert(a / (long)*(b + 1) == 0L,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ check a / *(b + 1) ≡ 0; */ ;
+  /*@ check a / *(b + 1) == 0; */ ;
   __e_acsl_delete_block((void *)(& b));
   return;
 }
 
-/*@ check requires a ≢ 0;
-    check ensures \result ≢ 0; */
+/*@ check requires a != 0;
+    check ensures \result != 0; */
 int __gen_e_acsl_f(int a)
 {
   int __retres;
-  __e_acsl_assert(a != 0,0,"Precondition","f","a != 0",
-                  "tests/constructs/acsl_check.c",4);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"a",0,a);
+    __gen_e_acsl_assert_data.blocking = 0;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "a != 0";
+    __gen_e_acsl_assert_data.file = "tests/constructs/acsl_check.c";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 7;
+    __e_acsl_assert(a != 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
   __retres = f(a);
-  __e_acsl_assert(__retres != 0,0,"Postcondition","f","\\result != 0",
-                  "tests/constructs/acsl_check.c",5);
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                 __retres);
+    __gen_e_acsl_assert_data_2.blocking = 0;
+    __gen_e_acsl_assert_data_2.kind = "Postcondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\result != 0";
+    __gen_e_acsl_assert_data_2.file = "tests/constructs/acsl_check.c";
+    __gen_e_acsl_assert_data_2.fct = "f";
+    __gen_e_acsl_assert_data_2.line = 8;
+    __e_acsl_assert(__retres != 0,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    return __retres;
+  }
 }
 
 void __e_acsl_globals_init(void)
@@ -70,14 +122,24 @@ int main(void)
   int b[3] = {1, 2, 3};
   __e_acsl_store_block((void *)(b),(size_t)12);
   __e_acsl_full_init((void *)(& b));
-  __e_acsl_assert(a == 1,0,"Assertion","main","a == 1",
-                  "tests/constructs/acsl_check.c",18);
-  /*@ check a ≡ 1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"a",0,a);
+    __gen_e_acsl_assert_data.blocking = 0;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "a == 1";
+    __gen_e_acsl_assert_data.file = "tests/constructs/acsl_check.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 21;
+    __e_acsl_assert(a == 1,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ check a == 1; */ ;
   a = __gen_e_acsl_f(a);
   fprintf(stderr,__gen_e_acsl_literal_string); /* fprintf_va_1 */
   g(a,b);
-  /*@ admit a ≡ 1; */ ;
-  /*@ admit a ≡ 2; */ ;
+  /*@ admit a == 1; */ ;
+  /*@ admit a == 2; */ ;
   __e_acsl_delete_block((void *)(b));
   __e_acsl_memory_clean();
   return a;
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_decrease.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_decrease.c
index c9da90bf22f58c36bc929800e70643a7837c03f2..1cf603208b0354d7b25a9390d18b664ca0ea22a6 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/gen_decrease.c
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_decrease.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -12,16 +12,41 @@ int f(int x)
     __gen_e_acsl_old_variant = x;
     if (! (x >= 0)) break;
     x -= 2;
-    __e_acsl_assert(__gen_e_acsl_old_variant >= 0,1,"Variant","f",
-                    "(old x) \342\211\245 0","tests/constructs/decrease.c",
-                    10);
-    __e_acsl_assert(__gen_e_acsl_old_variant > x,1,"Variant","f",
-                    "(old x) > x","tests/constructs/decrease.c",10);
+    {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"old x",0,
+                                   __gen_e_acsl_old_variant);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_2,
+                                  & __gen_e_acsl_assert_data);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"current x",
+                                   0,x);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Variant";
+      __gen_e_acsl_assert_data.pred_txt = "(old x) >= 0";
+      __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c";
+      __gen_e_acsl_assert_data.fct = "f";
+      __gen_e_acsl_assert_data.line = 10;
+      __e_acsl_assert(__gen_e_acsl_old_variant >= 0,
+                      & __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Variant";
+      __gen_e_acsl_assert_data_2.pred_txt = "(old x) > x";
+      __gen_e_acsl_assert_data_2.file = "tests/constructs/decrease.c";
+      __gen_e_acsl_assert_data_2.fct = "f";
+      __gen_e_acsl_assert_data_2.line = 10;
+      __e_acsl_assert(__gen_e_acsl_old_variant > x,
+                      & __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    }
   }
   return x;
 }
 
-/*@ predicate lexico(ℤ x, ℤ y) = x > y ∧ 0 ≤ x;
+/*@ predicate lexico(integer x, integer y) = x > y && 0 <= x;
 
 */
 int __gen_e_acsl_lexico(int x, int y);
@@ -37,41 +62,99 @@ int g(int x)
     {
       int __gen_e_acsl_lexico_2;
       __gen_e_acsl_lexico_2 = __gen_e_acsl_lexico(__gen_e_acsl_old_variant,x);
-      __e_acsl_assert(__gen_e_acsl_lexico_2,1,"Variant","g",
-                      "lexico(old x, x)","tests/constructs/decrease.c",21);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"old x",0,
+                                   __gen_e_acsl_old_variant);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"current x",0,
+                                   x);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Variant";
+      __gen_e_acsl_assert_data.pred_txt = "lexico(old x, x)";
+      __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c";
+      __gen_e_acsl_assert_data.fct = "g";
+      __gen_e_acsl_assert_data.line = 21;
+      __e_acsl_assert(__gen_e_acsl_lexico_2,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
   }
   return x;
 }
 
-/*@ requires n ≤ 12; */
+/*@ requires n <= 12; */
 int __gen_e_acsl_fact(int n);
 
 int fact(int n)
 {
   int __gen_e_acsl_old_variant;
   int result = n;
-  __e_acsl_assert(n >= 1,1,"Invariant","fact","n >= 1",
-                  "tests/constructs/decrease.c",31);
-  /*@ loop invariant n ≥ 1;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Invariant";
+    __gen_e_acsl_assert_data.pred_txt = "n >= 1";
+    __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data.fct = "fact";
+    __gen_e_acsl_assert_data.line = 31;
+    __e_acsl_assert(n >= 1,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ loop invariant n >= 1;
       loop variant n; */
   while (1) {
     __gen_e_acsl_old_variant = n;
     if (! (n > 1)) break;
-    result *= n - 1;
-    n --;
-    __e_acsl_assert(n >= 1,1,"Invariant","fact","n >= 1",
-                    "tests/constructs/decrease.c",31);
-    __e_acsl_assert(__gen_e_acsl_old_variant >= 0,1,"Variant","fact",
-                    "(old n) \342\211\245 0","tests/constructs/decrease.c",
-                    33);
-    __e_acsl_assert(__gen_e_acsl_old_variant > n,1,"Variant","fact",
-                    "(old n) > n","tests/constructs/decrease.c",33);
+    {
+      result *= n - 1;
+      n --;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"n",0,n);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Invariant";
+      __gen_e_acsl_assert_data_2.pred_txt = "n >= 1";
+      __gen_e_acsl_assert_data_2.file = "tests/constructs/decrease.c";
+      __gen_e_acsl_assert_data_2.fct = "fact";
+      __gen_e_acsl_assert_data_2.line = 31;
+      __e_acsl_assert(n >= 1,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    }
+    {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"old n",0,
+                                   __gen_e_acsl_old_variant);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_4,
+                                  & __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"current n",
+                                   0,n);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Variant";
+      __gen_e_acsl_assert_data_3.pred_txt = "(old n) >= 0";
+      __gen_e_acsl_assert_data_3.file = "tests/constructs/decrease.c";
+      __gen_e_acsl_assert_data_3.fct = "fact";
+      __gen_e_acsl_assert_data_3.line = 33;
+      __e_acsl_assert(__gen_e_acsl_old_variant >= 0,
+                      & __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Variant";
+      __gen_e_acsl_assert_data_4.pred_txt = "(old n) > n";
+      __gen_e_acsl_assert_data_4.file = "tests/constructs/decrease.c";
+      __gen_e_acsl_assert_data_4.fct = "fact";
+      __gen_e_acsl_assert_data_4.line = 33;
+      __e_acsl_assert(__gen_e_acsl_old_variant > n,
+                      & __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    }
   }
   return result;
 }
 
-/*@ requires n ≤ 20; */
+/*@ requires n <= 20; */
 size_t __gen_e_acsl_fact2(size_t n);
 
 size_t fact2(size_t n)
@@ -81,21 +164,50 @@ size_t fact2(size_t n)
     size_t i = 1UL;
     {
       int __gen_e_acsl_and;
-      if (1UL <= i) __gen_e_acsl_and = i < n; else __gen_e_acsl_and = 0;
-      __e_acsl_assert(__gen_e_acsl_and,1,"Invariant","fact2","1 <= i < n",
-                      "tests/constructs/decrease.c",44);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"i",0,i);
+      if (1UL <= i) {
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"i",0,i);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"n",0,n);
+        __gen_e_acsl_and = i < n;
+      }
+      else __gen_e_acsl_and = 0;
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Invariant";
+      __gen_e_acsl_assert_data.pred_txt = "1 <= i < n";
+      __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c";
+      __gen_e_acsl_assert_data.fct = "fact2";
+      __gen_e_acsl_assert_data.line = 44;
+      __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
-    /*@ loop invariant 1 ≤ i < n;
+    /*@ loop invariant 1 <= i < n;
         loop variant n - i; */
     while (i < n - 1UL) {
       result *= n - i;
       {
         int __gen_e_acsl_and_2;
         i += (size_t)1;
-        if (1UL <= i) __gen_e_acsl_and_2 = i < n;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"i",0,i);
+        if (1UL <= i) {
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"i",0,
+                                         i);
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"n",0,
+                                         n);
+          __gen_e_acsl_and_2 = i < n;
+        }
         else __gen_e_acsl_and_2 = 0;
-        __e_acsl_assert(__gen_e_acsl_and_2,1,"Invariant","fact2",
-                        "1 <= i < n","tests/constructs/decrease.c",44);
+        __gen_e_acsl_assert_data_2.blocking = 1;
+        __gen_e_acsl_assert_data_2.kind = "Invariant";
+        __gen_e_acsl_assert_data_2.pred_txt = "1 <= i < n";
+        __gen_e_acsl_assert_data_2.file = "tests/constructs/decrease.c";
+        __gen_e_acsl_assert_data_2.fct = "fact2";
+        __gen_e_acsl_assert_data_2.line = 44;
+        __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
       }
     }
   }
@@ -124,13 +236,13 @@ int fib(int n)
   return_label: return __retres;
 }
 
-/*@ requires n ≥ 0;
+/*@ requires n >= 0;
     decreases n; */
 int __gen_e_acsl_odd(int n);
 
 int odd(int n);
 
-/*@ requires n ≥ 0;
+/*@ requires n >= 0;
     decreases n; */
 int __gen_e_acsl_even(int n);
 
@@ -163,73 +275,220 @@ int odd(int n)
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int f10 = f(10);
-  __e_acsl_assert(f10 == -2,1,"Assertion","main","f10 == -2",
-                  "tests/constructs/decrease.c",81);
-  /*@ assert f10 ≡ -2; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"f10",0,f10);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "f10 == -2";
+    __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 81;
+    __e_acsl_assert(f10 == -2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert f10 == -2; */ ;
   int f7 = f(7);
-  __e_acsl_assert(f7 == -1,1,"Assertion","main","f7 == -1",
-                  "tests/constructs/decrease.c",83);
-  /*@ assert f7 ≡ -1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"f7",0,f7);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "f7 == -1";
+    __gen_e_acsl_assert_data_2.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 83;
+    __e_acsl_assert(f7 == -1,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+  }
+  /*@ assert f7 == -1; */ ;
   int g10 = g(10);
-  __e_acsl_assert(g10 == -2,1,"Assertion","main","g10 == -2",
-                  "tests/constructs/decrease.c",85);
-  /*@ assert g10 ≡ -2; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"g10",0,g10);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "g10 == -2";
+    __gen_e_acsl_assert_data_3.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 85;
+    __e_acsl_assert(g10 == -2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+  }
+  /*@ assert g10 == -2; */ ;
   int g7 = g(7);
-  __e_acsl_assert(g7 == -1,1,"Assertion","main","g7 == -1",
-                  "tests/constructs/decrease.c",87);
-  /*@ assert g7 ≡ -1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"g7",0,g7);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "g7 == -1";
+    __gen_e_acsl_assert_data_4.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 87;
+    __e_acsl_assert(g7 == -1,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+  }
+  /*@ assert g7 == -1; */ ;
   int fact7 = __gen_e_acsl_fact(7);
-  __e_acsl_assert(fact7 == 5040,1,"Assertion","main","fact7 == 5040",
-                  "tests/constructs/decrease.c",90);
-  /*@ assert fact7 ≡ 5040; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"fact7",0,
+                                 fact7);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "fact7 == 5040";
+    __gen_e_acsl_assert_data_5.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 90;
+    __e_acsl_assert(fact7 == 5040,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+  }
+  /*@ assert fact7 == 5040; */ ;
   size_t fact18 = __gen_e_acsl_fact2((unsigned long)18);
-  __e_acsl_assert(fact18 == 6402373705728000UL,1,"Assertion","main",
-                  "fact18 == 6402373705728000UL",
-                  "tests/constructs/decrease.c",93);
-  /*@ assert fact18 ≡ 6402373705728000UL; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,"fact18",0,
+                                   fact18);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "fact18 == 6402373705728000UL";
+    __gen_e_acsl_assert_data_6.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 93;
+    __e_acsl_assert(fact18 == 6402373705728000UL,
+                    & __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+  }
+  /*@ assert fact18 == 6402373705728000UL; */ ;
   int fib7 = __gen_e_acsl_fib(7);
-  __e_acsl_assert(fib7 == 13,1,"Assertion","main","fib7 == 13",
-                  "tests/constructs/decrease.c",96);
-  /*@ assert fib7 ≡ 13; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"fib7",0,fib7);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "fib7 == 13";
+    __gen_e_acsl_assert_data_7.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 96;
+    __e_acsl_assert(fib7 == 13,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+  }
+  /*@ assert fib7 == 13; */ ;
   int even7 = __gen_e_acsl_even(7);
-  __e_acsl_assert(even7 == 0,1,"Assertion","main","even7 == 0",
-                  "tests/constructs/decrease.c",99);
-  /*@ assert even7 ≡ 0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"even7",0,
+                                 even7);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "even7 == 0";
+    __gen_e_acsl_assert_data_8.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 99;
+    __e_acsl_assert(even7 == 0,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+  }
+  /*@ assert even7 == 0; */ ;
   int even10 = __gen_e_acsl_even(10);
-  __e_acsl_assert(even10 == 1,1,"Assertion","main","even10 == 1",
-                  "tests/constructs/decrease.c",101);
-  /*@ assert even10 ≡ 1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"even10",0,
+                                 even10);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "even10 == 1";
+    __gen_e_acsl_assert_data_9.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 101;
+    __e_acsl_assert(even10 == 1,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
+  }
+  /*@ assert even10 == 1; */ ;
   int odd7 = __gen_e_acsl_odd(7);
-  __e_acsl_assert(odd7 == 1,1,"Assertion","main","odd7 == 1",
-                  "tests/constructs/decrease.c",103);
-  /*@ assert odd7 ≡ 1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"odd7",0,odd7);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "odd7 == 1";
+    __gen_e_acsl_assert_data_10.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 103;
+    __e_acsl_assert(odd7 == 1,& __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
+  }
+  /*@ assert odd7 == 1; */ ;
   int odd10 = __gen_e_acsl_odd(10);
-  __e_acsl_assert(odd10 == 0,1,"Assertion","main","odd10 == 0",
-                  "tests/constructs/decrease.c",105);
-  /*@ assert odd10 ≡ 0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"odd10",0,
+                                 odd10);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "odd10 == 0";
+    __gen_e_acsl_assert_data_11.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 105;
+    __e_acsl_assert(odd10 == 0,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
+  }
+  /*@ assert odd10 == 0; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
-/*@ requires n ≥ 0;
+/*@ requires n >= 0;
     decreases n; */
 int __gen_e_acsl_even(int n)
 {
   int __retres;
-  __e_acsl_assert(n >= 0,1,"Precondition","even","n >= 0",
-                  "tests/constructs/decrease.c",64);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "n >= 0";
+    __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data.fct = "even";
+    __gen_e_acsl_assert_data.line = 64;
+    __e_acsl_assert(n >= 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
   __retres = even(n);
   return __retres;
 }
 
-/*@ requires n ≥ 0;
+/*@ requires n >= 0;
     decreases n; */
 int __gen_e_acsl_odd(int n)
 {
   int __retres;
-  __e_acsl_assert(n >= 0,1,"Precondition","odd","n >= 0",
-                  "tests/constructs/decrease.c",71);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "n >= 0";
+    __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data.fct = "odd";
+    __gen_e_acsl_assert_data.line = 71;
+    __e_acsl_assert(n >= 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
   __retres = odd(n);
   return __retres;
 }
@@ -242,22 +501,42 @@ int __gen_e_acsl_fib(int n)
   return __retres;
 }
 
-/*@ requires n ≤ 20; */
+/*@ requires n <= 20; */
 size_t __gen_e_acsl_fact2(size_t n)
 {
   size_t __retres;
-  __e_acsl_assert(n <= 20UL,1,"Precondition","fact2","n <= 20",
-                  "tests/constructs/decrease.c",41);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"n",0,n);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "n <= 20";
+    __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data.fct = "fact2";
+    __gen_e_acsl_assert_data.line = 41;
+    __e_acsl_assert(n <= 20UL,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
   __retres = fact2(n);
   return __retres;
 }
 
-/*@ requires n ≤ 12; */
+/*@ requires n <= 12; */
 int __gen_e_acsl_fact(int n)
 {
   int __retres;
-  __e_acsl_assert(n <= 12,1,"Precondition","fact","n <= 12",
-                  "tests/constructs/decrease.c",28);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"n",0,n);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "n <= 12";
+    __gen_e_acsl_assert_data.file = "tests/constructs/decrease.c";
+    __gen_e_acsl_assert_data.fct = "fact";
+    __gen_e_acsl_assert_data.line = 28;
+    __e_acsl_assert(n <= 12,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
   __retres = fact(n);
   return __retres;
 }
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_false.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_false.c
index b6db66215dc340b85f2a80d4b0513ee6b6dde66a..c373eedcb27d9e6a67e84502f780d33c8ba0a302 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/gen_false.c
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_false.c
@@ -1,19 +1,30 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int x = 0;
   if (x) {
-    __e_acsl_assert(0,1,"Assertion","main","\\false",
-                    "tests/constructs/false.i",7);
+    {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "\\false";
+      __gen_e_acsl_assert_data.file = "tests/constructs/false.i";
+      __gen_e_acsl_assert_data.fct = "main";
+      __gen_e_acsl_assert_data.line = 7;
+      __e_acsl_assert(0,& __gen_e_acsl_assert_data);
+    }
     /*@ assert \false; */ ;
   }
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_function_contract.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_function_contract.c
index c29fe752eee1eb2062ee0411e5048892ab19d443..72c0217698f77d97b23e245d169e57d52d7299c7 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/gen_function_contract.c
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_function_contract.c
@@ -1,12 +1,12 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int X = 0;
 int Y = 2;
-/*@ ensures X ≡ 1; */
+/*@ ensures X == 1; */
 void __gen_e_acsl_f(void);
 
 void f(void)
@@ -15,8 +15,8 @@ void f(void)
   return;
 }
 
-/*@ ensures X ≡ 2;
-    ensures Y ≡ 2; */
+/*@ ensures X == 2;
+    ensures Y == 2; */
 void __gen_e_acsl_g(void);
 
 void g(void)
@@ -25,7 +25,7 @@ void g(void)
   return;
 }
 
-/*@ requires X ≡ 2; */
+/*@ requires X == 2; */
 void __gen_e_acsl_h(void);
 
 void h(void)
@@ -34,8 +34,8 @@ void h(void)
   return;
 }
 
-/*@ requires X ≡ 3;
-    requires Y ≡ 2; */
+/*@ requires X == 3;
+    requires Y == 2; */
 void __gen_e_acsl_i(void);
 
 void i(void)
@@ -45,13 +45,13 @@ void i(void)
 }
 
 /*@ behavior b1:
-      requires X ≡ 5;
-      ensures X ≡ 3;
+      requires X == 5;
+      ensures X == 3;
     
     behavior b2:
-      requires X ≡ 3 + Y;
-      requires Y ≡ 2;
-      ensures X ≡ Y + 1;
+      requires X == 3 + Y;
+      requires Y == 2;
+      ensures X == Y + 1;
  */
 void __gen_e_acsl_j(void);
 
@@ -62,14 +62,14 @@ void j(void)
 }
 
 /*@ behavior b1:
-      assumes X ≡ 1;
-      requires X ≡ 0;
+      assumes X == 1;
+      requires X == 0;
     
     behavior b2:
-      assumes X ≡ 3;
-      assumes Y ≡ 2;
-      requires X ≡ 3;
-      requires X + Y ≡ 5;
+      assumes X == 3;
+      assumes Y == 2;
+      requires X == 3;
+      requires X + Y == 5;
  */
 void __gen_e_acsl_k(void);
 
@@ -79,26 +79,36 @@ void k(void)
   return;
 }
 
-/*@ ensures X ≡ 5; */
+/*@ ensures X == 5; */
 int __gen_e_acsl_l(void);
 
 int l(void)
 {
-  __e_acsl_assert(Y == 2,1,"Assertion","l","Y == 2",
-                  "tests/constructs/function_contract.i",61);
-  /*@ assert Y ≡ 2; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"Y",0,Y);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "Y == 2";
+    __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i";
+    __gen_e_acsl_assert_data.fct = "l";
+    __gen_e_acsl_assert_data.line = 61;
+    __e_acsl_assert(Y == 2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert Y == 2; */ ;
   return X;
 }
 
 /*@ behavior b1:
-      assumes X ≡ 7;
-      ensures X ≡ 95;
+      assumes X == 7;
+      ensures X == 95;
     
     behavior b2:
-      assumes X ≡ 5;
-      assumes Y ≡ 2;
-      ensures X ≡ 7;
-      ensures X ≡ \old(X) + Y;
+      assumes X == 5;
+      assumes Y == 2;
+      ensures X == 7;
+      ensures X == \old(X) + Y;
  */
 void __gen_e_acsl_m(void);
 
@@ -112,12 +122,12 @@ void m(void)
     requires X < 10;
     
     behavior b1:
-      assumes X ≡ 7;
-      ensures X ≡ 8;
+      assumes X == 7;
+      ensures X == 8;
     
     behavior b2:
-      assumes X ≡ 5;
-      ensures X ≡ 98;
+      assumes X == 5;
+      ensures X == 98;
  */
 void __gen_e_acsl_n(void);
 
@@ -128,27 +138,27 @@ void n(void)
 }
 
 /*@ requires X > -1000;
-    ensures X ≡ \old(Y);
+    ensures X == \old(Y);
     
     behavior neg:
       assumes Y < 0;
       requires Y < 1;
-      ensures X ≡ \old(Y);
+      ensures X == \old(Y);
     
     behavior pos:
-      assumes Y ≥ 0;
+      assumes Y >= 0;
       requires Y > -1;
-      ensures X ≡ \old(Y);
+      ensures X == \old(Y);
     
     behavior odd:
-      assumes Y % 2 ≡ 1;
-      requires Y % 2 - 1 ≡ 0;
-      ensures X ≡ \old(Y);
+      assumes Y % 2 == 1;
+      requires Y % 2 - 1 == 0;
+      ensures X == \old(Y);
     
     behavior even:
-      assumes Y % 2 ≡ 0;
-      requires Y % 2 + 1 ≡ 1;
-      ensures X ≡ \old(Y);
+      assumes Y % 2 == 0;
+      requires Y % 2 + 1 == 1;
+      ensures X == \old(Y);
     
     complete behaviors even, odd, pos, neg;
     complete behaviors odd, even;
@@ -167,6 +177,7 @@ void o(void)
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   __gen_e_acsl_f();
   __gen_e_acsl_g();
   __gen_e_acsl_h();
@@ -178,31 +189,32 @@ int main(void)
   __gen_e_acsl_n();
   __gen_e_acsl_o();
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
 /*@ requires X > -1000;
-    ensures X ≡ \old(Y);
+    ensures X == \old(Y);
     
     behavior neg:
       assumes Y < 0;
       requires Y < 1;
-      ensures X ≡ \old(Y);
+      ensures X == \old(Y);
     
     behavior pos:
-      assumes Y ≥ 0;
+      assumes Y >= 0;
       requires Y > -1;
-      ensures X ≡ \old(Y);
+      ensures X == \old(Y);
     
     behavior odd:
-      assumes Y % 2 ≡ 1;
-      requires Y % 2 - 1 ≡ 0;
-      ensures X ≡ \old(Y);
+      assumes Y % 2 == 1;
+      requires Y % 2 - 1 == 0;
+      ensures X == \old(Y);
     
     behavior even:
-      assumes Y % 2 ≡ 0;
-      requires Y % 2 + 1 ≡ 1;
-      ensures X ≡ \old(Y);
+      assumes Y % 2 == 0;
+      requires Y % 2 + 1 == 1;
+      ensures X == \old(Y);
     
     complete behaviors even, odd, pos, neg;
     complete behaviors odd, even;
@@ -222,8 +234,16 @@ void __gen_e_acsl_o(void)
     int __gen_e_acsl_assumes_value;
     int __gen_e_acsl_active_bhvrs;
     __gen_e_acsl_contract = __e_acsl_contract_init((size_t)4);
-    __e_acsl_assert(X > -1000,1,"Precondition","o","X > -1000",
-                    "tests/constructs/function_contract.i",93);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "X > -1000";
+    __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i";
+    __gen_e_acsl_assert_data.fct = "o";
+    __gen_e_acsl_assert_data.line = 93;
+    __e_acsl_assert(X > -1000,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0,
                                            Y < 0);
     __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1,
@@ -234,55 +254,149 @@ void __gen_e_acsl_o(void)
                                            Y % 2 == 0);
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(Y < 1,1,"Precondition",
-                                                    "o","neg: Y < 1",
-                                                    "tests/constructs/function_contract.i",
-                                                    98);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"Y",0,Y);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Precondition";
+      __gen_e_acsl_assert_data_2.pred_txt = "neg: Y < 1";
+      __gen_e_acsl_assert_data_2.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_2.fct = "o";
+      __gen_e_acsl_assert_data_2.line = 98;
+      __e_acsl_assert(Y < 1,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    }
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(Y > -1,1,"Precondition",
-                                                    "o","pos: Y > -1",
-                                                    "tests/constructs/function_contract.i",
-                                                    103);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"Y",0,Y);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Precondition";
+      __gen_e_acsl_assert_data_3.pred_txt = "pos: Y > -1";
+      __gen_e_acsl_assert_data_3.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_3.fct = "o";
+      __gen_e_acsl_assert_data_3.line = 103;
+      __e_acsl_assert(Y > -1,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+    }
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)2);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(Y % 2 - 1 == 0,1,
-                                                    "Precondition","o",
-                                                    "odd: Y % 2 - 1 == 0",
-                                                    "tests/constructs/function_contract.i",
-                                                    108);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"Y",0,Y);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Precondition";
+      __gen_e_acsl_assert_data_4.pred_txt = "odd: Y % 2 - 1 == 0";
+      __gen_e_acsl_assert_data_4.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_4.fct = "o";
+      __gen_e_acsl_assert_data_4.line = 108;
+      __e_acsl_assert(Y % 2 - 1 == 0,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    }
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)3);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(Y % 2 + 1 == 1,1,
-                                                    "Precondition","o",
-                                                    "even: Y % 2 + 1 == 1",
-                                                    "tests/constructs/function_contract.i",
-                                                    113);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"Y",0,Y);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Precondition";
+      __gen_e_acsl_assert_data_5.pred_txt = "even: Y % 2 + 1 == 1";
+      __gen_e_acsl_assert_data_5.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_5.fct = "o";
+      __gen_e_acsl_assert_data_5.line = 113;
+      __e_acsl_assert(Y % 2 + 1 == 1,& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+    }
     __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_behaviors
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)2,1,0);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "number of active behaviors",0,
+                                 __gen_e_acsl_active_bhvrs);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "number of active behaviors",0,
+                                 __gen_e_acsl_active_bhvrs);
     if (__gen_e_acsl_active_bhvrs != 1) {
-      __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,1,"Precondition","o",
-                      "complete behaviors pos, neg",
-                      "tests/constructs/function_contract.i",123);
-      __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,1,"Precondition","o",
-                      "disjoint behaviors pos, neg",
-                      "tests/constructs/function_contract.i",123);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "Precondition";
+      __gen_e_acsl_assert_data_6.pred_txt = "complete behaviors pos, neg";
+      __gen_e_acsl_assert_data_6.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_6.fct = "o";
+      __gen_e_acsl_assert_data_6.line = 123;
+      __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,
+                      & __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+      __gen_e_acsl_assert_data_7.blocking = 1;
+      __gen_e_acsl_assert_data_7.kind = "Precondition";
+      __gen_e_acsl_assert_data_7.pred_txt = "disjoint behaviors pos, neg";
+      __gen_e_acsl_assert_data_7.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_7.fct = "o";
+      __gen_e_acsl_assert_data_7.line = 123;
+      __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,
+                      & __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
     }
     __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_behaviors
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)2,2,3);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                 "number of active behaviors",0,
+                                 __gen_e_acsl_active_bhvrs);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                 "number of active behaviors",0,
+                                 __gen_e_acsl_active_bhvrs);
     if (__gen_e_acsl_active_bhvrs != 1) {
-      __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,1,"Precondition","o",
-                      "complete behaviors odd, even",
-                      "tests/constructs/function_contract.i",123);
-      __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,1,"Precondition","o",
-                      "disjoint behaviors odd, even",
-                      "tests/constructs/function_contract.i",123);
+      __gen_e_acsl_assert_data_8.blocking = 1;
+      __gen_e_acsl_assert_data_8.kind = "Precondition";
+      __gen_e_acsl_assert_data_8.pred_txt = "complete behaviors odd, even";
+      __gen_e_acsl_assert_data_8.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_8.fct = "o";
+      __gen_e_acsl_assert_data_8.line = 123;
+      __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,
+                      & __gen_e_acsl_assert_data_8);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "Precondition";
+      __gen_e_acsl_assert_data_9.pred_txt = "disjoint behaviors odd, even";
+      __gen_e_acsl_assert_data_9.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_9.fct = "o";
+      __gen_e_acsl_assert_data_9.line = 123;
+      __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,
+                      & __gen_e_acsl_assert_data_9);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
     }
     __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_all_behaviors
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract);
-    __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,1,"Precondition","o",
-                    "all behaviors complete",
-                    "tests/constructs/function_contract.i",123);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                 "number of active behaviors",0,
+                                 __gen_e_acsl_active_bhvrs);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                 "number of active behaviors",0,
+                                 __gen_e_acsl_active_bhvrs);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Precondition";
+    __gen_e_acsl_assert_data_10.pred_txt = "all behaviors complete";
+    __gen_e_acsl_assert_data_10.file = "tests/constructs/function_contract.i";
+    __gen_e_acsl_assert_data_10.fct = "o";
+    __gen_e_acsl_assert_data_10.line = 123;
+    __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,
+                    & __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
   }
   __gen_e_acsl_at_5 = Y;
   __gen_e_acsl_at_4 = Y;
@@ -292,37 +406,87 @@ void __gen_e_acsl_o(void)
   o();
   {
     int __gen_e_acsl_assumes_value_2;
-    __e_acsl_assert(X == __gen_e_acsl_at,1,"Postcondition","o",
-                    "X == \\old(Y)","tests/constructs/function_contract.i",
-                    94);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"X",0,X);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"\\old(Y)",0,
+                                 __gen_e_acsl_at);
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Postcondition";
+    __gen_e_acsl_assert_data_12.pred_txt = "X == \\old(Y)";
+    __gen_e_acsl_assert_data_12.file = "tests/constructs/function_contract.i";
+    __gen_e_acsl_assert_data_12.fct = "o";
+    __gen_e_acsl_assert_data_12.line = 94;
+    __e_acsl_assert(X == __gen_e_acsl_at,& __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
     __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0);
-    if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(X == __gen_e_acsl_at_2,
-                                                      1,"Postcondition","o",
-                                                      "neg: X == \\old(Y)",
-                                                      "tests/constructs/function_contract.i",
-                                                      99);
+    if (__gen_e_acsl_assumes_value_2) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"X",0,X);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"\\old(Y)",
+                                   0,__gen_e_acsl_at_2);
+      __gen_e_acsl_assert_data_13.blocking = 1;
+      __gen_e_acsl_assert_data_13.kind = "Postcondition";
+      __gen_e_acsl_assert_data_13.pred_txt = "neg: X == \\old(Y)";
+      __gen_e_acsl_assert_data_13.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_13.fct = "o";
+      __gen_e_acsl_assert_data_13.line = 99;
+      __e_acsl_assert(X == __gen_e_acsl_at_2,& __gen_e_acsl_assert_data_13);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
+    }
     __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
-    if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(X == __gen_e_acsl_at_3,
-                                                      1,"Postcondition","o",
-                                                      "pos: X == \\old(Y)",
-                                                      "tests/constructs/function_contract.i",
-                                                      104);
+    if (__gen_e_acsl_assumes_value_2) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"X",0,X);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"\\old(Y)",
+                                   0,__gen_e_acsl_at_3);
+      __gen_e_acsl_assert_data_14.blocking = 1;
+      __gen_e_acsl_assert_data_14.kind = "Postcondition";
+      __gen_e_acsl_assert_data_14.pred_txt = "pos: X == \\old(Y)";
+      __gen_e_acsl_assert_data_14.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_14.fct = "o";
+      __gen_e_acsl_assert_data_14.line = 104;
+      __e_acsl_assert(X == __gen_e_acsl_at_3,& __gen_e_acsl_assert_data_14);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
+    }
     __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)2);
-    if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(X == __gen_e_acsl_at_4,
-                                                      1,"Postcondition","o",
-                                                      "odd: X == \\old(Y)",
-                                                      "tests/constructs/function_contract.i",
-                                                      109);
+    if (__gen_e_acsl_assumes_value_2) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"X",0,X);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"\\old(Y)",
+                                   0,__gen_e_acsl_at_4);
+      __gen_e_acsl_assert_data_15.blocking = 1;
+      __gen_e_acsl_assert_data_15.kind = "Postcondition";
+      __gen_e_acsl_assert_data_15.pred_txt = "odd: X == \\old(Y)";
+      __gen_e_acsl_assert_data_15.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_15.fct = "o";
+      __gen_e_acsl_assert_data_15.line = 109;
+      __e_acsl_assert(X == __gen_e_acsl_at_4,& __gen_e_acsl_assert_data_15);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
+    }
     __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)3);
-    if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(X == __gen_e_acsl_at_5,
-                                                      1,"Postcondition","o",
-                                                      "even: X == \\old(Y)",
-                                                      "tests/constructs/function_contract.i",
-                                                      114);
+    if (__gen_e_acsl_assumes_value_2) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"X",0,X);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"\\old(Y)",
+                                   0,__gen_e_acsl_at_5);
+      __gen_e_acsl_assert_data_16.blocking = 1;
+      __gen_e_acsl_assert_data_16.kind = "Postcondition";
+      __gen_e_acsl_assert_data_16.pred_txt = "even: X == \\old(Y)";
+      __gen_e_acsl_assert_data_16.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_16.fct = "o";
+      __gen_e_acsl_assert_data_16.line = 114;
+      __e_acsl_assert(X == __gen_e_acsl_at_5,& __gen_e_acsl_assert_data_16);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
+    }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     return;
   }
@@ -332,55 +496,91 @@ void __gen_e_acsl_o(void)
     requires X < 10;
     
     behavior b1:
-      assumes X ≡ 7;
-      ensures X ≡ 8;
+      assumes X == 7;
+      ensures X == 8;
     
     behavior b2:
-      assumes X ≡ 5;
-      ensures X ≡ 98;
+      assumes X == 5;
+      ensures X == 98;
  */
 void __gen_e_acsl_n(void)
 {
   __e_acsl_contract_t *__gen_e_acsl_contract;
-  __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2);
-  __e_acsl_assert(X > 0,1,"Precondition","n","X > 0",
-                  "tests/constructs/function_contract.i",79);
-  __e_acsl_assert(X < 10,1,"Precondition","n","X < 10",
-                  "tests/constructs/function_contract.i",80);
-  __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0,
-                                         X == 7);
-  __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1,
-                                         X == 5);
+  {
+    __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "X > 0";
+    __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i";
+    __gen_e_acsl_assert_data.fct = "n";
+    __gen_e_acsl_assert_data.line = 79;
+    __e_acsl_assert(X > 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"X",0,X);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Precondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "X < 10";
+    __gen_e_acsl_assert_data_2.file = "tests/constructs/function_contract.i";
+    __gen_e_acsl_assert_data_2.fct = "n";
+    __gen_e_acsl_assert_data_2.line = 80;
+    __e_acsl_assert(X < 10,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0,
+                                           X == 7);
+    __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1,
+                                           X == 5);
+  }
   n();
   {
     int __gen_e_acsl_assumes_value;
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(X == 8,1,"Postcondition",
-                                                    "n","b1: X == 8",
-                                                    "tests/constructs/function_contract.i",
-                                                    83);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"X",0,X);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Postcondition";
+      __gen_e_acsl_assert_data_3.pred_txt = "b1: X == 8";
+      __gen_e_acsl_assert_data_3.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_3.fct = "n";
+      __gen_e_acsl_assert_data_3.line = 83;
+      __e_acsl_assert(X == 8,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+    }
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(X == 98,1,
-                                                    "Postcondition","n",
-                                                    "b2: X == 98",
-                                                    "tests/constructs/function_contract.i",
-                                                    86);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"X",0,X);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Postcondition";
+      __gen_e_acsl_assert_data_4.pred_txt = "b2: X == 98";
+      __gen_e_acsl_assert_data_4.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_4.fct = "n";
+      __gen_e_acsl_assert_data_4.line = 86;
+      __e_acsl_assert(X == 98,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     return;
   }
 }
 
 /*@ behavior b1:
-      assumes X ≡ 7;
-      ensures X ≡ 95;
+      assumes X == 7;
+      ensures X == 95;
     
     behavior b2:
-      assumes X ≡ 5;
-      assumes Y ≡ 2;
-      ensures X ≡ 7;
-      ensures X ≡ \old(X) + Y;
+      assumes X == 5;
+      assumes Y == 2;
+      ensures X == 7;
+      ensures X == \old(X) + Y;
  */
 void __gen_e_acsl_m(void)
 {
@@ -401,44 +601,83 @@ void __gen_e_acsl_m(void)
     int __gen_e_acsl_assumes_value;
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(X == 95,1,
-                                                    "Postcondition","m",
-                                                    "b1: X == 95",
-                                                    "tests/constructs/function_contract.i",
-                                                    68);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Postcondition";
+      __gen_e_acsl_assert_data.pred_txt = "b1: X == 95";
+      __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data.fct = "m";
+      __gen_e_acsl_assert_data.line = 68;
+      __e_acsl_assert(X == 95,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    }
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
     if (__gen_e_acsl_assumes_value) {
-      __e_acsl_assert((long)X == __gen_e_acsl_at + Y,1,"Postcondition","m",
-                      "b2: X == \\old(X) + Y",
-                      "tests/constructs/function_contract.i",73);
-      __e_acsl_assert(X == 7,1,"Postcondition","m","b2: X == 7",
-                      "tests/constructs/function_contract.i",72);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"X",0,X);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"X",0,X);
+      __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_3,"\\old(X)",
+                                    0,__gen_e_acsl_at);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"Y",0,Y);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Postcondition";
+      __gen_e_acsl_assert_data_3.pred_txt = "b2: X == \\old(X) + Y";
+      __gen_e_acsl_assert_data_3.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_3.fct = "m";
+      __gen_e_acsl_assert_data_3.line = 73;
+      __e_acsl_assert((long)X == __gen_e_acsl_at + Y,
+                      & __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Postcondition";
+      __gen_e_acsl_assert_data_2.pred_txt = "b2: X == 7";
+      __gen_e_acsl_assert_data_2.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_2.fct = "m";
+      __gen_e_acsl_assert_data_2.line = 72;
+      __e_acsl_assert(X == 7,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     return;
   }
 }
 
-/*@ ensures X ≡ 5; */
+/*@ ensures X == 5; */
 int __gen_e_acsl_l(void)
 {
   int __retres;
   __retres = l();
-  __e_acsl_assert(X == 5,1,"Postcondition","l","X == 5",
-                  "tests/constructs/function_contract.i",59);
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "X == 5";
+    __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i";
+    __gen_e_acsl_assert_data.fct = "l";
+    __gen_e_acsl_assert_data.line = 59;
+    __e_acsl_assert(X == 5,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    return __retres;
+  }
 }
 
 /*@ behavior b1:
-      assumes X ≡ 1;
-      requires X ≡ 0;
+      assumes X == 1;
+      requires X == 0;
     
     behavior b2:
-      assumes X ≡ 3;
-      assumes Y ≡ 2;
-      requires X ≡ 3;
-      requires X + Y ≡ 5;
+      assumes X == 3;
+      assumes Y == 2;
+      requires X == 3;
+      requires X + Y == 5;
  */
 void __gen_e_acsl_k(void)
 {
@@ -454,18 +693,45 @@ void __gen_e_acsl_k(void)
                                            __gen_e_acsl_and);
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(X == 0,1,"Precondition",
-                                                    "k","b1: X == 0",
-                                                    "tests/constructs/function_contract.i",
-                                                    48);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Precondition";
+      __gen_e_acsl_assert_data.pred_txt = "b1: X == 0";
+      __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data.fct = "k";
+      __gen_e_acsl_assert_data.line = 48;
+      __e_acsl_assert(X == 0,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    }
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
     if (__gen_e_acsl_assumes_value) {
-      __e_acsl_assert(X + (long)Y == 5L,1,"Precondition","k",
-                      "b2: X + Y == 5",
-                      "tests/constructs/function_contract.i",53);
-      __e_acsl_assert(X == 3,1,"Precondition","k","b2: X == 3",
-                      "tests/constructs/function_contract.i",52);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"X",0,X);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"X",0,X);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"Y",0,Y);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Precondition";
+      __gen_e_acsl_assert_data_3.pred_txt = "b2: X + Y == 5";
+      __gen_e_acsl_assert_data_3.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_3.fct = "k";
+      __gen_e_acsl_assert_data_3.line = 53;
+      __e_acsl_assert(X + (long)Y == 5L,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Precondition";
+      __gen_e_acsl_assert_data_2.pred_txt = "b2: X == 3";
+      __gen_e_acsl_assert_data_2.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_2.fct = "k";
+      __gen_e_acsl_assert_data_2.line = 52;
+      __e_acsl_assert(X == 3,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
   }
   k();
@@ -474,13 +740,13 @@ void __gen_e_acsl_k(void)
 }
 
 /*@ behavior b1:
-      requires X ≡ 5;
-      ensures X ≡ 3;
+      requires X == 5;
+      ensures X == 3;
     
     behavior b2:
-      requires X ≡ 3 + Y;
-      requires Y ≡ 2;
-      ensures X ≡ Y + 1;
+      requires X == 3 + Y;
+      requires Y == 2;
+      ensures X == Y + 1;
  */
 void __gen_e_acsl_j(void)
 {
@@ -492,18 +758,45 @@ void __gen_e_acsl_j(void)
     __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1,1);
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(X == 5,1,"Precondition",
-                                                    "j","b1: X == 5",
-                                                    "tests/constructs/function_contract.i",
-                                                    35);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Precondition";
+      __gen_e_acsl_assert_data.pred_txt = "b1: X == 5";
+      __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data.fct = "j";
+      __gen_e_acsl_assert_data.line = 35;
+      __e_acsl_assert(X == 5,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    }
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
     if (__gen_e_acsl_assumes_value) {
-      __e_acsl_assert(Y == 2,1,"Precondition","j","b2: Y == 2",
-                      "tests/constructs/function_contract.i",39);
-      __e_acsl_assert((long)X == 3L + Y,1,"Precondition","j",
-                      "b2: X == 3 + Y",
-                      "tests/constructs/function_contract.i",38);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"X",0,X);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"Y",0,Y);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"Y",0,Y);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Precondition";
+      __gen_e_acsl_assert_data_3.pred_txt = "b2: Y == 2";
+      __gen_e_acsl_assert_data_3.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_3.fct = "j";
+      __gen_e_acsl_assert_data_3.line = 39;
+      __e_acsl_assert(Y == 2,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Precondition";
+      __gen_e_acsl_assert_data_2.pred_txt = "b2: X == 3 + Y";
+      __gen_e_acsl_assert_data_2.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_2.fct = "j";
+      __gen_e_acsl_assert_data_2.line = 38;
+      __e_acsl_assert((long)X == 3L + Y,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
   }
   j();
@@ -511,63 +804,138 @@ void __gen_e_acsl_j(void)
     int __gen_e_acsl_assumes_value_2;
     __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0);
-    if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(X == 3,1,
-                                                      "Postcondition","j",
-                                                      "b1: X == 3",
-                                                      "tests/constructs/function_contract.i",
-                                                      36);
+    if (__gen_e_acsl_assumes_value_2) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"X",0,X);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Postcondition";
+      __gen_e_acsl_assert_data_4.pred_txt = "b1: X == 3";
+      __gen_e_acsl_assert_data_4.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_4.fct = "j";
+      __gen_e_acsl_assert_data_4.line = 36;
+      __e_acsl_assert(X == 3,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    }
     __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
-    if (__gen_e_acsl_assumes_value_2) __e_acsl_assert((long)X == Y + 1L,1,
-                                                      "Postcondition","j",
-                                                      "b2: X == Y + 1",
-                                                      "tests/constructs/function_contract.i",
-                                                      40);
+    if (__gen_e_acsl_assumes_value_2) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"X",0,X);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"Y",0,Y);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Postcondition";
+      __gen_e_acsl_assert_data_5.pred_txt = "b2: X == Y + 1";
+      __gen_e_acsl_assert_data_5.file = "tests/constructs/function_contract.i";
+      __gen_e_acsl_assert_data_5.fct = "j";
+      __gen_e_acsl_assert_data_5.line = 40;
+      __e_acsl_assert((long)X == Y + 1L,& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+    }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     return;
   }
 }
 
-/*@ requires X ≡ 3;
-    requires Y ≡ 2; */
+/*@ requires X == 3;
+    requires Y == 2; */
 void __gen_e_acsl_i(void)
 {
-  __e_acsl_assert(X == 3,1,"Precondition","i","X == 3",
-                  "tests/constructs/function_contract.i",27);
-  __e_acsl_assert(Y == 2,1,"Precondition","i","Y == 2",
-                  "tests/constructs/function_contract.i",28);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "X == 3";
+    __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i";
+    __gen_e_acsl_assert_data.fct = "i";
+    __gen_e_acsl_assert_data.line = 27;
+    __e_acsl_assert(X == 3,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"Y",0,Y);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Precondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "Y == 2";
+    __gen_e_acsl_assert_data_2.file = "tests/constructs/function_contract.i";
+    __gen_e_acsl_assert_data_2.fct = "i";
+    __gen_e_acsl_assert_data_2.line = 28;
+    __e_acsl_assert(Y == 2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+  }
   i();
   return;
 }
 
-/*@ requires X ≡ 2; */
+/*@ requires X == 2; */
 void __gen_e_acsl_h(void)
 {
-  __e_acsl_assert(X == 2,1,"Precondition","h","X == 2",
-                  "tests/constructs/function_contract.i",21);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "X == 2";
+    __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i";
+    __gen_e_acsl_assert_data.fct = "h";
+    __gen_e_acsl_assert_data.line = 21;
+    __e_acsl_assert(X == 2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
   h();
   return;
 }
 
-/*@ ensures X ≡ 2;
-    ensures Y ≡ 2; */
+/*@ ensures X == 2;
+    ensures Y == 2; */
 void __gen_e_acsl_g(void)
 {
   g();
-  __e_acsl_assert(X == 2,1,"Postcondition","g","X == 2",
-                  "tests/constructs/function_contract.i",14);
-  __e_acsl_assert(Y == 2,1,"Postcondition","g","Y == 2",
-                  "tests/constructs/function_contract.i",15);
-  return;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "X == 2";
+    __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i";
+    __gen_e_acsl_assert_data.fct = "g";
+    __gen_e_acsl_assert_data.line = 14;
+    __e_acsl_assert(X == 2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"Y",0,Y);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Postcondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "Y == 2";
+    __gen_e_acsl_assert_data_2.file = "tests/constructs/function_contract.i";
+    __gen_e_acsl_assert_data_2.fct = "g";
+    __gen_e_acsl_assert_data_2.line = 15;
+    __e_acsl_assert(Y == 2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    return;
+  }
 }
 
-/*@ ensures X ≡ 1; */
+/*@ ensures X == 1; */
 void __gen_e_acsl_f(void)
 {
   f();
-  __e_acsl_assert(X == 1,1,"Postcondition","f","X == 1",
-                  "tests/constructs/function_contract.i",8);
-  return;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "X == 1";
+    __gen_e_acsl_assert_data.file = "tests/constructs/function_contract.i";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 8;
+    __e_acsl_assert(X == 1,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    return;
+  }
 }
 
 
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_ghost.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_ghost.c
index 19a1e3dfd46a540d6525445e25bfe3c1dc20d623..449f3981866ae37e0e69322f25bd610e0e13ae90 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/gen_ghost.c
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_ghost.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -39,37 +39,82 @@ int main(void)
     int __gen_e_acsl_valid_read;
     int __gen_e_acsl_valid;
     __e_acsl_initialize((void *)P,sizeof(int));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"P",(void *)P);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)P,sizeof(int),
                                                   (void *)P,(void *)(& P));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main",
-                    "mem_access: \\valid_read(P)","tests/constructs/ghost.i",
-                    13);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "RTE";
+    __gen_e_acsl_assert_data.pred_txt = "mem_access: \\valid_read(P)";
+    __gen_e_acsl_assert_data.file = "tests/constructs/ghost.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 13;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"P",(void *)P);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)P,sizeof(int),(void *)P,
                                         (void *)(& P));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"RTE","main",
-                    "mem_access: \\valid(P)","tests/constructs/ghost.i",13);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid(P)";
+    __gen_e_acsl_assert_data_2.file = "tests/constructs/ghost.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 13;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   (*P) ++;
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"*q",0,*q);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"G",0,G);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& q),
                                                     sizeof(int *));
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid_read_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)q,sizeof(int),
                                                       (void *)q,
                                                       (void *)(& q));
       __gen_e_acsl_and = __gen_e_acsl_valid_read_2;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"RTE","main",
-                    "mem_access: \\valid_read(q)","tests/constructs/ghost.i",
-                    14);
-    __e_acsl_assert(*q == G,1,"Assertion","main","*q == G",
-                    "tests/constructs/ghost.i",14);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "RTE";
+    __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read(q)";
+    __gen_e_acsl_assert_data_4.file = "tests/constructs/ghost.i";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 14;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "*q == G";
+    __gen_e_acsl_assert_data_3.file = "tests/constructs/ghost.i";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 14;
+    __e_acsl_assert(*q == G,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert *q ≡ G; */ ;
+  /*@ assert *q == G; */ ;
   int x = 1;
   if (x) x ++;
   else {
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_invariant.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_invariant.c
index 65d2e93785cd4c110da3196e18c56fa94552d3c2..af91abe5cb17d3c6a83c9661f21aaa472ad8b9a6 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/gen_invariant.c
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_invariant.c
@@ -1,31 +1,58 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int x = 0;
   {
     int i = 0;
     while (i < 10) {
       {
         int __gen_e_acsl_and;
-        if (0 <= i) __gen_e_acsl_and = i < 10; else __gen_e_acsl_and = 0;
-        __e_acsl_assert(__gen_e_acsl_and,1,"Invariant","main","0 <= i < 10",
-                        "tests/constructs/invariant.i",9);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i);
+        if (0 <= i) {
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i);
+          __gen_e_acsl_and = i < 10;
+        }
+        else __gen_e_acsl_and = 0;
+        __gen_e_acsl_assert_data.blocking = 1;
+        __gen_e_acsl_assert_data.kind = "Invariant";
+        __gen_e_acsl_assert_data.pred_txt = "0 <= i < 10";
+        __gen_e_acsl_assert_data.file = "tests/constructs/invariant.i";
+        __gen_e_acsl_assert_data.fct = "main";
+        __gen_e_acsl_assert_data.line = 9;
+        __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
       }
-      /*@ invariant 0 ≤ i < 10; */ ;
+      /*@ invariant 0 <= i < 10; */ ;
       x += i;
-      __e_acsl_assert(i <= x,1,"Invariant","main","i <= x",
-                      "tests/constructs/invariant.i",11);
-      /*@ invariant i ≤ x; */ ;
+      {
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x);
+        __gen_e_acsl_assert_data_2.blocking = 1;
+        __gen_e_acsl_assert_data_2.kind = "Invariant";
+        __gen_e_acsl_assert_data_2.pred_txt = "i <= x";
+        __gen_e_acsl_assert_data_2.file = "tests/constructs/invariant.i";
+        __gen_e_acsl_assert_data_2.fct = "main";
+        __gen_e_acsl_assert_data_2.line = 11;
+        __e_acsl_assert(i <= x,& __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+      }
+      /*@ invariant i <= x; */ ;
       i ++;
     }
   }
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_labeled_stmt.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_labeled_stmt.c
index f1091f95d9bb2e93247dfc7feeceefe4c63d93a8..d56bf1f9785f5c30e33d961855f2952590e8962b 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/gen_labeled_stmt.c
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_labeled_stmt.c
@@ -1,11 +1,11 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int X = 0;
-/*@ ensures X ≡ 3; */
+/*@ ensures X == 3; */
 int main(void);
 
 int __gen_e_acsl_main(void)
@@ -13,20 +13,50 @@ int __gen_e_acsl_main(void)
   int __retres;
   goto L1;
   L1:
-  /*@ assert X ≡ 0; */
-  __e_acsl_assert(X == 0,1,"Assertion","main","X == 0",
-                  "tests/constructs/labeled_stmt.i",10);
+  /*@ assert X == 0; */
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "X == 0";
+    __gen_e_acsl_assert_data.file = "tests/constructs/labeled_stmt.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 10;
+    __e_acsl_assert(X == 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
   X = 1;
   goto L2;
   L2:
-  /*@ requires X ≡ 1;
-      ensures X ≡ 2; */
+  /*@ requires X == 1;
+      ensures X == 2; */
   {
-    __e_acsl_assert(X == 1,1,"Precondition","main","X == 1",
-                    "tests/constructs/labeled_stmt.i",13);
-    X = 2;
-    __e_acsl_assert(X == 2,1,"Postcondition","main","X == 2",
-                    "tests/constructs/labeled_stmt.i",13);
+    {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"X",0,X);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Precondition";
+      __gen_e_acsl_assert_data_2.pred_txt = "X == 1";
+      __gen_e_acsl_assert_data_2.file = "tests/constructs/labeled_stmt.i";
+      __gen_e_acsl_assert_data_2.fct = "main";
+      __gen_e_acsl_assert_data_2.line = 13;
+      __e_acsl_assert(X == 1,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+      X = 2;
+    }
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"X",0,X);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Postcondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "X == 2";
+    __gen_e_acsl_assert_data_3.file = "tests/constructs/labeled_stmt.i";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 13;
+    __e_acsl_assert(X == 2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   if (X) {
     X = 3;
@@ -37,14 +67,26 @@ int __gen_e_acsl_main(void)
   return_label: return __retres;
 }
 
-/*@ ensures X ≡ 3; */
+/*@ ensures X == 3; */
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   __retres = __gen_e_acsl_main();
-  __e_acsl_assert(X == 3,1,"Postcondition","main","X == 3",
-                  "tests/constructs/labeled_stmt.i",7);
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"X",0,X);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "X == 3";
+    __gen_e_acsl_assert_data.file = "tests/constructs/labeled_stmt.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 7;
+    __e_acsl_assert(X == 3,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_memory_clean();
+    return __retres;
+  }
 }
 
 
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_lazy.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_lazy.c
index 99047ada7fce8801fa3da7a63e74f6ca77b965a4..35ccee19da5db847f1423b6a67b0fb45600436da 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/gen_lazy.c
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_lazy.c
@@ -1,172 +1,417 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int x = 0;
   int y = 1;
   {
     int __gen_e_acsl_and;
-    if (x == 0) __gen_e_acsl_and = y == 1; else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","x == 0 && y == 1",
-                    "tests/constructs/lazy.i",9);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x);
+    if (x == 0) {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"y",0,y);
+      __gen_e_acsl_and = y == 1;
+    }
+    else __gen_e_acsl_and = 0;
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "x == 0 && y == 1";
+    __gen_e_acsl_assert_data.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 9;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert x ≡ 0 ∧ y ≡ 1; */ ;
+  /*@ assert x == 0 && y == 1; */ ;
   {
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x);
     if (x != 0) {
-      __e_acsl_assert(0,1,"RTE","main","division_by_zero: 0 != 0",
-                      "tests/constructs/lazy.i",10);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"y",0,y);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "RTE";
+      __gen_e_acsl_assert_data_3.pred_txt = "division_by_zero: 0 != 0";
+      __gen_e_acsl_assert_data_3.file = "tests/constructs/lazy.i";
+      __gen_e_acsl_assert_data_3.fct = "main";
+      __gen_e_acsl_assert_data_3.line = 10;
+      __e_acsl_assert(0,& __gen_e_acsl_assert_data_3);
       __gen_e_acsl_and_2 = y == 1 / 0;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main",
-                    "!(x != 0 && y == 1 / 0)","tests/constructs/lazy.i",10);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "!(x != 0 && y == 1 / 0)";
+    __gen_e_acsl_assert_data_2.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 10;
+    __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert ¬(x ≢ 0 ∧ y ≡ 1 / 0); */ ;
+  /*@ assert !(x != 0 && y == 1 / 0); */ ;
   {
     int __gen_e_acsl_or;
-    if (y == 1) __gen_e_acsl_or = 1; else __gen_e_acsl_or = x == 1;
-    __e_acsl_assert(__gen_e_acsl_or,1,"Assertion","main","y == 1 || x == 1",
-                    "tests/constructs/lazy.i",11);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"y",0,y);
+    if (y == 1) __gen_e_acsl_or = 1;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"x",0,x);
+      __gen_e_acsl_or = x == 1;
+    }
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "y == 1 || x == 1";
+    __gen_e_acsl_assert_data_4.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 11;
+    __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  /*@ assert y ≡ 1 ∨ x ≡ 1; */ ;
+  /*@ assert y == 1 || x == 1; */ ;
   {
     int __gen_e_acsl_or_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"x",0,x);
     if (x == 0) __gen_e_acsl_or_2 = 1;
     else {
-      __e_acsl_assert(0,1,"RTE","main","division_by_zero: 0 != 0",
-                      "tests/constructs/lazy.i",12);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"y",0,y);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "RTE";
+      __gen_e_acsl_assert_data_6.pred_txt = "division_by_zero: 0 != 0";
+      __gen_e_acsl_assert_data_6.file = "tests/constructs/lazy.i";
+      __gen_e_acsl_assert_data_6.fct = "main";
+      __gen_e_acsl_assert_data_6.line = 12;
+      __e_acsl_assert(0,& __gen_e_acsl_assert_data_6);
       __gen_e_acsl_or_2 = y == 1 / 0;
     }
-    __e_acsl_assert(__gen_e_acsl_or_2,1,"Assertion","main",
-                    "x == 0 || y == 1 / 0","tests/constructs/lazy.i",12);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "x == 0 || y == 1 / 0";
+    __gen_e_acsl_assert_data_5.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 12;
+    __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert x ≡ 0 ∨ y ≡ 1 / 0; */ ;
+  /*@ assert x == 0 || y == 1 / 0; */ ;
   {
     int __gen_e_acsl_implies;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"x",0,x);
     if (! (x == 0)) __gen_e_acsl_implies = 1;
-    else __gen_e_acsl_implies = y == 1;
-    __e_acsl_assert(__gen_e_acsl_implies,1,"Assertion","main",
-                    "x == 0 ==> y == 1","tests/constructs/lazy.i",13);
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"y",0,y);
+      __gen_e_acsl_implies = y == 1;
+    }
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "x == 0 ==> y == 1";
+    __gen_e_acsl_assert_data_7.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 13;
+    __e_acsl_assert(__gen_e_acsl_implies,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
-  /*@ assert x ≡ 0 ⇒ y ≡ 1; */ ;
+  /*@ assert x == 0 ==> y == 1; */ ;
   {
     int __gen_e_acsl_implies_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"x",0,x);
     if (! (x == 1)) __gen_e_acsl_implies_2 = 1;
     else {
-      __e_acsl_assert(0,1,"RTE","main","division_by_zero: 0 != 0",
-                      "tests/constructs/lazy.i",14);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"y",0,y);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+        {.values = (void *)0};
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "RTE";
+      __gen_e_acsl_assert_data_9.pred_txt = "division_by_zero: 0 != 0";
+      __gen_e_acsl_assert_data_9.file = "tests/constructs/lazy.i";
+      __gen_e_acsl_assert_data_9.fct = "main";
+      __gen_e_acsl_assert_data_9.line = 14;
+      __e_acsl_assert(0,& __gen_e_acsl_assert_data_9);
       __gen_e_acsl_implies_2 = y == 1 / 0;
     }
-    __e_acsl_assert(__gen_e_acsl_implies_2,1,"Assertion","main",
-                    "x == 1 ==> y == 1 / 0","tests/constructs/lazy.i",14);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "x == 1 ==> y == 1 / 0";
+    __gen_e_acsl_assert_data_8.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 14;
+    __e_acsl_assert(__gen_e_acsl_implies_2,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
-  /*@ assert x ≡ 1 ⇒ y ≡ 1 / 0; */ ;
+  /*@ assert x == 1 ==> y == 1 / 0; */ ;
   {
     int __gen_e_acsl_if;
-    if (x != 0) __gen_e_acsl_if = x != 0; else __gen_e_acsl_if = y != 0;
-    __e_acsl_assert(__gen_e_acsl_if,1,"Assertion","main",
-                    "x != 0? x != 0: y != 0","tests/constructs/lazy.i",15);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"x",0,x);
+    if (x != 0) {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"x",0,x);
+      __gen_e_acsl_if = x != 0;
+    }
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"y",0,y);
+      __gen_e_acsl_if = y != 0;
+    }
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "x != 0? x != 0: y != 0";
+    __gen_e_acsl_assert_data_10.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 15;
+    __e_acsl_assert(__gen_e_acsl_if,& __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
   }
-  /*@ assert x ≢ 0? x ≢ 0: y ≢ 0; */ ;
+  /*@ assert x != 0? x != 0: y != 0; */ ;
   {
     int __gen_e_acsl_if_2;
-    if (y != 0) __gen_e_acsl_if_2 = y != 0; else __gen_e_acsl_if_2 = x != 0;
-    __e_acsl_assert(__gen_e_acsl_if_2,1,"Assertion","main",
-                    "y != 0? y != 0: x != 0","tests/constructs/lazy.i",16);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"y",0,y);
+    if (y != 0) {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"y",0,y);
+      __gen_e_acsl_if_2 = y != 0;
+    }
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"x",0,x);
+      __gen_e_acsl_if_2 = x != 0;
+    }
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "y != 0? y != 0: x != 0";
+    __gen_e_acsl_assert_data_11.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 16;
+    __e_acsl_assert(__gen_e_acsl_if_2,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
   }
-  /*@ assert y ≢ 0? y ≢ 0: x ≢ 0; */ ;
+  /*@ assert y != 0? y != 0: x != 0; */ ;
   {
     int __gen_e_acsl_if_3;
-    if (x == 1) __gen_e_acsl_if_3 = x == 18; else __gen_e_acsl_if_3 = x == 0;
-    __e_acsl_assert(__gen_e_acsl_if_3,1,"Assertion","main",
-                    "x == 1? x == 18: x == 0","tests/constructs/lazy.i",17);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"x",0,x);
+    if (x == 1) {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"x",0,x);
+      __gen_e_acsl_if_3 = x == 18;
+    }
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"x",0,x);
+      __gen_e_acsl_if_3 = x == 0;
+    }
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "x == 1? x == 18: x == 0";
+    __gen_e_acsl_assert_data_12.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 17;
+    __e_acsl_assert(__gen_e_acsl_if_3,& __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
   }
-  /*@ assert x ≡ 1? x ≡ 18: x ≡ 0; */ ;
+  /*@ assert x == 1? x == 18: x == 0; */ ;
   {
     int __gen_e_acsl_implies_3;
     int __gen_e_acsl_equiv;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"x",0,x);
     if (! (x == 2)) __gen_e_acsl_implies_3 = 1;
-    else __gen_e_acsl_implies_3 = y == 3;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"y",0,y);
+      __gen_e_acsl_implies_3 = y == 3;
+    }
     if (__gen_e_acsl_implies_3) {
       int __gen_e_acsl_implies_4;
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"y",0,y);
       if (! (y == 3)) __gen_e_acsl_implies_4 = 1;
-      else __gen_e_acsl_implies_4 = x == 2;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"x",0,x);
+        __gen_e_acsl_implies_4 = x == 2;
+      }
       __gen_e_acsl_equiv = __gen_e_acsl_implies_4;
     }
     else __gen_e_acsl_equiv = 0;
-    __e_acsl_assert(__gen_e_acsl_equiv,1,"Assertion","main",
-                    "x == 2 <==> y == 3","tests/constructs/lazy.i",20);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "x == 2 <==> y == 3";
+    __gen_e_acsl_assert_data_13.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 20;
+    __e_acsl_assert(__gen_e_acsl_equiv,& __gen_e_acsl_assert_data_13);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
   }
-  /*@ assert x ≡ 2 ⇔ y ≡ 3; */ ;
+  /*@ assert x == 2 <==> y == 3; */ ;
   {
     int __gen_e_acsl_implies_5;
     int __gen_e_acsl_equiv_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"x",0,x);
     if (! (x == 0)) __gen_e_acsl_implies_5 = 1;
-    else __gen_e_acsl_implies_5 = y == 1;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"y",0,y);
+      __gen_e_acsl_implies_5 = y == 1;
+    }
     if (__gen_e_acsl_implies_5) {
       int __gen_e_acsl_implies_6;
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"y",0,y);
       if (! (y == 1)) __gen_e_acsl_implies_6 = 1;
-      else __gen_e_acsl_implies_6 = x == 0;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"x",0,x);
+        __gen_e_acsl_implies_6 = x == 0;
+      }
       __gen_e_acsl_equiv_2 = __gen_e_acsl_implies_6;
     }
     else __gen_e_acsl_equiv_2 = 0;
-    __e_acsl_assert(__gen_e_acsl_equiv_2,1,"Assertion","main",
-                    "x == 0 <==> y == 1","tests/constructs/lazy.i",21);
+    __gen_e_acsl_assert_data_14.blocking = 1;
+    __gen_e_acsl_assert_data_14.kind = "Assertion";
+    __gen_e_acsl_assert_data_14.pred_txt = "x == 0 <==> y == 1";
+    __gen_e_acsl_assert_data_14.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data_14.fct = "main";
+    __gen_e_acsl_assert_data_14.line = 21;
+    __e_acsl_assert(__gen_e_acsl_equiv_2,& __gen_e_acsl_assert_data_14);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
   }
-  /*@ assert x ≡ 0 ⇔ y ≡ 1; */ ;
+  /*@ assert x == 0 <==> y == 1; */ ;
   {
     int __gen_e_acsl_if_4;
-    if (x != 0) __gen_e_acsl_if_4 = x; else __gen_e_acsl_if_4 = y;
-    __e_acsl_assert((__gen_e_acsl_if_4 != 0) == (x == 0),1,"Assertion",
-                    "main","((x != 0? x: y) != 0) == (x == 0)",
-                    "tests/constructs/lazy.i",24);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"x",0,x);
+    if (x != 0) {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"x",0,x);
+      __gen_e_acsl_if_4 = x;
+    }
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"y",0,y);
+      __gen_e_acsl_if_4 = y;
+    }
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"x",0,x);
+    __gen_e_acsl_assert_data_15.blocking = 1;
+    __gen_e_acsl_assert_data_15.kind = "Assertion";
+    __gen_e_acsl_assert_data_15.pred_txt = "((x != 0? x: y) != 0) == (x == 0)";
+    __gen_e_acsl_assert_data_15.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data_15.fct = "main";
+    __gen_e_acsl_assert_data_15.line = 24;
+    __e_acsl_assert((__gen_e_acsl_if_4 != 0) == (x == 0),
+                    & __gen_e_acsl_assert_data_15);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
   }
-  /*@ assert ((x ≢ 0? x: y) ≢ 0) ≡ (x ≡ 0); */ ;
+  /*@ assert ((x != 0? x: y) != 0) == (x == 0); */ ;
   {
     int __gen_e_acsl_and_3;
     int __gen_e_acsl_or_3;
-    if (x != 0) __gen_e_acsl_and_3 = y != 0; else __gen_e_acsl_and_3 = 0;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"x",0,x);
+    if (x != 0) {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"y",0,y);
+      __gen_e_acsl_and_3 = y != 0;
+    }
+    else __gen_e_acsl_and_3 = 0;
     if (__gen_e_acsl_and_3) __gen_e_acsl_or_3 = 1;
-    else __gen_e_acsl_or_3 = y != 0;
-    __e_acsl_assert(__gen_e_acsl_or_3,1,"Assertion","main",
-                    "(x != 0 && y != 0) || y != 0","tests/constructs/lazy.i",
-                    25);
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"y",0,y);
+      __gen_e_acsl_or_3 = y != 0;
+    }
+    __gen_e_acsl_assert_data_16.blocking = 1;
+    __gen_e_acsl_assert_data_16.kind = "Assertion";
+    __gen_e_acsl_assert_data_16.pred_txt = "(x != 0 && y != 0) || y != 0";
+    __gen_e_acsl_assert_data_16.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data_16.fct = "main";
+    __gen_e_acsl_assert_data_16.line = 25;
+    __e_acsl_assert(__gen_e_acsl_or_3,& __gen_e_acsl_assert_data_16);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
   }
-  /*@ assert (x ≢ 0 ∧ y ≢ 0) ∨ y ≢ 0; */ ;
+  /*@ assert (x != 0 && y != 0) || y != 0; */ ;
   {
     int __gen_e_acsl_or_4;
     int __gen_e_acsl_and_4;
-    if (x != 0) __gen_e_acsl_or_4 = 1; else __gen_e_acsl_or_4 = y != 0;
-    if (__gen_e_acsl_or_4) __gen_e_acsl_and_4 = y == 1;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"x",0,x);
+    if (x != 0) __gen_e_acsl_or_4 = 1;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"y",0,y);
+      __gen_e_acsl_or_4 = y != 0;
+    }
+    if (__gen_e_acsl_or_4) {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"y",0,y);
+      __gen_e_acsl_and_4 = y == 1;
+    }
     else __gen_e_acsl_and_4 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main",
-                    "(x != 0 || y != 0) && y == 1","tests/constructs/lazy.i",
-                    26);
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "Assertion";
+    __gen_e_acsl_assert_data_17.pred_txt = "(x != 0 || y != 0) && y == 1";
+    __gen_e_acsl_assert_data_17.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data_17.fct = "main";
+    __gen_e_acsl_assert_data_17.line = 26;
+    __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_17);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
   }
-  /*@ assert (x ≢ 0 ∨ y ≢ 0) ∧ y ≡ 1; */ ;
+  /*@ assert (x != 0 || y != 0) && y == 1; */ ;
   {
     int __gen_e_acsl_or_5;
-    if (x != 0) __gen_e_acsl_or_5 = 1; else __gen_e_acsl_or_5 = y != 0;
-    __e_acsl_assert(__gen_e_acsl_or_5 == (y != 0),1,"Assertion","main",
-                    "(x != 0 || y != 0) == (y != 0)",
-                    "tests/constructs/lazy.i",27);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"x",0,x);
+    if (x != 0) __gen_e_acsl_or_5 = 1;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"y",0,y);
+      __gen_e_acsl_or_5 = y != 0;
+    }
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"y",0,y);
+    __gen_e_acsl_assert_data_18.blocking = 1;
+    __gen_e_acsl_assert_data_18.kind = "Assertion";
+    __gen_e_acsl_assert_data_18.pred_txt = "(x != 0 || y != 0) == (y != 0)";
+    __gen_e_acsl_assert_data_18.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data_18.fct = "main";
+    __gen_e_acsl_assert_data_18.line = 27;
+    __e_acsl_assert(__gen_e_acsl_or_5 == (y != 0),
+                    & __gen_e_acsl_assert_data_18);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18);
   }
-  /*@ assert (x ≢ 0 ∨ y ≢ 0) ≡ (y ≢ 0); */ ;
+  /*@ assert (x != 0 || y != 0) == (y != 0); */ ;
   {
     int __gen_e_acsl_and_5;
-    if (x != 0) __gen_e_acsl_and_5 = y != 0; else __gen_e_acsl_and_5 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_5 == (x != 0),1,"Assertion","main",
-                    "(x != 0 && y != 0) == (x != 0)",
-                    "tests/constructs/lazy.i",28);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,"x",0,x);
+    if (x != 0) {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,"y",0,y);
+      __gen_e_acsl_and_5 = y != 0;
+    }
+    else __gen_e_acsl_and_5 = 0;
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,"x",0,x);
+    __gen_e_acsl_assert_data_19.blocking = 1;
+    __gen_e_acsl_assert_data_19.kind = "Assertion";
+    __gen_e_acsl_assert_data_19.pred_txt = "(x != 0 && y != 0) == (x != 0)";
+    __gen_e_acsl_assert_data_19.file = "tests/constructs/lazy.i";
+    __gen_e_acsl_assert_data_19.fct = "main";
+    __gen_e_acsl_assert_data_19.line = 28;
+    __e_acsl_assert(__gen_e_acsl_and_5 == (x != 0),
+                    & __gen_e_acsl_assert_data_19);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19);
   }
-  /*@ assert (x ≢ 0 ∧ y ≢ 0) ≡ (x ≢ 0); */ ;
+  /*@ assert (x != 0 && y != 0) == (x != 0); */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_loop.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_loop.c
index 029e81dbde948f4cf261e8fe0736c00e13f1fa9c..775ef237069dadcd676f7dc852cbe2a4a2769764 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/gen_loop.c
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_loop.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -11,20 +11,45 @@ void simple_loop(void)
     int i = 0;
     {
       int __gen_e_acsl_and;
-      if (0 <= i) __gen_e_acsl_and = i <= 10; else __gen_e_acsl_and = 0;
-      __e_acsl_assert(__gen_e_acsl_and,1,"Invariant","simple_loop",
-                      "0 <= i <= 10","tests/constructs/loop.i",8);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i);
+      if (0 <= i) {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i);
+        __gen_e_acsl_and = i <= 10;
+      }
+      else __gen_e_acsl_and = 0;
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Invariant";
+      __gen_e_acsl_assert_data.pred_txt = "0 <= i <= 10";
+      __gen_e_acsl_assert_data.file = "tests/constructs/loop.i";
+      __gen_e_acsl_assert_data.fct = "simple_loop";
+      __gen_e_acsl_assert_data.line = 8;
+      __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
-    /*@ loop invariant 0 ≤ i ≤ 10; */
+    /*@ loop invariant 0 <= i <= 10; */
     while (i < 10) {
       sum += i;
       {
         int __gen_e_acsl_and_2;
         i ++;
-        if (0 <= i) __gen_e_acsl_and_2 = i <= 10;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i);
+        if (0 <= i) {
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i);
+          __gen_e_acsl_and_2 = i <= 10;
+        }
         else __gen_e_acsl_and_2 = 0;
-        __e_acsl_assert(__gen_e_acsl_and_2,1,"Invariant","simple_loop",
-                        "0 <= i <= 10","tests/constructs/loop.i",8);
+        __gen_e_acsl_assert_data_2.blocking = 1;
+        __gen_e_acsl_assert_data_2.kind = "Invariant";
+        __gen_e_acsl_assert_data_2.pred_txt = "0 <= i <= 10";
+        __gen_e_acsl_assert_data_2.file = "tests/constructs/loop.i";
+        __gen_e_acsl_assert_data_2.fct = "simple_loop";
+        __gen_e_acsl_assert_data_2.line = 8;
+        __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
       }
     }
   }
@@ -37,11 +62,23 @@ void nested_loops(void)
   int i = 0;
   {
     int __gen_e_acsl_and;
-    if (0 <= i) __gen_e_acsl_and = i <= 4; else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Invariant","nested_loops",
-                    "0 <= i <= 4","tests/constructs/loop.i",15);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i);
+    if (0 <= i) {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i);
+      __gen_e_acsl_and = i <= 4;
+    }
+    else __gen_e_acsl_and = 0;
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Invariant";
+    __gen_e_acsl_assert_data.pred_txt = "0 <= i <= 4";
+    __gen_e_acsl_assert_data.file = "tests/constructs/loop.i";
+    __gen_e_acsl_assert_data.fct = "nested_loops";
+    __gen_e_acsl_assert_data.line = 15;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ loop invariant 0 ≤ i ≤ 4; */
+  /*@ loop invariant 0 <= i <= 4; */
   while (i < 4) {
     {
       int j = 0;
@@ -50,6 +87,8 @@ void nested_loops(void)
         int __gen_e_acsl_k;
         int __gen_e_acsl_l;
         int __gen_e_acsl_and_2;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+          {.values = (void *)0};
         __gen_e_acsl_forall = 1;
         __gen_e_acsl_k = 0;
         while (1) {
@@ -57,40 +96,103 @@ void nested_loops(void)
           __gen_e_acsl_l = 0;
           while (1) {
             if (__gen_e_acsl_l < j) ; else break;
-            __e_acsl_assert(__gen_e_acsl_l < 8,1,"RTE","nested_loops",
-                            "index_bound: __gen_e_acsl_l < 8",
-                            "tests/constructs/loop.i",19);
-            __e_acsl_assert(0 <= __gen_e_acsl_l,1,"RTE","nested_loops",
-                            "index_bound: 0 <= __gen_e_acsl_l",
-                            "tests/constructs/loop.i",19);
-            __e_acsl_assert(__gen_e_acsl_k < 4,1,"RTE","nested_loops",
-                            "index_bound: __gen_e_acsl_k < 4",
-                            "tests/constructs/loop.i",19);
-            __e_acsl_assert(0 <= __gen_e_acsl_k,1,"RTE","nested_loops",
-                            "index_bound: 0 <= __gen_e_acsl_k",
-                            "tests/constructs/loop.i",19);
-            if ((long)t[__gen_e_acsl_k][__gen_e_acsl_l] == __gen_e_acsl_k * (long)__gen_e_acsl_l) 
-              ;
-            else {
-              __gen_e_acsl_forall = 0;
-              goto e_acsl_end_loop1;
+            {
+              __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+                {.values = (void *)0};
+              __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                           "__gen_e_acsl_l",0,__gen_e_acsl_l);
+              __gen_e_acsl_assert_data_3.blocking = 1;
+              __gen_e_acsl_assert_data_3.kind = "RTE";
+              __gen_e_acsl_assert_data_3.pred_txt = "index_bound: __gen_e_acsl_l < 8";
+              __gen_e_acsl_assert_data_3.file = "tests/constructs/loop.i";
+              __gen_e_acsl_assert_data_3.fct = "nested_loops";
+              __gen_e_acsl_assert_data_3.line = 19;
+              __e_acsl_assert(__gen_e_acsl_l < 8,
+                              & __gen_e_acsl_assert_data_3);
+              __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+              __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+                {.values = (void *)0};
+              __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                           "__gen_e_acsl_l",0,__gen_e_acsl_l);
+              __gen_e_acsl_assert_data_4.blocking = 1;
+              __gen_e_acsl_assert_data_4.kind = "RTE";
+              __gen_e_acsl_assert_data_4.pred_txt = "index_bound: 0 <= __gen_e_acsl_l";
+              __gen_e_acsl_assert_data_4.file = "tests/constructs/loop.i";
+              __gen_e_acsl_assert_data_4.fct = "nested_loops";
+              __gen_e_acsl_assert_data_4.line = 19;
+              __e_acsl_assert(0 <= __gen_e_acsl_l,
+                              & __gen_e_acsl_assert_data_4);
+              __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+              __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+                {.values = (void *)0};
+              __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                           "__gen_e_acsl_k",0,__gen_e_acsl_k);
+              __gen_e_acsl_assert_data_5.blocking = 1;
+              __gen_e_acsl_assert_data_5.kind = "RTE";
+              __gen_e_acsl_assert_data_5.pred_txt = "index_bound: __gen_e_acsl_k < 4";
+              __gen_e_acsl_assert_data_5.file = "tests/constructs/loop.i";
+              __gen_e_acsl_assert_data_5.fct = "nested_loops";
+              __gen_e_acsl_assert_data_5.line = 19;
+              __e_acsl_assert(__gen_e_acsl_k < 4,
+                              & __gen_e_acsl_assert_data_5);
+              __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+              __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+                {.values = (void *)0};
+              __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                           "__gen_e_acsl_k",0,__gen_e_acsl_k);
+              __gen_e_acsl_assert_data_6.blocking = 1;
+              __gen_e_acsl_assert_data_6.kind = "RTE";
+              __gen_e_acsl_assert_data_6.pred_txt = "index_bound: 0 <= __gen_e_acsl_k";
+              __gen_e_acsl_assert_data_6.file = "tests/constructs/loop.i";
+              __gen_e_acsl_assert_data_6.fct = "nested_loops";
+              __gen_e_acsl_assert_data_6.line = 19;
+              __e_acsl_assert(0 <= __gen_e_acsl_k,
+                              & __gen_e_acsl_assert_data_6);
+              __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+              if ((long)t[__gen_e_acsl_k][__gen_e_acsl_l] == __gen_e_acsl_k * (long)__gen_e_acsl_l) 
+                ;
+              else {
+                __gen_e_acsl_forall = 0;
+                goto e_acsl_end_loop1;
+              }
             }
             __gen_e_acsl_l ++;
           }
           __gen_e_acsl_k ++;
         }
         e_acsl_end_loop1: ;
-        __e_acsl_assert(__gen_e_acsl_forall,1,"Invariant","nested_loops",
-                        "\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k * l",
-                        "tests/constructs/loop.i",19);
-        if (0 <= j) __gen_e_acsl_and_2 = j <= 8; else __gen_e_acsl_and_2 = 0;
-        __e_acsl_assert(__gen_e_acsl_and_2,1,"Invariant","nested_loops",
-                        "0 <= j <= 8","tests/constructs/loop.i",17);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k * l",
+                                     0,__gen_e_acsl_forall);
+        __gen_e_acsl_assert_data_2.blocking = 1;
+        __gen_e_acsl_assert_data_2.kind = "Invariant";
+        __gen_e_acsl_assert_data_2.pred_txt = "\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k * l";
+        __gen_e_acsl_assert_data_2.file = "tests/constructs/loop.i";
+        __gen_e_acsl_assert_data_2.fct = "nested_loops";
+        __gen_e_acsl_assert_data_2.line = 19;
+        __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"j",0,j);
+        if (0 <= j) {
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"j",0,j);
+          __gen_e_acsl_and_2 = j <= 8;
+        }
+        else __gen_e_acsl_and_2 = 0;
+        __gen_e_acsl_assert_data_7.blocking = 1;
+        __gen_e_acsl_assert_data_7.kind = "Invariant";
+        __gen_e_acsl_assert_data_7.pred_txt = "0 <= j <= 8";
+        __gen_e_acsl_assert_data_7.file = "tests/constructs/loop.i";
+        __gen_e_acsl_assert_data_7.fct = "nested_loops";
+        __gen_e_acsl_assert_data_7.line = 17;
+        __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_7);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
       }
-      /*@ loop invariant 0 ≤ j ≤ 8;
+      /*@ loop invariant 0 <= j <= 8;
           loop invariant
-            ∀ ℤ k, ℤ l;
-              0 ≤ k < i ∧ 0 ≤ l < j ⇒ t[k][l] ≡ k * l;
+            \forall integer k, integer l;
+              0 <= k < i && 0 <= l < j ==> t[k][l] == k * l;
       */
       while (j < 8) {
         t[i][j] = i * j;
@@ -100,10 +202,25 @@ void nested_loops(void)
           int __gen_e_acsl_k_2;
           int __gen_e_acsl_l_2;
           j ++;
-          if (0 <= j) __gen_e_acsl_and_3 = j <= 8;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"j",0,j);
+          if (0 <= j) {
+            __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"j",0,
+                                         j);
+            __gen_e_acsl_and_3 = j <= 8;
+          }
           else __gen_e_acsl_and_3 = 0;
-          __e_acsl_assert(__gen_e_acsl_and_3,1,"Invariant","nested_loops",
-                          "0 <= j <= 8","tests/constructs/loop.i",17);
+          __gen_e_acsl_assert_data_8.blocking = 1;
+          __gen_e_acsl_assert_data_8.kind = "Invariant";
+          __gen_e_acsl_assert_data_8.pred_txt = "0 <= j <= 8";
+          __gen_e_acsl_assert_data_8.file = "tests/constructs/loop.i";
+          __gen_e_acsl_assert_data_8.fct = "nested_loops";
+          __gen_e_acsl_assert_data_8.line = 17;
+          __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_8);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+            {.values = (void *)0};
           __gen_e_acsl_forall_2 = 1;
           __gen_e_acsl_k_2 = 0;
           while (1) {
@@ -111,41 +228,108 @@ void nested_loops(void)
             __gen_e_acsl_l_2 = 0;
             while (1) {
               if (__gen_e_acsl_l_2 < j) ; else break;
-              __e_acsl_assert(__gen_e_acsl_l_2 < 8,1,"RTE","nested_loops",
-                              "index_bound: __gen_e_acsl_l_2 < 8",
-                              "tests/constructs/loop.i",19);
-              __e_acsl_assert(0 <= __gen_e_acsl_l_2,1,"RTE","nested_loops",
-                              "index_bound: 0 <= __gen_e_acsl_l_2",
-                              "tests/constructs/loop.i",19);
-              __e_acsl_assert(__gen_e_acsl_k_2 < 4,1,"RTE","nested_loops",
-                              "index_bound: __gen_e_acsl_k_2 < 4",
-                              "tests/constructs/loop.i",19);
-              __e_acsl_assert(0 <= __gen_e_acsl_k_2,1,"RTE","nested_loops",
-                              "index_bound: 0 <= __gen_e_acsl_k_2",
-                              "tests/constructs/loop.i",19);
-              if ((long)t[__gen_e_acsl_k_2][__gen_e_acsl_l_2] == __gen_e_acsl_k_2 * (long)__gen_e_acsl_l_2) 
-                ;
-              else {
-                __gen_e_acsl_forall_2 = 0;
-                goto e_acsl_end_loop2;
+              {
+                __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+                  {.values = (void *)0};
+                __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                             "__gen_e_acsl_l_2",0,
+                                             __gen_e_acsl_l_2);
+                __gen_e_acsl_assert_data_10.blocking = 1;
+                __gen_e_acsl_assert_data_10.kind = "RTE";
+                __gen_e_acsl_assert_data_10.pred_txt = "index_bound: __gen_e_acsl_l_2 < 8";
+                __gen_e_acsl_assert_data_10.file = "tests/constructs/loop.i";
+                __gen_e_acsl_assert_data_10.fct = "nested_loops";
+                __gen_e_acsl_assert_data_10.line = 19;
+                __e_acsl_assert(__gen_e_acsl_l_2 < 8,
+                                & __gen_e_acsl_assert_data_10);
+                __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
+                __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+                  {.values = (void *)0};
+                __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                             "__gen_e_acsl_l_2",0,
+                                             __gen_e_acsl_l_2);
+                __gen_e_acsl_assert_data_11.blocking = 1;
+                __gen_e_acsl_assert_data_11.kind = "RTE";
+                __gen_e_acsl_assert_data_11.pred_txt = "index_bound: 0 <= __gen_e_acsl_l_2";
+                __gen_e_acsl_assert_data_11.file = "tests/constructs/loop.i";
+                __gen_e_acsl_assert_data_11.fct = "nested_loops";
+                __gen_e_acsl_assert_data_11.line = 19;
+                __e_acsl_assert(0 <= __gen_e_acsl_l_2,
+                                & __gen_e_acsl_assert_data_11);
+                __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
+                __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+                  {.values = (void *)0};
+                __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                             "__gen_e_acsl_k_2",0,
+                                             __gen_e_acsl_k_2);
+                __gen_e_acsl_assert_data_12.blocking = 1;
+                __gen_e_acsl_assert_data_12.kind = "RTE";
+                __gen_e_acsl_assert_data_12.pred_txt = "index_bound: __gen_e_acsl_k_2 < 4";
+                __gen_e_acsl_assert_data_12.file = "tests/constructs/loop.i";
+                __gen_e_acsl_assert_data_12.fct = "nested_loops";
+                __gen_e_acsl_assert_data_12.line = 19;
+                __e_acsl_assert(__gen_e_acsl_k_2 < 4,
+                                & __gen_e_acsl_assert_data_12);
+                __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
+                __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+                  {.values = (void *)0};
+                __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                             "__gen_e_acsl_k_2",0,
+                                             __gen_e_acsl_k_2);
+                __gen_e_acsl_assert_data_13.blocking = 1;
+                __gen_e_acsl_assert_data_13.kind = "RTE";
+                __gen_e_acsl_assert_data_13.pred_txt = "index_bound: 0 <= __gen_e_acsl_k_2";
+                __gen_e_acsl_assert_data_13.file = "tests/constructs/loop.i";
+                __gen_e_acsl_assert_data_13.fct = "nested_loops";
+                __gen_e_acsl_assert_data_13.line = 19;
+                __e_acsl_assert(0 <= __gen_e_acsl_k_2,
+                                & __gen_e_acsl_assert_data_13);
+                __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
+                if ((long)t[__gen_e_acsl_k_2][__gen_e_acsl_l_2] == __gen_e_acsl_k_2 * (long)__gen_e_acsl_l_2) 
+                  ;
+                else {
+                  __gen_e_acsl_forall_2 = 0;
+                  goto e_acsl_end_loop2;
+                }
               }
               __gen_e_acsl_l_2 ++;
             }
             __gen_e_acsl_k_2 ++;
           }
           e_acsl_end_loop2: ;
-          __e_acsl_assert(__gen_e_acsl_forall_2,1,"Invariant","nested_loops",
-                          "\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k * l",
-                          "tests/constructs/loop.i",19);
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                       "\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k * l",
+                                       0,__gen_e_acsl_forall_2);
+          __gen_e_acsl_assert_data_9.blocking = 1;
+          __gen_e_acsl_assert_data_9.kind = "Invariant";
+          __gen_e_acsl_assert_data_9.pred_txt = "\\forall integer k, integer l; 0 <= k < i && 0 <= l < j ==> t[k][l] == k * l";
+          __gen_e_acsl_assert_data_9.file = "tests/constructs/loop.i";
+          __gen_e_acsl_assert_data_9.fct = "nested_loops";
+          __gen_e_acsl_assert_data_9.line = 19;
+          __e_acsl_assert(__gen_e_acsl_forall_2,& __gen_e_acsl_assert_data_9);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
         }
       }
     }
     {
       int __gen_e_acsl_and_4;
       i ++;
-      if (0 <= i) __gen_e_acsl_and_4 = i <= 4; else __gen_e_acsl_and_4 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_4,1,"Invariant","nested_loops",
-                      "0 <= i <= 4","tests/constructs/loop.i",15);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"i",0,i);
+      if (0 <= i) {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"i",0,i);
+        __gen_e_acsl_and_4 = i <= 4;
+      }
+      else __gen_e_acsl_and_4 = 0;
+      __gen_e_acsl_assert_data_14.blocking = 1;
+      __gen_e_acsl_assert_data_14.kind = "Invariant";
+      __gen_e_acsl_assert_data_14.pred_txt = "0 <= i <= 4";
+      __gen_e_acsl_assert_data_14.file = "tests/constructs/loop.i";
+      __gen_e_acsl_assert_data_14.fct = "nested_loops";
+      __gen_e_acsl_assert_data_14.line = 15;
+      __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_14);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
     }
   }
   return;
@@ -158,20 +342,46 @@ void unnatural_loop(void)
     int i = 0;
     {
       int __gen_e_acsl_and;
-      if (0 <= i) __gen_e_acsl_and = i <= 6; else __gen_e_acsl_and = 0;
-      __e_acsl_assert(__gen_e_acsl_and,1,"Invariant","unnatural_loop",
-                      "0 <= i <= 6","tests/constructs/loop.i",26);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i);
+      if (0 <= i) {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i);
+        __gen_e_acsl_and = i <= 6;
+      }
+      else __gen_e_acsl_and = 0;
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Invariant";
+      __gen_e_acsl_assert_data.pred_txt = "0 <= i <= 6";
+      __gen_e_acsl_assert_data.file = "tests/constructs/loop.i";
+      __gen_e_acsl_assert_data.fct = "unnatural_loop";
+      __gen_e_acsl_assert_data.line = 26;
+      __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
-    /*@ loop invariant 0 ≤ i ≤ 6; */
+    /*@ loop invariant 0 <= i <= 6; */
     while (i < 10) {
       if (x == 5) break;
       x = i;
       {
         int __gen_e_acsl_and_2;
         i ++;
-        if (0 <= i) __gen_e_acsl_and_2 = i <= 6; else __gen_e_acsl_and_2 = 0;
-        __e_acsl_assert(__gen_e_acsl_and_2,1,"Invariant","unnatural_loop",
-                        "0 <= i <= 6","tests/constructs/loop.i",26);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i);
+        if (0 <= i) {
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i);
+          __gen_e_acsl_and_2 = i <= 6;
+        }
+        else __gen_e_acsl_and_2 = 0;
+        __gen_e_acsl_assert_data_2.blocking = 1;
+        __gen_e_acsl_assert_data_2.kind = "Invariant";
+        __gen_e_acsl_assert_data_2.pred_txt = "0 <= i <= 6";
+        __gen_e_acsl_assert_data_2.file = "tests/constructs/loop.i";
+        __gen_e_acsl_assert_data_2.fct = "unnatural_loop";
+        __gen_e_acsl_assert_data_2.line = 26;
+        __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
       }
     }
   }
@@ -181,10 +391,12 @@ void unnatural_loop(void)
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   simple_loop();
   nested_loops();
   unnatural_loop();
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_nested_code_annot.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_nested_code_annot.c
index 39cb8590d19d9d758c879547eb4b5409b448bca5..d4fa8303b4e17ad0a7709a7152842405854cc127 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/gen_nested_code_annot.c
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_nested_code_annot.c
@@ -1,52 +1,150 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int x = 0;
   int y = 1;
-  __e_acsl_assert(x < y,1,"Assertion","main","x < y",
-                  "tests/constructs/nested_code_annot.i",7);
-  /*@ assert x < y; */ ;
-  __e_acsl_assert(x == 0,1,"Precondition","main","x == 0",
-                  "tests/constructs/nested_code_annot.i",8);
-  /*@ requires x ≡ 0;
-      ensures x ≥ 1; */
-  if (x) {
-    __e_acsl_assert(0,1,"Assertion","main","\\false",
-                    "tests/constructs/nested_code_annot.i",12);
-    /*@ assert \false; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"y",0,y);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "x < y";
+    __gen_e_acsl_assert_data.file = "tests/constructs/nested_code_annot.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 7;
+    __e_acsl_assert(x < y,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  else {
-    __e_acsl_assert(x == 0,1,"Precondition","main","x == 0",
-                    "tests/constructs/nested_code_annot.i",14);
-    /*@ requires x ≡ 0;
-        ensures x ≡ 1; */
-    x ++;
-    __e_acsl_assert(x == 1,1,"Postcondition","main","x == 1",
-                    "tests/constructs/nested_code_annot.i",15);
+  /*@ assert x < y; */ ;
+  {
+    {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Precondition";
+      __gen_e_acsl_assert_data_2.pred_txt = "x == 0";
+      __gen_e_acsl_assert_data_2.file = "tests/constructs/nested_code_annot.i";
+      __gen_e_acsl_assert_data_2.fct = "main";
+      __gen_e_acsl_assert_data_2.line = 8;
+      __e_acsl_assert(x == 0,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    }
+    /*@ requires x == 0;
+        ensures x >= 1; */
     if (x) {
-      __e_acsl_assert(x == 1,1,"Precondition","main","x == 1",
-                      "tests/constructs/nested_code_annot.i",18);
-      /*@ requires x ≡ 1;
-          ensures x ≡ 2; */
-      x ++;
-      __e_acsl_assert(x == 2,1,"Postcondition","main","x == 2",
-                      "tests/constructs/nested_code_annot.i",19);
+      {
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+          {.values = (void *)0};
+        __gen_e_acsl_assert_data_3.blocking = 1;
+        __gen_e_acsl_assert_data_3.kind = "Assertion";
+        __gen_e_acsl_assert_data_3.pred_txt = "\\false";
+        __gen_e_acsl_assert_data_3.file = "tests/constructs/nested_code_annot.i";
+        __gen_e_acsl_assert_data_3.fct = "main";
+        __gen_e_acsl_assert_data_3.line = 12;
+        __e_acsl_assert(0,& __gen_e_acsl_assert_data_3);
+      }
+      /*@ assert \false; */ ;
     }
     else {
-      __e_acsl_assert(0,1,"Assertion","main","\\false",
-                      "tests/constructs/nested_code_annot.i",21);
-      /*@ assert \false; */ ;
+      {
+        {
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"x",0,x);
+          __gen_e_acsl_assert_data_4.blocking = 1;
+          __gen_e_acsl_assert_data_4.kind = "Precondition";
+          __gen_e_acsl_assert_data_4.pred_txt = "x == 0";
+          __gen_e_acsl_assert_data_4.file = "tests/constructs/nested_code_annot.i";
+          __gen_e_acsl_assert_data_4.fct = "main";
+          __gen_e_acsl_assert_data_4.line = 14;
+          __e_acsl_assert(x == 0,& __gen_e_acsl_assert_data_4);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+        }
+        /*@ requires x == 0;
+            ensures x == 1; */
+        x ++;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"x",0,x);
+        __gen_e_acsl_assert_data_5.blocking = 1;
+        __gen_e_acsl_assert_data_5.kind = "Postcondition";
+        __gen_e_acsl_assert_data_5.pred_txt = "x == 1";
+        __gen_e_acsl_assert_data_5.file = "tests/constructs/nested_code_annot.i";
+        __gen_e_acsl_assert_data_5.fct = "main";
+        __gen_e_acsl_assert_data_5.line = 15;
+        __e_acsl_assert(x == 1,& __gen_e_acsl_assert_data_5);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+      }
+      if (x) {
+        {
+          {
+            __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+              {.values = (void *)0};
+            __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"x",0,
+                                         x);
+            __gen_e_acsl_assert_data_6.blocking = 1;
+            __gen_e_acsl_assert_data_6.kind = "Precondition";
+            __gen_e_acsl_assert_data_6.pred_txt = "x == 1";
+            __gen_e_acsl_assert_data_6.file = "tests/constructs/nested_code_annot.i";
+            __gen_e_acsl_assert_data_6.fct = "main";
+            __gen_e_acsl_assert_data_6.line = 18;
+            __e_acsl_assert(x == 1,& __gen_e_acsl_assert_data_6);
+            __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+          }
+          /*@ requires x == 1;
+              ensures x == 2; */
+          x ++;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"x",0,x);
+          __gen_e_acsl_assert_data_7.blocking = 1;
+          __gen_e_acsl_assert_data_7.kind = "Postcondition";
+          __gen_e_acsl_assert_data_7.pred_txt = "x == 2";
+          __gen_e_acsl_assert_data_7.file = "tests/constructs/nested_code_annot.i";
+          __gen_e_acsl_assert_data_7.fct = "main";
+          __gen_e_acsl_assert_data_7.line = 19;
+          __e_acsl_assert(x == 2,& __gen_e_acsl_assert_data_7);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+        }
+      }
+      else {
+        {
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+            {.values = (void *)0};
+          __gen_e_acsl_assert_data_8.blocking = 1;
+          __gen_e_acsl_assert_data_8.kind = "Assertion";
+          __gen_e_acsl_assert_data_8.pred_txt = "\\false";
+          __gen_e_acsl_assert_data_8.file = "tests/constructs/nested_code_annot.i";
+          __gen_e_acsl_assert_data_8.fct = "main";
+          __gen_e_acsl_assert_data_8.line = 21;
+          __e_acsl_assert(0,& __gen_e_acsl_assert_data_8);
+        }
+        /*@ assert \false; */ ;
+      }
     }
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"x",0,x);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Postcondition";
+    __gen_e_acsl_assert_data_9.pred_txt = "x >= 1";
+    __gen_e_acsl_assert_data_9.file = "tests/constructs/nested_code_annot.i";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 9;
+    __e_acsl_assert(x >= 1,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
-  __e_acsl_assert(x >= 1,1,"Postcondition","main","x >= 1",
-                  "tests/constructs/nested_code_annot.i",9);
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_printed_data.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_printed_data.c
new file mode 100644
index 0000000000000000000000000000000000000000..4303fff9fbc356a508914e7bdc47db6e291a4d58
--- /dev/null
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_printed_data.c
@@ -0,0 +1,887 @@
+/* Generated by Frama-C */
+#include "stddef.h"
+#include "stdint.h"
+#include "stdio.h"
+char *__gen_e_acsl_literal_string;
+extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
+
+struct A {
+   int a ;
+};
+union U {
+   int a ;
+   float b ;
+};
+enum EBool {
+    EBOOL_MIN = (_Bool)0,
+    EBOOL_MAX = (_Bool)1
+};
+enum EChar {
+    ECHAR_MIN = (char)(-128),
+    ECHAR_MAX = (char)127
+};
+enum ESChar {
+    ESCHAR_MIN = (signed char)(-128),
+    ESCHAR_MAX = (signed char)127
+};
+enum EUChar {
+    EUCHAR_MIN = (unsigned char)0,
+    EUCHAR_MAX = (unsigned char)255
+};
+enum EInt {
+    EINT_MIN = -2147483647 - 1,
+    EINT_MAX = 2147483647
+};
+enum EUInt {
+    EUINT_MIN = (unsigned int)0,
+    EUINT_MAX = 4294967295U
+};
+enum EShort {
+    ESHORT_MIN = (short)(-32768),
+    ESHORT_MAX = (short)32767
+};
+enum EUShort {
+    EUSHORT_MIN = (unsigned short)0,
+    EUSHORT_MAX = (unsigned short)65535
+};
+enum ELong {
+    ELONG_MIN = -9223372036854775807L - 1L,
+    ELONG_MAX = 9223372036854775807L
+};
+enum EULong {
+    EULONG_MIN = (unsigned long)0,
+    EULONG_MAX = 18446744073709551615UL
+};
+enum ELLong {
+    ELLONG_MIN = -9223372036854775807LL - 1LL,
+    ELLONG_MAX = 9223372036854775807LL
+};
+enum EULLong {
+    EULLONG_MIN = (unsigned long long)0,
+    EULLONG_MAX = 18446744073709551615ULL
+};
+void f(void)
+{
+  return;
+}
+
+void g(void)
+{
+  return;
+}
+
+int lvalue = 1;
+int array1[4] = {1, 2, 3, 4};
+int array2[2] = {5, 6};
+void __e_acsl_globals_init(void)
+{
+  static char __e_acsl_already_run = 0;
+  if (! __e_acsl_already_run) {
+    __e_acsl_already_run = 1;
+    __gen_e_acsl_literal_string = "EVERY ASSERTION SHOULD PRINT ITS DATA IN EXECUTION LOG\n";
+    __e_acsl_store_block((void *)__gen_e_acsl_literal_string,
+                         sizeof("EVERY ASSERTION SHOULD PRINT ITS DATA IN EXECUTION LOG\n"));
+    __e_acsl_full_init((void *)__gen_e_acsl_literal_string);
+    __e_acsl_mark_readonly((void *)__gen_e_acsl_literal_string);
+    __e_acsl_store_block((void *)(& lvalue),(size_t)4);
+    __e_acsl_full_init((void *)(& lvalue));
+  }
+  return;
+}
+
+void __e_acsl_globals_clean(void)
+{
+  __e_acsl_delete_block((void *)(& lvalue));
+  return;
+}
+
+int main(void)
+{
+  int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
+  __e_acsl_globals_init();
+  fprintf(stderr,__gen_e_acsl_literal_string); /* fprintf_va_1 */
+  _Bool int_bool = (_Bool)1;
+  __e_acsl_store_block((void *)(& int_bool),(size_t)1);
+  __e_acsl_full_init((void *)(& int_bool));
+  {
+    int __gen_e_acsl_x;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_bool(& __gen_e_acsl_assert_data,"int_bool",0,
+                                  int_bool);
+    __gen_e_acsl_x = int_bool;
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\let x = int_bool; \\true";
+    __gen_e_acsl_assert_data.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 69;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert \let x = int_bool; \true; */ ;
+  char int_char = (char)127;
+  __e_acsl_store_block((void *)(& int_char),(size_t)1);
+  __e_acsl_full_init((void *)(& int_char));
+  {
+    int __gen_e_acsl_x_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_char(& __gen_e_acsl_assert_data_2,"int_char",0,
+                                  int_char);
+    __gen_e_acsl_x_2 = int_char;
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\let x = int_char; \\true";
+    __gen_e_acsl_assert_data_2.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 71;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+  }
+  /*@ assert \let x = int_char; \true; */ ;
+  signed char int_schar = (signed char)127;
+  __e_acsl_store_block((void *)(& int_schar),(size_t)1);
+  __e_acsl_full_init((void *)(& int_schar));
+  {
+    int __gen_e_acsl_x_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_schar(& __gen_e_acsl_assert_data_3,"int_schar",
+                                   0,int_schar);
+    __gen_e_acsl_x_3 = int_schar;
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\let x = int_schar; \\true";
+    __gen_e_acsl_assert_data_3.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 73;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+  }
+  /*@ assert \let x = int_schar; \true; */ ;
+  unsigned char int_uchar = (unsigned char)255;
+  __e_acsl_store_block((void *)(& int_uchar),(size_t)1);
+  __e_acsl_full_init((void *)(& int_uchar));
+  {
+    int __gen_e_acsl_x_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_uchar(& __gen_e_acsl_assert_data_4,"int_uchar",
+                                   0,int_uchar);
+    __gen_e_acsl_x_4 = int_uchar;
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\let x = int_uchar; \\true";
+    __gen_e_acsl_assert_data_4.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 75;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+  }
+  /*@ assert \let x = int_uchar; \true; */ ;
+  int int_int = 2147483647;
+  __e_acsl_store_block((void *)(& int_int),(size_t)4);
+  __e_acsl_full_init((void *)(& int_int));
+  {
+    int __gen_e_acsl_x_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"int_int",0,
+                                 int_int);
+    __gen_e_acsl_x_5 = int_int;
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "\\let x = int_int; \\true";
+    __gen_e_acsl_assert_data_5.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 77;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+  }
+  /*@ assert \let x = int_int; \true; */ ;
+  unsigned int int_uint = 4294967295U;
+  __e_acsl_store_block((void *)(& int_uint),(size_t)4);
+  __e_acsl_full_init((void *)(& int_uint));
+  {
+    unsigned int __gen_e_acsl_x_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_6,"int_uint",0,
+                                  int_uint);
+    __gen_e_acsl_x_6 = int_uint;
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "\\let x = int_uint; \\true";
+    __gen_e_acsl_assert_data_6.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 79;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+  }
+  /*@ assert \let x = int_uint; \true; */ ;
+  short int_short = (short)32767;
+  __e_acsl_store_block((void *)(& int_short),(size_t)2);
+  __e_acsl_full_init((void *)(& int_short));
+  {
+    int __gen_e_acsl_x_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_7,"int_short",
+                                   0,int_short);
+    __gen_e_acsl_x_7 = int_short;
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "\\let x = int_short; \\true";
+    __gen_e_acsl_assert_data_7.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 81;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+  }
+  /*@ assert \let x = int_short; \true; */ ;
+  unsigned short int_ushort = (unsigned short)65535;
+  __e_acsl_store_block((void *)(& int_ushort),(size_t)2);
+  __e_acsl_full_init((void *)(& int_ushort));
+  {
+    int __gen_e_acsl_x_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ushort(& __gen_e_acsl_assert_data_8,
+                                    "int_ushort",0,int_ushort);
+    __gen_e_acsl_x_8 = int_ushort;
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "\\let x = int_ushort; \\true";
+    __gen_e_acsl_assert_data_8.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 83;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+  }
+  /*@ assert \let x = int_ushort; \true; */ ;
+  long int_long = 9223372036854775807L;
+  __e_acsl_store_block((void *)(& int_long),(size_t)8);
+  __e_acsl_full_init((void *)(& int_long));
+  {
+    long __gen_e_acsl_x_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_9,"int_long",0,
+                                  int_long);
+    __gen_e_acsl_x_9 = int_long;
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "\\let x = int_long; \\true";
+    __gen_e_acsl_assert_data_9.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 85;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
+  }
+  /*@ assert \let x = int_long; \true; */ ;
+  unsigned long int_ulong = 18446744073709551615UL;
+  __e_acsl_store_block((void *)(& int_ulong),(size_t)8);
+  __e_acsl_full_init((void *)(& int_ulong));
+  {
+    unsigned long __gen_e_acsl_x_10;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,"int_ulong",
+                                   0,int_ulong);
+    __gen_e_acsl_x_10 = int_ulong;
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "\\let x = int_ulong; \\true";
+    __gen_e_acsl_assert_data_10.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 87;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
+  }
+  /*@ assert \let x = int_ulong; \true; */ ;
+  long long int_llong = 9223372036854775807LL;
+  __e_acsl_store_block((void *)(& int_llong),(size_t)8);
+  __e_acsl_full_init((void *)(& int_llong));
+  {
+    long __gen_e_acsl_x_11;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_longlong(& __gen_e_acsl_assert_data_11,
+                                      "int_llong",0,int_llong);
+    __gen_e_acsl_x_11 = int_llong;
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "\\let x = int_llong; \\true";
+    __gen_e_acsl_assert_data_11.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 89;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
+  }
+  /*@ assert \let x = int_llong; \true; */ ;
+  unsigned long long int_ullong = 18446744073709551615ULL;
+  __e_acsl_store_block((void *)(& int_ullong),(size_t)8);
+  __e_acsl_full_init((void *)(& int_ullong));
+  {
+    unsigned long __gen_e_acsl_x_12;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulonglong(& __gen_e_acsl_assert_data_12,
+                                       "int_ullong",0,int_ullong);
+    __gen_e_acsl_x_12 = int_ullong;
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "\\let x = int_ullong; \\true";
+    __gen_e_acsl_assert_data_12.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 91;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
+  }
+  /*@ assert \let x = int_ullong; \true; */ ;
+  {
+    __e_acsl_mpz_t __gen_e_acsl_int_mpz;
+    __e_acsl_mpz_t __gen_e_acsl_;
+    __e_acsl_mpz_t __gen_e_acsl__2;
+    __e_acsl_mpz_t __gen_e_acsl_add;
+    int __gen_e_acsl_ne;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
+    __gmpz_init_set_ui(__gen_e_acsl_,18446744073709551615UL);
+    __gmpz_init_set_si(__gen_e_acsl__2,1L);
+    __gmpz_init(__gen_e_acsl_add);
+    __gmpz_add(__gen_e_acsl_add,(__e_acsl_mpz_struct const *)(__gen_e_acsl_),
+               (__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
+    __gmpz_init_set(__gen_e_acsl_int_mpz,
+                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_13,"int_mpz",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_int_mpz));
+    __gen_e_acsl_ne = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_int_mpz),
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_));
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "\\let int_mpz = 18446744073709551615ULL + 1;\n  int_mpz != 18446744073709551615ULL";
+    __gen_e_acsl_assert_data_13.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 93;
+    __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_13);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
+    __gmpz_clear(__gen_e_acsl_int_mpz);
+    __gmpz_clear(__gen_e_acsl_);
+    __gmpz_clear(__gen_e_acsl__2);
+    __gmpz_clear(__gen_e_acsl_add);
+  }
+  /*@
+  assert
+  \let int_mpz = 18446744073709551615ULL + 1;
+    int_mpz != 18446744073709551615ULL;
+   */
+  ;
+  float real_float = (float)0x1.fffffep+127;
+  __e_acsl_store_block((void *)(& real_float),(size_t)4);
+  __e_acsl_full_init((void *)(& real_float));
+  {
+    float __gen_e_acsl_x_13;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_float(& __gen_e_acsl_assert_data_14,
+                                   "real_float",real_float);
+    __gen_e_acsl_x_13 = real_float;
+    __gen_e_acsl_assert_data_14.blocking = 1;
+    __gen_e_acsl_assert_data_14.kind = "Assertion";
+    __gen_e_acsl_assert_data_14.pred_txt = "\\let x = real_float; \\true";
+    __gen_e_acsl_assert_data_14.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_14.fct = "main";
+    __gen_e_acsl_assert_data_14.line = 98;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_14);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
+  }
+  /*@ assert \let x = real_float; \true; */ ;
+  double real_double = 0x1.fffffffffffffp+1023;
+  __e_acsl_store_block((void *)(& real_double),(size_t)8);
+  __e_acsl_full_init((void *)(& real_double));
+  {
+    double __gen_e_acsl_x_14;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_double(& __gen_e_acsl_assert_data_15,
+                                    "real_double",real_double);
+    __gen_e_acsl_x_14 = real_double;
+    __gen_e_acsl_assert_data_15.blocking = 1;
+    __gen_e_acsl_assert_data_15.kind = "Assertion";
+    __gen_e_acsl_assert_data_15.pred_txt = "\\let x = real_double; \\true";
+    __gen_e_acsl_assert_data_15.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_15.fct = "main";
+    __gen_e_acsl_assert_data_15.line = 100;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_15);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
+  }
+  /*@ assert \let x = real_double; \true; */ ;
+  /*@ assert
+      Eva: is_nan_or_infinite:
+        \is_finite((long double)0x1.fffffffffffffffep+16383L);
+  */
+  long double real_ldouble = 0x1.fffffffffffffffep+16383L;
+  __e_acsl_store_block((void *)(& real_ldouble),(size_t)16);
+  __e_acsl_full_init((void *)(& real_ldouble));
+  {
+    long double __gen_e_acsl_x_15;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
+    /*@ assert Eva: is_nan_or_infinite: \is_finite(real_ldouble); */
+    __e_acsl_assert_register_longdouble(& __gen_e_acsl_assert_data_16,
+                                        "real_ldouble",real_ldouble);
+    /*@ assert Eva: is_nan_or_infinite: \is_finite(real_ldouble); */
+    __gen_e_acsl_x_15 = real_ldouble;
+    __gen_e_acsl_assert_data_16.blocking = 1;
+    __gen_e_acsl_assert_data_16.kind = "Assertion";
+    __gen_e_acsl_assert_data_16.pred_txt = "\\let x = real_ldouble; \\true";
+    __gen_e_acsl_assert_data_16.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_16.fct = "main";
+    __gen_e_acsl_assert_data_16.line = 102;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_16);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
+  }
+  /*@ assert \let x = real_ldouble; \true; */ ;
+  {
+    __e_acsl_mpq_t __gen_e_acsl_real_mpq;
+    __e_acsl_mpq_t __gen_e_acsl__3;
+    __e_acsl_mpq_t __gen_e_acsl__4;
+    int __gen_e_acsl_ne_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
+    __gmpq_init(__gen_e_acsl__3);
+    __gmpq_set_str(__gen_e_acsl__3,"01/10",10);
+    __gmpq_init(__gen_e_acsl_real_mpq);
+    __gmpq_set(__gen_e_acsl_real_mpq,
+               (__e_acsl_mpq_struct const *)(__gen_e_acsl__3));
+    __e_acsl_assert_register_mpq(& __gen_e_acsl_assert_data_17,"real_mpq",
+                                 (__e_acsl_mpq_struct const *)(__gen_e_acsl_real_mpq));
+    __gmpq_init(__gen_e_acsl__4);
+    __gmpq_set_str(__gen_e_acsl__4,"1",10);
+    __gen_e_acsl_ne_2 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl_real_mpq),
+                                   (__e_acsl_mpq_struct const *)(__gen_e_acsl__4));
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "Assertion";
+    __gen_e_acsl_assert_data_17.pred_txt = "\\let real_mpq = 0.1; real_mpq != 1";
+    __gen_e_acsl_assert_data_17.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_17.fct = "main";
+    __gen_e_acsl_assert_data_17.line = 104;
+    __e_acsl_assert(__gen_e_acsl_ne_2 != 0,& __gen_e_acsl_assert_data_17);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
+    __gmpq_clear(__gen_e_acsl_real_mpq);
+    __gmpq_clear(__gen_e_acsl__3);
+    __gmpq_clear(__gen_e_acsl__4);
+  }
+  /*@ assert \let real_mpq = 0.1; real_mpq != 1; */ ;
+  void *ptr = (void *)(& lvalue);
+  __e_acsl_store_block((void *)(& ptr),(size_t)8);
+  __e_acsl_full_init((void *)(& ptr));
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,"ptr",ptr);
+    __gen_e_acsl_assert_data_18.blocking = 1;
+    __gen_e_acsl_assert_data_18.kind = "Assertion";
+    __gen_e_acsl_assert_data_18.pred_txt = "ptr != (void *)0";
+    __gen_e_acsl_assert_data_18.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_18.fct = "main";
+    __gen_e_acsl_assert_data_18.line = 109;
+    __e_acsl_assert(ptr != (void *)0,& __gen_e_acsl_assert_data_18);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18);
+  }
+  /*@ assert ptr != (void *)0; */ ;
+  {
+    int __gen_e_acsl_ne_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_19,"array1",
+                                   (void *)(array1));
+    __e_acsl_assert_register_array(& __gen_e_acsl_assert_data_19,"array2",
+                                   (void *)(array2));
+    __gen_e_acsl_ne_3 = 0;
+    if (0) {
+      unsigned long __gen_e_acsl_iter;
+      __gen_e_acsl_iter = 0;
+      while (__gen_e_acsl_iter < 4) {
+        if (array1[__gen_e_acsl_iter] != array2[__gen_e_acsl_iter]) {
+          __gen_e_acsl_ne_3 = 1;
+          break;
+        }
+        __gen_e_acsl_iter ++;
+      }
+    }
+    else __gen_e_acsl_ne_3 = 1;
+    __gen_e_acsl_assert_data_19.blocking = 1;
+    __gen_e_acsl_assert_data_19.kind = "Assertion";
+    __gen_e_acsl_assert_data_19.pred_txt = "array1 != array2";
+    __gen_e_acsl_assert_data_19.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_19.fct = "main";
+    __gen_e_acsl_assert_data_19.line = 113;
+    __e_acsl_assert(__gen_e_acsl_ne_3,& __gen_e_acsl_assert_data_19);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19);
+  }
+  /*@ assert array1 != array2; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20,"&f",
+                                 (void *)(& f));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20,"&g",
+                                 (void *)(& g));
+    __gen_e_acsl_assert_data_20.blocking = 1;
+    __gen_e_acsl_assert_data_20.kind = "Assertion";
+    __gen_e_acsl_assert_data_20.pred_txt = "&f != &g";
+    __gen_e_acsl_assert_data_20.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_20.fct = "main";
+    __gen_e_acsl_assert_data_20.line = 118;
+    __e_acsl_assert(& f != & g,& __gen_e_acsl_assert_data_20);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20);
+  }
+  /*@ assert &f != &g; */ ;
+  struct A struct1 = {.a = 1};
+  __e_acsl_store_block((void *)(& struct1),(size_t)4);
+  __e_acsl_full_init((void *)(& struct1));
+  {
+    struct A __gen_e_acsl_x_16;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_struct(& __gen_e_acsl_assert_data_21,"struct1");
+    __gen_e_acsl_x_16 = struct1;
+    __gen_e_acsl_assert_data_21.blocking = 1;
+    __gen_e_acsl_assert_data_21.kind = "Assertion";
+    __gen_e_acsl_assert_data_21.pred_txt = "\\let x = struct1; \\true";
+    __gen_e_acsl_assert_data_21.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_21.fct = "main";
+    __gen_e_acsl_assert_data_21.line = 123;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_21);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21);
+  }
+  /*@ assert \let x = struct1; \true; */ ;
+  union U union1 = {.b = (float)1.};
+  __e_acsl_store_block((void *)(& union1),(size_t)4);
+  __e_acsl_full_init((void *)(& union1));
+  {
+    union U __gen_e_acsl_x_17;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_union(& __gen_e_acsl_assert_data_22,"union1");
+    __gen_e_acsl_x_17 = union1;
+    __gen_e_acsl_assert_data_22.blocking = 1;
+    __gen_e_acsl_assert_data_22.kind = "Assertion";
+    __gen_e_acsl_assert_data_22.pred_txt = "\\let x = union1; \\true";
+    __gen_e_acsl_assert_data_22.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_22.fct = "main";
+    __gen_e_acsl_assert_data_22.line = 128;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_22);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22);
+  }
+  /*@ assert \let x = union1; \true; */ ;
+  enum EBool enum_bool = (enum EBool)EBOOL_MAX;
+  __e_acsl_store_block((void *)(& enum_bool),(size_t)4);
+  __e_acsl_full_init((void *)(& enum_bool));
+  {
+    unsigned int __gen_e_acsl_x_18;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_23,"enum_bool",
+                                  1,enum_bool);
+    __gen_e_acsl_x_18 = enum_bool;
+    __gen_e_acsl_assert_data_23.blocking = 1;
+    __gen_e_acsl_assert_data_23.kind = "Assertion";
+    __gen_e_acsl_assert_data_23.pred_txt = "\\let x = enum_bool; \\true";
+    __gen_e_acsl_assert_data_23.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_23.fct = "main";
+    __gen_e_acsl_assert_data_23.line = 133;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_23);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23);
+  }
+  /*@ assert \let x = enum_bool; \true; */ ;
+  enum EChar enum_char = (enum EChar)ECHAR_MAX;
+  __e_acsl_store_block((void *)(& enum_char),(size_t)4);
+  __e_acsl_full_init((void *)(& enum_char));
+  {
+    int __gen_e_acsl_x_19;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_24 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,"enum_char",1,
+                                 enum_char);
+    __gen_e_acsl_x_19 = enum_char;
+    __gen_e_acsl_assert_data_24.blocking = 1;
+    __gen_e_acsl_assert_data_24.kind = "Assertion";
+    __gen_e_acsl_assert_data_24.pred_txt = "\\let x = enum_char; \\true";
+    __gen_e_acsl_assert_data_24.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_24.fct = "main";
+    __gen_e_acsl_assert_data_24.line = 135;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_24);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_24);
+  }
+  /*@ assert \let x = enum_char; \true; */ ;
+  enum ESChar enum_schar = (enum ESChar)ESCHAR_MAX;
+  __e_acsl_store_block((void *)(& enum_schar),(size_t)4);
+  __e_acsl_full_init((void *)(& enum_schar));
+  {
+    int __gen_e_acsl_x_20;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_25 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"enum_schar",
+                                 1,enum_schar);
+    __gen_e_acsl_x_20 = enum_schar;
+    __gen_e_acsl_assert_data_25.blocking = 1;
+    __gen_e_acsl_assert_data_25.kind = "Assertion";
+    __gen_e_acsl_assert_data_25.pred_txt = "\\let x = enum_schar; \\true";
+    __gen_e_acsl_assert_data_25.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_25.fct = "main";
+    __gen_e_acsl_assert_data_25.line = 137;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_25);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_25);
+  }
+  /*@ assert \let x = enum_schar; \true; */ ;
+  enum EUChar enum_uchar = (enum EUChar)EUCHAR_MAX;
+  __e_acsl_store_block((void *)(& enum_uchar),(size_t)4);
+  __e_acsl_full_init((void *)(& enum_uchar));
+  {
+    unsigned int __gen_e_acsl_x_21;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_26 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_26,"enum_uchar",
+                                  1,enum_uchar);
+    __gen_e_acsl_x_21 = enum_uchar;
+    __gen_e_acsl_assert_data_26.blocking = 1;
+    __gen_e_acsl_assert_data_26.kind = "Assertion";
+    __gen_e_acsl_assert_data_26.pred_txt = "\\let x = enum_uchar; \\true";
+    __gen_e_acsl_assert_data_26.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_26.fct = "main";
+    __gen_e_acsl_assert_data_26.line = 139;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_26);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_26);
+  }
+  /*@ assert \let x = enum_uchar; \true; */ ;
+  enum EInt enum_int = EINT_MAX;
+  __e_acsl_store_block((void *)(& enum_int),(size_t)4);
+  __e_acsl_full_init((void *)(& enum_int));
+  {
+    int __gen_e_acsl_x_22;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_27 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27,"enum_int",1,
+                                 enum_int);
+    __gen_e_acsl_x_22 = enum_int;
+    __gen_e_acsl_assert_data_27.blocking = 1;
+    __gen_e_acsl_assert_data_27.kind = "Assertion";
+    __gen_e_acsl_assert_data_27.pred_txt = "\\let x = enum_int; \\true";
+    __gen_e_acsl_assert_data_27.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_27.fct = "main";
+    __gen_e_acsl_assert_data_27.line = 141;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_27);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_27);
+  }
+  /*@ assert \let x = enum_int; \true; */ ;
+  enum EUInt enum_uint = EUINT_MAX;
+  __e_acsl_store_block((void *)(& enum_uint),(size_t)4);
+  __e_acsl_full_init((void *)(& enum_uint));
+  {
+    unsigned int __gen_e_acsl_x_23;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_28 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_28,"enum_uint",
+                                  1,enum_uint);
+    __gen_e_acsl_x_23 = enum_uint;
+    __gen_e_acsl_assert_data_28.blocking = 1;
+    __gen_e_acsl_assert_data_28.kind = "Assertion";
+    __gen_e_acsl_assert_data_28.pred_txt = "\\let x = enum_uint; \\true";
+    __gen_e_acsl_assert_data_28.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_28.fct = "main";
+    __gen_e_acsl_assert_data_28.line = 143;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_28);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_28);
+  }
+  /*@ assert \let x = enum_uint; \true; */ ;
+  enum EShort enum_short = (enum EShort)ESHORT_MAX;
+  __e_acsl_store_block((void *)(& enum_short),(size_t)4);
+  __e_acsl_full_init((void *)(& enum_short));
+  {
+    int __gen_e_acsl_x_24;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_29 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_29,"enum_short",
+                                 1,enum_short);
+    __gen_e_acsl_x_24 = enum_short;
+    __gen_e_acsl_assert_data_29.blocking = 1;
+    __gen_e_acsl_assert_data_29.kind = "Assertion";
+    __gen_e_acsl_assert_data_29.pred_txt = "\\let x = enum_short; \\true";
+    __gen_e_acsl_assert_data_29.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_29.fct = "main";
+    __gen_e_acsl_assert_data_29.line = 145;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_29);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_29);
+  }
+  /*@ assert \let x = enum_short; \true; */ ;
+  enum EUShort enum_ushort = (enum EUShort)EUSHORT_MAX;
+  __e_acsl_store_block((void *)(& enum_ushort),(size_t)4);
+  __e_acsl_full_init((void *)(& enum_ushort));
+  {
+    unsigned int __gen_e_acsl_x_25;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_30 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_uint(& __gen_e_acsl_assert_data_30,
+                                  "enum_ushort",1,enum_ushort);
+    __gen_e_acsl_x_25 = enum_ushort;
+    __gen_e_acsl_assert_data_30.blocking = 1;
+    __gen_e_acsl_assert_data_30.kind = "Assertion";
+    __gen_e_acsl_assert_data_30.pred_txt = "\\let x = enum_ushort; \\true";
+    __gen_e_acsl_assert_data_30.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_30.fct = "main";
+    __gen_e_acsl_assert_data_30.line = 147;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_30);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_30);
+  }
+  /*@ assert \let x = enum_ushort; \true; */ ;
+  enum ELong enum_long = ELONG_MAX;
+  __e_acsl_store_block((void *)(& enum_long),(size_t)8);
+  __e_acsl_full_init((void *)(& enum_long));
+  {
+    long __gen_e_acsl_x_26;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_31 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_31,"enum_long",
+                                  1,enum_long);
+    __gen_e_acsl_x_26 = enum_long;
+    __gen_e_acsl_assert_data_31.blocking = 1;
+    __gen_e_acsl_assert_data_31.kind = "Assertion";
+    __gen_e_acsl_assert_data_31.pred_txt = "\\let x = enum_long; \\true";
+    __gen_e_acsl_assert_data_31.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_31.fct = "main";
+    __gen_e_acsl_assert_data_31.line = 149;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_31);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_31);
+  }
+  /*@ assert \let x = enum_long; \true; */ ;
+  enum EULong enum_ulong = EULONG_MAX;
+  __e_acsl_store_block((void *)(& enum_ulong),(size_t)8);
+  __e_acsl_full_init((void *)(& enum_ulong));
+  {
+    unsigned long __gen_e_acsl_x_27;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_32 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_32,
+                                   "enum_ulong",1,enum_ulong);
+    __gen_e_acsl_x_27 = enum_ulong;
+    __gen_e_acsl_assert_data_32.blocking = 1;
+    __gen_e_acsl_assert_data_32.kind = "Assertion";
+    __gen_e_acsl_assert_data_32.pred_txt = "\\let x = enum_ulong; \\true";
+    __gen_e_acsl_assert_data_32.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_32.fct = "main";
+    __gen_e_acsl_assert_data_32.line = 151;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_32);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_32);
+  }
+  /*@ assert \let x = enum_ulong; \true; */ ;
+  enum ELLong enum_llong = ELLONG_MAX;
+  __e_acsl_store_block((void *)(& enum_llong),(size_t)8);
+  __e_acsl_full_init((void *)(& enum_llong));
+  {
+    long __gen_e_acsl_x_28;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_33 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_33,"enum_llong",
+                                  1,enum_llong);
+    __gen_e_acsl_x_28 = enum_llong;
+    __gen_e_acsl_assert_data_33.blocking = 1;
+    __gen_e_acsl_assert_data_33.kind = "Assertion";
+    __gen_e_acsl_assert_data_33.pred_txt = "\\let x = enum_llong; \\true";
+    __gen_e_acsl_assert_data_33.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_33.fct = "main";
+    __gen_e_acsl_assert_data_33.line = 153;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_33);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_33);
+  }
+  /*@ assert \let x = enum_llong; \true; */ ;
+  enum EULLong enum_ullong = EULLONG_MAX;
+  __e_acsl_store_block((void *)(& enum_ullong),(size_t)8);
+  __e_acsl_full_init((void *)(& enum_ullong));
+  {
+    unsigned long __gen_e_acsl_x_29;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_34 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_34,
+                                   "enum_ullong",1,enum_ullong);
+    __gen_e_acsl_x_29 = enum_ullong;
+    __gen_e_acsl_assert_data_34.blocking = 1;
+    __gen_e_acsl_assert_data_34.kind = "Assertion";
+    __gen_e_acsl_assert_data_34.pred_txt = "\\let x = enum_ullong; \\true";
+    __gen_e_acsl_assert_data_34.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_34.fct = "main";
+    __gen_e_acsl_assert_data_34.line = 155;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_34);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_34);
+  }
+  /*@ assert \let x = enum_ullong; \true; */ ;
+  int a = 2;
+  int b = 3;
+  {
+    long __gen_e_acsl_c;
+    int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_35 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"a",0,a);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"b",0,b);
+    __gen_e_acsl_c = a + (long)b;
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"a",0,a);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"b",0,b);
+    if (a != b) {
+      __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_35,"c",0,
+                                    __gen_e_acsl_c);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"a",0,a);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"b",0,b);
+      __gen_e_acsl_and = __gen_e_acsl_c == a + (long)b;
+    }
+    else __gen_e_acsl_and = 0;
+    __gen_e_acsl_assert_data_35.blocking = 1;
+    __gen_e_acsl_assert_data_35.kind = "Assertion";
+    __gen_e_acsl_assert_data_35.pred_txt = "\\let c = a + b; a != b && c == a + b";
+    __gen_e_acsl_assert_data_35.file = "tests/constructs/printed_data.c";
+    __gen_e_acsl_assert_data_35.fct = "main";
+    __gen_e_acsl_assert_data_35.line = 161;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_35);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_35);
+  }
+  /*@ assert \let c = a + b; a != b && c == a + b; */ ;
+  __retres = 0;
+  __e_acsl_delete_block((void *)(& enum_ullong));
+  __e_acsl_delete_block((void *)(& enum_llong));
+  __e_acsl_delete_block((void *)(& enum_ulong));
+  __e_acsl_delete_block((void *)(& enum_long));
+  __e_acsl_delete_block((void *)(& enum_ushort));
+  __e_acsl_delete_block((void *)(& enum_short));
+  __e_acsl_delete_block((void *)(& enum_uint));
+  __e_acsl_delete_block((void *)(& enum_int));
+  __e_acsl_delete_block((void *)(& enum_uchar));
+  __e_acsl_delete_block((void *)(& enum_schar));
+  __e_acsl_delete_block((void *)(& enum_char));
+  __e_acsl_delete_block((void *)(& enum_bool));
+  __e_acsl_delete_block((void *)(& union1));
+  __e_acsl_delete_block((void *)(& struct1));
+  __e_acsl_delete_block((void *)(& ptr));
+  __e_acsl_delete_block((void *)(& real_ldouble));
+  __e_acsl_delete_block((void *)(& real_double));
+  __e_acsl_delete_block((void *)(& real_float));
+  __e_acsl_delete_block((void *)(& int_ullong));
+  __e_acsl_delete_block((void *)(& int_llong));
+  __e_acsl_delete_block((void *)(& int_ulong));
+  __e_acsl_delete_block((void *)(& int_long));
+  __e_acsl_delete_block((void *)(& int_ushort));
+  __e_acsl_delete_block((void *)(& int_short));
+  __e_acsl_delete_block((void *)(& int_uint));
+  __e_acsl_delete_block((void *)(& int_int));
+  __e_acsl_delete_block((void *)(& int_uchar));
+  __e_acsl_delete_block((void *)(& int_schar));
+  __e_acsl_delete_block((void *)(& int_char));
+  __e_acsl_delete_block((void *)(& int_bool));
+  __e_acsl_globals_clean();
+  __e_acsl_memory_clean();
+  return __retres;
+}
+
+
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_result.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_result.c
index 55615fb2891193cdd323ccc30fcafa30e54f960d..c49b1e0fb8e4b3121ff2c51874994d3a50eefb03 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/gen_result.c
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_result.c
@@ -1,10 +1,10 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
-/*@ ensures \result ≡ (int)(\old(x) - \old(x)); */
+/*@ ensures \result == (int)(\old(x) - \old(x)); */
 int __gen_e_acsl_f(int x);
 
 int f(int x)
@@ -14,8 +14,8 @@ int f(int x)
 }
 
 int Y = 1;
-/*@ ensures \result ≡ \old(x);
-    ensures \result ≡ Y; */
+/*@ ensures \result == \old(x);
+    ensures \result == Y; */
 int __gen_e_acsl_g(int x);
 
 int g(int x)
@@ -23,7 +23,7 @@ int g(int x)
   return x;
 }
 
-/*@ ensures \result ≡ 0; */
+/*@ ensures \result == 0; */
 int __gen_e_acsl_h(void);
 
 int h(void)
@@ -36,39 +36,76 @@ int h(void)
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   __gen_e_acsl_f(1);
   __gen_e_acsl_g(Y);
   __gen_e_acsl_h();
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
-/*@ ensures \result ≡ 0; */
+/*@ ensures \result == 0; */
 int __gen_e_acsl_h(void)
 {
   int __retres;
   __retres = h();
-  __e_acsl_assert(__retres == 0,1,"Postcondition","h","\\result == 0",
-                  "tests/constructs/result.i",19);
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                 __retres);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\result == 0";
+    __gen_e_acsl_assert_data.file = "tests/constructs/result.i";
+    __gen_e_acsl_assert_data.fct = "h";
+    __gen_e_acsl_assert_data.line = 19;
+    __e_acsl_assert(__retres == 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    return __retres;
+  }
 }
 
-/*@ ensures \result ≡ \old(x);
-    ensures \result ≡ Y; */
+/*@ ensures \result == \old(x);
+    ensures \result == Y; */
 int __gen_e_acsl_g(int x)
 {
   int __gen_e_acsl_at;
   int __retres;
   __gen_e_acsl_at = x;
   __retres = g(x);
-  __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","g",
-                  "\\result == \\old(x)","tests/constructs/result.i",13);
-  __e_acsl_assert(__retres == Y,1,"Postcondition","g","\\result == Y",
-                  "tests/constructs/result.i",14);
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                 __retres);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\old(x)",0,
+                                 __gen_e_acsl_at);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\result == \\old(x)";
+    __gen_e_acsl_assert_data.file = "tests/constructs/result.i";
+    __gen_e_acsl_assert_data.fct = "g";
+    __gen_e_acsl_assert_data.line = 13;
+    __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                 __retres);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"Y",0,Y);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Postcondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\result == Y";
+    __gen_e_acsl_assert_data_2.file = "tests/constructs/result.i";
+    __gen_e_acsl_assert_data_2.fct = "g";
+    __gen_e_acsl_assert_data_2.line = 14;
+    __e_acsl_assert(__retres == Y,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    return __retres;
+  }
 }
 
-/*@ ensures \result ≡ (int)(\old(x) - \old(x)); */
+/*@ ensures \result == (int)(\old(x) - \old(x)); */
 int __gen_e_acsl_f(int x)
 {
   int __gen_e_acsl_at_2;
@@ -77,11 +114,25 @@ int __gen_e_acsl_f(int x)
   __gen_e_acsl_at_2 = x;
   __gen_e_acsl_at = (long)x;
   __retres = f(x);
-  __e_acsl_assert(__retres == (int)(__gen_e_acsl_at - __gen_e_acsl_at_2),1,
-                  "Postcondition","f",
-                  "\\result == (int)(\\old(x) - \\old(x))",
-                  "tests/constructs/result.i",5);
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                 __retres);
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data,"\\old(x)",0,
+                                  __gen_e_acsl_at);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\old(x)",0,
+                                 __gen_e_acsl_at_2);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\result == (int)(\\old(x) - \\old(x))";
+    __gen_e_acsl_assert_data.file = "tests/constructs/result.i";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 5;
+    __e_acsl_assert(__retres == (int)(__gen_e_acsl_at - __gen_e_acsl_at_2),
+                    & __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    return __retres;
+  }
 }
 
 
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_rte.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_rte.c
index fad68a23da5c81abb9763db0a88c4540ca598551..7d2bc3f70f3071de07879774990f533d9995a749 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/gen_rte.c
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_rte.c
@@ -1,21 +1,21 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
-/*@ requires 1 % a ≡ 1;
-    ensures 1 % \old(b) ≡ 1;
+/*@ requires 1 % a == 1;
+    ensures 1 % \old(b) == 1;
     
     behavior bhvr:
-      assumes 1 % c ≡ 1;
-      requires 1 % d ≡ 1;
-      requires 1 % f ≡ 1 ∨ 1 % g ≡ 1;
-      requires 1 % h ≡ 1 ∧ 1 % i ≡ 1;
-      requires \let var = 1; var % j ≡ 1;
-      requires ∀ ℤ var; 0 ≤ var < k ⇒ var % k ≡ var;
-      requires ∃ ℤ var; 0 ≤ var < l ∧ var % l ≡ var;
-      ensures 1 % \old(e) ≡ 1;
+      assumes 1 % c == 1;
+      requires 1 % d == 1;
+      requires 1 % f == 1 || 1 % g == 1;
+      requires 1 % h == 1 && 1 % i == 1;
+      requires \let var = 1; var % j == 1;
+      requires \forall integer var; 0 <= var < k ==> var % k == var;
+      requires \exists integer var; 0 <= var < l && var % l == var;
+      ensures 1 % \old(e) == 1;
  */
 void __gen_e_acsl_test(int a, int b, int c, int d, int e, int f, int g,
                        int h, int i, int j, int k, int l);
@@ -29,23 +29,25 @@ void test(int a, int b, int c, int d, int e, int f, int g, int h, int i,
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   __gen_e_acsl_test(2,3,4,5,6,7,8,9,10,11,12,13);
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
-/*@ requires 1 % a ≡ 1;
-    ensures 1 % \old(b) ≡ 1;
+/*@ requires 1 % a == 1;
+    ensures 1 % \old(b) == 1;
     
     behavior bhvr:
-      assumes 1 % c ≡ 1;
-      requires 1 % d ≡ 1;
-      requires 1 % f ≡ 1 ∨ 1 % g ≡ 1;
-      requires 1 % h ≡ 1 ∧ 1 % i ≡ 1;
-      requires \let var = 1; var % j ≡ 1;
-      requires ∀ ℤ var; 0 ≤ var < k ⇒ var % k ≡ var;
-      requires ∃ ℤ var; 0 ≤ var < l ∧ var % l ≡ var;
-      ensures 1 % \old(e) ≡ 1;
+      assumes 1 % c == 1;
+      requires 1 % d == 1;
+      requires 1 % f == 1 || 1 % g == 1;
+      requires 1 % h == 1 && 1 % i == 1;
+      requires \let var = 1; var % j == 1;
+      requires \forall integer var; 0 <= var < k ==> var % k == var;
+      requires \exists integer var; 0 <= var < l && var % l == var;
+      ensures 1 % \old(e) == 1;
  */
 void __gen_e_acsl_test(int a, int b, int c, int d, int e, int f, int g,
                        int h, int i, int j, int k, int l)
@@ -56,12 +58,38 @@ void __gen_e_acsl_test(int a, int b, int c, int d, int e, int f, int g,
   {
     int __gen_e_acsl_assumes_value;
     __gen_e_acsl_contract = __e_acsl_contract_init((size_t)1);
-    __e_acsl_assert(a != 0,1,"RTE","test","division_by_zero: a != 0",
-                    "tests/constructs/rte.i",7);
-    __e_acsl_assert(1 % a == 1,1,"Precondition","test","1 % a == 1",
-                    "tests/constructs/rte.i",7);
-    __e_acsl_assert(c != 0,1,"RTE","test","division_by_zero: c != 0",
-                    "tests/constructs/rte.i",11);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"a",0,a);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"a",0,a);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "division_by_zero: a != 0";
+    __gen_e_acsl_assert_data_2.file = "tests/constructs/rte.i";
+    __gen_e_acsl_assert_data_2.fct = "test";
+    __gen_e_acsl_assert_data_2.line = 7;
+    __e_acsl_assert(a != 0,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "1 % a == 1";
+    __gen_e_acsl_assert_data.file = "tests/constructs/rte.i";
+    __gen_e_acsl_assert_data.fct = "test";
+    __gen_e_acsl_assert_data.line = 7;
+    __e_acsl_assert(1 % a == 1,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"c",0,c);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "RTE";
+    __gen_e_acsl_assert_data_3.pred_txt = "division_by_zero: c != 0";
+    __gen_e_acsl_assert_data_3.file = "tests/constructs/rte.i";
+    __gen_e_acsl_assert_data_3.fct = "test";
+    __gen_e_acsl_assert_data_3.line = 11;
+    __e_acsl_assert(c != 0,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0,
                                            1 % c == 1);
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
@@ -74,72 +102,206 @@ void __gen_e_acsl_test(int a, int b, int c, int d, int e, int f, int g,
       int __gen_e_acsl_var_2;
       int __gen_e_acsl_exists;
       int __gen_e_acsl_var_3;
-      __e_acsl_assert(d != 0,1,"RTE","test","division_by_zero: d != 0",
-                      "tests/constructs/rte.i",12);
-      __e_acsl_assert(f != 0,1,"RTE","test","division_by_zero: f != 0",
-                      "tests/constructs/rte.i",13);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"d",0,d);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"d",0,d);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "RTE";
+      __gen_e_acsl_assert_data_5.pred_txt = "division_by_zero: d != 0";
+      __gen_e_acsl_assert_data_5.file = "tests/constructs/rte.i";
+      __gen_e_acsl_assert_data_5.fct = "test";
+      __gen_e_acsl_assert_data_5.line = 12;
+      __e_acsl_assert(d != 0,& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"f",0,f);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"f",0,f);
+      __gen_e_acsl_assert_data_7.blocking = 1;
+      __gen_e_acsl_assert_data_7.kind = "RTE";
+      __gen_e_acsl_assert_data_7.pred_txt = "division_by_zero: f != 0";
+      __gen_e_acsl_assert_data_7.file = "tests/constructs/rte.i";
+      __gen_e_acsl_assert_data_7.fct = "test";
+      __gen_e_acsl_assert_data_7.line = 13;
+      __e_acsl_assert(f != 0,& __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
       if (1 % f == 1) __gen_e_acsl_or = 1;
       else {
-        __e_acsl_assert(g != 0,1,"RTE","test","division_by_zero: g != 0",
-                        "tests/constructs/rte.i",13);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"g",0,g);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"g",0,g);
+        __gen_e_acsl_assert_data_8.blocking = 1;
+        __gen_e_acsl_assert_data_8.kind = "RTE";
+        __gen_e_acsl_assert_data_8.pred_txt = "division_by_zero: g != 0";
+        __gen_e_acsl_assert_data_8.file = "tests/constructs/rte.i";
+        __gen_e_acsl_assert_data_8.fct = "test";
+        __gen_e_acsl_assert_data_8.line = 13;
+        __e_acsl_assert(g != 0,& __gen_e_acsl_assert_data_8);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
         __gen_e_acsl_or = 1 % g == 1;
       }
-      __e_acsl_assert(h != 0,1,"RTE","test","division_by_zero: h != 0",
-                      "tests/constructs/rte.i",14);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"h",0,h);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"h",0,h);
+      __gen_e_acsl_assert_data_10.blocking = 1;
+      __gen_e_acsl_assert_data_10.kind = "RTE";
+      __gen_e_acsl_assert_data_10.pred_txt = "division_by_zero: h != 0";
+      __gen_e_acsl_assert_data_10.file = "tests/constructs/rte.i";
+      __gen_e_acsl_assert_data_10.fct = "test";
+      __gen_e_acsl_assert_data_10.line = 14;
+      __e_acsl_assert(h != 0,& __gen_e_acsl_assert_data_10);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
       if (1 % h == 1) {
-        __e_acsl_assert(i != 0,1,"RTE","test","division_by_zero: i != 0",
-                        "tests/constructs/rte.i",14);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"i",0,i);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"i",0,i);
+        __gen_e_acsl_assert_data_11.blocking = 1;
+        __gen_e_acsl_assert_data_11.kind = "RTE";
+        __gen_e_acsl_assert_data_11.pred_txt = "division_by_zero: i != 0";
+        __gen_e_acsl_assert_data_11.file = "tests/constructs/rte.i";
+        __gen_e_acsl_assert_data_11.fct = "test";
+        __gen_e_acsl_assert_data_11.line = 14;
+        __e_acsl_assert(i != 0,& __gen_e_acsl_assert_data_11);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
         __gen_e_acsl_and = 1 % i == 1;
       }
       else __gen_e_acsl_and = 0;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+        {.values = (void *)0};
       __gen_e_acsl_var = 1;
-      __e_acsl_assert(j != 0,1,"RTE","test","division_by_zero: j != 0",
-                      "tests/constructs/rte.i",15);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"var",0,
+                                   __gen_e_acsl_var);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"j",0,j);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"j",0,j);
+      __gen_e_acsl_assert_data_13.blocking = 1;
+      __gen_e_acsl_assert_data_13.kind = "RTE";
+      __gen_e_acsl_assert_data_13.pred_txt = "division_by_zero: j != 0";
+      __gen_e_acsl_assert_data_13.file = "tests/constructs/rte.i";
+      __gen_e_acsl_assert_data_13.fct = "test";
+      __gen_e_acsl_assert_data_13.line = 15;
+      __e_acsl_assert(j != 0,& __gen_e_acsl_assert_data_13);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+        {.values = (void *)0};
       __gen_e_acsl_forall = 1;
       __gen_e_acsl_var_2 = 0;
       while (1) {
         if (__gen_e_acsl_var_2 < k) ; else break;
-        __e_acsl_assert(k != 0,1,"RTE","test","division_by_zero: k != 0",
-                        "tests/constructs/rte.i",16);
-        if (__gen_e_acsl_var_2 % k == __gen_e_acsl_var_2) ;
-        else {
-          __gen_e_acsl_forall = 0;
-          goto e_acsl_end_loop1;
+        {
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"k",0,k);
+          __gen_e_acsl_assert_data_15.blocking = 1;
+          __gen_e_acsl_assert_data_15.kind = "RTE";
+          __gen_e_acsl_assert_data_15.pred_txt = "division_by_zero: k != 0";
+          __gen_e_acsl_assert_data_15.file = "tests/constructs/rte.i";
+          __gen_e_acsl_assert_data_15.fct = "test";
+          __gen_e_acsl_assert_data_15.line = 16;
+          __e_acsl_assert(k != 0,& __gen_e_acsl_assert_data_15);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
+          if (__gen_e_acsl_var_2 % k == __gen_e_acsl_var_2) ;
+          else {
+            __gen_e_acsl_forall = 0;
+            goto e_acsl_end_loop1;
+          }
         }
         __gen_e_acsl_var_2 ++;
       }
       e_acsl_end_loop1: ;
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,
+                                   "bhvr: \\forall integer var; 0 <= var < k ==> var % k == var",
+                                   0,__gen_e_acsl_forall);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+        {.values = (void *)0};
       __gen_e_acsl_exists = 0;
       __gen_e_acsl_var_3 = 0;
       while (1) {
         if (__gen_e_acsl_var_3 < l) ; else break;
-        __e_acsl_assert(l != 0,1,"RTE","test","division_by_zero: l != 0",
-                        "tests/constructs/rte.i",17);
-        if (! (__gen_e_acsl_var_3 % l == __gen_e_acsl_var_3)) ;
-        else {
-          __gen_e_acsl_exists = 1;
-          goto e_acsl_end_loop2;
+        {
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"l",0,l);
+          __gen_e_acsl_assert_data_17.blocking = 1;
+          __gen_e_acsl_assert_data_17.kind = "RTE";
+          __gen_e_acsl_assert_data_17.pred_txt = "division_by_zero: l != 0";
+          __gen_e_acsl_assert_data_17.file = "tests/constructs/rte.i";
+          __gen_e_acsl_assert_data_17.fct = "test";
+          __gen_e_acsl_assert_data_17.line = 17;
+          __e_acsl_assert(l != 0,& __gen_e_acsl_assert_data_17);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
+          if (! (__gen_e_acsl_var_3 % l == __gen_e_acsl_var_3)) ;
+          else {
+            __gen_e_acsl_exists = 1;
+            goto e_acsl_end_loop2;
+          }
         }
         __gen_e_acsl_var_3 ++;
       }
       e_acsl_end_loop2: ;
-      __e_acsl_assert(__gen_e_acsl_exists,1,"Precondition","test",
-                      "bhvr: \\exists integer var; 0 <= var < l && var % l == var",
-                      "tests/constructs/rte.i",17);
-      __e_acsl_assert(__gen_e_acsl_forall,1,"Precondition","test",
-                      "bhvr: \\forall integer var; 0 <= var < k ==> var % k == var",
-                      "tests/constructs/rte.i",16);
-      __e_acsl_assert(__gen_e_acsl_var % j == 1,1,"Precondition","test",
-                      "bhvr: \\let var = 1; var % j == 1",
-                      "tests/constructs/rte.i",15);
-      __e_acsl_assert(__gen_e_acsl_and,1,"Precondition","test",
-                      "bhvr: 1 % h == 1 && 1 % i == 1",
-                      "tests/constructs/rte.i",14);
-      __e_acsl_assert(__gen_e_acsl_or,1,"Precondition","test",
-                      "bhvr: 1 % f == 1 || 1 % g == 1",
-                      "tests/constructs/rte.i",13);
-      __e_acsl_assert(1 % d == 1,1,"Precondition","test","bhvr: 1 % d == 1",
-                      "tests/constructs/rte.i",12);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,
+                                   "bhvr: \\exists integer var; 0 <= var < l && var % l == var",
+                                   0,__gen_e_acsl_exists);
+      __gen_e_acsl_assert_data_16.blocking = 1;
+      __gen_e_acsl_assert_data_16.kind = "Precondition";
+      __gen_e_acsl_assert_data_16.pred_txt = "bhvr: \\exists integer var; 0 <= var < l && var % l == var";
+      __gen_e_acsl_assert_data_16.file = "tests/constructs/rte.i";
+      __gen_e_acsl_assert_data_16.fct = "test";
+      __gen_e_acsl_assert_data_16.line = 17;
+      __e_acsl_assert(__gen_e_acsl_exists,& __gen_e_acsl_assert_data_16);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
+      __gen_e_acsl_assert_data_14.blocking = 1;
+      __gen_e_acsl_assert_data_14.kind = "Precondition";
+      __gen_e_acsl_assert_data_14.pred_txt = "bhvr: \\forall integer var; 0 <= var < k ==> var % k == var";
+      __gen_e_acsl_assert_data_14.file = "tests/constructs/rte.i";
+      __gen_e_acsl_assert_data_14.fct = "test";
+      __gen_e_acsl_assert_data_14.line = 16;
+      __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data_14);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
+      __gen_e_acsl_assert_data_12.blocking = 1;
+      __gen_e_acsl_assert_data_12.kind = "Precondition";
+      __gen_e_acsl_assert_data_12.pred_txt = "bhvr: \\let var = 1; var % j == 1";
+      __gen_e_acsl_assert_data_12.file = "tests/constructs/rte.i";
+      __gen_e_acsl_assert_data_12.fct = "test";
+      __gen_e_acsl_assert_data_12.line = 15;
+      __e_acsl_assert(__gen_e_acsl_var % j == 1,
+                      & __gen_e_acsl_assert_data_12);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "Precondition";
+      __gen_e_acsl_assert_data_9.pred_txt = "bhvr: 1 % h == 1 && 1 % i == 1";
+      __gen_e_acsl_assert_data_9.file = "tests/constructs/rte.i";
+      __gen_e_acsl_assert_data_9.fct = "test";
+      __gen_e_acsl_assert_data_9.line = 14;
+      __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_9);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "Precondition";
+      __gen_e_acsl_assert_data_6.pred_txt = "bhvr: 1 % f == 1 || 1 % g == 1";
+      __gen_e_acsl_assert_data_6.file = "tests/constructs/rte.i";
+      __gen_e_acsl_assert_data_6.fct = "test";
+      __gen_e_acsl_assert_data_6.line = 13;
+      __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Precondition";
+      __gen_e_acsl_assert_data_4.pred_txt = "bhvr: 1 % d == 1";
+      __gen_e_acsl_assert_data_4.file = "tests/constructs/rte.i";
+      __gen_e_acsl_assert_data_4.fct = "test";
+      __gen_e_acsl_assert_data_4.line = 12;
+      __e_acsl_assert(1 % d == 1,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     }
   }
   __gen_e_acsl_at_2 = e;
@@ -147,19 +309,58 @@ void __gen_e_acsl_test(int a, int b, int c, int d, int e, int f, int g,
   test(a,b,c,d,e,f,g,h,i,j,k,l);
   {
     int __gen_e_acsl_assumes_value_2;
-    __e_acsl_assert(__gen_e_acsl_at != 0,1,"RTE","test",
-                    "division_by_zero: __gen_e_acsl_at != 0",
-                    "tests/constructs/rte.i",8);
-    __e_acsl_assert(1 % __gen_e_acsl_at == 1,1,"Postcondition","test",
-                    "1 % \\old(b) == 1","tests/constructs/rte.i",8);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"\\old(b)",0,
+                                 __gen_e_acsl_at);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,
+                                 "__gen_e_acsl_at",0,__gen_e_acsl_at);
+    __gen_e_acsl_assert_data_19.blocking = 1;
+    __gen_e_acsl_assert_data_19.kind = "RTE";
+    __gen_e_acsl_assert_data_19.pred_txt = "division_by_zero: __gen_e_acsl_at != 0";
+    __gen_e_acsl_assert_data_19.file = "tests/constructs/rte.i";
+    __gen_e_acsl_assert_data_19.fct = "test";
+    __gen_e_acsl_assert_data_19.line = 8;
+    __e_acsl_assert(__gen_e_acsl_at != 0,& __gen_e_acsl_assert_data_19);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19);
+    __gen_e_acsl_assert_data_18.blocking = 1;
+    __gen_e_acsl_assert_data_18.kind = "Postcondition";
+    __gen_e_acsl_assert_data_18.pred_txt = "1 % \\old(b) == 1";
+    __gen_e_acsl_assert_data_18.file = "tests/constructs/rte.i";
+    __gen_e_acsl_assert_data_18.fct = "test";
+    __gen_e_acsl_assert_data_18.line = 8;
+    __e_acsl_assert(1 % __gen_e_acsl_at == 1,& __gen_e_acsl_assert_data_18);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18);
     __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0);
     if (__gen_e_acsl_assumes_value_2) {
-      __e_acsl_assert(__gen_e_acsl_at_2 != 0,1,"RTE","test",
-                      "division_by_zero: __gen_e_acsl_at_2 != 0",
-                      "tests/constructs/rte.i",18);
-      __e_acsl_assert(1 % __gen_e_acsl_at_2 == 1,1,"Postcondition","test",
-                      "bhvr: 1 % \\old(e) == 1","tests/constructs/rte.i",18);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,"\\old(e)",
+                                   0,__gen_e_acsl_at_2);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21,
+                                   "__gen_e_acsl_at_2",0,__gen_e_acsl_at_2);
+      __gen_e_acsl_assert_data_21.blocking = 1;
+      __gen_e_acsl_assert_data_21.kind = "RTE";
+      __gen_e_acsl_assert_data_21.pred_txt = "division_by_zero: __gen_e_acsl_at_2 != 0";
+      __gen_e_acsl_assert_data_21.file = "tests/constructs/rte.i";
+      __gen_e_acsl_assert_data_21.fct = "test";
+      __gen_e_acsl_assert_data_21.line = 18;
+      __e_acsl_assert(__gen_e_acsl_at_2 != 0,& __gen_e_acsl_assert_data_21);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21);
+      __gen_e_acsl_assert_data_20.blocking = 1;
+      __gen_e_acsl_assert_data_20.kind = "Postcondition";
+      __gen_e_acsl_assert_data_20.pred_txt = "bhvr: 1 % \\old(e) == 1";
+      __gen_e_acsl_assert_data_20.file = "tests/constructs/rte.i";
+      __gen_e_acsl_assert_data_20.fct = "test";
+      __gen_e_acsl_assert_data_20.line = 18;
+      __e_acsl_assert(1 % __gen_e_acsl_at_2 == 1,
+                      & __gen_e_acsl_assert_data_20);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20);
     }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     return;
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_stmt_contract.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_stmt_contract.c
index 7fbeb0f748b24a2cb9280a40157a05478229cd85..38f4864609d51616308e5f523b7d61217a852ae9 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/gen_stmt_contract.c
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_stmt_contract.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -11,36 +11,109 @@ int main(void)
   __e_acsl_contract_t *__gen_e_acsl_contract;
   int __retres;
   int z;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int x = 0;
   int y = 2;
-  /*@ ensures x ≡ 1; */
-  x = 1;
-  __e_acsl_assert(x == 1,1,"Postcondition","main","x == 1",
-                  "tests/constructs/stmt_contract.i",8);
+  {
+    /*@ ensures x == 1; */
+    x = 1;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "x == 1";
+    __gen_e_acsl_assert_data.file = "tests/constructs/stmt_contract.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 8;
+    __e_acsl_assert(x == 1,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
   {
     int __gen_e_acsl_and;
-    /*@ ensures x ≡ 2;
-        ensures y ≡ 2;
-        ensures x ≡ 2 ∧ y ≡ 2; */
+    /*@ ensures x == 2;
+        ensures y == 2;
+        ensures x == 2 && y == 2; */
     x = 2;
-    __e_acsl_assert(x == 2,1,"Postcondition","main","x == 2",
-                    "tests/constructs/stmt_contract.i",11);
-    __e_acsl_assert(y == 2,1,"Postcondition","main","y == 2",
-                    "tests/constructs/stmt_contract.i",12);
-    if (x == 2) __gen_e_acsl_and = y == 2; else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Postcondition","main",
-                    "x == 2 && y == 2","tests/constructs/stmt_contract.i",13);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Postcondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "x == 2";
+    __gen_e_acsl_assert_data_2.file = "tests/constructs/stmt_contract.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 11;
+    __e_acsl_assert(x == 2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"y",0,y);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Postcondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "y == 2";
+    __gen_e_acsl_assert_data_3.file = "tests/constructs/stmt_contract.i";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 12;
+    __e_acsl_assert(y == 2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"x",0,x);
+    if (x == 2) {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"y",0,y);
+      __gen_e_acsl_and = y == 2;
+    }
+    else __gen_e_acsl_and = 0;
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Postcondition";
+    __gen_e_acsl_assert_data_4.pred_txt = "x == 2 && y == 2";
+    __gen_e_acsl_assert_data_4.file = "tests/constructs/stmt_contract.i";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 13;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  __e_acsl_assert(x == 2,1,"Precondition","main","x == 2",
-                  "tests/constructs/stmt_contract.i",17);
-  /*@ requires x ≡ 2; */
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"x",0,x);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Precondition";
+    __gen_e_acsl_assert_data_5.pred_txt = "x == 2";
+    __gen_e_acsl_assert_data_5.file = "tests/constructs/stmt_contract.i";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 17;
+    __e_acsl_assert(x == 2,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+  }
+  /*@ requires x == 2; */
   x ++;
-  __e_acsl_assert(x == 3,1,"Precondition","main","x == 3",
-                  "tests/constructs/stmt_contract.i",20);
-  __e_acsl_assert(y == 2,1,"Precondition","main","y == 2",
-                  "tests/constructs/stmt_contract.i",21);
-  /*@ requires x ≡ 3;
-      requires y ≡ 2; */
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"x",0,x);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Precondition";
+    __gen_e_acsl_assert_data_6.pred_txt = "x == 3";
+    __gen_e_acsl_assert_data_6.file = "tests/constructs/stmt_contract.i";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 20;
+    __e_acsl_assert(x == 3,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"y",0,y);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Precondition";
+    __gen_e_acsl_assert_data_7.pred_txt = "y == 2";
+    __gen_e_acsl_assert_data_7.file = "tests/constructs/stmt_contract.i";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 21;
+    __e_acsl_assert(y == 2,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+  }
+  /*@ requires x == 3;
+      requires y == 2; */
   x += y;
   {
     int __gen_e_acsl_assumes_value_2;
@@ -53,45 +126,88 @@ int main(void)
                                              1);
       __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
       ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0);
-      if (__gen_e_acsl_assumes_value) __e_acsl_assert(x == 5,1,
-                                                      "Precondition","main",
-                                                      "b1: x == 5",
-                                                      "tests/constructs/stmt_contract.i",
-                                                      25);
+      if (__gen_e_acsl_assumes_value) {
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"x",0,x);
+        __gen_e_acsl_assert_data_8.blocking = 1;
+        __gen_e_acsl_assert_data_8.kind = "Precondition";
+        __gen_e_acsl_assert_data_8.pred_txt = "b1: x == 5";
+        __gen_e_acsl_assert_data_8.file = "tests/constructs/stmt_contract.i";
+        __gen_e_acsl_assert_data_8.fct = "main";
+        __gen_e_acsl_assert_data_8.line = 25;
+        __e_acsl_assert(x == 5,& __gen_e_acsl_assert_data_8);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+      }
       __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
       ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
       if (__gen_e_acsl_assumes_value) {
-        __e_acsl_assert(y == 2,1,"Precondition","main","b2: y == 2",
-                        "tests/constructs/stmt_contract.i",29);
-        __e_acsl_assert((long)x == 3L + y,1,"Precondition","main",
-                        "b2: x == 3 + y","tests/constructs/stmt_contract.i",
-                        28);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"x",0,x);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"y",0,y);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"y",0,y);
+        __gen_e_acsl_assert_data_10.blocking = 1;
+        __gen_e_acsl_assert_data_10.kind = "Precondition";
+        __gen_e_acsl_assert_data_10.pred_txt = "b2: y == 2";
+        __gen_e_acsl_assert_data_10.file = "tests/constructs/stmt_contract.i";
+        __gen_e_acsl_assert_data_10.fct = "main";
+        __gen_e_acsl_assert_data_10.line = 29;
+        __e_acsl_assert(y == 2,& __gen_e_acsl_assert_data_10);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
+        __gen_e_acsl_assert_data_9.blocking = 1;
+        __gen_e_acsl_assert_data_9.kind = "Precondition";
+        __gen_e_acsl_assert_data_9.pred_txt = "b2: x == 3 + y";
+        __gen_e_acsl_assert_data_9.file = "tests/constructs/stmt_contract.i";
+        __gen_e_acsl_assert_data_9.fct = "main";
+        __gen_e_acsl_assert_data_9.line = 28;
+        __e_acsl_assert((long)x == 3L + y,& __gen_e_acsl_assert_data_9);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
       }
     }
     /*@ behavior b1:
-          requires x ≡ 5;
-          ensures x ≡ 3;
+          requires x == 5;
+          ensures x == 3;
         
         behavior b2:
-          requires x ≡ 3 + y;
-          requires y ≡ 2;
-          ensures x ≡ y + 1;
+          requires x == 3 + y;
+          requires y == 2;
+          ensures x == y + 1;
     */
     x = 3;
     __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0);
-    if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(x == 3,1,
-                                                      "Postcondition","main",
-                                                      "b1: x == 3",
-                                                      "tests/constructs/stmt_contract.i",
-                                                      26);
+    if (__gen_e_acsl_assumes_value_2) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"x",0,x);
+      __gen_e_acsl_assert_data_11.blocking = 1;
+      __gen_e_acsl_assert_data_11.kind = "Postcondition";
+      __gen_e_acsl_assert_data_11.pred_txt = "b1: x == 3";
+      __gen_e_acsl_assert_data_11.file = "tests/constructs/stmt_contract.i";
+      __gen_e_acsl_assert_data_11.fct = "main";
+      __gen_e_acsl_assert_data_11.line = 26;
+      __e_acsl_assert(x == 3,& __gen_e_acsl_assert_data_11);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
+    }
     __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
-    if (__gen_e_acsl_assumes_value_2) __e_acsl_assert((long)x == y + 1L,1,
-                                                      "Postcondition","main",
-                                                      "b2: x == y + 1",
-                                                      "tests/constructs/stmt_contract.i",
-                                                      30);
+    if (__gen_e_acsl_assumes_value_2) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"x",0,x);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"y",0,y);
+      __gen_e_acsl_assert_data_12.blocking = 1;
+      __gen_e_acsl_assert_data_12.kind = "Postcondition";
+      __gen_e_acsl_assert_data_12.pred_txt = "b2: x == y + 1";
+      __gen_e_acsl_assert_data_12.file = "tests/constructs/stmt_contract.i";
+      __gen_e_acsl_assert_data_12.fct = "main";
+      __gen_e_acsl_assert_data_12.line = 30;
+      __e_acsl_assert((long)x == y + 1L,& __gen_e_acsl_assert_data_12);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
+    }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
   }
   {
@@ -105,39 +221,88 @@ int main(void)
                                            __gen_e_acsl_and_2);
     __gen_e_acsl_assumes_value_3 = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract_2,(size_t)0);
-    if (__gen_e_acsl_assumes_value_3) __e_acsl_assert(x == 0,1,
-                                                      "Precondition","main",
-                                                      "b1: x == 0",
-                                                      "tests/constructs/stmt_contract.i",
-                                                      35);
+    if (__gen_e_acsl_assumes_value_3) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"x",0,x);
+      __gen_e_acsl_assert_data_13.blocking = 1;
+      __gen_e_acsl_assert_data_13.kind = "Precondition";
+      __gen_e_acsl_assert_data_13.pred_txt = "b1: x == 0";
+      __gen_e_acsl_assert_data_13.file = "tests/constructs/stmt_contract.i";
+      __gen_e_acsl_assert_data_13.fct = "main";
+      __gen_e_acsl_assert_data_13.line = 35;
+      __e_acsl_assert(x == 0,& __gen_e_acsl_assert_data_13);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
+    }
     __gen_e_acsl_assumes_value_3 = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract_2,(size_t)1);
     if (__gen_e_acsl_assumes_value_3) {
-      __e_acsl_assert(x + (long)y == 5L,1,"Precondition","main",
-                      "b2: x + y == 5","tests/constructs/stmt_contract.i",40);
-      __e_acsl_assert(x == 3,1,"Precondition","main","b2: x == 3",
-                      "tests/constructs/stmt_contract.i",39);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"x",0,x);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"x",0,x);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"y",0,y);
+      __gen_e_acsl_assert_data_15.blocking = 1;
+      __gen_e_acsl_assert_data_15.kind = "Precondition";
+      __gen_e_acsl_assert_data_15.pred_txt = "b2: x + y == 5";
+      __gen_e_acsl_assert_data_15.file = "tests/constructs/stmt_contract.i";
+      __gen_e_acsl_assert_data_15.fct = "main";
+      __gen_e_acsl_assert_data_15.line = 40;
+      __e_acsl_assert(x + (long)y == 5L,& __gen_e_acsl_assert_data_15);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
+      __gen_e_acsl_assert_data_14.blocking = 1;
+      __gen_e_acsl_assert_data_14.kind = "Precondition";
+      __gen_e_acsl_assert_data_14.pred_txt = "b2: x == 3";
+      __gen_e_acsl_assert_data_14.file = "tests/constructs/stmt_contract.i";
+      __gen_e_acsl_assert_data_14.fct = "main";
+      __gen_e_acsl_assert_data_14.line = 39;
+      __e_acsl_assert(x == 3,& __gen_e_acsl_assert_data_14);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
     }
   }
   /*@ behavior b1:
-        assumes x ≡ 1;
-        requires x ≡ 0;
+        assumes x == 1;
+        requires x == 0;
       
       behavior b2:
-        assumes x ≡ 3;
-        assumes y ≡ 2;
-        requires x ≡ 3;
-        requires x + y ≡ 5;
+        assumes x == 3;
+        assumes y == 2;
+        requires x == 3;
+        requires x + y == 5;
   */
   x += y;
   __e_acsl_contract_clean(__gen_e_acsl_contract_2);
-  __e_acsl_assert(x == 5,1,"Precondition","main","x == 5",
-                  "tests/constructs/stmt_contract.i",43);
-  /*@ requires x ≡ 5; */
   {
-    __e_acsl_assert(y == 2,1,"Precondition","main","y == 2",
-                    "tests/constructs/stmt_contract.i",44);
-    /*@ requires y ≡ 2; */
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"x",0,x);
+    __gen_e_acsl_assert_data_16.blocking = 1;
+    __gen_e_acsl_assert_data_16.kind = "Precondition";
+    __gen_e_acsl_assert_data_16.pred_txt = "x == 5";
+    __gen_e_acsl_assert_data_16.file = "tests/constructs/stmt_contract.i";
+    __gen_e_acsl_assert_data_16.fct = "main";
+    __gen_e_acsl_assert_data_16.line = 43;
+    __e_acsl_assert(x == 5,& __gen_e_acsl_assert_data_16);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
+  }
+  /*@ requires x == 5; */
+  {
+    {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"y",0,y);
+      __gen_e_acsl_assert_data_17.blocking = 1;
+      __gen_e_acsl_assert_data_17.kind = "Precondition";
+      __gen_e_acsl_assert_data_17.pred_txt = "y == 2";
+      __gen_e_acsl_assert_data_17.file = "tests/constructs/stmt_contract.i";
+      __gen_e_acsl_assert_data_17.fct = "main";
+      __gen_e_acsl_assert_data_17.line = 44;
+      __e_acsl_assert(y == 2,& __gen_e_acsl_assert_data_17);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
+    }
+    /*@ requires y == 2; */
     x += y;
   }
   {
@@ -145,68 +310,151 @@ int main(void)
     {
       int __gen_e_acsl_active_bhvrs;
       __gen_e_acsl_contract_3 = __e_acsl_contract_init((size_t)2);
-      __e_acsl_assert(x > -1000,1,"Precondition","main","x > -1000",
-                      "tests/constructs/stmt_contract.i",49);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"x",0,x);
+      __gen_e_acsl_assert_data_18.blocking = 1;
+      __gen_e_acsl_assert_data_18.kind = "Precondition";
+      __gen_e_acsl_assert_data_18.pred_txt = "x > -1000";
+      __gen_e_acsl_assert_data_18.file = "tests/constructs/stmt_contract.i";
+      __gen_e_acsl_assert_data_18.fct = "main";
+      __gen_e_acsl_assert_data_18.line = 49;
+      __e_acsl_assert(x > -1000,& __gen_e_acsl_assert_data_18);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18);
       __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract_3,
                                              (size_t)0,x >= 0);
       __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract_3,
                                              (size_t)1,x < 0);
       __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_all_behaviors
       ((__e_acsl_contract_t const *)__gen_e_acsl_contract_3);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,
+                                   "number of active behaviors",0,
+                                   __gen_e_acsl_active_bhvrs);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,
+                                   "number of active behaviors",0,
+                                   __gen_e_acsl_active_bhvrs);
       if (__gen_e_acsl_active_bhvrs != 1) {
-        __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,1,"Precondition",
-                        "main","all behaviors complete",
-                        "tests/constructs/stmt_contract.i",64);
-        __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,1,"Precondition",
-                        "main","all behaviors disjoint",
-                        "tests/constructs/stmt_contract.i",64);
+        __gen_e_acsl_assert_data_19.blocking = 1;
+        __gen_e_acsl_assert_data_19.kind = "Precondition";
+        __gen_e_acsl_assert_data_19.pred_txt = "all behaviors complete";
+        __gen_e_acsl_assert_data_19.file = "tests/constructs/stmt_contract.i";
+        __gen_e_acsl_assert_data_19.fct = "main";
+        __gen_e_acsl_assert_data_19.line = 64;
+        __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,
+                        & __gen_e_acsl_assert_data_19);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19);
+        __gen_e_acsl_assert_data_20.blocking = 1;
+        __gen_e_acsl_assert_data_20.kind = "Precondition";
+        __gen_e_acsl_assert_data_20.pred_txt = "all behaviors disjoint";
+        __gen_e_acsl_assert_data_20.file = "tests/constructs/stmt_contract.i";
+        __gen_e_acsl_assert_data_20.fct = "main";
+        __gen_e_acsl_assert_data_20.line = 64;
+        __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,
+                        & __gen_e_acsl_assert_data_20);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20);
       }
     }
     /*@ requires x > -1000;
-        ensures z ≥ 0;
+        ensures z >= 0;
         assigns x;
         
         behavior pos:
-          assumes x ≥ 0;
-          ensures z ≡ x;
+          assumes x >= 0;
+          ensures z == x;
         
         behavior neg:
           assumes x < 0;
-          ensures z ≡ -x;
+          ensures z == -x;
         
         complete behaviors neg, pos;
         disjoint behaviors neg, pos;
     */
     if (x < 0) z = - x; else z = x;
-    __e_acsl_assert(z >= 0,1,"Postcondition","main","z >= 0",
-                    "tests/constructs/stmt_contract.i",51);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21,"z",0,z);
+    __gen_e_acsl_assert_data_21.blocking = 1;
+    __gen_e_acsl_assert_data_21.kind = "Postcondition";
+    __gen_e_acsl_assert_data_21.pred_txt = "z >= 0";
+    __gen_e_acsl_assert_data_21.file = "tests/constructs/stmt_contract.i";
+    __gen_e_acsl_assert_data_21.fct = "main";
+    __gen_e_acsl_assert_data_21.line = 51;
+    __e_acsl_assert(z >= 0,& __gen_e_acsl_assert_data_21);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21);
     __gen_e_acsl_assumes_value_4 = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract_3,(size_t)0);
-    if (__gen_e_acsl_assumes_value_4) __e_acsl_assert(z == x,1,
-                                                      "Postcondition","main",
-                                                      "pos: z == x",
-                                                      "tests/constructs/stmt_contract.i",
-                                                      55);
+    if (__gen_e_acsl_assumes_value_4) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,"z",0,z);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,"x",0,x);
+      __gen_e_acsl_assert_data_22.blocking = 1;
+      __gen_e_acsl_assert_data_22.kind = "Postcondition";
+      __gen_e_acsl_assert_data_22.pred_txt = "pos: z == x";
+      __gen_e_acsl_assert_data_22.file = "tests/constructs/stmt_contract.i";
+      __gen_e_acsl_assert_data_22.fct = "main";
+      __gen_e_acsl_assert_data_22.line = 55;
+      __e_acsl_assert(z == x,& __gen_e_acsl_assert_data_22);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22);
+    }
     __gen_e_acsl_assumes_value_4 = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract_3,(size_t)1);
-    if (__gen_e_acsl_assumes_value_4) __e_acsl_assert((long)z == - ((long)x),
-                                                      1,"Postcondition",
-                                                      "main","neg: z == -x",
-                                                      "tests/constructs/stmt_contract.i",
-                                                      59);
+    if (__gen_e_acsl_assumes_value_4) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"z",0,z);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"x",0,x);
+      __gen_e_acsl_assert_data_23.blocking = 1;
+      __gen_e_acsl_assert_data_23.kind = "Postcondition";
+      __gen_e_acsl_assert_data_23.pred_txt = "neg: z == -x";
+      __gen_e_acsl_assert_data_23.file = "tests/constructs/stmt_contract.i";
+      __gen_e_acsl_assert_data_23.fct = "main";
+      __gen_e_acsl_assert_data_23.line = 59;
+      __e_acsl_assert((long)z == - ((long)x),& __gen_e_acsl_assert_data_23);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23);
+    }
     __e_acsl_contract_clean(__gen_e_acsl_contract_3);
   }
-  __e_acsl_assert(x == 7,1,"Precondition","main","x == 7",
-                  "tests/constructs/stmt_contract.i",70);
-  /*@ requires x ≡ 7;
-      ensures x ≡ 7; */
   {
-    __retres = 0;
-    goto return_label;
+    {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_24 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,"x",0,x);
+      __gen_e_acsl_assert_data_24.blocking = 1;
+      __gen_e_acsl_assert_data_24.kind = "Precondition";
+      __gen_e_acsl_assert_data_24.pred_txt = "x == 7";
+      __gen_e_acsl_assert_data_24.file = "tests/constructs/stmt_contract.i";
+      __gen_e_acsl_assert_data_24.fct = "main";
+      __gen_e_acsl_assert_data_24.line = 70;
+      __e_acsl_assert(x == 7,& __gen_e_acsl_assert_data_24);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_24);
+    }
+    /*@ requires x == 7;
+        ensures x == 7; */
+    {
+      __retres = 0;
+      goto return_label;
+    }
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_25 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"x",0,x);
+    __gen_e_acsl_assert_data_25.blocking = 1;
+    __gen_e_acsl_assert_data_25.kind = "Postcondition";
+    __gen_e_acsl_assert_data_25.pred_txt = "x == 7";
+    __gen_e_acsl_assert_data_25.file = "tests/constructs/stmt_contract.i";
+    __gen_e_acsl_assert_data_25.fct = "main";
+    __gen_e_acsl_assert_data_25.line = 71;
+    __e_acsl_assert(x == 7,& __gen_e_acsl_assert_data_25);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_25);
   }
-  __e_acsl_assert(x == 7,1,"Postcondition","main","x == 7",
-                  "tests/constructs/stmt_contract.i",71);
-  return_label: return __retres;
+  return_label: {
+                  __e_acsl_memory_clean();
+                  return __retres;
+                }
 }
 
 
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_true.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_true.c
index 4417657b8079620bf6c69cc60f6bdd9dc036687a..51a747050c1907f3bc2f46ab2c8cc4c049f84b46 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/gen_true.c
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_true.c
@@ -1,18 +1,28 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int x = 0;
   x ++;
-  __e_acsl_assert(1,1,"Assertion","main","\\true","tests/constructs/true.i",
-                  8);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\true";
+    __gen_e_acsl_assert_data.file = "tests/constructs/true.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 8;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data);
+  }
   /*@ assert \true; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/gen_typedef.c b/src/plugins/e-acsl/tests/constructs/oracle/gen_typedef.c
index 45bc00f263118febfab9bc1d789ef7e9e42e4b68..5a9b5f9d85eccb3c23170adab538b961cded0752 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/gen_typedef.c
+++ b/src/plugins/e-acsl/tests/constructs/oracle/gen_typedef.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -8,11 +8,23 @@ typedef unsigned char uint8;
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   uint8 x = (unsigned char)0;
-  __e_acsl_assert((int)x == 0,1,"Assertion","main","x == 0",
-                  "tests/constructs/typedef.i",9);
-  /*@ assert x ≡ 0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_uchar(& __gen_e_acsl_assert_data,"x",0,x);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "x == 0";
+    __gen_e_acsl_assert_data.file = "tests/constructs/typedef.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 9;
+    __e_acsl_assert((int)x == 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert x == 0; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/ghost.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/ghost.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..32e4d749cabb19bc87afa92dff197def38da0df0 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/ghost.res.oracle
+++ b/src/plugins/e-acsl/tests/constructs/oracle/ghost.res.oracle
@@ -1,2 +1,17 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/constructs/ghost.i:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/ghost.i:14: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/ghost.i:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/ghost.i:14: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/ghost.i:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/invariant.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/invariant.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..87a742579edb6f2645964f99a1db36e5a8c3f484 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/invariant.res.oracle
+++ b/src/plugins/e-acsl/tests/constructs/oracle/invariant.res.oracle
@@ -1,2 +1,8 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/constructs/invariant.i:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/invariant.i:11: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/lazy.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/lazy.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..72ce7b18c2cb178c251eeaef119de446440dc257 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/lazy.res.oracle
+++ b/src/plugins/e-acsl/tests/constructs/oracle/lazy.res.oracle
@@ -1,2 +1,50 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/constructs/lazy.i:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/lazy.i:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/lazy.i:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/lazy.i:16: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/lazy.i:17: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/lazy.i:20: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/lazy.i:21: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/lazy.i:21: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/lazy.i:24: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/lazy.i:24: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/lazy.i:25: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/lazy.i:26: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/lazy.i:26: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/lazy.i:27: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/lazy.i:27: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/lazy.i:28: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/loop.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/loop.res.oracle
index 86e58d678ea4f7f60b6d4fbc258872a440f47434..3b8159dcb6314aa624be08354e7289901ecc7dc9 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/loop.res.oracle
+++ b/src/plugins/e-acsl/tests/constructs/oracle/loop.res.oracle
@@ -1,4 +1,16 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/constructs/loop.i:8: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/loop.i:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/loop.i:17: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/constructs/loop.i:19: Warning: 
   loop invariant got status unknown.
+[eva:alarm] tests/constructs/loop.i:26: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/nested_code_annot.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/nested_code_annot.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..1b4e901d1f24e00d0fdca0a812e685216968c59b 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/nested_code_annot.res.oracle
+++ b/src/plugins/e-acsl/tests/constructs/oracle/nested_code_annot.res.oracle
@@ -1,2 +1,5 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/constructs/nested_code_annot.i:7: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/printed_data.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/printed_data.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..c5c7a5158f41c430d9cf3cc74d4fc3a5968c9610
--- /dev/null
+++ b/src/plugins/e-acsl/tests/constructs/oracle/printed_data.res.oracle
@@ -0,0 +1,105 @@
+[e-acsl] beginning translation.
+[e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/constructs/printed_data.c:69: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:71: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:73: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:75: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:77: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:79: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:81: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:83: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:85: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:87: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:89: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:91: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:93: Warning: 
+  function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:93: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:98: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:100: Warning: 
+  assertion got status unknown.
+[eva] tests/constructs/printed_data.c:101: Warning: 
+  cannot parse floating-point constant, returning imprecise result
+[eva:alarm] tests/constructs/printed_data.c:101: Warning: 
+  non-finite long double value.
+  assert \is_finite((long double)0x1.fffffffffffffffep+16383L);
+[eva:alarm] tests/constructs/printed_data.c:102: Warning: 
+  non-finite long double value. assert \is_finite(real_ldouble);
+[eva:alarm] tests/constructs/printed_data.c:102: Warning: 
+  non-finite long double value. assert \is_finite(real_ldouble);
+[eva:alarm] tests/constructs/printed_data.c:102: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:104: Warning: 
+  function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:104: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:113: Warning: 
+  function __e_acsl_assert_register_array: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:113: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:118: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:123: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:128: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:133: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:135: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:137: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:139: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:141: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:143: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:145: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:147: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:149: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:151: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:153: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:155: Warning: 
+  assertion got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:161: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:161: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:161: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:161: Warning: 
+  function __e_acsl_assert_register_long: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:161: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:161: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/printed_data.c:161: Warning: 
+  assertion got status unknown.
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/result.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/result.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..cdb9889d96b7f67de1076959b7317368690ff37d 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/result.res.oracle
+++ b/src/plugins/e-acsl/tests/constructs/oracle/result.res.oracle
@@ -1,2 +1,14 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/constructs/result.i:5: Warning: 
+  function __e_acsl_assert_register_long: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/result.i:5: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/result.i:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/constructs/result.i:14: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/rte.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/rte.res.oracle
index 59a91431c62c3df5798cb861bd233db93ff56dd4..0ee463d309ed522b2c8cb86a27cc254a0e01e2d7 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/rte.res.oracle
+++ b/src/plugins/e-acsl/tests/constructs/oracle/rte.res.oracle
@@ -2,12 +2,12 @@
 [e-acsl] translation done in project "e-acsl".
 [eva:alarm] tests/constructs/rte.i:24: Warning: 
   function __gen_e_acsl_test, behavior bhvr: precondition \let var = 1;
-                                                            var % j ≡ 1 got status unknown.
+                                                            var % j == 1 got status unknown.
 [eva:alarm] tests/constructs/rte.i:24: Warning: 
-  function __gen_e_acsl_test, behavior bhvr: precondition ∀ ℤ var;
-                                                            0 ≤ var < k ⇒
-                                                            var % k ≡ var got status unknown.
+  function __gen_e_acsl_test, behavior bhvr: precondition \forall integer var;
+                                                            0 <= var < k ==>
+                                                            var % k == var got status unknown.
 [eva:alarm] tests/constructs/rte.i:24: Warning: 
-  function __gen_e_acsl_test, behavior bhvr: precondition ∃ ℤ var;
-                                                            0 ≤ var < l ∧
-                                                            var % l ≡ var got status unknown.
+  function __gen_e_acsl_test, behavior bhvr: precondition \exists integer var;
+                                                            0 <= var < l &&
+                                                            var % l == var got status unknown.
diff --git a/src/plugins/e-acsl/tests/constructs/oracle/stmt_contract.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle/stmt_contract.res.oracle
index b1c4f6eb72229f64ba5bf67742a6f9968e207c4c..e1898de466724603f138db1fb9b0ea957d827e72 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle/stmt_contract.res.oracle
+++ b/src/plugins/e-acsl/tests/constructs/oracle/stmt_contract.res.oracle
@@ -3,3 +3,6 @@
   E-ACSL construct `assigns clause in behavior' is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/constructs/stmt_contract.i:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/constructs/oracle_dev/acsl_check.e-acsl.err.log b/src/plugins/e-acsl/tests/constructs/oracle_dev/acsl_check.e-acsl.err.log
index af29dee8a4ec16fdff76c6e580985d4da89f2f58..9422fb60d46fc2065990dd8de912a1ea2005c39a 100644
--- a/src/plugins/e-acsl/tests/constructs/oracle_dev/acsl_check.e-acsl.err.log
+++ b/src/plugins/e-acsl/tests/constructs/oracle_dev/acsl_check.e-acsl.err.log
@@ -1,13 +1,13 @@
 tests/constructs/acsl_check.c: In function 'main'
-tests/constructs/acsl_check.c:18: Error: Assertion failed:
+tests/constructs/acsl_check.c:21: Error: Assertion failed:
 	The failing predicate is:
 	a == 1.
 tests/constructs/acsl_check.c: In function 'f'
-tests/constructs/acsl_check.c:4: Error: Precondition failed:
+tests/constructs/acsl_check.c:7: Error: Precondition failed:
 	The failing predicate is:
 	a != 0.
 tests/constructs/acsl_check.c: In function 'f'
-tests/constructs/acsl_check.c:5: Error: Postcondition failed:
+tests/constructs/acsl_check.c:8: Error: Postcondition failed:
 	The failing predicate is:
 	\result != 0.
 SHOULD BE PRINTED IN EXECUTION LOG
diff --git a/src/plugins/e-acsl/tests/constructs/oracle_dev/printed_data.e-acsl.err.log b/src/plugins/e-acsl/tests/constructs/oracle_dev/printed_data.e-acsl.err.log
new file mode 100644
index 0000000000000000000000000000000000000000..b820f2dcbadf569433cea39c6f14f6f9d9518dbe
--- /dev/null
+++ b/src/plugins/e-acsl/tests/constructs/oracle_dev/printed_data.e-acsl.err.log
@@ -0,0 +1,183 @@
+EVERY ASSERTION SHOULD PRINT ITS DATA IN EXECUTION LOG
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:69: Assertion valid:
+	\let x = int_bool; \true.
+	With values:
+	- int_bool: 1
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:71: Assertion valid:
+	\let x = int_char; \true.
+	With values:
+	- int_char: 127
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:73: Assertion valid:
+	\let x = int_schar; \true.
+	With values:
+	- int_schar: 127
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:75: Assertion valid:
+	\let x = int_uchar; \true.
+	With values:
+	- int_uchar: 255
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:77: Assertion valid:
+	\let x = int_int; \true.
+	With values:
+	- int_int: 2147483647
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:79: Assertion valid:
+	\let x = int_uint; \true.
+	With values:
+	- int_uint: 4294967295
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:81: Assertion valid:
+	\let x = int_short; \true.
+	With values:
+	- int_short: 32767
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:83: Assertion valid:
+	\let x = int_ushort; \true.
+	With values:
+	- int_ushort: 65535
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:85: Assertion valid:
+	\let x = int_long; \true.
+	With values:
+	- int_long: 9223372036854775807
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:87: Assertion valid:
+	\let x = int_ulong; \true.
+	With values:
+	- int_ulong: 18446744073709551615
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:89: Assertion valid:
+	\let x = int_llong; \true.
+	With values:
+	- int_llong: 9223372036854775807
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:91: Assertion valid:
+	\let x = int_ullong; \true.
+	With values:
+	- int_ullong: 18446744073709551615
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:93: Assertion valid:
+	\let int_mpz = (0x7fffffffffffffffLL * 2ULL + 1ULL) + 1;
+  int_mpz != 0x7fffffffffffffffLL * 2ULL + 1ULL.
+	With values:
+	- int_mpz: 18446744073709551616
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:98: Assertion valid:
+	\let x = real_float; \true.
+	With values:
+	- real_float: 3.402823e+38
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:100: Assertion valid:
+	\let x = real_double; \true.
+	With values:
+	- real_double: 1.797693e+308
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:102: Assertion valid:
+	\let x = real_ldouble; \true.
+	With values:
+	- real_ldouble: 1.189731e+4932
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:104: Assertion valid:
+	\let real_mpq = 0.1; real_mpq != 1.
+	With values:
+	- real_mpq: 1/10
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:109: Assertion valid:
+	ptr != (void *)0.
+	With values:
+	- ptr: 0x000000
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:113: Assertion valid:
+	array1 != array2.
+	With values:
+	- array2: <array>
+		- address: 0x000000
+	- array1: <array>
+		- address: 0x000000
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:118: Assertion valid:
+	&f != &g.
+	With values:
+	- &g: 0x000000
+	- &f: 0x000000
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:123: Assertion valid:
+	\let x = struct1; \true.
+	With values:
+	- struct1: <struct>
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:128: Assertion valid:
+	\let x = union1; \true.
+	With values:
+	- union1: <union>
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:133: Assertion valid:
+	\let x = enum_bool; \true.
+	With values:
+	- enum_bool: <enum> 1
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:135: Assertion valid:
+	\let x = enum_char; \true.
+	With values:
+	- enum_char: <enum> 127
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:137: Assertion valid:
+	\let x = enum_schar; \true.
+	With values:
+	- enum_schar: <enum> 127
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:139: Assertion valid:
+	\let x = enum_uchar; \true.
+	With values:
+	- enum_uchar: <enum> 255
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:141: Assertion valid:
+	\let x = enum_int; \true.
+	With values:
+	- enum_int: <enum> 2147483647
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:143: Assertion valid:
+	\let x = enum_uint; \true.
+	With values:
+	- enum_uint: <enum> 4294967295
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:145: Assertion valid:
+	\let x = enum_short; \true.
+	With values:
+	- enum_short: <enum> 32767
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:147: Assertion valid:
+	\let x = enum_ushort; \true.
+	With values:
+	- enum_ushort: <enum> 65535
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:149: Assertion valid:
+	\let x = enum_long; \true.
+	With values:
+	- enum_long: <enum> 9223372036854775807
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:151: Assertion valid:
+	\let x = enum_ulong; \true.
+	With values:
+	- enum_ulong: <enum> 18446744073709551615
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:153: Assertion valid:
+	\let x = enum_llong; \true.
+	With values:
+	- enum_llong: <enum> 9223372036854775807
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:155: Assertion valid:
+	\let x = enum_ullong; \true.
+	With values:
+	- enum_ullong: <enum> 18446744073709551615
+tests/constructs/printed_data.c: In function 'main'
+tests/constructs/printed_data.c:161: Assertion valid:
+	\let c = a + b; a != b && c == a + b.
+	With values:
+	- c: 5
+	- b: 3
+	- a: 2
diff --git a/src/plugins/e-acsl/tests/constructs/printed_data.c b/src/plugins/e-acsl/tests/constructs/printed_data.c
new file mode 100644
index 0000000000000000000000000000000000000000..8da27ae88f84d87e23005dc89776b8605ef0fd98
--- /dev/null
+++ b/src/plugins/e-acsl/tests/constructs/printed_data.c
@@ -0,0 +1,164 @@
+/* run.config
+   COMMENT: Test the output of data contributing to an assertion.
+*/
+/* run.config_dev
+   COMMENT: Print the data and filter the addresses of the output so that the test is deterministic.
+   MACRO: ROOT_EACSL_GCC_OPTS_EXT --assert-print-data -e -DE_ACSL_DEBUG_ASSERT -F -no-unicode
+   MACRO: ROOT_EACSL_EXEC_FILTER @SEDCMD@ -e "s|0x[0-9a-f]*$|0x000000|g"
+ */
+
+#include <float.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdio.h>
+
+void f() {}
+void g() {}
+
+struct A {
+  int a;
+};
+
+union U {
+  int a;
+  float b;
+};
+
+int lvalue = 1;
+int array1[] = {1, 2, 3, 4};
+int array2[] = {5, 6};
+
+enum EBool { EBOOL_MIN = (_Bool)0, EBOOL_MAX = (_Bool)1 };
+enum EChar { ECHAR_MIN = (char)CHAR_MIN, ECHAR_MAX = (char)CHAR_MAX };
+enum ESChar {
+  ESCHAR_MIN = (signed char)SCHAR_MIN,
+  ESCHAR_MAX = (signed char)SCHAR_MAX
+};
+enum EUChar {
+  EUCHAR_MIN = (unsigned char)0,
+  EUCHAR_MAX = (unsigned char)UCHAR_MAX
+};
+enum EInt { EINT_MIN = (int)INT_MIN, EINT_MAX = (int)INT_MAX };
+enum EUInt { EUINT_MIN = (unsigned int)0, EUINT_MAX = (unsigned int)UINT_MAX };
+enum EShort { ESHORT_MIN = (short)SHRT_MIN, ESHORT_MAX = (short)SHRT_MAX };
+enum EUShort {
+  EUSHORT_MIN = (unsigned short)0,
+  EUSHORT_MAX = (unsigned short)USHRT_MAX
+};
+enum ELong { ELONG_MIN = (long)LONG_MIN, ELONG_MAX = (long)LONG_MAX };
+enum EULong {
+  EULONG_MIN = (unsigned long)0,
+  EULONG_MAX = (unsigned long)ULONG_MAX
+};
+enum ELLong {
+  ELLONG_MIN = (long long)LLONG_MIN,
+  ELLONG_MAX = (long long)LLONG_MAX
+};
+enum EULLong {
+  EULLONG_MIN = (unsigned long long)0,
+  EULLONG_MAX = (unsigned long long)ULLONG_MAX
+};
+
+int main() {
+  fprintf(stderr, "EVERY ASSERTION SHOULD PRINT ITS DATA IN EXECUTION LOG\n");
+
+  // Integers
+  // --------
+  _Bool int_bool = 1;
+  //@ assert \let x = int_bool; \true;
+  char int_char = CHAR_MAX;
+  //@ assert \let x = int_char; \true;
+  signed char int_schar = SCHAR_MAX;
+  //@ assert \let x = int_schar; \true;
+  unsigned char int_uchar = UCHAR_MAX;
+  //@ assert \let x = int_uchar; \true;
+  int int_int = INT_MAX;
+  //@ assert \let x = int_int; \true;
+  unsigned int int_uint = UINT_MAX;
+  //@ assert \let x = int_uint; \true;
+  short int_short = SHRT_MAX;
+  //@ assert \let x = int_short; \true;
+  unsigned short int_ushort = USHRT_MAX;
+  //@ assert \let x = int_ushort; \true;
+  long int_long = LONG_MAX;
+  //@ assert \let x = int_long; \true;
+  unsigned long int_ulong = ULONG_MAX;
+  //@ assert \let x = int_ulong; \true;
+  long long int_llong = LLONG_MAX;
+  //@ assert \let x = int_llong; \true;
+  unsigned long long int_ullong = ULLONG_MAX;
+  //@ assert \let x = int_ullong; \true;
+  // MPZ
+  //@ assert \let int_mpz = ULLONG_MAX + 1; int_mpz != ULLONG_MAX;
+
+  // Reals
+  // -----
+  float real_float = FLT_MAX;
+  //@ assert \let x = real_float; \true;
+  double real_double = DBL_MAX;
+  //@ assert \let x = real_double; \true;
+  long double real_ldouble = LDBL_MAX;
+  //@ assert \let x = real_ldouble; \true;
+  // MPQ
+  //@ assert \let real_mpq = 0.1; real_mpq != 1;
+
+  // Pointer
+  // -------
+  void *ptr = &lvalue;
+  //@ assert ptr != NULL;
+
+  // Array
+  // -----
+  //@ assert array1 != array2;
+
+  // Function
+  // --------
+  // FIXME: here f and g are pointers and not "functions"
+  //@ assert f != g;
+
+  // Structure
+  // ---------
+  struct A struct1 = {.a = 1};
+  //@ assert \let x = struct1; \true;
+
+  // Union
+  // -----
+  union U union1 = {.b = 1.};
+  //@ assert \let x = union1; \true;
+
+  // Enum
+  // ----
+  enum EBool enum_bool = EBOOL_MAX;
+  //@ assert \let x = enum_bool; \true;
+  enum EChar enum_char = ECHAR_MAX;
+  //@ assert \let x = enum_char; \true;
+  enum ESChar enum_schar = ESCHAR_MAX;
+  //@ assert \let x = enum_schar; \true;
+  enum EUChar enum_uchar = EUCHAR_MAX;
+  //@ assert \let x = enum_uchar; \true;
+  enum EInt enum_int = EINT_MAX;
+  //@ assert \let x = enum_int; \true;
+  enum EUInt enum_uint = EUINT_MAX;
+  //@ assert \let x = enum_uint; \true;
+  enum EShort enum_short = ESHORT_MAX;
+  //@ assert \let x = enum_short; \true;
+  enum EUShort enum_ushort = EUSHORT_MAX;
+  //@ assert \let x = enum_ushort; \true;
+  enum ELong enum_long = ELONG_MAX;
+  //@ assert \let x = enum_long; \true;
+  enum EULong enum_ulong = EULONG_MAX;
+  //@ assert \let x = enum_ulong; \true;
+  enum ELLong enum_llong = ELLONG_MAX;
+  //@ assert \let x = enum_llong; \true;
+  enum EULLong enum_ullong = EULLONG_MAX;
+  //@ assert \let x = enum_ullong; \true;
+
+  // Deduplication
+  // -------------
+  int a = 2;
+  int b = 3;
+  //@ assert \let c = a + b; a != b && c == a + b;
+
+  return 0;
+}
diff --git a/src/plugins/e-acsl/tests/examples/oracle/gen_functions_contiki.c b/src/plugins/e-acsl/tests/examples/oracle/gen_functions_contiki.c
index 4238666d02ed9e9f3feb384735ea6246bf07c528..c321d78c65903e3eeec3e96d9ec4b9699ee8627a 100644
--- a/src/plugins/e-acsl/tests/examples/oracle/gen_functions_contiki.c
+++ b/src/plugins/e-acsl/tests/examples/oracle/gen_functions_contiki.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -9,13 +10,13 @@ struct list {
    int value ;
 };
 /*@
-logic ℤ length_aux{L}(struct list *l, ℤ n) =
+logic integer length_aux{L}(struct list *l, integer n) =
   \at(n < 0? -1:
-        (l ≡ (struct list *)0? n:
+        (l == (struct list *)0? n:
            (n < 2147483647? length_aux(l->next, n + 1): -1)),
       L);
  */
-/*@ logic ℤ length{L}(struct list *l) = \at(length_aux(l, 0),L);
+/*@ logic integer length{L}(struct list *l) = \at(length_aux(l, 0),L);
 
 */
 int main(void)
@@ -35,7 +36,7 @@ int main(void)
   struct list *l = & node1;
   __e_acsl_store_block((void *)(& l),(size_t)8);
   __e_acsl_full_init((void *)(& l));
-  /*@ assert length(l) ≡ 3; */ ;
+  /*@ assert length(l) == 3; */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(& l));
   __e_acsl_delete_block((void *)(& node3));
diff --git a/src/plugins/e-acsl/tests/examples/oracle/gen_linear_search.c b/src/plugins/e-acsl/tests/examples/oracle/gen_linear_search.c
index fa774f67e47d3a677ccb4e12762e46154c3d41a3..c58491401d208dbc1ba1cee9fa54622b61e0cf4c 100644
--- a/src/plugins/e-acsl/tests/examples/oracle/gen_linear_search.c
+++ b/src/plugins/e-acsl/tests/examples/oracle/gen_linear_search.c
@@ -1,19 +1,19 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int A[10];
-/*@ requires ∀ ℤ i; 0 ≤ i < 9 ⇒ A[i] ≤ A[i + 1];
+/*@ requires \forall integer i; 0 <= i < 9 ==> A[i] <= A[i + 1];
     
     behavior exists:
-      assumes ∃ ℤ j; 0 ≤ j < 10 ∧ A[j] ≡ elt;
-      ensures \result ≡ 1;
+      assumes \exists integer j; 0 <= j < 10 && A[j] == elt;
+      ensures \result == 1;
     
     behavior not_exists:
-      assumes ∀ ℤ j; 0 ≤ j < 10 ⇒ A[j] ≢ elt;
-      ensures \result ≡ 0;
+      assumes \forall integer j; 0 <= j < 10 ==> A[j] != elt;
+      ensures \result == 0;
  */
 int __gen_e_acsl_search(int elt);
 
@@ -26,33 +26,75 @@ int search(int elt)
     int __gen_e_acsl_forall;
     int __gen_e_acsl_i;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gen_e_acsl_forall = 1;
     __gen_e_acsl_i = 0;
     while (1) {
       if (__gen_e_acsl_i < k) ; else break;
-      __e_acsl_assert(__gen_e_acsl_i < 10,1,"RTE","search",
-                      "index_bound: __gen_e_acsl_i < 10",
-                      "tests/examples/linear_search.i",18);
-      __e_acsl_assert(0 <= __gen_e_acsl_i,1,"RTE","search",
-                      "index_bound: 0 <= __gen_e_acsl_i",
-                      "tests/examples/linear_search.i",18);
-      if (A[__gen_e_acsl_i] < elt) ;
-      else {
-        __gen_e_acsl_forall = 0;
-        goto e_acsl_end_loop1;
+      {
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "__gen_e_acsl_i",0,__gen_e_acsl_i);
+        __gen_e_acsl_assert_data_2.blocking = 1;
+        __gen_e_acsl_assert_data_2.kind = "RTE";
+        __gen_e_acsl_assert_data_2.pred_txt = "index_bound: __gen_e_acsl_i < 10";
+        __gen_e_acsl_assert_data_2.file = "tests/examples/linear_search.i";
+        __gen_e_acsl_assert_data_2.fct = "search";
+        __gen_e_acsl_assert_data_2.line = 18;
+        __e_acsl_assert(__gen_e_acsl_i < 10,& __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                     "__gen_e_acsl_i",0,__gen_e_acsl_i);
+        __gen_e_acsl_assert_data_3.blocking = 1;
+        __gen_e_acsl_assert_data_3.kind = "RTE";
+        __gen_e_acsl_assert_data_3.pred_txt = "index_bound: 0 <= __gen_e_acsl_i";
+        __gen_e_acsl_assert_data_3.file = "tests/examples/linear_search.i";
+        __gen_e_acsl_assert_data_3.fct = "search";
+        __gen_e_acsl_assert_data_3.line = 18;
+        __e_acsl_assert(0 <= __gen_e_acsl_i,& __gen_e_acsl_assert_data_3);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+        if (A[__gen_e_acsl_i] < elt) ;
+        else {
+          __gen_e_acsl_forall = 0;
+          goto e_acsl_end_loop1;
+        }
       }
       __gen_e_acsl_i ++;
     }
     e_acsl_end_loop1: ;
-    __e_acsl_assert(__gen_e_acsl_forall,1,"Invariant","search",
-                    "\\forall integer i; 0 <= i < k ==> A[i] < elt",
-                    "tests/examples/linear_search.i",18);
-    if (0 <= k) __gen_e_acsl_and = k <= 10; else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Invariant","search","0 <= k <= 10",
-                    "tests/examples/linear_search.i",17);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\forall integer i; 0 <= i < k ==> A[i] < elt",
+                                 0,__gen_e_acsl_forall);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Invariant";
+    __gen_e_acsl_assert_data.pred_txt = "\\forall integer i; 0 <= i < k ==> A[i] < elt";
+    __gen_e_acsl_assert_data.file = "tests/examples/linear_search.i";
+    __gen_e_acsl_assert_data.fct = "search";
+    __gen_e_acsl_assert_data.line = 18;
+    __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"k",0,k);
+    if (0 <= k) {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"k",0,k);
+      __gen_e_acsl_and = k <= 10;
+    }
+    else __gen_e_acsl_and = 0;
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Invariant";
+    __gen_e_acsl_assert_data_4.pred_txt = "0 <= k <= 10";
+    __gen_e_acsl_assert_data_4.file = "tests/examples/linear_search.i";
+    __gen_e_acsl_assert_data_4.fct = "search";
+    __gen_e_acsl_assert_data_4.line = 17;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  /*@ loop invariant 0 ≤ k ≤ 10;
-      loop invariant ∀ ℤ i; 0 ≤ i < k ⇒ A[i] < elt;
+  /*@ loop invariant 0 <= k <= 10;
+      loop invariant \forall integer i; 0 <= i < k ==> A[i] < elt;
   */
   while (k < 10) {
     if (A[k] == elt) {
@@ -69,30 +111,73 @@ int search(int elt)
       int __gen_e_acsl_forall_2;
       int __gen_e_acsl_i_2;
       k ++;
-      if (0 <= k) __gen_e_acsl_and_2 = k <= 10; else __gen_e_acsl_and_2 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_2,1,"Invariant","search",
-                      "0 <= k <= 10","tests/examples/linear_search.i",17);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"k",0,k);
+      if (0 <= k) {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"k",0,k);
+        __gen_e_acsl_and_2 = k <= 10;
+      }
+      else __gen_e_acsl_and_2 = 0;
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Invariant";
+      __gen_e_acsl_assert_data_5.pred_txt = "0 <= k <= 10";
+      __gen_e_acsl_assert_data_5.file = "tests/examples/linear_search.i";
+      __gen_e_acsl_assert_data_5.fct = "search";
+      __gen_e_acsl_assert_data_5.line = 17;
+      __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_2 = 1;
       __gen_e_acsl_i_2 = 0;
       while (1) {
         if (__gen_e_acsl_i_2 < k) ; else break;
-        __e_acsl_assert(__gen_e_acsl_i_2 < 10,1,"RTE","search",
-                        "index_bound: __gen_e_acsl_i_2 < 10",
-                        "tests/examples/linear_search.i",18);
-        __e_acsl_assert(0 <= __gen_e_acsl_i_2,1,"RTE","search",
-                        "index_bound: 0 <= __gen_e_acsl_i_2",
-                        "tests/examples/linear_search.i",18);
-        if (A[__gen_e_acsl_i_2] < elt) ;
-        else {
-          __gen_e_acsl_forall_2 = 0;
-          goto e_acsl_end_loop2;
+        {
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                       "__gen_e_acsl_i_2",0,__gen_e_acsl_i_2);
+          __gen_e_acsl_assert_data_7.blocking = 1;
+          __gen_e_acsl_assert_data_7.kind = "RTE";
+          __gen_e_acsl_assert_data_7.pred_txt = "index_bound: __gen_e_acsl_i_2 < 10";
+          __gen_e_acsl_assert_data_7.file = "tests/examples/linear_search.i";
+          __gen_e_acsl_assert_data_7.fct = "search";
+          __gen_e_acsl_assert_data_7.line = 18;
+          __e_acsl_assert(__gen_e_acsl_i_2 < 10,& __gen_e_acsl_assert_data_7);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                       "__gen_e_acsl_i_2",0,__gen_e_acsl_i_2);
+          __gen_e_acsl_assert_data_8.blocking = 1;
+          __gen_e_acsl_assert_data_8.kind = "RTE";
+          __gen_e_acsl_assert_data_8.pred_txt = "index_bound: 0 <= __gen_e_acsl_i_2";
+          __gen_e_acsl_assert_data_8.file = "tests/examples/linear_search.i";
+          __gen_e_acsl_assert_data_8.fct = "search";
+          __gen_e_acsl_assert_data_8.line = 18;
+          __e_acsl_assert(0 <= __gen_e_acsl_i_2,& __gen_e_acsl_assert_data_8);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+          if (A[__gen_e_acsl_i_2] < elt) ;
+          else {
+            __gen_e_acsl_forall_2 = 0;
+            goto e_acsl_end_loop2;
+          }
         }
         __gen_e_acsl_i_2 ++;
       }
       e_acsl_end_loop2: ;
-      __e_acsl_assert(__gen_e_acsl_forall_2,1,"Invariant","search",
-                      "\\forall integer i; 0 <= i < k ==> A[i] < elt",
-                      "tests/examples/linear_search.i",18);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "\\forall integer i; 0 <= i < k ==> A[i] < elt",
+                                   0,__gen_e_acsl_forall_2);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "Invariant";
+      __gen_e_acsl_assert_data_6.pred_txt = "\\forall integer i; 0 <= i < k ==> A[i] < elt";
+      __gen_e_acsl_assert_data_6.file = "tests/examples/linear_search.i";
+      __gen_e_acsl_assert_data_6.fct = "search";
+      __gen_e_acsl_assert_data_6.line = 18;
+      __e_acsl_assert(__gen_e_acsl_forall_2,& __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     }
   }
   __retres = 0;
@@ -103,6 +188,7 @@ int main(void)
 {
   int __retres;
   int found;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   {
     int i = 0;
     while (i < 10) {
@@ -111,26 +197,49 @@ int main(void)
     }
   }
   found = __gen_e_acsl_search(36);
-  __e_acsl_assert(found == 1,1,"Assertion","main","found == 1",
-                  "tests/examples/linear_search.i",34);
-  /*@ assert found ≡ 1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"found",0,found);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "found == 1";
+    __gen_e_acsl_assert_data.file = "tests/examples/linear_search.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 34;
+    __e_acsl_assert(found == 1,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert found == 1; */ ;
   found = __gen_e_acsl_search(5);
-  __e_acsl_assert(found == 0,1,"Assertion","main","found == 0",
-                  "tests/examples/linear_search.i",37);
-  /*@ assert found ≡ 0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"found",0,
+                                 found);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "found == 0";
+    __gen_e_acsl_assert_data_2.file = "tests/examples/linear_search.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 37;
+    __e_acsl_assert(found == 0,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+  }
+  /*@ assert found == 0; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
-/*@ requires ∀ ℤ i; 0 ≤ i < 9 ⇒ A[i] ≤ A[i + 1];
+/*@ requires \forall integer i; 0 <= i < 9 ==> A[i] <= A[i + 1];
     
     behavior exists:
-      assumes ∃ ℤ j; 0 ≤ j < 10 ∧ A[j] ≡ elt;
-      ensures \result ≡ 1;
+      assumes \exists integer j; 0 <= j < 10 && A[j] == elt;
+      ensures \result == 1;
     
     behavior not_exists:
-      assumes ∀ ℤ j; 0 ≤ j < 10 ⇒ A[j] ≢ elt;
-      ensures \result ≡ 0;
+      assumes \forall integer j; 0 <= j < 10 ==> A[j] != elt;
+      ensures \result == 0;
  */
 int __gen_e_acsl_search(int elt)
 {
@@ -144,47 +253,116 @@ int __gen_e_acsl_search(int elt)
     int __gen_e_acsl_forall_2;
     int __gen_e_acsl_j_2;
     __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gen_e_acsl_forall = 1;
     __gen_e_acsl_i = 0;
     while (1) {
       if (__gen_e_acsl_i < 9) ; else break;
-      __e_acsl_assert((int)(__gen_e_acsl_i + 1L) < 10,1,"RTE","search",
-                      "index_bound: (int)(__gen_e_acsl_i + 1) < 10",
-                      "tests/examples/linear_search.i",7);
-      __e_acsl_assert(0 <= (int)(__gen_e_acsl_i + 1L),1,"RTE","search",
-                      "index_bound: 0 <= (int)(__gen_e_acsl_i + 1)",
-                      "tests/examples/linear_search.i",7);
-      __e_acsl_assert(__gen_e_acsl_i < 10,1,"RTE","search",
-                      "index_bound: __gen_e_acsl_i < 10",
-                      "tests/examples/linear_search.i",7);
-      __e_acsl_assert(0 <= __gen_e_acsl_i,1,"RTE","search",
-                      "index_bound: 0 <= __gen_e_acsl_i",
-                      "tests/examples/linear_search.i",7);
-      if (A[__gen_e_acsl_i] <= A[__gen_e_acsl_i + 1]) ;
-      else {
-        __gen_e_acsl_forall = 0;
-        goto e_acsl_end_loop3;
+      {
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "__gen_e_acsl_i",0,__gen_e_acsl_i);
+        __gen_e_acsl_assert_data_2.blocking = 1;
+        __gen_e_acsl_assert_data_2.kind = "RTE";
+        __gen_e_acsl_assert_data_2.pred_txt = "index_bound: (int)(__gen_e_acsl_i + 1) < 10";
+        __gen_e_acsl_assert_data_2.file = "tests/examples/linear_search.i";
+        __gen_e_acsl_assert_data_2.fct = "search";
+        __gen_e_acsl_assert_data_2.line = 7;
+        __e_acsl_assert((int)(__gen_e_acsl_i + 1L) < 10,
+                        & __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                     "__gen_e_acsl_i",0,__gen_e_acsl_i);
+        __gen_e_acsl_assert_data_3.blocking = 1;
+        __gen_e_acsl_assert_data_3.kind = "RTE";
+        __gen_e_acsl_assert_data_3.pred_txt = "index_bound: 0 <= (int)(__gen_e_acsl_i + 1)";
+        __gen_e_acsl_assert_data_3.file = "tests/examples/linear_search.i";
+        __gen_e_acsl_assert_data_3.fct = "search";
+        __gen_e_acsl_assert_data_3.line = 7;
+        __e_acsl_assert(0 <= (int)(__gen_e_acsl_i + 1L),
+                        & __gen_e_acsl_assert_data_3);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                     "__gen_e_acsl_i",0,__gen_e_acsl_i);
+        __gen_e_acsl_assert_data_4.blocking = 1;
+        __gen_e_acsl_assert_data_4.kind = "RTE";
+        __gen_e_acsl_assert_data_4.pred_txt = "index_bound: __gen_e_acsl_i < 10";
+        __gen_e_acsl_assert_data_4.file = "tests/examples/linear_search.i";
+        __gen_e_acsl_assert_data_4.fct = "search";
+        __gen_e_acsl_assert_data_4.line = 7;
+        __e_acsl_assert(__gen_e_acsl_i < 10,& __gen_e_acsl_assert_data_4);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                     "__gen_e_acsl_i",0,__gen_e_acsl_i);
+        __gen_e_acsl_assert_data_5.blocking = 1;
+        __gen_e_acsl_assert_data_5.kind = "RTE";
+        __gen_e_acsl_assert_data_5.pred_txt = "index_bound: 0 <= __gen_e_acsl_i";
+        __gen_e_acsl_assert_data_5.file = "tests/examples/linear_search.i";
+        __gen_e_acsl_assert_data_5.fct = "search";
+        __gen_e_acsl_assert_data_5.line = 7;
+        __e_acsl_assert(0 <= __gen_e_acsl_i,& __gen_e_acsl_assert_data_5);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+        if (A[__gen_e_acsl_i] <= A[__gen_e_acsl_i + 1]) ;
+        else {
+          __gen_e_acsl_forall = 0;
+          goto e_acsl_end_loop3;
+        }
       }
       __gen_e_acsl_i ++;
     }
     e_acsl_end_loop3: ;
-    __e_acsl_assert(__gen_e_acsl_forall,1,"Precondition","search",
-                    "\\forall integer i; 0 <= i < 9 ==> A[i] <= A[i + 1]",
-                    "tests/examples/linear_search.i",7);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\forall integer i; 0 <= i < 9 ==> A[i] <= A[i + 1]",
+                                 0,__gen_e_acsl_forall);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\forall integer i; 0 <= i < 9 ==> A[i] <= A[i + 1]";
+    __gen_e_acsl_assert_data.file = "tests/examples/linear_search.i";
+    __gen_e_acsl_assert_data.fct = "search";
+    __gen_e_acsl_assert_data.line = 7;
+    __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __gen_e_acsl_exists = 0;
     __gen_e_acsl_j = 0;
     while (1) {
       if (__gen_e_acsl_j < 10) ; else break;
-      __e_acsl_assert(__gen_e_acsl_j < 10,1,"RTE","search",
-                      "index_bound: __gen_e_acsl_j < 10",
-                      "tests/examples/linear_search.i",9);
-      __e_acsl_assert(0 <= __gen_e_acsl_j,1,"RTE","search",
-                      "index_bound: 0 <= __gen_e_acsl_j",
-                      "tests/examples/linear_search.i",9);
-      if (! (A[__gen_e_acsl_j] == elt)) ;
-      else {
-        __gen_e_acsl_exists = 1;
-        goto e_acsl_end_loop4;
+      {
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                     "__gen_e_acsl_j",0,__gen_e_acsl_j);
+        __gen_e_acsl_assert_data_6.blocking = 1;
+        __gen_e_acsl_assert_data_6.kind = "RTE";
+        __gen_e_acsl_assert_data_6.pred_txt = "index_bound: __gen_e_acsl_j < 10";
+        __gen_e_acsl_assert_data_6.file = "tests/examples/linear_search.i";
+        __gen_e_acsl_assert_data_6.fct = "search";
+        __gen_e_acsl_assert_data_6.line = 9;
+        __e_acsl_assert(__gen_e_acsl_j < 10,& __gen_e_acsl_assert_data_6);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                     "__gen_e_acsl_j",0,__gen_e_acsl_j);
+        __gen_e_acsl_assert_data_7.blocking = 1;
+        __gen_e_acsl_assert_data_7.kind = "RTE";
+        __gen_e_acsl_assert_data_7.pred_txt = "index_bound: 0 <= __gen_e_acsl_j";
+        __gen_e_acsl_assert_data_7.file = "tests/examples/linear_search.i";
+        __gen_e_acsl_assert_data_7.fct = "search";
+        __gen_e_acsl_assert_data_7.line = 9;
+        __e_acsl_assert(0 <= __gen_e_acsl_j,& __gen_e_acsl_assert_data_7);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+        if (! (A[__gen_e_acsl_j] == elt)) ;
+        else {
+          __gen_e_acsl_exists = 1;
+          goto e_acsl_end_loop4;
+        }
       }
       __gen_e_acsl_j ++;
     }
@@ -195,16 +373,36 @@ int __gen_e_acsl_search(int elt)
     __gen_e_acsl_j_2 = 0;
     while (1) {
       if (__gen_e_acsl_j_2 < 10) ; else break;
-      __e_acsl_assert(__gen_e_acsl_j_2 < 10,1,"RTE","search",
-                      "index_bound: __gen_e_acsl_j_2 < 10",
-                      "tests/examples/linear_search.i",12);
-      __e_acsl_assert(0 <= __gen_e_acsl_j_2,1,"RTE","search",
-                      "index_bound: 0 <= __gen_e_acsl_j_2",
-                      "tests/examples/linear_search.i",12);
-      if (A[__gen_e_acsl_j_2] != elt) ;
-      else {
-        __gen_e_acsl_forall_2 = 0;
-        goto e_acsl_end_loop5;
+      {
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                     "__gen_e_acsl_j_2",0,__gen_e_acsl_j_2);
+        __gen_e_acsl_assert_data_8.blocking = 1;
+        __gen_e_acsl_assert_data_8.kind = "RTE";
+        __gen_e_acsl_assert_data_8.pred_txt = "index_bound: __gen_e_acsl_j_2 < 10";
+        __gen_e_acsl_assert_data_8.file = "tests/examples/linear_search.i";
+        __gen_e_acsl_assert_data_8.fct = "search";
+        __gen_e_acsl_assert_data_8.line = 12;
+        __e_acsl_assert(__gen_e_acsl_j_2 < 10,& __gen_e_acsl_assert_data_8);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                     "__gen_e_acsl_j_2",0,__gen_e_acsl_j_2);
+        __gen_e_acsl_assert_data_9.blocking = 1;
+        __gen_e_acsl_assert_data_9.kind = "RTE";
+        __gen_e_acsl_assert_data_9.pred_txt = "index_bound: 0 <= __gen_e_acsl_j_2";
+        __gen_e_acsl_assert_data_9.file = "tests/examples/linear_search.i";
+        __gen_e_acsl_assert_data_9.fct = "search";
+        __gen_e_acsl_assert_data_9.line = 12;
+        __e_acsl_assert(0 <= __gen_e_acsl_j_2,& __gen_e_acsl_assert_data_9);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
+        if (A[__gen_e_acsl_j_2] != elt) ;
+        else {
+          __gen_e_acsl_forall_2 = 0;
+          goto e_acsl_end_loop5;
+        }
       }
       __gen_e_acsl_j_2 ++;
     }
@@ -217,18 +415,36 @@ int __gen_e_acsl_search(int elt)
     int __gen_e_acsl_assumes_value;
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == 1,1,
-                                                    "Postcondition","search",
-                                                    "exists: \\result == 1",
-                                                    "tests/examples/linear_search.i",
-                                                    10);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"\\result",
+                                   0,__retres);
+      __gen_e_acsl_assert_data_10.blocking = 1;
+      __gen_e_acsl_assert_data_10.kind = "Postcondition";
+      __gen_e_acsl_assert_data_10.pred_txt = "exists: \\result == 1";
+      __gen_e_acsl_assert_data_10.file = "tests/examples/linear_search.i";
+      __gen_e_acsl_assert_data_10.fct = "search";
+      __gen_e_acsl_assert_data_10.line = 10;
+      __e_acsl_assert(__retres == 1,& __gen_e_acsl_assert_data_10);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
+    }
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == 0,1,
-                                                    "Postcondition","search",
-                                                    "not_exists: \\result == 0",
-                                                    "tests/examples/linear_search.i",
-                                                    13);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"\\result",
+                                   0,__retres);
+      __gen_e_acsl_assert_data_11.blocking = 1;
+      __gen_e_acsl_assert_data_11.kind = "Postcondition";
+      __gen_e_acsl_assert_data_11.pred_txt = "not_exists: \\result == 0";
+      __gen_e_acsl_assert_data_11.file = "tests/examples/linear_search.i";
+      __gen_e_acsl_assert_data_11.fct = "search";
+      __gen_e_acsl_assert_data_11.line = 13;
+      __e_acsl_assert(__retres == 0,& __gen_e_acsl_assert_data_11);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
+    }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     return __retres;
   }
diff --git a/src/plugins/e-acsl/tests/format/oracle/fprintf.res.oracle b/src/plugins/e-acsl/tests/format/oracle/fprintf.res.oracle
index 665e3c0b1cc2ecddafda0d677d2f1f1a72337ef9..7802760e7ec64d97faa5d42c9ccb54934ce27c63 100644
--- a/src/plugins/e-acsl/tests/format/oracle/fprintf.res.oracle
+++ b/src/plugins/e-acsl/tests/format/oracle/fprintf.res.oracle
@@ -47,5 +47,11 @@
   is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] FRAMAC_SHARE/libc/unistd.h:846: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/unistd.h:847: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [kernel:annot:missing-spec] tests/format/fprintf.c:16: Warning: 
   Neither code nor specification for function __e_acsl_builtin_fprintf, generating default assigns from the prototype
diff --git a/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c b/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c
index 09a3554adf54d4a676e021dc16c0d7fb3e087768..cf65403869c2ef7a1202aaa942aeabf3c89963e2 100644
--- a/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c
+++ b/src/plugins/e-acsl/tests/format/oracle/gen_fprintf.c
@@ -1,6 +1,7 @@
 /* Generated by Frama-C */
 #include "signal.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 #include "sys/select.h"
@@ -43,57 +44,55 @@ extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 /*@ ensures
       result_null_or_valid_fd:
-        \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]);
+        \result == \null || \subset(\result, &__fc_fopen[0 .. 16 - 1]);
     assigns \result;
     assigns \result \from __fc_p_fopen;
  */
 FILE *__gen_e_acsl_tmpfile(void);
 
 /*@ requires valid_stream: \valid(stream);
-    ensures result_zero_or_EOF: \result ≡ 0 ∨ \result ≡ -1;
+    ensures result_zero_or_EOF: \result == 0 || \result == -1;
     assigns \result;
     assigns \result \from (indirect: stream), (indirect: *stream);
  */
 int __gen_e_acsl_fclose(FILE *stream);
 
-/*@ exits status: \exit_status ≡ \old(status);
+/*@ exits status: \exit_status == \old(status);
     ensures never_terminates: \false;
     
     assigns \exit_status \from status;
  */
 void __gen_e_acsl_exit(int status);
 
-/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0;
+/*@ ensures result_ok_or_error: \result == -1 || \result >= 0;
     ensures
       initialization: stat_loc_init_on_success:
-        \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒
+        \result >= 0 && \old(stat_loc) != \null ==>
         \initialized(\old(stat_loc));
     assigns \result, *stat_loc;
     assigns \result \from (indirect: options);
     assigns *stat_loc \from (indirect: options);
     
     behavior stat_loc_null:
-      assumes stat_loc_null: stat_loc ≡ \null;
+      assumes stat_loc_null: stat_loc == \null;
       assigns \result;
       assigns \result \from \nothing;
     
     behavior stat_loc_non_null:
-      assumes stat_loc_non_null: stat_loc ≢ \null;
+      assumes stat_loc_non_null: stat_loc != \null;
       requires valid_stat_loc: \valid(stat_loc);
  */
 pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options);
 
 /*@ ensures
-      result_ok_child_or_error:
-        \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1;
+      result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1;
     assigns \result;
     assigns \result \from \nothing;
  */
 pid_t __gen_e_acsl_fork(void);
 
 /*@ ensures
-      result_ok_child_or_error:
-        \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1;
+      result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1;
     assigns \result;
     assigns \result \from \nothing;
  */
@@ -104,33 +103,49 @@ pid_t __gen_e_acsl_fork(void)
   {
     int __gen_e_acsl_or;
     int __gen_e_acsl_or_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                 __retres);
     if (__retres == 0) __gen_e_acsl_or = 1;
-    else __gen_e_acsl_or = __retres > 0;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or = __retres > 0;
+    }
     if (__gen_e_acsl_or) __gen_e_acsl_or_2 = 1;
-    else __gen_e_acsl_or_2 = __retres == -1;
-    __e_acsl_assert(__gen_e_acsl_or_2,1,"Postcondition","fork",
-                    "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1",
-                    "FRAMAC_SHARE/libc/unistd.h",846);
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or_2 = __retres == -1;
+    }
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/unistd.h";
+    __gen_e_acsl_assert_data.fct = "fork";
+    __gen_e_acsl_assert_data.line = 846;
+    __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     return __retres;
   }
 }
 
-/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0;
+/*@ ensures result_ok_or_error: \result == -1 || \result >= 0;
     ensures
       initialization: stat_loc_init_on_success:
-        \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒
+        \result >= 0 && \old(stat_loc) != \null ==>
         \initialized(\old(stat_loc));
     assigns \result, *stat_loc;
     assigns \result \from (indirect: options);
     assigns *stat_loc \from (indirect: options);
     
     behavior stat_loc_null:
-      assumes stat_loc_null: stat_loc ≡ \null;
+      assumes stat_loc_null: stat_loc == \null;
       assigns \result;
       assigns \result \from \nothing;
     
     behavior stat_loc_non_null:
-      assumes stat_loc_non_null: stat_loc ≢ \null;
+      assumes stat_loc_non_null: stat_loc != \null;
       requires valid_stat_loc: \valid(stat_loc);
  */
 pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
@@ -151,12 +166,25 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
     if (__gen_e_acsl_assumes_value) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"stat_loc",
+                                   (void *)stat_loc);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)stat_loc,sizeof(int),
                                           (void *)stat_loc,
                                           (void *)(& stat_loc));
-      __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","waitpid",
-                      "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)",
-                      "FRAMAC_SHARE/libc/sys/wait.h",92);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid(stat_loc)",0,__gen_e_acsl_valid);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Precondition";
+      __gen_e_acsl_assert_data.pred_txt = "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)";
+      __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/sys/wait.h";
+      __gen_e_acsl_assert_data.fct = "waitpid";
+      __gen_e_acsl_assert_data.line = 92;
+      __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
   }
   __gen_e_acsl_at_2 = stat_loc;
@@ -166,30 +194,64 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
     int __gen_e_acsl_or;
     int __gen_e_acsl_and;
     int __gen_e_acsl_implies;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                 __retres);
     if (__retres == -1) __gen_e_acsl_or = 1;
-    else __gen_e_acsl_or = __retres >= 0;
-    __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","waitpid",
-                    "result_ok_or_error: \\result == -1 || \\result >= 0",
-                    "FRAMAC_SHARE/libc/sys/wait.h",84);
-    if (__retres >= 0) __gen_e_acsl_and = __gen_e_acsl_at != (int *)0;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or = __retres >= 0;
+    }
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Postcondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "result_ok_or_error: \\result == -1 || \\result >= 0";
+    __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/sys/wait.h";
+    __gen_e_acsl_assert_data_2.fct = "waitpid";
+    __gen_e_acsl_assert_data_2.line = 84;
+    __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\result",0,
+                                 __retres);
+    if (__retres >= 0) {
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "\\old(stat_loc)",(void *)__gen_e_acsl_at);
+      __gen_e_acsl_and = __gen_e_acsl_at != (int *)0;
+    }
     else __gen_e_acsl_and = 0;
     if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1;
     else {
       int __gen_e_acsl_initialized;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "\\old(stat_loc)",
+                                   (void *)__gen_e_acsl_at_2);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)__gen_e_acsl_at_2,
                                                       sizeof(int));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(\\old(stat_loc))",0,
+                                   __gen_e_acsl_initialized);
       __gen_e_acsl_implies = __gen_e_acsl_initialized;
     }
-    __e_acsl_assert(__gen_e_acsl_implies,1,"Postcondition","waitpid",
-                    "initialization: stat_loc_init_on_success:\n  \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))",
-                    "FRAMAC_SHARE/libc/sys/wait.h",86);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Postcondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "initialization: stat_loc_init_on_success:\n  \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))";
+    __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/sys/wait.h";
+    __gen_e_acsl_assert_data_3.fct = "waitpid";
+    __gen_e_acsl_assert_data_3.line = 86;
+    __e_acsl_assert(__gen_e_acsl_implies,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     __e_acsl_delete_block((void *)(& stat_loc));
     return __retres;
   }
 }
 
-/*@ exits status: \exit_status ≡ \old(status);
+/*@ exits status: \exit_status == \old(status);
     ensures never_terminates: \false;
     
     assigns \exit_status \from status;
@@ -197,13 +259,21 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
 void __gen_e_acsl_exit(int status)
 {
   exit(status);
-  __e_acsl_assert(0,1,"Postcondition","exit","never_terminates: \\false",
-                  "FRAMAC_SHARE/libc/stdlib.h",473);
-  return;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h";
+    __gen_e_acsl_assert_data.fct = "exit";
+    __gen_e_acsl_assert_data.line = 473;
+    __e_acsl_assert(0,& __gen_e_acsl_assert_data);
+    return;
+  }
 }
 
 /*@ requires valid_stream: \valid(stream);
-    ensures result_zero_or_EOF: \result ≡ 0 ∨ \result ≡ -1;
+    ensures result_zero_or_EOF: \result == 0 || \result == -1;
     assigns \result;
     assigns \result \from (indirect: stream), (indirect: *stream);
  */
@@ -213,20 +283,45 @@ int __gen_e_acsl_fclose(FILE *stream)
   {
     int __gen_e_acsl_valid;
     __e_acsl_store_block((void *)(& stream),(size_t)8);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"stream",
+                                 (void *)stream);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(FILE)",
+                                   0,sizeof(FILE));
     __gen_e_acsl_valid = __e_acsl_valid((void *)stream,sizeof(FILE),
                                         (void *)stream,(void *)(& stream));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","fclose",
-                    "valid_stream: \\valid(stream)",
-                    "FRAMAC_SHARE/libc/stdio.h",120);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\valid(stream)",0,__gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "valid_stream: \\valid(stream)";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data.fct = "fclose";
+    __gen_e_acsl_assert_data.line = 120;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   __retres = fclose(stream);
   {
     int __gen_e_acsl_or;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                 __retres);
     if (__retres == 0) __gen_e_acsl_or = 1;
-    else __gen_e_acsl_or = __retres == -1;
-    __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","fclose",
-                    "result_zero_or_EOF: \\result == 0 || \\result == -1",
-                    "FRAMAC_SHARE/libc/stdio.h",122);
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or = __retres == -1;
+    }
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Postcondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "result_zero_or_EOF: \\result == 0 || \\result == -1";
+    __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data_2.fct = "fclose";
+    __gen_e_acsl_assert_data_2.line = 122;
+    __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     __e_acsl_delete_block((void *)(& stream));
     return __retres;
   }
@@ -234,7 +329,7 @@ int __gen_e_acsl_fclose(FILE *stream)
 
 /*@ ensures
       result_null_or_valid_fd:
-        \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]);
+        \result == \null || \subset(\result, &__fc_fopen[0 .. 16 - 1]);
     assigns \result;
     assigns \result \from __fc_p_fopen;
  */
diff --git a/src/plugins/e-acsl/tests/format/oracle/gen_printf.c b/src/plugins/e-acsl/tests/format/oracle/gen_printf.c
index a4f24c803d736d1fbbdf9803ba71b612cb937a6a..917b2486b808de4f68664962eaccb8182bb1c5fb 100644
--- a/src/plugins/e-acsl/tests/format/oracle/gen_printf.c
+++ b/src/plugins/e-acsl/tests/format/oracle/gen_printf.c
@@ -470,50 +470,49 @@ char *__gen_e_acsl_literal_string_34;
 char *__gen_e_acsl_literal_string_441;
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
-/*@ exits status: \exit_status ≢ 0;
+/*@ exits status: \exit_status != 0;
     ensures never_terminates: \false;
     
     assigns \exit_status \from \nothing;
  */
 void __gen_e_acsl_abort(void);
 
-/*@ exits status: \exit_status ≡ \old(status);
+/*@ exits status: \exit_status == \old(status);
     ensures never_terminates: \false;
     
     assigns \exit_status \from status;
  */
 void __gen_e_acsl_exit(int status);
 
-/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0;
+/*@ ensures result_ok_or_error: \result == -1 || \result >= 0;
     ensures
       initialization: stat_loc_init_on_success:
-        \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒
+        \result >= 0 && \old(stat_loc) != \null ==>
         \initialized(\old(stat_loc));
     assigns \result, *stat_loc;
     assigns \result \from (indirect: options);
     assigns *stat_loc \from (indirect: options);
     
     behavior stat_loc_null:
-      assumes stat_loc_null: stat_loc ≡ \null;
+      assumes stat_loc_null: stat_loc == \null;
       assigns \result;
       assigns \result \from \nothing;
     
     behavior stat_loc_non_null:
-      assumes stat_loc_non_null: stat_loc ≢ \null;
+      assumes stat_loc_non_null: stat_loc != \null;
       requires valid_stat_loc: \valid(stat_loc);
  */
 pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options);
 
 /*@ ensures
-      result_ok_child_or_error:
-        \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1;
+      result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1;
     assigns \result;
     assigns \result \from \nothing;
  */
 pid_t __gen_e_acsl_fork(void);
 
 /*@ requires valid_string_s: valid_read_string(s);
-    ensures acsl_c_equiv: \result ≡ strlen(\old(s));
+    ensures acsl_c_equiv: \result == strlen(\old(s));
     assigns \result;
     assigns \result \from (indirect: *(s + (0 ..)));
  */
@@ -525,24 +524,24 @@ size_t __gen_e_acsl_strlen(char const *s);
       \from s, (indirect: *(s + (0 .. strlen{Old}(s)))), (indirect: c);
     
     behavior found:
-      assumes char_found: strchr(s, c) ≡ \true;
-      ensures result_char: *\result ≡ (char)\old(c);
-      ensures result_same_base: \base_addr(\result) ≡ \base_addr(\old(s));
+      assumes char_found: strchr(s, c) == \true;
+      ensures result_char: *\result == (char)\old(c);
+      ensures result_same_base: \base_addr(\result) == \base_addr(\old(s));
       ensures
-        result_in_length: \old(s) ≤ \result ≤ \old(s) + strlen(\old(s));
+        result_in_length: \old(s) <= \result <= \old(s) + strlen(\old(s));
       ensures result_valid_string: valid_read_string(\result);
       ensures
         result_first_occur:
-          ∀ char *p; \old(s) ≤ p < \result ⇒ *p ≢ (char)\old(c);
+          \forall char *p; \old(s) <= p < \result ==> *p != (char)\old(c);
     
     behavior not_found:
-      assumes char_not_found: ¬(strchr(s, c) ≡ \true);
-      ensures result_null: \result ≡ \null;
+      assumes char_not_found: !(strchr(s, c) == \true);
+      ensures result_null: \result == \null;
     
     behavior default:
       ensures
         result_null_or_same_base:
-          \result ≡ \null ∨ \base_addr(\result) ≡ \base_addr(\old(s));
+          \result == \null || \base_addr(\result) == \base_addr(\old(s));
  */
 char *__gen_e_acsl_strchr(char const *s, int c);
 
@@ -551,8 +550,8 @@ char *__gen_e_acsl_strchr(char const *s, int c);
     requires
       separation:
         \separated(dest + (0 .. strlen(src)), src + (0 .. strlen(src)));
-    ensures equal_contents: strcmp(\old(dest), \old(src)) ≡ 0;
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures equal_contents: strcmp(\old(dest), \old(src)) == 0;
+    ensures result_ptr: \result == \old(dest);
     assigns *(dest + (0 .. strlen{Old}(src))), \result;
     assigns *(dest + (0 .. strlen{Old}(src)))
       \from *(src + (0 .. strlen{Old}(src)));
@@ -617,10 +616,17 @@ void test_specifier_application(char const *allowed, char const *fmt,
   int len = (int)tmp;
   {
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0,
+                                 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"len",0,len);
     if (0 < (int)(len + 1L)) {
       __e_acsl_mpz_t __gen_e_acsl_;
       __e_acsl_mpz_t __gen_e_acsl__2;
       int __gen_e_acsl_le;
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",
+                                   0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"len",0,len);
       __gmpz_init_set_si(__gen_e_acsl_,(long)(1 * (int)(len + 1L)));
       __gmpz_init_set_ui(__gen_e_acsl__2,18446744073709551615UL);
       __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_),
@@ -630,14 +636,18 @@ void test_specifier_application(char const *allowed, char const *fmt,
       __gmpz_clear(__gen_e_acsl__2);
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion",
-                    "test_specifier_application",
-                    "alloca_bounds: 0 < sizeof(char) * (int)(len + 1) <= 18446744073709551615",
-                    "tests/format/printf.c",55);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "alloca_bounds: 0 < sizeof(char) * (int)(len + 1) <= 18446744073709551615";
+    __gen_e_acsl_assert_data.file = "tests/format/printf.c";
+    __gen_e_acsl_assert_data.fct = "test_specifier_application";
+    __gen_e_acsl_assert_data.line = 55;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@
   assert
-  alloca_bounds: 0 < sizeof(char) * (int)(len + 1) ≤ 18446744073709551615;
+  alloca_bounds: 0 < sizeof(char) * (int)(len + 1) <= 18446744073709551615;
    */
   ;
   __lengthof_format = (unsigned long)(len + 1);
@@ -713,8 +723,8 @@ void test_specifier_application(char const *allowed, char const *fmt,
     requires
       separation:
         \separated(dest + (0 .. strlen(src)), src + (0 .. strlen(src)));
-    ensures equal_contents: strcmp(\old(dest), \old(src)) ≡ 0;
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures equal_contents: strcmp(\old(dest), \old(src)) == 0;
+    ensures result_ptr: \result == \old(dest);
     assigns *(dest + (0 .. strlen{Old}(src))), \result;
     assigns *(dest + (0 .. strlen{Old}(src)))
       \from *(src + (0 .. strlen{Old}(src)));
@@ -737,6 +747,11 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src)
     __e_acsl_mpz_t __gen_e_acsl__2;
     int __gen_e_acsl_le;
     unsigned long __gen_e_acsl_size;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "__gen_e_acsl_strcpy_src_size",0,
+                                   __gen_e_acsl_strcpy_src_size);
     __gmpz_init_set_ui(__gen_e_acsl___gen_e_acsl_strcpy_src_size,
                        __gen_e_acsl_strcpy_src_size);
     __gmpz_init_set_si(__gen_e_acsl_,1L);
@@ -747,9 +762,14 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src)
     __gmpz_init_set_ui(__gen_e_acsl__2,18446744073709551615UL);
     __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
-    __e_acsl_assert(__gen_e_acsl_le <= 0,1,"RTE","strcpy",
-                    "size_lesser_or_eq_than_SIZE_MAX:\n  __gen_e_acsl_strcpy_src_size + 1 <= 18446744073709551615",
-                    "FRAMAC_SHARE/libc/string.h",367);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "RTE";
+    __gen_e_acsl_assert_data_6.pred_txt = "size_lesser_or_eq_than_SIZE_MAX:\n  __gen_e_acsl_strcpy_src_size + 1 <= 18446744073709551615";
+    __gen_e_acsl_assert_data_6.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_6.fct = "strcpy";
+    __gen_e_acsl_assert_data_6.line = 367;
+    __e_acsl_assert(__gen_e_acsl_le <= 0,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     __gen_e_acsl_size = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __e_acsl_initialize((void *)dest,__gen_e_acsl_size);
     __gmpz_clear(__gen_e_acsl___gen_e_acsl_strcpy_src_size);
@@ -757,12 +777,25 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src)
     __gmpz_clear(__gen_e_acsl_add);
     __gmpz_clear(__gen_e_acsl__2);
   }
-  __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","strcpy",
-                  "result_ptr: \\result == \\old(dest)",
-                  "FRAMAC_SHARE/libc/string.h",374);
-  __e_acsl_delete_block((void *)(& src));
-  __e_acsl_delete_block((void *)(& dest));
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"\\result",
+                                 (void *)__retres);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"\\old(dest)",
+                                 (void *)__gen_e_acsl_at);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Postcondition";
+    __gen_e_acsl_assert_data_8.pred_txt = "result_ptr: \\result == \\old(dest)";
+    __gen_e_acsl_assert_data_8.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_8.fct = "strcpy";
+    __gen_e_acsl_assert_data_8.line = 374;
+    __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+    __e_acsl_delete_block((void *)(& src));
+    __e_acsl_delete_block((void *)(& dest));
+    return __retres;
+  }
 }
 
 /*@ requires valid_string_s: valid_read_string(s);
@@ -771,24 +804,24 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src)
       \from s, (indirect: *(s + (0 .. strlen{Old}(s)))), (indirect: c);
     
     behavior found:
-      assumes char_found: strchr(s, c) ≡ \true;
-      ensures result_char: *\result ≡ (char)\old(c);
-      ensures result_same_base: \base_addr(\result) ≡ \base_addr(\old(s));
+      assumes char_found: strchr(s, c) == \true;
+      ensures result_char: *\result == (char)\old(c);
+      ensures result_same_base: \base_addr(\result) == \base_addr(\old(s));
       ensures
-        result_in_length: \old(s) ≤ \result ≤ \old(s) + strlen(\old(s));
+        result_in_length: \old(s) <= \result <= \old(s) + strlen(\old(s));
       ensures result_valid_string: valid_read_string(\result);
       ensures
         result_first_occur:
-          ∀ char *p; \old(s) ≤ p < \result ⇒ *p ≢ (char)\old(c);
+          \forall char *p; \old(s) <= p < \result ==> *p != (char)\old(c);
     
     behavior not_found:
-      assumes char_not_found: ¬(strchr(s, c) ≡ \true);
-      ensures result_null: \result ≡ \null;
+      assumes char_not_found: !(strchr(s, c) == \true);
+      ensures result_null: \result == \null;
     
     behavior default:
       ensures
         result_null_or_same_base:
-          \result ≡ \null ∨ \base_addr(\result) ≡ \base_addr(\old(s));
+          \result == \null || \base_addr(\result) == \base_addr(\old(s));
  */
 char *__gen_e_acsl_strchr(char const *s, int c)
 {
@@ -815,10 +848,26 @@ char *__gen_e_acsl_strchr(char const *s, int c)
       int __gen_e_acsl_and;
       void *__gen_e_acsl_base_addr;
       void *__gen_e_acsl_base_addr_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_char(& __gen_e_acsl_assert_data_2,"*\\result",
+                                    0,*__retres);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\old(c)",0,
+                                   __gen_e_acsl_at);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&__retres",
+                                   (void *)(& __retres));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& __retres),
                                                       sizeof(char *));
       if (__gen_e_acsl_initialized) {
         int __gen_e_acsl_valid_read;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"__retres",
+                                     (void *)__retres);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)__retres,
                                                       sizeof(char),
                                                       (void *)__retres,
@@ -826,42 +875,89 @@ char *__gen_e_acsl_strchr(char const *s, int c)
         __gen_e_acsl_and = __gen_e_acsl_valid_read;
       }
       else __gen_e_acsl_and = 0;
-      __e_acsl_assert(__gen_e_acsl_and,1,"RTE","strchr",
-                      "mem_access: \\valid_read(__retres)",
-                      "FRAMAC_SHARE/libc/string.h",177);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "RTE";
+      __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(__retres)";
+      __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/string.h";
+      __gen_e_acsl_assert_data_3.fct = "strchr";
+      __gen_e_acsl_assert_data_3.line = 177;
+      __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
       __gen_e_acsl_base_addr = __e_acsl_base_addr((void *)__retres);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,
+                                   "\\base_addr(\\result)",
+                                   __gen_e_acsl_base_addr);
       __gen_e_acsl_base_addr_2 = __e_acsl_base_addr((void *)__gen_e_acsl_at_2);
-      __e_acsl_assert(__gen_e_acsl_base_addr == __gen_e_acsl_base_addr_2,1,
-                      "Postcondition","strchr",
-                      "found: result_same_base: \\base_addr(\\result) == \\base_addr(\\old(s))",
-                      "FRAMAC_SHARE/libc/string.h",178);
-      __e_acsl_assert((int)*__retres == (int)((char)__gen_e_acsl_at),1,
-                      "Postcondition","strchr",
-                      "found: result_char: *\\result == (char)\\old(c)",
-                      "FRAMAC_SHARE/libc/string.h",177);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,
+                                   "\\base_addr(\\old(s))",
+                                   __gen_e_acsl_base_addr_2);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Postcondition";
+      __gen_e_acsl_assert_data_4.pred_txt = "found: result_same_base: \\base_addr(\\result) == \\base_addr(\\old(s))";
+      __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h";
+      __gen_e_acsl_assert_data_4.fct = "strchr";
+      __gen_e_acsl_assert_data_4.line = 178;
+      __e_acsl_assert(__gen_e_acsl_base_addr == __gen_e_acsl_base_addr_2,
+                      & __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Postcondition";
+      __gen_e_acsl_assert_data_2.pred_txt = "found: result_char: *\\result == (char)\\old(c)";
+      __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/string.h";
+      __gen_e_acsl_assert_data_2.fct = "strchr";
+      __gen_e_acsl_assert_data_2.line = 177;
+      __e_acsl_assert((int)*__retres == (int)((char)__gen_e_acsl_at),
+                      & __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == (char *)0,1,
-                                                    "Postcondition","strchr",
-                                                    "not_found: result_null: \\result == \\null",
-                                                    "FRAMAC_SHARE/libc/string.h",
-                                                    184);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"\\result",
+                                   (void *)__retres);
+      __gen_e_acsl_assert_data_8.blocking = 1;
+      __gen_e_acsl_assert_data_8.kind = "Postcondition";
+      __gen_e_acsl_assert_data_8.pred_txt = "not_found: result_null: \\result == \\null";
+      __gen_e_acsl_assert_data_8.file = "FRAMAC_SHARE/libc/string.h";
+      __gen_e_acsl_assert_data_8.fct = "strchr";
+      __gen_e_acsl_assert_data_8.line = 184;
+      __e_acsl_assert(__retres == (char *)0,& __gen_e_acsl_assert_data_8);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+    }
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)2);
     if (__gen_e_acsl_assumes_value) {
       int __gen_e_acsl_or;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"\\result",
+                                   (void *)__retres);
       if (__retres == (char *)0) __gen_e_acsl_or = 1;
       else {
         void *__gen_e_acsl_base_addr_3;
         void *__gen_e_acsl_base_addr_4;
         __gen_e_acsl_base_addr_3 = __e_acsl_base_addr((void *)__retres);
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,
+                                     "\\base_addr(\\result)",
+                                     __gen_e_acsl_base_addr_3);
         __gen_e_acsl_base_addr_4 = __e_acsl_base_addr((void *)__gen_e_acsl_at_4);
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,
+                                     "\\base_addr(\\old(s))",
+                                     __gen_e_acsl_base_addr_4);
         __gen_e_acsl_or = __gen_e_acsl_base_addr_3 == __gen_e_acsl_base_addr_4;
       }
-      __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","strchr",
-                      "default: result_null_or_same_base:\n  \\result == \\null || \\base_addr(\\result) == \\base_addr(\\old(s))",
-                      "FRAMAC_SHARE/libc/string.h",187);
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "Postcondition";
+      __gen_e_acsl_assert_data_9.pred_txt = "default: result_null_or_same_base:\n  \\result == \\null || \\base_addr(\\result) == \\base_addr(\\old(s))";
+      __gen_e_acsl_assert_data_9.file = "FRAMAC_SHARE/libc/string.h";
+      __gen_e_acsl_assert_data_9.fct = "strchr";
+      __gen_e_acsl_assert_data_9.line = 187;
+      __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_9);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
     }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     __e_acsl_delete_block((void *)(& s));
@@ -871,7 +967,7 @@ char *__gen_e_acsl_strchr(char const *s, int c)
 }
 
 /*@ requires valid_string_s: valid_read_string(s);
-    ensures acsl_c_equiv: \result ≡ strlen(\old(s));
+    ensures acsl_c_equiv: \result == strlen(\old(s));
     assigns \result;
     assigns \result \from (indirect: *(s + (0 ..)));
  */
@@ -885,8 +981,7 @@ size_t __gen_e_acsl_strlen(char const *s)
 }
 
 /*@ ensures
-      result_ok_child_or_error:
-        \result ≡ 0 ∨ \result > 0 ∨ \result ≡ -1;
+      result_ok_child_or_error: \result == 0 || \result > 0 || \result == -1;
     assigns \result;
     assigns \result \from \nothing;
  */
@@ -897,33 +992,49 @@ pid_t __gen_e_acsl_fork(void)
   {
     int __gen_e_acsl_or;
     int __gen_e_acsl_or_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                 __retres);
     if (__retres == 0) __gen_e_acsl_or = 1;
-    else __gen_e_acsl_or = __retres > 0;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or = __retres > 0;
+    }
     if (__gen_e_acsl_or) __gen_e_acsl_or_2 = 1;
-    else __gen_e_acsl_or_2 = __retres == -1;
-    __e_acsl_assert(__gen_e_acsl_or_2,1,"Postcondition","fork",
-                    "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1",
-                    "FRAMAC_SHARE/libc/unistd.h",846);
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or_2 = __retres == -1;
+    }
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "result_ok_child_or_error: \\result == 0 || \\result > 0 || \\result == -1";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/unistd.h";
+    __gen_e_acsl_assert_data.fct = "fork";
+    __gen_e_acsl_assert_data.line = 846;
+    __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     return __retres;
   }
 }
 
-/*@ ensures result_ok_or_error: \result ≡ -1 ∨ \result ≥ 0;
+/*@ ensures result_ok_or_error: \result == -1 || \result >= 0;
     ensures
       initialization: stat_loc_init_on_success:
-        \result ≥ 0 ∧ \old(stat_loc) ≢ \null ⇒
+        \result >= 0 && \old(stat_loc) != \null ==>
         \initialized(\old(stat_loc));
     assigns \result, *stat_loc;
     assigns \result \from (indirect: options);
     assigns *stat_loc \from (indirect: options);
     
     behavior stat_loc_null:
-      assumes stat_loc_null: stat_loc ≡ \null;
+      assumes stat_loc_null: stat_loc == \null;
       assigns \result;
       assigns \result \from \nothing;
     
     behavior stat_loc_non_null:
-      assumes stat_loc_non_null: stat_loc ≢ \null;
+      assumes stat_loc_non_null: stat_loc != \null;
       requires valid_stat_loc: \valid(stat_loc);
  */
 pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
@@ -944,12 +1055,25 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
     if (__gen_e_acsl_assumes_value) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"stat_loc",
+                                   (void *)stat_loc);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)stat_loc,sizeof(int),
                                           (void *)stat_loc,
                                           (void *)(& stat_loc));
-      __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","waitpid",
-                      "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)",
-                      "FRAMAC_SHARE/libc/sys/wait.h",92);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid(stat_loc)",0,__gen_e_acsl_valid);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Precondition";
+      __gen_e_acsl_assert_data.pred_txt = "stat_loc_non_null: valid_stat_loc: \\valid(stat_loc)";
+      __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/sys/wait.h";
+      __gen_e_acsl_assert_data.fct = "waitpid";
+      __gen_e_acsl_assert_data.line = 92;
+      __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
   }
   __gen_e_acsl_at_2 = stat_loc;
@@ -959,30 +1083,64 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
     int __gen_e_acsl_or;
     int __gen_e_acsl_and;
     int __gen_e_acsl_implies;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                 __retres);
     if (__retres == -1) __gen_e_acsl_or = 1;
-    else __gen_e_acsl_or = __retres >= 0;
-    __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","waitpid",
-                    "result_ok_or_error: \\result == -1 || \\result >= 0",
-                    "FRAMAC_SHARE/libc/sys/wait.h",84);
-    if (__retres >= 0) __gen_e_acsl_and = __gen_e_acsl_at != (int *)0;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_or = __retres >= 0;
+    }
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Postcondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "result_ok_or_error: \\result == -1 || \\result >= 0";
+    __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/sys/wait.h";
+    __gen_e_acsl_assert_data_2.fct = "waitpid";
+    __gen_e_acsl_assert_data_2.line = 84;
+    __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\result",0,
+                                 __retres);
+    if (__retres >= 0) {
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "\\old(stat_loc)",(void *)__gen_e_acsl_at);
+      __gen_e_acsl_and = __gen_e_acsl_at != (int *)0;
+    }
     else __gen_e_acsl_and = 0;
     if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1;
     else {
       int __gen_e_acsl_initialized;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "\\old(stat_loc)",
+                                   (void *)__gen_e_acsl_at_2);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)__gen_e_acsl_at_2,
                                                       sizeof(int));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(\\old(stat_loc))",0,
+                                   __gen_e_acsl_initialized);
       __gen_e_acsl_implies = __gen_e_acsl_initialized;
     }
-    __e_acsl_assert(__gen_e_acsl_implies,1,"Postcondition","waitpid",
-                    "initialization: stat_loc_init_on_success:\n  \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))",
-                    "FRAMAC_SHARE/libc/sys/wait.h",86);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Postcondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "initialization: stat_loc_init_on_success:\n  \\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))";
+    __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/sys/wait.h";
+    __gen_e_acsl_assert_data_3.fct = "waitpid";
+    __gen_e_acsl_assert_data_3.line = 86;
+    __e_acsl_assert(__gen_e_acsl_implies,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     __e_acsl_delete_block((void *)(& stat_loc));
     return __retres;
   }
 }
 
-/*@ exits status: \exit_status ≡ \old(status);
+/*@ exits status: \exit_status == \old(status);
     ensures never_terminates: \false;
     
     assigns \exit_status \from status;
@@ -990,12 +1148,20 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options)
 void __gen_e_acsl_exit(int status)
 {
   exit(status);
-  __e_acsl_assert(0,1,"Postcondition","exit","never_terminates: \\false",
-                  "FRAMAC_SHARE/libc/stdlib.h",473);
-  return;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h";
+    __gen_e_acsl_assert_data.fct = "exit";
+    __gen_e_acsl_assert_data.line = 473;
+    __e_acsl_assert(0,& __gen_e_acsl_assert_data);
+    return;
+  }
 }
 
-/*@ exits status: \exit_status ≢ 0;
+/*@ exits status: \exit_status != 0;
     ensures never_terminates: \false;
     
     assigns \exit_status \from \nothing;
@@ -1003,9 +1169,17 @@ void __gen_e_acsl_exit(int status)
 void __gen_e_acsl_abort(void)
 {
   abort();
-  __e_acsl_assert(0,1,"Postcondition","abort","never_terminates: \\false",
-                  "FRAMAC_SHARE/libc/stdlib.h",460);
-  return;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "never_terminates: \\false";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h";
+    __gen_e_acsl_assert_data.fct = "abort";
+    __gen_e_acsl_assert_data.line = 460;
+    __e_acsl_assert(0,& __gen_e_acsl_assert_data);
+    return;
+  }
 }
 
 void __e_acsl_globals_init(void)
diff --git a/src/plugins/e-acsl/tests/format/oracle/gen_sprintf.c b/src/plugins/e-acsl/tests/format/oracle/gen_sprintf.c
index 503129bceba33b627a22a9386a48a758b218b2bb..282d9405c7d905f91ee3bc6794718c5a6d23d81c 100644
--- a/src/plugins/e-acsl/tests/format/oracle/gen_sprintf.c
+++ b/src/plugins/e-acsl/tests/format/oracle/gen_sprintf.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 char *__gen_e_acsl_literal_string;
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -29,39 +30,100 @@ int main(void)
       int __gen_e_acsl_size;
       int __gen_e_acsl_if;
       int __gen_e_acsl_initialized;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(char *)buf",
+                                   (void *)(buf));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",
+                                   0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",
+                                   0,1);
       __gen_e_acsl_size = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0,
+                                   __gen_e_acsl_size);
       if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0;
-      else __gen_e_acsl_if = __gen_e_acsl_size;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0,
+                                     __gen_e_acsl_size);
+        __gen_e_acsl_if = __gen_e_acsl_size;
+      }
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)(buf + 1 * 0),
                                                       (size_t)__gen_e_acsl_if);
-      __e_acsl_assert(! __gen_e_acsl_initialized,1,"Assertion","main",
-                      "!\\initialized(&buf[0 .. 3])",
-                      "tests/format/sprintf.c",10);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&buf[0 .. 3])",0,
+                                   __gen_e_acsl_initialized);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "!\\initialized(&buf[0 .. 3])";
+      __gen_e_acsl_assert_data.file = "tests/format/sprintf.c";
+      __gen_e_acsl_assert_data.fct = "main";
+      __gen_e_acsl_assert_data.line = 10;
+      __e_acsl_assert(! __gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
-    /*@ assert ¬\initialized(&buf[0 .. 3]); */ ;
+    /*@ assert !\initialized(&buf[0 .. 3]); */ ;
     __e_acsl_builtin_sprintf("d",buf,__gen_e_acsl_literal_string,10);
     {
       int __gen_e_acsl_size_2;
       int __gen_e_acsl_if_2;
       int __gen_e_acsl_initialized_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,
+                                   "(char *)buf",(void *)(buf));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_2 = 1 * ((2 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0,
+                                   __gen_e_acsl_size_2);
       if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0;
-      else __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0,
+                                     __gen_e_acsl_size_2);
+        __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+      }
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(buf + 1 * 0),
                                                         (size_t)__gen_e_acsl_if_2);
-      __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion","main",
-                      "\\initialized(&buf[0 .. 2])","tests/format/sprintf.c",
-                      13);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\initialized(&buf[0 .. 2])",0,
+                                   __gen_e_acsl_initialized_2);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Assertion";
+      __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&buf[0 .. 2])";
+      __gen_e_acsl_assert_data_2.file = "tests/format/sprintf.c";
+      __gen_e_acsl_assert_data_2.fct = "main";
+      __gen_e_acsl_assert_data_2.line = 13;
+      __e_acsl_assert(__gen_e_acsl_initialized_2,
+                      & __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
     /*@ assert \initialized(&buf[0 .. 2]); */ ;
     {
       int __gen_e_acsl_initialized_3;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&buf[3]",
+                                   (void *)(& buf[3]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& buf[3]),
                                                         sizeof(char));
-      __e_acsl_assert(! __gen_e_acsl_initialized_3,1,"Assertion","main",
-                      "!\\initialized(&buf[3])","tests/format/sprintf.c",14);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(&buf[3])",0,
+                                   __gen_e_acsl_initialized_3);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Assertion";
+      __gen_e_acsl_assert_data_3.pred_txt = "!\\initialized(&buf[3])";
+      __gen_e_acsl_assert_data_3.file = "tests/format/sprintf.c";
+      __gen_e_acsl_assert_data_3.fct = "main";
+      __gen_e_acsl_assert_data_3.line = 14;
+      __e_acsl_assert(! __gen_e_acsl_initialized_3,
+                      & __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     }
-    /*@ assert ¬\initialized(&buf[3]); */ ;
+    /*@ assert !\initialized(&buf[3]); */ ;
     __e_acsl_delete_block((void *)(buf));
   }
   {
@@ -71,52 +133,128 @@ int main(void)
       int __gen_e_acsl_size_3;
       int __gen_e_acsl_if_3;
       int __gen_e_acsl_initialized_4;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,
+                                   "(char *)buf_0",(void *)(buf_0));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_3 = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0,
+                                   __gen_e_acsl_size_3);
       if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0;
-      else __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0,
+                                     __gen_e_acsl_size_3);
+        __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+      }
       __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(buf_0 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_3);
-      __e_acsl_assert(! __gen_e_acsl_initialized_4,1,"Assertion","main",
-                      "!\\initialized(&buf_0[0 .. 3])",
-                      "tests/format/sprintf.c",18);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\initialized(&buf_0[0 .. 3])",0,
+                                   __gen_e_acsl_initialized_4);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Assertion";
+      __gen_e_acsl_assert_data_4.pred_txt = "!\\initialized(&buf_0[0 .. 3])";
+      __gen_e_acsl_assert_data_4.file = "tests/format/sprintf.c";
+      __gen_e_acsl_assert_data_4.fct = "main";
+      __gen_e_acsl_assert_data_4.line = 18;
+      __e_acsl_assert(! __gen_e_acsl_initialized_4,
+                      & __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     }
-    /*@ assert ¬\initialized(&buf_0[0 .. 3]); */ ;
+    /*@ assert !\initialized(&buf_0[0 .. 3]); */ ;
     __e_acsl_builtin_snprintf("d",buf_0,(unsigned long)2,
                               __gen_e_acsl_literal_string,10);
     {
       int __gen_e_acsl_size_4;
       int __gen_e_acsl_if_4;
       int __gen_e_acsl_initialized_5;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,
+                                   "(char *)buf_0",(void *)(buf_0));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_4 = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0,
+                                   __gen_e_acsl_size_4);
       if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0;
-      else __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0,
+                                     __gen_e_acsl_size_4);
+        __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+      }
       __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(buf_0 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_4);
-      __e_acsl_assert(__gen_e_acsl_initialized_5,1,"Assertion","main",
-                      "\\initialized(&buf_0[0 .. 1])",
-                      "tests/format/sprintf.c",21);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\initialized(&buf_0[0 .. 1])",0,
+                                   __gen_e_acsl_initialized_5);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Assertion";
+      __gen_e_acsl_assert_data_5.pred_txt = "\\initialized(&buf_0[0 .. 1])";
+      __gen_e_acsl_assert_data_5.file = "tests/format/sprintf.c";
+      __gen_e_acsl_assert_data_5.fct = "main";
+      __gen_e_acsl_assert_data_5.line = 21;
+      __e_acsl_assert(__gen_e_acsl_initialized_5,
+                      & __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     }
     /*@ assert \initialized(&buf_0[0 .. 1]); */ ;
     {
       int __gen_e_acsl_initialized_6;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&buf_0[2]",
+                                   (void *)(& buf_0[2]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& buf_0[2]),
                                                         sizeof(char));
-      __e_acsl_assert(! __gen_e_acsl_initialized_6,1,"Assertion","main",
-                      "!\\initialized(&buf_0[2])","tests/format/sprintf.c",
-                      22);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "\\initialized(&buf_0[2])",0,
+                                   __gen_e_acsl_initialized_6);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "Assertion";
+      __gen_e_acsl_assert_data_6.pred_txt = "!\\initialized(&buf_0[2])";
+      __gen_e_acsl_assert_data_6.file = "tests/format/sprintf.c";
+      __gen_e_acsl_assert_data_6.fct = "main";
+      __gen_e_acsl_assert_data_6.line = 22;
+      __e_acsl_assert(! __gen_e_acsl_initialized_6,
+                      & __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     }
-    /*@ assert ¬\initialized(&buf_0[2]); */ ;
+    /*@ assert !\initialized(&buf_0[2]); */ ;
     {
       int __gen_e_acsl_initialized_7;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&buf_0[3]",
+                                   (void *)(& buf_0[3]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& buf_0[3]),
                                                         sizeof(char));
-      __e_acsl_assert(! __gen_e_acsl_initialized_7,1,"Assertion","main",
-                      "!\\initialized(&buf_0[3])","tests/format/sprintf.c",
-                      23);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                   "\\initialized(&buf_0[3])",0,
+                                   __gen_e_acsl_initialized_7);
+      __gen_e_acsl_assert_data_7.blocking = 1;
+      __gen_e_acsl_assert_data_7.kind = "Assertion";
+      __gen_e_acsl_assert_data_7.pred_txt = "!\\initialized(&buf_0[3])";
+      __gen_e_acsl_assert_data_7.file = "tests/format/sprintf.c";
+      __gen_e_acsl_assert_data_7.fct = "main";
+      __gen_e_acsl_assert_data_7.line = 23;
+      __e_acsl_assert(! __gen_e_acsl_initialized_7,
+                      & __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
     }
-    /*@ assert ¬\initialized(&buf_0[3]); */ ;
+    /*@ assert !\initialized(&buf_0[3]); */ ;
     __e_acsl_delete_block((void *)(buf_0));
   }
   {
@@ -126,43 +264,104 @@ int main(void)
       int __gen_e_acsl_size_5;
       int __gen_e_acsl_if_5;
       int __gen_e_acsl_initialized_8;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,
+                                   "(char *)buf_1",(void *)(buf_1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_5 = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0,
+                                   __gen_e_acsl_size_5);
       if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0;
-      else __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0,
+                                     __gen_e_acsl_size_5);
+        __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+      }
       __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(buf_1 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_5);
-      __e_acsl_assert(! __gen_e_acsl_initialized_8,1,"Assertion","main",
-                      "!\\initialized(&buf_1[0 .. 3])",
-                      "tests/format/sprintf.c",27);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "\\initialized(&buf_1[0 .. 3])",0,
+                                   __gen_e_acsl_initialized_8);
+      __gen_e_acsl_assert_data_8.blocking = 1;
+      __gen_e_acsl_assert_data_8.kind = "Assertion";
+      __gen_e_acsl_assert_data_8.pred_txt = "!\\initialized(&buf_1[0 .. 3])";
+      __gen_e_acsl_assert_data_8.file = "tests/format/sprintf.c";
+      __gen_e_acsl_assert_data_8.fct = "main";
+      __gen_e_acsl_assert_data_8.line = 27;
+      __e_acsl_assert(! __gen_e_acsl_initialized_8,
+                      & __gen_e_acsl_assert_data_8);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
     }
-    /*@ assert ¬\initialized(&buf_1[0 .. 3]); */ ;
+    /*@ assert !\initialized(&buf_1[0 .. 3]); */ ;
     __e_acsl_builtin_snprintf("d",buf_1,(unsigned long)4,
                               __gen_e_acsl_literal_string,10);
     {
       int __gen_e_acsl_size_6;
       int __gen_e_acsl_if_6;
       int __gen_e_acsl_initialized_9;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,
+                                   "(char *)buf_1",(void *)(buf_1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_6 = 1 * ((2 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0,
+                                   __gen_e_acsl_size_6);
       if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0;
-      else __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0,
+                                     __gen_e_acsl_size_6);
+        __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+      }
       __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(buf_1 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_6);
-      __e_acsl_assert(__gen_e_acsl_initialized_9,1,"Assertion","main",
-                      "\\initialized(&buf_1[0 .. 2])",
-                      "tests/format/sprintf.c",30);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "\\initialized(&buf_1[0 .. 2])",0,
+                                   __gen_e_acsl_initialized_9);
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "Assertion";
+      __gen_e_acsl_assert_data_9.pred_txt = "\\initialized(&buf_1[0 .. 2])";
+      __gen_e_acsl_assert_data_9.file = "tests/format/sprintf.c";
+      __gen_e_acsl_assert_data_9.fct = "main";
+      __gen_e_acsl_assert_data_9.line = 30;
+      __e_acsl_assert(__gen_e_acsl_initialized_9,
+                      & __gen_e_acsl_assert_data_9);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
     }
     /*@ assert \initialized(&buf_1[0 .. 2]); */ ;
     {
       int __gen_e_acsl_initialized_10;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&buf_1[3]",
+                                   (void *)(& buf_1[3]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& buf_1[3]),
                                                          sizeof(char));
-      __e_acsl_assert(! __gen_e_acsl_initialized_10,1,"Assertion","main",
-                      "!\\initialized(&buf_1[3])","tests/format/sprintf.c",
-                      31);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "\\initialized(&buf_1[3])",0,
+                                   __gen_e_acsl_initialized_10);
+      __gen_e_acsl_assert_data_10.blocking = 1;
+      __gen_e_acsl_assert_data_10.kind = "Assertion";
+      __gen_e_acsl_assert_data_10.pred_txt = "!\\initialized(&buf_1[3])";
+      __gen_e_acsl_assert_data_10.file = "tests/format/sprintf.c";
+      __gen_e_acsl_assert_data_10.fct = "main";
+      __gen_e_acsl_assert_data_10.line = 31;
+      __e_acsl_assert(! __gen_e_acsl_initialized_10,
+                      & __gen_e_acsl_assert_data_10);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
     }
-    /*@ assert ¬\initialized(&buf_1[3]); */ ;
+    /*@ assert !\initialized(&buf_1[3]); */ ;
     __e_acsl_delete_block((void *)(buf_1));
   }
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle b/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle
index b09140dee729c28a7f1f65cee93f96e57c0e5fdc..7e89d6bf65fb59bc622fec23ce63f326b7028103 100644
--- a/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle
+++ b/src/plugins/e-acsl/tests/format/oracle/printf.res.oracle
@@ -24,7 +24,7 @@
   E-ACSL construct
   `non integer variable p in quantification
   result_first_occur:
-    ∀ char *p; \old(s) ≤ p < \result ⇒ *p ≢ (char)\old(c)'
+    \forall char *p; \old(s) <= p < \result ==> *p != (char)\old(c)'
   is not yet supported.
   Ignoring annotation.
 [e-acsl] FRAMAC_SHARE/libc/__fc_string_axiomatic.h:281: Warning: 
@@ -86,7 +86,7 @@
   E-ACSL construct
   `non integer variable p in quantification
   found: result_first_occur:
-    ∀ char *p; \old(s) ≤ p < \result ⇒ *p ≢ (char)\old(c)'
+    \forall char *p; \old(s) <= p < \result ==> *p != (char)\old(c)'
   is not yet supported.
   Ignoring annotation.
 [e-acsl] FRAMAC_SHARE/libc/string.h:141: Warning: 
@@ -120,5 +120,11 @@
   is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] FRAMAC_SHARE/libc/unistd.h:846: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/unistd.h:847: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [kernel:annot:missing-spec] tests/format/printf.c:184: Warning: 
   Neither code nor specification for function __e_acsl_builtin_printf, generating default assigns from the prototype
diff --git a/src/plugins/e-acsl/tests/format/oracle/sprintf.res.oracle b/src/plugins/e-acsl/tests/format/oracle/sprintf.res.oracle
index 0c12cd746446f71822a636b6555149d9e02b32c3..3d6f9fdfa0467ee91f4a90944f34b3f1a8f3973e 100644
--- a/src/plugins/e-acsl/tests/format/oracle/sprintf.res.oracle
+++ b/src/plugins/e-acsl/tests/format/oracle/sprintf.res.oracle
@@ -1,27 +1,69 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/format/sprintf.c:10: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [kernel:annot:missing-spec] tests/format/sprintf.c:12: Warning: 
   Neither code nor specification for function __e_acsl_builtin_sprintf, generating default assigns from the prototype
+[eva:alarm] tests/format/sprintf.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/format/sprintf.c:13: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/format/sprintf.c:13: Warning: assertion got status unknown.
+[eva:alarm] tests/format/sprintf.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/format/sprintf.c:14: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/format/sprintf.c:14: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/format/sprintf.c:14: Warning: assertion got status unknown.
+[eva:alarm] tests/format/sprintf.c:18: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [kernel:annot:missing-spec] tests/format/sprintf.c:20: Warning: 
   Neither code nor specification for function __e_acsl_builtin_snprintf, generating default assigns from the prototype
+[eva:alarm] tests/format/sprintf.c:21: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/format/sprintf.c:21: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/format/sprintf.c:21: Warning: assertion got status unknown.
+[eva:alarm] tests/format/sprintf.c:22: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/format/sprintf.c:22: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/format/sprintf.c:22: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/format/sprintf.c:22: Warning: assertion got status unknown.
+[eva:alarm] tests/format/sprintf.c:23: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/format/sprintf.c:23: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/format/sprintf.c:23: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/format/sprintf.c:23: Warning: assertion got status unknown.
+[eva:alarm] tests/format/sprintf.c:27: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/format/sprintf.c:30: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/format/sprintf.c:30: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/format/sprintf.c:30: Warning: assertion got status unknown.
+[eva:alarm] tests/format/sprintf.c:31: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/format/sprintf.c:31: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/format/sprintf.c:31: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/format/sprintf.c:31: Warning: assertion got status unknown.
diff --git a/src/plugins/e-acsl/tests/full-mtracking/oracle/addrOf.res.oracle b/src/plugins/e-acsl/tests/full-mtracking/oracle/addrOf.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..02c028e57b37bf176f79c4312f1d5bf0672b8139 100644
--- a/src/plugins/e-acsl/tests/full-mtracking/oracle/addrOf.res.oracle
+++ b/src/plugins/e-acsl/tests/full-mtracking/oracle/addrOf.res.oracle
@@ -1,2 +1,11 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/full-mtracking/addrOf.i:10: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/full-mtracking/addrOf.i:10: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/full-mtracking/addrOf.i:16: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/full-mtracking/oracle/gen_addrOf.c b/src/plugins/e-acsl/tests/full-mtracking/oracle/gen_addrOf.c
index a27503d98f33e0ad1f9e31e6b310db1832d552b0..f2d51f64a84290fb97e91c939f81ac2500235b07 100644
--- a/src/plugins/e-acsl/tests/full-mtracking/oracle/gen_addrOf.c
+++ b/src/plugins/e-acsl/tests/full-mtracking/oracle/gen_addrOf.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -20,9 +20,22 @@ void f(void)
   m = 123;
   {
     int __gen_e_acsl_initialized;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)p,sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","f",
-                    "\\initialized(p)","tests/full-mtracking/addrOf.i",10);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(p)",0,
+                                 __gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\initialized(p)";
+    __gen_e_acsl_assert_data.file = "tests/full-mtracking/addrOf.i";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 10;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \initialized(p); */ ;
   __e_acsl_delete_block((void *)(& p));
@@ -58,9 +71,22 @@ int main(void)
   __e_acsl_store_block((void *)(& x),(size_t)4);
   __e_acsl_full_init((void *)(& x));
   f();
-  __e_acsl_assert(& x == & x,1,"Assertion","main","&x == &x",
-                  "tests/full-mtracking/addrOf.i",16);
-  /*@ assert &x ≡ &x; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&x",
+                                 (void *)(& x));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&x",
+                                 (void *)(& x));
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "&x == &x";
+    __gen_e_acsl_assert_data.file = "tests/full-mtracking/addrOf.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 16;
+    __e_acsl_assert(& x == & x,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert &x == &x; */ ;
   __e_acsl_full_init((void *)(& __retres));
   __retres = 0;
   __e_acsl_delete_block((void *)(& x));
diff --git a/src/plugins/e-acsl/tests/gmp-only/oracle/arith.res.oracle b/src/plugins/e-acsl/tests/gmp-only/oracle/arith.res.oracle
index 12b6fcfafd95175f8c35b05a609a8e7e2d10c053..3456eb769ba9034088bc9d48a95baca9ba9b76c5 100644
--- a/src/plugins/e-acsl/tests/gmp-only/oracle/arith.res.oracle
+++ b/src/plugins/e-acsl/tests/gmp-only/oracle/arith.res.oracle
@@ -22,6 +22,15 @@
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/gmp-only/arith.i:21: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/gmp-only/arith.i:23: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/gmp-only/arith.i:23: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/gmp-only/arith.i:23: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/gmp-only/arith.i:23: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/gmp-only/arith.i:25: Warning: 
@@ -34,13 +43,28 @@
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/gmp-only/arith.i:30: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/gmp-only/arith.i:31: Warning: 
+  function __e_acsl_assert_copy_values: precondition src->values == \null ||
+                                                     \valid(src->values) got status unknown.
 [eva:alarm] tests/gmp-only/arith.i:31: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/gmp-only/arith.i:34: Warning: 
+  function __e_acsl_assert_copy_values: precondition dest->values == \null ||
+                                                     \valid(dest->values) got status unknown.
+[eva:alarm] tests/gmp-only/arith.i:34: Warning: 
+  function __e_acsl_assert_copy_values: precondition src->values == \null ||
+                                                     \valid(src->values) got status unknown.
 [eva:alarm] tests/gmp-only/arith.i:34: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/gmp-only/arith.i:34: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/gmp-only/arith.i:36: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/gmp-only/arith.i:36: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/gmp-only/arith.i:39: Warning: 
+  function __e_acsl_assert_register_short: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/gmp-only/arith.i:39: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
diff --git a/src/plugins/e-acsl/tests/gmp-only/oracle/functions.res.oracle b/src/plugins/e-acsl/tests/gmp-only/oracle/functions.res.oracle
index 9e705f4214b48187b8fb34af9a1960cecd4e97d9..064c37083a586cf992e5c6d56f3113c616107b6a 100644
--- a/src/plugins/e-acsl/tests/gmp-only/oracle/functions.res.oracle
+++ b/src/plugins/e-acsl/tests/gmp-only/oracle/functions.res.oracle
@@ -1,33 +1,81 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/gmp-only/functions.c:44: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/gmp-only/functions.c:44: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/gmp-only/functions.c:44: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/gmp-only/functions.c:45: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/gmp-only/functions.c:46: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/gmp-only/functions.c:48: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/gmp-only/functions.c:48: Warning: 
+  function __e_acsl_assert_register_mpz: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/gmp-only/functions.c:48: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/gmp-only/functions.c:49: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/gmp-only/functions.c:49: Warning: 
   accessing uninitialized left-value.
   assert \initialized((__e_acsl_mpz_struct *)__gen_e_acsl_f1_4);
+[eva:alarm] tests/gmp-only/functions.c:49: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/gmp-only/functions.c:49: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/gmp-only/functions.c:50: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/gmp-only/functions.c:51: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/gmp-only/functions.c:56: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/gmp-only/functions.c:56: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/gmp-only/functions.c:56: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/gmp-only/functions.c:59: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/gmp-only/functions.c:59: Warning: 
+  function __e_acsl_assert_register_char: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
 [eva:alarm] tests/gmp-only/functions.c:59: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/gmp-only/functions.c:61: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/gmp-only/functions.c:61: Warning: 
+  function __e_acsl_assert_register_short: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/gmp-only/functions.c:61: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/gmp-only/functions.c:66: Warning: 
+  function __e_acsl_assert_register_struct: precondition data->values == \null ||
+                                                         \valid(data->values) got status unknown.
+[eva:alarm] tests/gmp-only/functions.c:66: Warning: 
+  function __e_acsl_assert_register_mpz: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/gmp-only/functions.c:66: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/gmp-only/functions.c:27: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/gmp-only/functions.c:27: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/gmp-only/functions.c:71: Warning: 
   non-finite double value. assert \is_finite(__gen_e_acsl_cast);
+[eva:alarm] tests/gmp-only/functions.c:71: Warning: 
+  function __e_acsl_assert_register_double: precondition data->values == \null ||
+                                                         \valid(data->values) got status unknown.
 [eva:alarm] tests/gmp-only/functions.c:71: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
diff --git a/src/plugins/e-acsl/tests/gmp-only/oracle/gen_arith.c b/src/plugins/e-acsl/tests/gmp-only/oracle/gen_arith.c
index 8c713255a9883ae0820182f496162daa1a888346..f9807ffa999ef06c998dd745cb7fc5a18b0a106a 100644
--- a/src/plugins/e-acsl/tests/gmp-only/oracle/gen_arith.c
+++ b/src/plugins/e-acsl/tests/gmp-only/oracle/gen_arith.c
@@ -1,12 +1,13 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int x = -3;
   int y = 2;
   long z = 2L;
@@ -15,24 +16,35 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_neg;
     __e_acsl_mpz_t __gen_e_acsl_x;
     int __gen_e_acsl_eq;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl_,3L);
     __gmpz_init(__gen_e_acsl_neg);
     __gmpz_neg(__gen_e_acsl_neg,(__e_acsl_mpz_struct const *)(__gen_e_acsl_));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x);
     __gmpz_init_set_si(__gen_e_acsl_x,(long)x);
     __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_neg),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl_x));
-    __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main","-3 == x",
-                    "tests/gmp-only/arith.i",10);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "-3 == x";
+    __gen_e_acsl_assert_data.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 10;
+    __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __gmpz_clear(__gen_e_acsl_);
     __gmpz_clear(__gen_e_acsl_neg);
     __gmpz_clear(__gen_e_acsl_x);
   }
-  /*@ assert -3 ≡ x; */ ;
+  /*@ assert -3 == x; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_x_2;
     __e_acsl_mpz_t __gen_e_acsl__2;
     __e_acsl_mpz_t __gen_e_acsl_neg_2;
     int __gen_e_acsl_eq_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x);
     __gmpz_init_set_si(__gen_e_acsl_x_2,(long)x);
     __gmpz_init_set_si(__gen_e_acsl__2,3L);
     __gmpz_init(__gen_e_acsl_neg_2);
@@ -40,29 +52,42 @@ int main(void)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
     __gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_x_2),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_2));
-    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","main","x == -3",
-                    "tests/gmp-only/arith.i",11);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "x == -3";
+    __gen_e_acsl_assert_data_2.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 11;
+    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     __gmpz_clear(__gen_e_acsl_x_2);
     __gmpz_clear(__gen_e_acsl__2);
     __gmpz_clear(__gen_e_acsl_neg_2);
   }
-  /*@ assert x ≡ -3; */ ;
+  /*@ assert x == -3; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__3;
     __e_acsl_mpz_t __gen_e_acsl_bnot;
     int __gen_e_acsl_ne;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__3,0L);
     __gmpz_init(__gen_e_acsl_bnot);
     __gmpz_com(__gen_e_acsl_bnot,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__3));
     __gen_e_acsl_ne = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__3),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl_bnot));
-    __e_acsl_assert(__gen_e_acsl_ne != 0,1,"Assertion","main","0 != ~0",
-                    "tests/gmp-only/arith.i",12);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "0 != ~0";
+    __gen_e_acsl_assert_data_3.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 12;
+    __e_acsl_assert(__gen_e_acsl_ne != 0,& __gen_e_acsl_assert_data_3);
     __gmpz_clear(__gen_e_acsl__3);
     __gmpz_clear(__gen_e_acsl_bnot);
   }
-  /*@ assert 0 ≢ ~0; */ ;
+  /*@ assert 0 != ~0; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_x_3;
     __e_acsl_mpz_t __gen_e_acsl__4;
@@ -70,6 +95,9 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl__5;
     __e_acsl_mpz_t __gen_e_acsl_neg_3;
     int __gen_e_acsl_eq_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"x",0,x);
     __gmpz_init_set_si(__gen_e_acsl_x_3,(long)x);
     __gmpz_init_set_si(__gen_e_acsl__4,1L);
     __gmpz_init(__gen_e_acsl_add);
@@ -82,15 +110,21 @@ int main(void)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__5));
     __gen_e_acsl_eq_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_3));
-    __e_acsl_assert(__gen_e_acsl_eq_3 == 0,1,"Assertion","main",
-                    "x + 1 == -2","tests/gmp-only/arith.i",14);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "x + 1 == -2";
+    __gen_e_acsl_assert_data_4.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 14;
+    __e_acsl_assert(__gen_e_acsl_eq_3 == 0,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     __gmpz_clear(__gen_e_acsl_x_3);
     __gmpz_clear(__gen_e_acsl__4);
     __gmpz_clear(__gen_e_acsl_add);
     __gmpz_clear(__gen_e_acsl__5);
     __gmpz_clear(__gen_e_acsl_neg_3);
   }
-  /*@ assert x + 1 ≡ -2; */ ;
+  /*@ assert x + 1 == -2; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_x_4;
     __e_acsl_mpz_t __gen_e_acsl__6;
@@ -98,6 +132,9 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl__7;
     __e_acsl_mpz_t __gen_e_acsl_neg_4;
     int __gen_e_acsl_eq_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"x",0,x);
     __gmpz_init_set_si(__gen_e_acsl_x_4,(long)x);
     __gmpz_init_set_si(__gen_e_acsl__6,1L);
     __gmpz_init(__gen_e_acsl_sub);
@@ -110,15 +147,21 @@ int main(void)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__7));
     __gen_e_acsl_eq_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_sub),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_4));
-    __e_acsl_assert(__gen_e_acsl_eq_4 == 0,1,"Assertion","main",
-                    "x - 1 == -4","tests/gmp-only/arith.i",15);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "x - 1 == -4";
+    __gen_e_acsl_assert_data_5.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 15;
+    __e_acsl_assert(__gen_e_acsl_eq_4 == 0,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     __gmpz_clear(__gen_e_acsl_x_4);
     __gmpz_clear(__gen_e_acsl__6);
     __gmpz_clear(__gen_e_acsl_sub);
     __gmpz_clear(__gen_e_acsl__7);
     __gmpz_clear(__gen_e_acsl_neg_4);
   }
-  /*@ assert x - 1 ≡ -4; */ ;
+  /*@ assert x - 1 == -4; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_x_5;
     __e_acsl_mpz_t __gen_e_acsl__8;
@@ -126,6 +169,9 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl__9;
     __e_acsl_mpz_t __gen_e_acsl_neg_5;
     int __gen_e_acsl_eq_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"x",0,x);
     __gmpz_init_set_si(__gen_e_acsl_x_5,(long)x);
     __gmpz_init_set_si(__gen_e_acsl__8,3L);
     __gmpz_init(__gen_e_acsl_mul);
@@ -138,15 +184,21 @@ int main(void)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__9));
     __gen_e_acsl_eq_5 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_5));
-    __e_acsl_assert(__gen_e_acsl_eq_5 == 0,1,"Assertion","main",
-                    "x * 3 == -9","tests/gmp-only/arith.i",16);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "x * 3 == -9";
+    __gen_e_acsl_assert_data_6.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 16;
+    __e_acsl_assert(__gen_e_acsl_eq_5 == 0,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     __gmpz_clear(__gen_e_acsl_x_5);
     __gmpz_clear(__gen_e_acsl__8);
     __gmpz_clear(__gen_e_acsl_mul);
     __gmpz_clear(__gen_e_acsl__9);
     __gmpz_clear(__gen_e_acsl_neg_5);
   }
-  /*@ assert x * 3 ≡ -9; */ ;
+  /*@ assert x * 3 == -9; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_x_6;
     __e_acsl_mpz_t __gen_e_acsl__10;
@@ -156,15 +208,28 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl__12;
     __e_acsl_mpz_t __gen_e_acsl_neg_6;
     int __gen_e_acsl_eq_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"x",0,x);
     __gmpz_init_set_si(__gen_e_acsl_x_6,(long)x);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__10,3L);
     __gmpz_init_set_si(__gen_e_acsl__11,0L);
     __gen_e_acsl_div_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__10),
                                         (__e_acsl_mpz_struct const *)(__gen_e_acsl__11));
     __gmpz_init(__gen_e_acsl_div);
-    /*@ assert E_ACSL: 3 ≢ 0; */
-    __e_acsl_assert(__gen_e_acsl_div_guard != 0,1,"Assertion","main",
-                    "3 != 0","tests/gmp-only/arith.i",17);
+    /*@ assert E_ACSL: 3 != 0; */
+    {
+      __gen_e_acsl_assert_data_8.blocking = 1;
+      __gen_e_acsl_assert_data_8.kind = "Assertion";
+      __gen_e_acsl_assert_data_8.pred_txt = "3 != 0";
+      __gen_e_acsl_assert_data_8.file = "tests/gmp-only/arith.i";
+      __gen_e_acsl_assert_data_8.fct = "main";
+      __gen_e_acsl_assert_data_8.line = 17;
+      __e_acsl_assert(__gen_e_acsl_div_guard != 0,
+                      & __gen_e_acsl_assert_data_8);
+    }
     __gmpz_tdiv_q(__gen_e_acsl_div,
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_x_6),
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl__10));
@@ -174,8 +239,14 @@ int main(void)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__12));
     __gen_e_acsl_eq_6 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_div),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_6));
-    __e_acsl_assert(__gen_e_acsl_eq_6 == 0,1,"Assertion","main",
-                    "x / 3 == -1","tests/gmp-only/arith.i",17);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "x / 3 == -1";
+    __gen_e_acsl_assert_data_7.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 17;
+    __e_acsl_assert(__gen_e_acsl_eq_6 == 0,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
     __gmpz_clear(__gen_e_acsl_x_6);
     __gmpz_clear(__gen_e_acsl__10);
     __gmpz_clear(__gen_e_acsl__11);
@@ -183,7 +254,7 @@ int main(void)
     __gmpz_clear(__gen_e_acsl__12);
     __gmpz_clear(__gen_e_acsl_neg_6);
   }
-  /*@ assert x / 3 ≡ -1; */ ;
+  /*@ assert x / 3 == -1; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__13;
     __e_acsl_mpz_t __gen_e_acsl__14;
@@ -191,30 +262,45 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_div_2;
     __e_acsl_mpz_t __gen_e_acsl__15;
     int __gen_e_acsl_eq_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
     __gmpz_init_set_str(__gen_e_acsl__13,"309485009821345068724781055",10);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__14,0L);
     __gen_e_acsl_div_guard_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__13),
                                           (__e_acsl_mpz_struct const *)(__gen_e_acsl__14));
     __gmpz_init(__gen_e_acsl_div_2);
-    /*@ assert E_ACSL: 0xffffffffffffffffffffff ≢ 0; */
-    __e_acsl_assert(__gen_e_acsl_div_guard_2 != 0,1,"Assertion","main",
-                    "0xffffffffffffffffffffff != 0","tests/gmp-only/arith.i",
-                    18);
+    /*@ assert E_ACSL: 0xffffffffffffffffffffff != 0; */
+    {
+      __gen_e_acsl_assert_data_10.blocking = 1;
+      __gen_e_acsl_assert_data_10.kind = "Assertion";
+      __gen_e_acsl_assert_data_10.pred_txt = "0xffffffffffffffffffffff != 0";
+      __gen_e_acsl_assert_data_10.file = "tests/gmp-only/arith.i";
+      __gen_e_acsl_assert_data_10.fct = "main";
+      __gen_e_acsl_assert_data_10.line = 18;
+      __e_acsl_assert(__gen_e_acsl_div_guard_2 != 0,
+                      & __gen_e_acsl_assert_data_10);
+    }
     __gmpz_tdiv_q(__gen_e_acsl_div_2,
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl__13),
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl__13));
     __gmpz_init_set_si(__gen_e_acsl__15,1L);
     __gen_e_acsl_eq_7 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_div_2),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__15));
-    __e_acsl_assert(__gen_e_acsl_eq_7 == 0,1,"Assertion","main",
-                    "0xffffffffffffffffffffff / 0xffffffffffffffffffffff == 1",
-                    "tests/gmp-only/arith.i",18);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "0xffffffffffffffffffffff / 0xffffffffffffffffffffff == 1";
+    __gen_e_acsl_assert_data_9.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 18;
+    __e_acsl_assert(__gen_e_acsl_eq_7 == 0,& __gen_e_acsl_assert_data_9);
     __gmpz_clear(__gen_e_acsl__13);
     __gmpz_clear(__gen_e_acsl__14);
     __gmpz_clear(__gen_e_acsl_div_2);
     __gmpz_clear(__gen_e_acsl__15);
   }
-  /*@ assert 0xffffffffffffffffffffff / 0xffffffffffffffffffffff ≡ 1; */ ;
+  /*@ assert 0xffffffffffffffffffffff / 0xffffffffffffffffffffff == 1; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_x_7;
     __e_acsl_mpz_t __gen_e_acsl__16;
@@ -224,15 +310,28 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl__18;
     __e_acsl_mpz_t __gen_e_acsl_neg_7;
     int __gen_e_acsl_eq_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"x",0,x);
     __gmpz_init_set_si(__gen_e_acsl_x_7,(long)x);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__16,2L);
     __gmpz_init_set_si(__gen_e_acsl__17,0L);
     __gen_e_acsl_mod_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__16),
                                         (__e_acsl_mpz_struct const *)(__gen_e_acsl__17));
     __gmpz_init(__gen_e_acsl_mod);
-    /*@ assert E_ACSL: 2 ≢ 0; */
-    __e_acsl_assert(__gen_e_acsl_mod_guard != 0,1,"Assertion","main",
-                    "2 != 0","tests/gmp-only/arith.i",19);
+    /*@ assert E_ACSL: 2 != 0; */
+    {
+      __gen_e_acsl_assert_data_12.blocking = 1;
+      __gen_e_acsl_assert_data_12.kind = "Assertion";
+      __gen_e_acsl_assert_data_12.pred_txt = "2 != 0";
+      __gen_e_acsl_assert_data_12.file = "tests/gmp-only/arith.i";
+      __gen_e_acsl_assert_data_12.fct = "main";
+      __gen_e_acsl_assert_data_12.line = 19;
+      __e_acsl_assert(__gen_e_acsl_mod_guard != 0,
+                      & __gen_e_acsl_assert_data_12);
+    }
     __gmpz_tdiv_r(__gen_e_acsl_mod,
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_x_7),
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl__16));
@@ -242,8 +341,14 @@ int main(void)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__18));
     __gen_e_acsl_eq_8 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mod),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_7));
-    __e_acsl_assert(__gen_e_acsl_eq_8 == 0,1,"Assertion","main",
-                    "x % 2 == -1","tests/gmp-only/arith.i",19);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "x % 2 == -1";
+    __gen_e_acsl_assert_data_11.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 19;
+    __e_acsl_assert(__gen_e_acsl_eq_8 == 0,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
     __gmpz_clear(__gen_e_acsl_x_7);
     __gmpz_clear(__gen_e_acsl__16);
     __gmpz_clear(__gen_e_acsl__17);
@@ -251,7 +356,7 @@ int main(void)
     __gmpz_clear(__gen_e_acsl__18);
     __gmpz_clear(__gen_e_acsl_neg_7);
   }
-  /*@ assert x % 2 ≡ -1; */ ;
+  /*@ assert x % 2 == -1; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__19;
     __e_acsl_mpz_t __gen_e_acsl_neg_8;
@@ -263,10 +368,14 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl__22;
     __e_acsl_mpz_t __gen_e_acsl_neg_10;
     int __gen_e_acsl_eq_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__19,3L);
     __gmpz_init(__gen_e_acsl_neg_8);
     __gmpz_neg(__gen_e_acsl_neg_8,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__19));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__20,2L);
     __gmpz_init(__gen_e_acsl_neg_9);
     __gmpz_neg(__gen_e_acsl_neg_9,
@@ -275,9 +384,17 @@ int main(void)
     __gen_e_acsl_mod_guard_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_9),
                                           (__e_acsl_mpz_struct const *)(__gen_e_acsl__21));
     __gmpz_init(__gen_e_acsl_mod_2);
-    /*@ assert E_ACSL: -2 ≢ 0; */
-    __e_acsl_assert(__gen_e_acsl_mod_guard_2 != 0,1,"Assertion","main",
-                    "-2 != 0","tests/gmp-only/arith.i",20);
+    /*@ assert E_ACSL: -2 != 0; */
+    {
+      __gen_e_acsl_assert_data_14.blocking = 1;
+      __gen_e_acsl_assert_data_14.kind = "Assertion";
+      __gen_e_acsl_assert_data_14.pred_txt = "-2 != 0";
+      __gen_e_acsl_assert_data_14.file = "tests/gmp-only/arith.i";
+      __gen_e_acsl_assert_data_14.fct = "main";
+      __gen_e_acsl_assert_data_14.line = 20;
+      __e_acsl_assert(__gen_e_acsl_mod_guard_2 != 0,
+                      & __gen_e_acsl_assert_data_14);
+    }
     __gmpz_tdiv_r(__gen_e_acsl_mod_2,
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_8),
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_9));
@@ -287,8 +404,13 @@ int main(void)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__22));
     __gen_e_acsl_eq_9 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mod_2),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_10));
-    __e_acsl_assert(__gen_e_acsl_eq_9 == 0,1,"Assertion","main",
-                    "-3 % -2 == -1","tests/gmp-only/arith.i",20);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "-3 % -2 == -1";
+    __gen_e_acsl_assert_data_13.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 20;
+    __e_acsl_assert(__gen_e_acsl_eq_9 == 0,& __gen_e_acsl_assert_data_13);
     __gmpz_clear(__gen_e_acsl__19);
     __gmpz_clear(__gen_e_acsl_neg_8);
     __gmpz_clear(__gen_e_acsl__20);
@@ -298,7 +420,7 @@ int main(void)
     __gmpz_clear(__gen_e_acsl__22);
     __gmpz_clear(__gen_e_acsl_neg_10);
   }
-  /*@ assert -3 % -2 ≡ -1; */ ;
+  /*@ assert -3 % -2 == -1; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__23;
     __e_acsl_mpz_t __gen_e_acsl__24;
@@ -308,7 +430,11 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_mod_3;
     __e_acsl_mpz_t __gen_e_acsl__26;
     int __gen_e_acsl_eq_10;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__23,3L);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__24,2L);
     __gmpz_init(__gen_e_acsl_neg_11);
     __gmpz_neg(__gen_e_acsl_neg_11,
@@ -317,17 +443,30 @@ int main(void)
     __gen_e_acsl_mod_guard_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_11),
                                           (__e_acsl_mpz_struct const *)(__gen_e_acsl__25));
     __gmpz_init(__gen_e_acsl_mod_3);
-    /*@ assert E_ACSL: -2 ≢ 0; */
-    __e_acsl_assert(__gen_e_acsl_mod_guard_3 != 0,1,"Assertion","main",
-                    "-2 != 0","tests/gmp-only/arith.i",21);
+    /*@ assert E_ACSL: -2 != 0; */
+    {
+      __gen_e_acsl_assert_data_16.blocking = 1;
+      __gen_e_acsl_assert_data_16.kind = "Assertion";
+      __gen_e_acsl_assert_data_16.pred_txt = "-2 != 0";
+      __gen_e_acsl_assert_data_16.file = "tests/gmp-only/arith.i";
+      __gen_e_acsl_assert_data_16.fct = "main";
+      __gen_e_acsl_assert_data_16.line = 21;
+      __e_acsl_assert(__gen_e_acsl_mod_guard_3 != 0,
+                      & __gen_e_acsl_assert_data_16);
+    }
     __gmpz_tdiv_r(__gen_e_acsl_mod_3,
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl__23),
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_11));
     __gmpz_init_set_si(__gen_e_acsl__26,1L);
     __gen_e_acsl_eq_10 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mod_3),
                                     (__e_acsl_mpz_struct const *)(__gen_e_acsl__26));
-    __e_acsl_assert(__gen_e_acsl_eq_10 == 0,1,"Assertion","main",
-                    "3 % -2 == 1","tests/gmp-only/arith.i",21);
+    __gen_e_acsl_assert_data_15.blocking = 1;
+    __gen_e_acsl_assert_data_15.kind = "Assertion";
+    __gen_e_acsl_assert_data_15.pred_txt = "3 % -2 == 1";
+    __gen_e_acsl_assert_data_15.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_15.fct = "main";
+    __gen_e_acsl_assert_data_15.line = 21;
+    __e_acsl_assert(__gen_e_acsl_eq_10 == 0,& __gen_e_acsl_assert_data_15);
     __gmpz_clear(__gen_e_acsl__23);
     __gmpz_clear(__gen_e_acsl__24);
     __gmpz_clear(__gen_e_acsl_neg_11);
@@ -335,7 +474,7 @@ int main(void)
     __gmpz_clear(__gen_e_acsl_mod_3);
     __gmpz_clear(__gen_e_acsl__26);
   }
-  /*@ assert 3 % -2 ≡ 1; */ ;
+  /*@ assert 3 % -2 == 1; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_x_8;
     __e_acsl_mpz_t __gen_e_acsl__27;
@@ -351,6 +490,9 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl__30;
     __e_acsl_mpz_t __gen_e_acsl_neg_12;
     int __gen_e_acsl_eq_11;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"x",0,x);
     __gmpz_init_set_si(__gen_e_acsl_x_8,(long)x);
     __gmpz_init_set_si(__gen_e_acsl__27,2L);
     __gmpz_init(__gen_e_acsl_mul_2);
@@ -358,6 +500,7 @@ int main(void)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_x_8),
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__27));
     __gmpz_init_set_si(__gen_e_acsl__28,3L);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"y",0,y);
     __gmpz_init_set_si(__gen_e_acsl_y,(long)y);
     __gmpz_init(__gen_e_acsl_add_2);
     __gmpz_add(__gen_e_acsl_add_2,
@@ -372,6 +515,8 @@ int main(void)
     __gmpz_sub(__gen_e_acsl_sub_2,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_3),
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__29));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"x",0,x);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"y",0,y);
     __gmpz_init(__gen_e_acsl_sub_3);
     __gmpz_sub(__gen_e_acsl_sub_3,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_x_8),
@@ -386,9 +531,14 @@ int main(void)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__30));
     __gen_e_acsl_eq_11 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_4),
                                     (__e_acsl_mpz_struct const *)(__gen_e_acsl_neg_12));
-    __e_acsl_assert(__gen_e_acsl_eq_11 == 0,1,"Assertion","main",
-                    "((x * 2 + (3 + y)) - 4) + (x - y) == -10",
-                    "tests/gmp-only/arith.i",23);
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "Assertion";
+    __gen_e_acsl_assert_data_17.pred_txt = "((x * 2 + (3 + y)) - 4) + (x - y) == -10";
+    __gen_e_acsl_assert_data_17.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_17.fct = "main";
+    __gen_e_acsl_assert_data_17.line = 23;
+    __e_acsl_assert(__gen_e_acsl_eq_11 == 0,& __gen_e_acsl_assert_data_17);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
     __gmpz_clear(__gen_e_acsl_x_8);
     __gmpz_clear(__gen_e_acsl__27);
     __gmpz_clear(__gen_e_acsl_mul_2);
@@ -403,7 +553,7 @@ int main(void)
     __gmpz_clear(__gen_e_acsl__30);
     __gmpz_clear(__gen_e_acsl_neg_12);
   }
-  /*@ assert ((x * 2 + (3 + y)) - 4) + (x - y) ≡ -10; */ ;
+  /*@ assert ((x * 2 + (3 + y)) - 4) + (x - y) == -10; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__31;
     __e_acsl_mpz_t __gen_e_acsl__32;
@@ -414,6 +564,8 @@ int main(void)
     int __gen_e_acsl_not;
     __e_acsl_mpz_t __gen_e_acsl__35;
     int __gen_e_acsl_eq_14;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__31,0L);
     __gmpz_init_set_si(__gen_e_acsl__32,1L);
     __gen_e_acsl_eq_12 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__31),
@@ -427,15 +579,20 @@ int main(void)
     __gmpz_init_set_si(__gen_e_acsl__35,(long)(__gen_e_acsl_not == 0));
     __gen_e_acsl_eq_14 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__33),
                                     (__e_acsl_mpz_struct const *)(__gen_e_acsl__35));
-    __e_acsl_assert(__gen_e_acsl_eq_14 == 0,1,"Assertion","main",
-                    "(0 == 1) == !(0 == 0)","tests/gmp-only/arith.i",25);
+    __gen_e_acsl_assert_data_18.blocking = 1;
+    __gen_e_acsl_assert_data_18.kind = "Assertion";
+    __gen_e_acsl_assert_data_18.pred_txt = "(0 == 1) == !(0 == 0)";
+    __gen_e_acsl_assert_data_18.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_18.fct = "main";
+    __gen_e_acsl_assert_data_18.line = 25;
+    __e_acsl_assert(__gen_e_acsl_eq_14 == 0,& __gen_e_acsl_assert_data_18);
     __gmpz_clear(__gen_e_acsl__31);
     __gmpz_clear(__gen_e_acsl__32);
     __gmpz_clear(__gen_e_acsl__33);
     __gmpz_clear(__gen_e_acsl__34);
     __gmpz_clear(__gen_e_acsl__35);
   }
-  /*@ assert (0 ≡ 1) ≡ !(0 ≡ 0); */ ;
+  /*@ assert (0 == 1) == !(0 == 0); */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__36;
     __e_acsl_mpz_t __gen_e_acsl__37;
@@ -445,6 +602,8 @@ int main(void)
     int __gen_e_acsl_gt;
     __e_acsl_mpz_t __gen_e_acsl__39;
     int __gen_e_acsl_eq_15;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__36,0L);
     __gmpz_init_set_si(__gen_e_acsl__37,1L);
     __gmpz_init(__gen_e_acsl_neg_13);
@@ -458,15 +617,20 @@ int main(void)
     __gmpz_init_set_si(__gen_e_acsl__39,(long)(__gen_e_acsl_gt > 0));
     __gen_e_acsl_eq_15 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__38),
                                     (__e_acsl_mpz_struct const *)(__gen_e_acsl__39));
-    __e_acsl_assert(__gen_e_acsl_eq_15 == 0,1,"Assertion","main",
-                    "(0 <= -1) == (0 > 0)","tests/gmp-only/arith.i",26);
+    __gen_e_acsl_assert_data_19.blocking = 1;
+    __gen_e_acsl_assert_data_19.kind = "Assertion";
+    __gen_e_acsl_assert_data_19.pred_txt = "(0 <= -1) == (0 > 0)";
+    __gen_e_acsl_assert_data_19.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_19.fct = "main";
+    __gen_e_acsl_assert_data_19.line = 26;
+    __e_acsl_assert(__gen_e_acsl_eq_15 == 0,& __gen_e_acsl_assert_data_19);
     __gmpz_clear(__gen_e_acsl__36);
     __gmpz_clear(__gen_e_acsl__37);
     __gmpz_clear(__gen_e_acsl_neg_13);
     __gmpz_clear(__gen_e_acsl__38);
     __gmpz_clear(__gen_e_acsl__39);
   }
-  /*@ assert (0 ≤ -1) ≡ (0 > 0); */ ;
+  /*@ assert (0 <= -1) == (0 > 0); */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__40;
     __e_acsl_mpz_t __gen_e_acsl__41;
@@ -476,6 +640,8 @@ int main(void)
     int __gen_e_acsl_le_2;
     __e_acsl_mpz_t __gen_e_acsl__43;
     int __gen_e_acsl_eq_16;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__40,0L);
     __gmpz_init_set_si(__gen_e_acsl__41,1L);
     __gmpz_init(__gen_e_acsl_neg_14);
@@ -489,15 +655,20 @@ int main(void)
     __gmpz_init_set_si(__gen_e_acsl__43,(long)(__gen_e_acsl_le_2 <= 0));
     __gen_e_acsl_eq_16 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__42),
                                     (__e_acsl_mpz_struct const *)(__gen_e_acsl__43));
-    __e_acsl_assert(__gen_e_acsl_eq_16 == 0,1,"Assertion","main",
-                    "(0 >= -1) == (0 <= 0)","tests/gmp-only/arith.i",27);
+    __gen_e_acsl_assert_data_20.blocking = 1;
+    __gen_e_acsl_assert_data_20.kind = "Assertion";
+    __gen_e_acsl_assert_data_20.pred_txt = "(0 >= -1) == (0 <= 0)";
+    __gen_e_acsl_assert_data_20.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_20.fct = "main";
+    __gen_e_acsl_assert_data_20.line = 27;
+    __e_acsl_assert(__gen_e_acsl_eq_16 == 0,& __gen_e_acsl_assert_data_20);
     __gmpz_clear(__gen_e_acsl__40);
     __gmpz_clear(__gen_e_acsl__41);
     __gmpz_clear(__gen_e_acsl_neg_14);
     __gmpz_clear(__gen_e_acsl__42);
     __gmpz_clear(__gen_e_acsl__43);
   }
-  /*@ assert (0 ≥ -1) ≡ (0 ≤ 0); */ ;
+  /*@ assert (0 >= -1) == (0 <= 0); */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__44;
     __e_acsl_mpz_t __gen_e_acsl__45;
@@ -508,6 +679,8 @@ int main(void)
     int __gen_e_acsl_not_2;
     __e_acsl_mpz_t __gen_e_acsl__48;
     int __gen_e_acsl_eq_17;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__44,0L);
     __gmpz_init_set_si(__gen_e_acsl__45,1L);
     __gen_e_acsl_ne_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__44),
@@ -521,15 +694,20 @@ int main(void)
     __gmpz_init_set_si(__gen_e_acsl__48,(long)(__gen_e_acsl_not_2 == 0));
     __gen_e_acsl_eq_17 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__46),
                                     (__e_acsl_mpz_struct const *)(__gen_e_acsl__48));
-    __e_acsl_assert(__gen_e_acsl_eq_17 == 0,1,"Assertion","main",
-                    "(0 != 1) == !(0 != 0)","tests/gmp-only/arith.i",28);
+    __gen_e_acsl_assert_data_21.blocking = 1;
+    __gen_e_acsl_assert_data_21.kind = "Assertion";
+    __gen_e_acsl_assert_data_21.pred_txt = "(0 != 1) == !(0 != 0)";
+    __gen_e_acsl_assert_data_21.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_21.fct = "main";
+    __gen_e_acsl_assert_data_21.line = 28;
+    __e_acsl_assert(__gen_e_acsl_eq_17 == 0,& __gen_e_acsl_assert_data_21);
     __gmpz_clear(__gen_e_acsl__44);
     __gmpz_clear(__gen_e_acsl__45);
     __gmpz_clear(__gen_e_acsl__46);
     __gmpz_clear(__gen_e_acsl__47);
     __gmpz_clear(__gen_e_acsl__48);
   }
-  /*@ assert (0 ≢ 1) ≡ !(0 ≢ 0); */ ;
+  /*@ assert (0 != 1) == !(0 != 0); */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__49;
     int __gen_e_acsl_ne_4;
@@ -540,6 +718,8 @@ int main(void)
     int __gen_e_acsl_not_3;
     __e_acsl_mpz_t __gen_e_acsl__53;
     int __gen_e_acsl_eq_18;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__49,0L);
     __gen_e_acsl_ne_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__49),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__49));
@@ -553,15 +733,20 @@ int main(void)
     __gmpz_init_set_si(__gen_e_acsl__53,(long)(__gen_e_acsl_not_3 == 0));
     __gen_e_acsl_eq_18 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__50),
                                     (__e_acsl_mpz_struct const *)(__gen_e_acsl__53));
-    __e_acsl_assert(__gen_e_acsl_eq_18 == 0,1,"Assertion","main",
-                    "(0 != 0) == !(1 != 0)","tests/gmp-only/arith.i",30);
+    __gen_e_acsl_assert_data_22.blocking = 1;
+    __gen_e_acsl_assert_data_22.kind = "Assertion";
+    __gen_e_acsl_assert_data_22.pred_txt = "(0 != 0) == !(1 != 0)";
+    __gen_e_acsl_assert_data_22.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_22.fct = "main";
+    __gen_e_acsl_assert_data_22.line = 30;
+    __e_acsl_assert(__gen_e_acsl_eq_18 == 0,& __gen_e_acsl_assert_data_22);
     __gmpz_clear(__gen_e_acsl__49);
     __gmpz_clear(__gen_e_acsl__50);
     __gmpz_clear(__gen_e_acsl__51);
     __gmpz_clear(__gen_e_acsl__52);
     __gmpz_clear(__gen_e_acsl__53);
   }
-  /*@ assert (0 ≢ 0) ≡ !(1 ≢ 0); */ ;
+  /*@ assert (0 != 0) == !(1 != 0); */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__54;
     __e_acsl_mpz_t __gen_e_acsl_y_2;
@@ -570,30 +755,52 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_div_3;
     __e_acsl_mpz_t __gen_e_acsl__56;
     int __gen_e_acsl_eq_19;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__54,4L);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_24 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,"y",0,y);
     __gmpz_init_set_si(__gen_e_acsl_y_2,(long)y);
+    __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_23,
+                                & __gen_e_acsl_assert_data_24);
     __gmpz_init_set_si(__gen_e_acsl__55,0L);
     __gen_e_acsl_div_guard_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_y_2),
                                           (__e_acsl_mpz_struct const *)(__gen_e_acsl__55));
     __gmpz_init(__gen_e_acsl_div_3);
-    /*@ assert E_ACSL: y ≢ 0; */
-    __e_acsl_assert(__gen_e_acsl_div_guard_3 != 0,1,"Assertion","main",
-                    "y != 0","tests/gmp-only/arith.i",31);
+    /*@ assert E_ACSL: y != 0; */
+    {
+      __gen_e_acsl_assert_data_24.blocking = 1;
+      __gen_e_acsl_assert_data_24.kind = "Assertion";
+      __gen_e_acsl_assert_data_24.pred_txt = "y != 0";
+      __gen_e_acsl_assert_data_24.file = "tests/gmp-only/arith.i";
+      __gen_e_acsl_assert_data_24.fct = "main";
+      __gen_e_acsl_assert_data_24.line = 31;
+      __e_acsl_assert(__gen_e_acsl_div_guard_3 != 0,
+                      & __gen_e_acsl_assert_data_24);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_24);
+    }
     __gmpz_tdiv_q(__gen_e_acsl_div_3,
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl__54),
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_y_2));
     __gmpz_init_set_si(__gen_e_acsl__56,2L);
     __gen_e_acsl_eq_19 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_div_3),
                                     (__e_acsl_mpz_struct const *)(__gen_e_acsl__56));
-    __e_acsl_assert(__gen_e_acsl_eq_19 == 0,1,"Assertion","main",
-                    "4 / y == 2","tests/gmp-only/arith.i",31);
+    __gen_e_acsl_assert_data_23.blocking = 1;
+    __gen_e_acsl_assert_data_23.kind = "Assertion";
+    __gen_e_acsl_assert_data_23.pred_txt = "4 / y == 2";
+    __gen_e_acsl_assert_data_23.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_23.fct = "main";
+    __gen_e_acsl_assert_data_23.line = 31;
+    __e_acsl_assert(__gen_e_acsl_eq_19 == 0,& __gen_e_acsl_assert_data_23);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23);
     __gmpz_clear(__gen_e_acsl__54);
     __gmpz_clear(__gen_e_acsl_y_2);
     __gmpz_clear(__gen_e_acsl__55);
     __gmpz_clear(__gen_e_acsl_div_3);
     __gmpz_clear(__gen_e_acsl__56);
   }
-  /*@ assert 4 / y ≡ 2; */ ;
+  /*@ assert 4 / y == 2; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__57;
     __e_acsl_mpz_t __gen_e_acsl_z;
@@ -606,26 +813,42 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_div_4;
     __e_acsl_mpz_t __gen_e_acsl_add_6;
     int __gen_e_acsl_eq_20;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_25 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__57,1L);
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_25,"z",0,z);
     __gmpz_init_set_si(__gen_e_acsl_z,z);
     __gmpz_init(__gen_e_acsl_add_5);
     __gmpz_add(__gen_e_acsl_add_5,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_z),
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__57));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_26 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,"y",0,y);
     __gmpz_init_set_si(__gen_e_acsl_y_3,(long)y);
     __gmpz_init_set_ui(__gen_e_acsl__58,123456789123456789UL);
     __gmpz_init(__gen_e_acsl_sub_4);
     __gmpz_sub(__gen_e_acsl_sub_4,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_y_3),
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__58));
+    __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_25,
+                                & __gen_e_acsl_assert_data_26);
     __gmpz_init_set_si(__gen_e_acsl__59,0L);
     __gen_e_acsl_div_guard_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_4),
                                           (__e_acsl_mpz_struct const *)(__gen_e_acsl__59));
     __gmpz_init(__gen_e_acsl_div_4);
-    /*@ assert E_ACSL: y - 123456789123456789 ≢ 0; */
-    __e_acsl_assert(__gen_e_acsl_div_guard_4 != 0,1,"Assertion","main",
-                    "y - 123456789123456789 != 0","tests/gmp-only/arith.i",
-                    34);
+    /*@ assert E_ACSL: y - 123456789123456789 != 0; */
+    {
+      __gen_e_acsl_assert_data_26.blocking = 1;
+      __gen_e_acsl_assert_data_26.kind = "Assertion";
+      __gen_e_acsl_assert_data_26.pred_txt = "y - 123456789123456789 != 0";
+      __gen_e_acsl_assert_data_26.file = "tests/gmp-only/arith.i";
+      __gen_e_acsl_assert_data_26.fct = "main";
+      __gen_e_acsl_assert_data_26.line = 34;
+      __e_acsl_assert(__gen_e_acsl_div_guard_4 != 0,
+                      & __gen_e_acsl_assert_data_26);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_26);
+    }
     __gmpz_tdiv_q(__gen_e_acsl_div_4,
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_5),
                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_4));
@@ -635,9 +858,14 @@ int main(void)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_div_4));
     __gen_e_acsl_eq_20 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_6),
                                     (__e_acsl_mpz_struct const *)(__gen_e_acsl__57));
-    __e_acsl_assert(__gen_e_acsl_eq_20 == 0,1,"Assertion","main",
-                    "1 + (z + 1) / (y - 123456789123456789) == 1",
-                    "tests/gmp-only/arith.i",34);
+    __gen_e_acsl_assert_data_25.blocking = 1;
+    __gen_e_acsl_assert_data_25.kind = "Assertion";
+    __gen_e_acsl_assert_data_25.pred_txt = "1 + (z + 1) / (y - 123456789123456789) == 1";
+    __gen_e_acsl_assert_data_25.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_25.fct = "main";
+    __gen_e_acsl_assert_data_25.line = 34;
+    __e_acsl_assert(__gen_e_acsl_eq_20 == 0,& __gen_e_acsl_assert_data_25);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_25);
     __gmpz_clear(__gen_e_acsl__57);
     __gmpz_clear(__gen_e_acsl_z);
     __gmpz_clear(__gen_e_acsl_add_5);
@@ -648,7 +876,7 @@ int main(void)
     __gmpz_clear(__gen_e_acsl_div_4);
     __gmpz_clear(__gen_e_acsl_add_6);
   }
-  /*@ assert 1 + (z + 1) / (y - 123456789123456789) ≡ 1; */ ;
+  /*@ assert 1 + (z + 1) / (y - 123456789123456789) == 1; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__60;
     __e_acsl_mpz_t __gen_e_acsl_x_9;
@@ -656,12 +884,16 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_neg_15;
     __e_acsl_mpz_t __gen_e_acsl_add_7;
     int __gen_e_acsl_eq_21;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_27 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__60,1L);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27,"x",0,x);
     __gmpz_init_set_si(__gen_e_acsl_x_9,(long)x);
     __gmpz_init(__gen_e_acsl_sub_5);
     __gmpz_sub(__gen_e_acsl_sub_5,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__60),
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_x_9));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27,"x",0,x);
     __gmpz_init(__gen_e_acsl_neg_15);
     __gmpz_neg(__gen_e_acsl_neg_15,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_x_9));
@@ -671,15 +903,21 @@ int main(void)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__60));
     __gen_e_acsl_eq_21 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_sub_5),
                                     (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_7));
-    __e_acsl_assert(__gen_e_acsl_eq_21 == 0,1,"Assertion","main",
-                    "1 - x == -x + 1","tests/gmp-only/arith.i",36);
+    __gen_e_acsl_assert_data_27.blocking = 1;
+    __gen_e_acsl_assert_data_27.kind = "Assertion";
+    __gen_e_acsl_assert_data_27.pred_txt = "1 - x == -x + 1";
+    __gen_e_acsl_assert_data_27.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_27.fct = "main";
+    __gen_e_acsl_assert_data_27.line = 36;
+    __e_acsl_assert(__gen_e_acsl_eq_21 == 0,& __gen_e_acsl_assert_data_27);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_27);
     __gmpz_clear(__gen_e_acsl__60);
     __gmpz_clear(__gen_e_acsl_x_9);
     __gmpz_clear(__gen_e_acsl_sub_5);
     __gmpz_clear(__gen_e_acsl_neg_15);
     __gmpz_clear(__gen_e_acsl_add_7);
   }
-  /*@ assert 1 - x ≡ -x + 1; */ ;
+  /*@ assert 1 - x == -x + 1; */ ;
   short a = (short)1;
   short b = (short)1;
   {
@@ -692,7 +930,11 @@ int main(void)
     __e_acsl_mpq_t __gen_e_acsl__64;
     __e_acsl_mpq_t __gen_e_acsl_sub_6;
     int __gen_e_acsl_gt_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_28 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_28,"a",0,a);
     __gmpz_init_set_si(__gen_e_acsl_a,(long)a);
+    __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_28,"b",0,b);
     __gmpz_init_set_si(__gen_e_acsl_b,(long)b);
     __gmpq_init(__gen_e_acsl__61);
     __gmpq_set_z(__gen_e_acsl__61,
@@ -714,8 +956,14 @@ int main(void)
                (__e_acsl_mpq_struct const *)(__gen_e_acsl__64));
     __gen_e_acsl_gt_2 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl_add_8),
                                    (__e_acsl_mpq_struct const *)(__gen_e_acsl_sub_6));
-    __e_acsl_assert(__gen_e_acsl_gt_2 > 0,1,"Assertion","main",
-                    "a + b > 2. - 1.","tests/gmp-only/arith.i",39);
+    __gen_e_acsl_assert_data_28.blocking = 1;
+    __gen_e_acsl_assert_data_28.kind = "Assertion";
+    __gen_e_acsl_assert_data_28.pred_txt = "a + b > 2. - 1.";
+    __gen_e_acsl_assert_data_28.file = "tests/gmp-only/arith.i";
+    __gen_e_acsl_assert_data_28.fct = "main";
+    __gen_e_acsl_assert_data_28.line = 39;
+    __e_acsl_assert(__gen_e_acsl_gt_2 > 0,& __gen_e_acsl_assert_data_28);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_28);
     __gmpz_clear(__gen_e_acsl_a);
     __gmpz_clear(__gen_e_acsl_b);
     __gmpq_clear(__gen_e_acsl__61);
@@ -727,6 +975,7 @@ int main(void)
   }
   /*@ assert a + b > 2. - 1.; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/gmp-only/oracle/gen_extended_quantifiers.c b/src/plugins/e-acsl/tests/gmp-only/oracle/gen_extended_quantifiers.c
index 444c63fc9a928aa135f48d71e25621ee7f88e498..931195d4fbcb84509450c64c2b6bf44c66ec3a04 100644
--- a/src/plugins/e-acsl/tests/gmp-only/oracle/gen_extended_quantifiers.c
+++ b/src/plugins/e-acsl/tests/gmp-only/oracle/gen_extended_quantifiers.c
@@ -1,12 +1,13 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   {
     __e_acsl_mpz_t __gen_e_acsl_;
     __e_acsl_mpz_t __gen_e_acsl__2;
@@ -17,6 +18,7 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_accumulator;
     __e_acsl_mpz_t __gen_e_acsl__4;
     int __gen_e_acsl_eq;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl_,2L);
     __gmpz_init_set_si(__gen_e_acsl__2,10L);
     __gmpz_init_set_si(__gen_e_acsl_one,1L);
@@ -51,12 +53,20 @@ int main(void)
                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_one));
       }
     }
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,
+                                 "\\sum(2, 10, \\lambda integer k; 2 * k)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator));
     __gmpz_init_set_si(__gen_e_acsl__4,108L);
     __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
-    __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main",
-                    "\\sum(2, 10, \\lambda integer k; 2 * k) == 108",
-                    "tests/gmp-only/extended_quantifiers.i",7);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\sum(2, 10, \\lambda integer k; 2 * k) == 108";
+    __gen_e_acsl_assert_data.file = "tests/gmp-only/extended_quantifiers.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 7;
+    __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __gmpz_clear(__gen_e_acsl_);
     __gmpz_clear(__gen_e_acsl__2);
     __gmpz_clear(__gen_e_acsl_k);
@@ -65,7 +75,7 @@ int main(void)
     __gmpz_clear(__gen_e_acsl_accumulator);
     __gmpz_clear(__gen_e_acsl__4);
   }
-  /*@ assert \sum(2, 10, \lambda ℤ k; 2 * k) ≡ 108; */ ;
+  /*@ assert \sum(2, 10, \lambda integer k; 2 * k) == 108; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__5;
     __e_acsl_mpz_t __gen_e_acsl__6;
@@ -75,6 +85,8 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_lambda_2;
     __e_acsl_mpz_t __gen_e_acsl_accumulator_2;
     int __gen_e_acsl_eq_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__5,1L);
     __gmpz_init_set_si(__gen_e_acsl__6,10L);
     __gmpz_init_set_si(__gen_e_acsl_one_2,1L);
@@ -103,11 +115,19 @@ int main(void)
                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_one_2));
       }
     }
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2,
+                                 "\\sum(1, 10, \\lambda integer k; 1)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_2));
     __gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_2),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__6));
-    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","main",
-                    "\\sum(1, 10, \\lambda integer k; 1) == 10",
-                    "tests/gmp-only/extended_quantifiers.i",8);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\sum(1, 10, \\lambda integer k; 1) == 10";
+    __gen_e_acsl_assert_data_2.file = "tests/gmp-only/extended_quantifiers.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 8;
+    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     __gmpz_clear(__gen_e_acsl__5);
     __gmpz_clear(__gen_e_acsl__6);
     __gmpz_clear(__gen_e_acsl_k_2);
@@ -115,7 +135,7 @@ int main(void)
     __gmpz_clear(__gen_e_acsl_lambda_2);
     __gmpz_clear(__gen_e_acsl_accumulator_2);
   }
-  /*@ assert \sum(1, 10, \lambda ℤ k; 1) ≡ 10; */ ;
+  /*@ assert \sum(1, 10, \lambda integer k; 1) == 10; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__8;
     __e_acsl_mpz_t __gen_e_acsl__9;
@@ -126,6 +146,8 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_accumulator_3;
     __e_acsl_mpz_t __gen_e_acsl__14;
     int __gen_e_acsl_eq_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__8,2L);
     __gmpz_init_set_si(__gen_e_acsl__9,10L);
     __gmpz_init_set_si(__gen_e_acsl_one_3,1L);
@@ -182,12 +204,21 @@ int main(void)
                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_one_3));
       }
     }
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_3,
+                                 "\\sum(2, 10, \\lambda integer k; k - 2 >= 0? 1: 0)",
+                                 0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_3));
     __gmpz_init_set_si(__gen_e_acsl__14,9L);
     __gen_e_acsl_eq_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_3),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__14));
-    __e_acsl_assert(__gen_e_acsl_eq_3 == 0,1,"Assertion","main",
-                    "\\numof(2, 10, \\lambda integer k; k - 2 >= 0) == 9",
-                    "tests/gmp-only/extended_quantifiers.i",10);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\numof(2, 10, \\lambda integer k; k - 2 >= 0) == 9";
+    __gen_e_acsl_assert_data_3.file = "tests/gmp-only/extended_quantifiers.i";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 10;
+    __e_acsl_assert(__gen_e_acsl_eq_3 == 0,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __gmpz_clear(__gen_e_acsl__8);
     __gmpz_clear(__gen_e_acsl__9);
     __gmpz_clear(__gen_e_acsl_k_3);
@@ -196,7 +227,7 @@ int main(void)
     __gmpz_clear(__gen_e_acsl_accumulator_3);
     __gmpz_clear(__gen_e_acsl__14);
   }
-  /*@ assert \numof(2, 10, \lambda ℤ k; k - 2 ≥ 0) ≡ 9; */ ;
+  /*@ assert \numof(2, 10, \lambda integer k; k - 2 >= 0) == 9; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__15;
     __e_acsl_mpz_t __gen_e_acsl__16;
@@ -207,6 +238,8 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_accumulator_4;
     __e_acsl_mpz_t __gen_e_acsl__17;
     int __gen_e_acsl_eq_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__15,1L);
     __gmpz_init_set_si(__gen_e_acsl__16,10L);
     __gmpz_init_set_si(__gen_e_acsl_one_4,1L);
@@ -230,12 +263,20 @@ int main(void)
                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_one_4));
       }
     }
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_4,
+                                 "\\product(1, 10, \\lambda integer k; k)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_4));
     __gmpz_init_set_ui(__gen_e_acsl__17,3628800UL);
     __gen_e_acsl_eq_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_4),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__17));
-    __e_acsl_assert(__gen_e_acsl_eq_4 == 0,1,"Assertion","main",
-                    "\\product(1, 10, \\lambda integer k; k) == 3628800",
-                    "tests/gmp-only/extended_quantifiers.i",12);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\product(1, 10, \\lambda integer k; k) == 3628800";
+    __gen_e_acsl_assert_data_4.file = "tests/gmp-only/extended_quantifiers.i";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 12;
+    __e_acsl_assert(__gen_e_acsl_eq_4 == 0,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     __gmpz_clear(__gen_e_acsl__15);
     __gmpz_clear(__gen_e_acsl__16);
     __gmpz_clear(__gen_e_acsl_k_4);
@@ -244,7 +285,7 @@ int main(void)
     __gmpz_clear(__gen_e_acsl_accumulator_4);
     __gmpz_clear(__gen_e_acsl__17);
   }
-  /*@ assert \product(1, 10, \lambda ℤ k; k) ≡ 3628800; */ ;
+  /*@ assert \product(1, 10, \lambda integer k; k) == 3628800; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__18;
     __e_acsl_mpz_t __gen_e_acsl_neg;
@@ -255,6 +296,8 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_accumulator_5;
     __e_acsl_mpz_t __gen_e_acsl__19;
     int __gen_e_acsl_eq_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
     __gmpz_init_set_si(__gen_e_acsl__18,10L);
     __gmpz_init(__gen_e_acsl_neg);
     __gmpz_neg(__gen_e_acsl_neg,
@@ -280,12 +323,21 @@ int main(void)
                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_one_5));
       }
     }
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_5,
+                                 "\\product(-10, 10, \\lambda integer k; k)",
+                                 0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_5));
     __gmpz_init_set_si(__gen_e_acsl__19,0L);
     __gen_e_acsl_eq_5 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_accumulator_5),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__19));
-    __e_acsl_assert(__gen_e_acsl_eq_5 == 0,1,"Assertion","main",
-                    "\\product(-10, 10, \\lambda integer k; k) == 0",
-                    "tests/gmp-only/extended_quantifiers.i",13);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "\\product(-10, 10, \\lambda integer k; k) == 0";
+    __gen_e_acsl_assert_data_5.file = "tests/gmp-only/extended_quantifiers.i";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 13;
+    __e_acsl_assert(__gen_e_acsl_eq_5 == 0,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     __gmpz_clear(__gen_e_acsl__18);
     __gmpz_clear(__gen_e_acsl_neg);
     __gmpz_clear(__gen_e_acsl_k_5);
@@ -294,8 +346,9 @@ int main(void)
     __gmpz_clear(__gen_e_acsl_accumulator_5);
     __gmpz_clear(__gen_e_acsl__19);
   }
-  /*@ assert \product(-10, 10, \lambda ℤ k; k) ≡ 0; */ ;
+  /*@ assert \product(-10, 10, \lambda integer k; k) == 0; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/gmp-only/oracle/gen_functions.c b/src/plugins/e-acsl/tests/gmp-only/oracle/gen_functions.c
index a0dfc7325996cf9771b3fa9ef58887faca913c90..2b851b329496dc52bb436a5a32a671738a80ce50 100644
--- a/src/plugins/e-acsl/tests/gmp-only/oracle/gen_functions.c
+++ b/src/plugins/e-acsl/tests/gmp-only/oracle/gen_functions.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -13,14 +13,14 @@ typedef struct mystruct mystruct;
  */
 int __gen_e_acsl_p1(int x, int y);
 
-/*@ predicate p2(ℤ x, ℤ y) = x + y > 0;
+/*@ predicate p2(integer x, integer y) = x + y > 0;
 
 */
 int __gen_e_acsl_p2(int x, int y);
 
 int __gen_e_acsl_p2_3(int x, __e_acsl_mpz_struct * y);
 
-/*@ logic ℤ f1(ℤ x, ℤ y) = x + y;
+/*@ logic integer f1(integer x, integer y) = x + y;
 
 */
 void __gen_e_acsl_f1(__e_acsl_mpz_t *__retres_arg, int x, int y);
@@ -51,11 +51,11 @@ int __gen_e_acsl_g(int x);
  */
 mystruct __gen_e_acsl_t1(mystruct m);
 
-/*@ logic ℤ t2(mystruct m) = m.k + m.l;
+/*@ logic integer t2(mystruct m) = m.k + m.l;
  */
 void __gen_e_acsl_t2(__e_acsl_mpz_t *__retres_arg, mystruct m);
 
-/*@ predicate k_pred(ℤ x) = x > 0;
+/*@ predicate k_pred(integer x) = x > 0;
 
 */
 int __gen_e_acsl_k_pred(int x);
@@ -69,46 +69,78 @@ void k(int x)
 }
 
 int glob = 5;
-/*@ predicate never_called(int x) = x ≡ x;
+/*@ predicate never_called(int x) = x == x;
  */
 /*@ logic double f2(double x) = (double)(1 / x);
  */
 double __gen_e_acsl_f2(double x);
 
-/*@ predicate p_notyet{L}(ℤ x) = x > 0;
+/*@ predicate p_notyet{L}(integer x) = x > 0;
  */
-/*@ logic ℤ f_notyet{L}(ℤ x) = x;
+/*@ logic integer f_notyet{L}(integer x) = x;
 
 */
 int main(void)
 {
   int __retres;
   mystruct m;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int x = 1;
   int y = 2;
   {
     int __gen_e_acsl_p1_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"y",0,y);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x);
     __gen_e_acsl_p1_2 = __gen_e_acsl_p1(x,y);
-    __e_acsl_assert(__gen_e_acsl_p1_2,1,"Assertion","main","p1(x, y)",
-                    "tests/gmp-only/functions.c",44);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"p1(x, y)",0,
+                                 __gen_e_acsl_p1_2);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "p1(x, y)";
+    __gen_e_acsl_assert_data.file = "tests/gmp-only/functions.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 44;
+    __e_acsl_assert(__gen_e_acsl_p1_2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert p1(x, y); */ ;
   {
     int __gen_e_acsl_p2_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
     __gen_e_acsl_p2_2 = __gen_e_acsl_p2(3,4);
-    __e_acsl_assert(__gen_e_acsl_p2_2,1,"Assertion","main","p2(3, 4)",
-                    "tests/gmp-only/functions.c",45);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"p2(3, 4)",0,
+                                 __gen_e_acsl_p2_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "p2(3, 4)";
+    __gen_e_acsl_assert_data_2.file = "tests/gmp-only/functions.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 45;
+    __e_acsl_assert(__gen_e_acsl_p2_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert p2(3, 4); */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl__3;
     int __gen_e_acsl_p2_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
     __gmpz_init_set_str(__gen_e_acsl__3,"99999999999999999999999999999",10);
     __gen_e_acsl_p2_4 = __gen_e_acsl_p2_3(5,
                                           (__e_acsl_mpz_struct *)__gen_e_acsl__3);
-    __e_acsl_assert(__gen_e_acsl_p2_4,1,"Assertion","main",
-                    "p2(5, 99999999999999999999999999999)",
-                    "tests/gmp-only/functions.c",46);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "p2(5, 99999999999999999999999999999)",0,
+                                 __gen_e_acsl_p2_4);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "p2(5, 99999999999999999999999999999)";
+    __gen_e_acsl_assert_data_3.file = "tests/gmp-only/functions.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 46;
+    __e_acsl_assert(__gen_e_acsl_p2_4,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __gmpz_clear(__gen_e_acsl__3);
   }
   /*@ assert p2(5, 99999999999999999999999999999); */ ;
@@ -116,28 +148,53 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_f1_2;
     __e_acsl_mpz_t __gen_e_acsl__5;
     int __gen_e_acsl_eq;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"y",0,y);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"x",0,x);
     __gen_e_acsl_f1(& __gen_e_acsl_f1_2,x,y);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_4,"f1(x, y)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_2));
     __gmpz_init_set_si(__gen_e_acsl__5,3L);
     __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_2),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__5));
-    __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main",
-                    "f1(x, y) == 3","tests/gmp-only/functions.c",48);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "f1(x, y) == 3";
+    __gen_e_acsl_assert_data_4.file = "tests/gmp-only/functions.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 48;
+    __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     __gmpz_clear(__gen_e_acsl_f1_2);
     __gmpz_clear(__gen_e_acsl__5);
   }
-  /*@ assert f1(x, y) ≡ 3; */ ;
+  /*@ assert f1(x, y) == 3; */ ;
   {
     __e_acsl_mpz_t __gen_e_acsl_f1_4;
     int __gen_e_acsl_p2_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
     __gen_e_acsl_f1(& __gen_e_acsl_f1_4,3,4);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_5,"f1(3, 4)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_4));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"x",0,x);
     /*@ assert
         Eva: initialization:
           \initialized((__e_acsl_mpz_struct *)__gen_e_acsl_f1_4);
     */
     __gen_e_acsl_p2_6 = __gen_e_acsl_p2_3(x,
                                           (__e_acsl_mpz_struct *)__gen_e_acsl_f1_4);
-    __e_acsl_assert(__gen_e_acsl_p2_6,1,"Assertion","main","p2(x, f1(3, 4))",
-                    "tests/gmp-only/functions.c",49);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "p2(x, f1(3, 4))",0,__gen_e_acsl_p2_6);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "p2(x, f1(3, 4))";
+    __gen_e_acsl_assert_data_5.file = "tests/gmp-only/functions.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 49;
+    __e_acsl_assert(__gen_e_acsl_p2_6,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     __gmpz_clear(__gen_e_acsl_f1_4);
   }
   /*@ assert p2(x, f1(3, 4)); */ ;
@@ -146,15 +203,25 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_f1_6;
     __e_acsl_mpz_t __gen_e_acsl__7;
     int __gen_e_acsl_gt_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
     __gmpz_init_set_str(__gen_e_acsl__6,"99999999999999999999999999999",10);
     __gen_e_acsl_f1_5(& __gen_e_acsl_f1_6,9,
                       (__e_acsl_mpz_struct *)__gen_e_acsl__6);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,
+                                 "f1(9, 99999999999999999999999999999)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_6));
     __gmpz_init_set_si(__gen_e_acsl__7,0L);
     __gen_e_acsl_gt_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_6),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__7));
-    __e_acsl_assert(__gen_e_acsl_gt_4 > 0,1,"Assertion","main",
-                    "f1(9, 99999999999999999999999999999) > 0",
-                    "tests/gmp-only/functions.c",50);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "f1(9, 99999999999999999999999999999) > 0";
+    __gen_e_acsl_assert_data_6.file = "tests/gmp-only/functions.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 50;
+    __e_acsl_assert(__gen_e_acsl_gt_4 > 0,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     __gmpz_clear(__gen_e_acsl__6);
     __gmpz_clear(__gen_e_acsl_f1_6);
     __gmpz_clear(__gen_e_acsl__7);
@@ -165,23 +232,34 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_f1_8;
     __e_acsl_mpz_t __gen_e_acsl__9;
     int __gen_e_acsl_eq_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
     __gmpz_init_set_str(__gen_e_acsl__8,"99999999999999999999999999999",10);
     __gen_e_acsl_f1_7(& __gen_e_acsl_f1_8,
                       (__e_acsl_mpz_struct *)__gen_e_acsl__8,
                       (__e_acsl_mpz_struct *)__gen_e_acsl__8);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_7,
+                                 "f1(99999999999999999999999999999, 99999999999999999999999999999)",
+                                 0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_8));
     __gmpz_init_set_str(__gen_e_acsl__9,"199999999999999999999999999998",10);
     __gen_e_acsl_eq_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_f1_8),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__9));
-    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,1,"Assertion","main",
-                    "f1(99999999999999999999999999999, 99999999999999999999999999999) ==\n199999999999999999999999999998",
-                    "tests/gmp-only/functions.c",51);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "f1(99999999999999999999999999999, 99999999999999999999999999999) ==\n199999999999999999999999999998";
+    __gen_e_acsl_assert_data_7.file = "tests/gmp-only/functions.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 51;
+    __e_acsl_assert(__gen_e_acsl_eq_2 == 0,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
     __gmpz_clear(__gen_e_acsl__8);
     __gmpz_clear(__gen_e_acsl_f1_8);
     __gmpz_clear(__gen_e_acsl__9);
   }
   /*@
   assert
-  f1(99999999999999999999999999999, 99999999999999999999999999999) ≡
+  f1(99999999999999999999999999999, 99999999999999999999999999999) ==
   199999999999999999999999999998; */
   ;
   {
@@ -189,51 +267,87 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_app;
     __e_acsl_mpz_t __gen_e_acsl_x_6;
     int __gen_e_acsl_eq_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"x",0,x);
     __gen_e_acsl_g_2 = __gen_e_acsl_g(x);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"g(x)",0,
+                                 __gen_e_acsl_g_2);
     __gmpz_init_set_si(__gen_e_acsl_app,(long)__gen_e_acsl_g_2);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"x",0,x);
     __gmpz_init_set_si(__gen_e_acsl_x_6,(long)x);
     __gen_e_acsl_eq_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_app),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_x_6));
-    __e_acsl_assert(__gen_e_acsl_eq_3 == 0,1,"Assertion","main","g(x) == x",
-                    "tests/gmp-only/functions.c",56);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "g(x) == x";
+    __gen_e_acsl_assert_data_8.file = "tests/gmp-only/functions.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 56;
+    __e_acsl_assert(__gen_e_acsl_eq_3 == 0,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
     __gmpz_clear(__gen_e_acsl_app);
     __gmpz_clear(__gen_e_acsl_x_6);
   }
-  /*@ assert g(x) ≡ x; */ ;
+  /*@ assert g(x) == x; */ ;
   char c = (char)'c';
   {
     int __gen_e_acsl_h_char_2;
     __e_acsl_mpz_t __gen_e_acsl_app_2;
     __e_acsl_mpz_t __gen_e_acsl_c;
     int __gen_e_acsl_eq_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_char(& __gen_e_acsl_assert_data_9,"c",0,c);
     __gen_e_acsl_h_char_2 = __gen_e_acsl_h_char((int)c);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"h_char(c)",0,
+                                 __gen_e_acsl_h_char_2);
     __gmpz_init_set_si(__gen_e_acsl_app_2,(long)__gen_e_acsl_h_char_2);
+    __e_acsl_assert_register_char(& __gen_e_acsl_assert_data_9,"c",0,c);
     __gmpz_init_set_si(__gen_e_acsl_c,(long)c);
     __gen_e_acsl_eq_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_app_2),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_c));
-    __e_acsl_assert(__gen_e_acsl_eq_4 == 0,1,"Assertion","main",
-                    "h_char(c) == c","tests/gmp-only/functions.c",59);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "h_char(c) == c";
+    __gen_e_acsl_assert_data_9.file = "tests/gmp-only/functions.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 59;
+    __e_acsl_assert(__gen_e_acsl_eq_4 == 0,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
     __gmpz_clear(__gen_e_acsl_app_2);
     __gmpz_clear(__gen_e_acsl_c);
   }
-  /*@ assert h_char(c) ≡ c; */ ;
+  /*@ assert h_char(c) == c; */ ;
   short s = (short)1;
   {
     int __gen_e_acsl_h_short_2;
     __e_acsl_mpz_t __gen_e_acsl_app_3;
     __e_acsl_mpz_t __gen_e_acsl_s;
     int __gen_e_acsl_eq_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_10,"s",0,s);
     __gen_e_acsl_h_short_2 = __gen_e_acsl_h_short((int)s);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"h_short(s)",
+                                 0,__gen_e_acsl_h_short_2);
     __gmpz_init_set_si(__gen_e_acsl_app_3,(long)__gen_e_acsl_h_short_2);
+    __e_acsl_assert_register_short(& __gen_e_acsl_assert_data_10,"s",0,s);
     __gmpz_init_set_si(__gen_e_acsl_s,(long)s);
     __gen_e_acsl_eq_5 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_app_3),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl_s));
-    __e_acsl_assert(__gen_e_acsl_eq_5 == 0,1,"Assertion","main",
-                    "h_short(s) == s","tests/gmp-only/functions.c",61);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "h_short(s) == s";
+    __gen_e_acsl_assert_data_10.file = "tests/gmp-only/functions.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 61;
+    __e_acsl_assert(__gen_e_acsl_eq_5 == 0,& __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
     __gmpz_clear(__gen_e_acsl_app_3);
     __gmpz_clear(__gen_e_acsl_s);
   }
-  /*@ assert h_short(s) ≡ s; */ ;
+  /*@ assert h_short(s) == s; */ ;
   m.k = 8;
   m.l = 9;
   {
@@ -241,17 +355,29 @@ int main(void)
     __e_acsl_mpz_t __gen_e_acsl_t2_2;
     __e_acsl_mpz_t __gen_e_acsl__12;
     int __gen_e_acsl_eq_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_struct(& __gen_e_acsl_assert_data_11,"m");
     __gen_e_acsl_t1_2 = __gen_e_acsl_t1(m);
+    __e_acsl_assert_register_struct(& __gen_e_acsl_assert_data_11,"t1(m)");
     __gen_e_acsl_t2(& __gen_e_acsl_t2_2,__gen_e_acsl_t1_2);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_11,"t2(t1(m))",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_t2_2));
     __gmpz_init_set_si(__gen_e_acsl__12,17L);
     __gen_e_acsl_eq_6 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_t2_2),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__12));
-    __e_acsl_assert(__gen_e_acsl_eq_6 == 0,1,"Assertion","main",
-                    "t2(t1(m)) == 17","tests/gmp-only/functions.c",66);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "t2(t1(m)) == 17";
+    __gen_e_acsl_assert_data_11.file = "tests/gmp-only/functions.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 66;
+    __e_acsl_assert(__gen_e_acsl_eq_6 == 0,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
     __gmpz_clear(__gen_e_acsl_t2_2);
     __gmpz_clear(__gen_e_acsl__12);
   }
-  /*@ assert t2(t1(m)) ≡ 17; */ ;
+  /*@ assert t2(t1(m)) == 17; */ ;
   __gen_e_acsl_k(9);
   double d = 2.0;
   {
@@ -259,20 +385,32 @@ int main(void)
     __e_acsl_mpq_t __gen_e_acsl__15;
     __e_acsl_mpq_t __gen_e_acsl__16;
     int __gen_e_acsl_gt_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_double(& __gen_e_acsl_assert_data_12,"d",d);
     __gen_e_acsl_f2_2 = __gen_e_acsl_f2(d);
+    __e_acsl_assert_register_double(& __gen_e_acsl_assert_data_12,"f2(d)",
+                                    __gen_e_acsl_f2_2);
     __gmpq_init(__gen_e_acsl__15);
     __gmpq_set_str(__gen_e_acsl__15,"0",10);
     __gmpq_init(__gen_e_acsl__16);
     __gmpq_set_d(__gen_e_acsl__16,__gen_e_acsl_f2_2);
     __gen_e_acsl_gt_5 = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__16),
                                    (__e_acsl_mpq_struct const *)(__gen_e_acsl__15));
-    __e_acsl_assert(__gen_e_acsl_gt_5 > 0,1,"Assertion","main","f2(d) > 0",
-                    "tests/gmp-only/functions.c",71);
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "f2(d) > 0";
+    __gen_e_acsl_assert_data_12.file = "tests/gmp-only/functions.c";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 71;
+    __e_acsl_assert(__gen_e_acsl_gt_5 > 0,& __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
     __gmpq_clear(__gen_e_acsl__15);
     __gmpq_clear(__gen_e_acsl__16);
   }
   /*@ assert f2(d) > 0; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
@@ -281,9 +419,19 @@ void __gen_e_acsl_k(int x)
 {
   {
     int __gen_e_acsl_k_pred_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x);
     __gen_e_acsl_k_pred_2 = __gen_e_acsl_k_pred(x);
-    __e_acsl_assert(__gen_e_acsl_k_pred_2,1,"Precondition","k","k_pred(x)",
-                    "tests/gmp-only/functions.c",27);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"k_pred(x)",0,
+                                 __gen_e_acsl_k_pred_2);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "k_pred(x)";
+    __gen_e_acsl_assert_data.file = "tests/gmp-only/functions.c";
+    __gen_e_acsl_assert_data.fct = "k";
+    __gen_e_acsl_assert_data.line = 27;
+    __e_acsl_assert(__gen_e_acsl_k_pred_2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   k(x);
   return;
diff --git a/src/plugins/e-acsl/tests/libc/oracle/file.res.oracle b/src/plugins/e-acsl/tests/libc/oracle/file.res.oracle
index 26ede76d5fd85381070a041c6a34ac33840fe0a3..1df935d00f5814645015d240d06a8c182774bd74 100644
--- a/src/plugins/e-acsl/tests/libc/oracle/file.res.oracle
+++ b/src/plugins/e-acsl/tests/libc/oracle/file.res.oracle
@@ -33,33 +33,126 @@
 [e-acsl] translation done in project "e-acsl".
 [eva:alarm] tests/libc/file.c:12: Warning: 
   function __gen_e_acsl_fread: precondition 'valid_stream' got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: 
+  function __e_acsl_assert_register_mpz: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/stdio.h:351: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:352: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:352: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/stdio.h:352: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:350: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/stdio.h:350: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:356: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: 
+  function __e_acsl_assert_register_mpz: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: 
+  function __e_acsl_assert_register_mpz: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/stdio.h:357: Warning: 
   function __gen_e_acsl_fread: postcondition 'initialization' got status unknown.
+[eva:alarm] tests/libc/file.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/file.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/file.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/file.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/libc/file.c:15: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/libc/file.c:15: Warning: assertion got status unknown.
+[eva:alarm] tests/libc/file.c:18: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/file.c:18: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/libc/file.c:18: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/libc/file.c:18: Warning: assertion got status unknown.
+[eva:alarm] tests/libc/file.c:21: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/file.c:21: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/libc/file.c:21: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/libc/file.c:21: Warning: assertion got status unknown.
+[eva:alarm] tests/libc/file.c:24: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/file.c:24: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/libc/file.c:24: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/libc/file.c:24: Warning: assertion got status unknown.
+[eva:alarm] tests/libc/file.c:27: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/file.c:27: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/libc/file.c:27: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/libc/file.c:27: Warning: assertion got status unknown.
+[eva:alarm] tests/libc/file.c:29: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/file.c:29: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/libc/file.c:35: Warning: 
   function __gen_e_acsl_fread: precondition 'valid_stream' got status unknown.
+[eva:alarm] tests/libc/file.c:36: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/file.c:36: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/file.c:37: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/libc/file.c:37: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/libc/file.c:37: Warning: assertion got status unknown.
+[eva:alarm] tests/libc/file.c:38: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/file.c:38: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/libc/oracle/gen_file.c b/src/plugins/e-acsl/tests/libc/oracle/gen_file.c
index c6b6e713f91cc277f590cb2e9f77e9adaef878f7..1876816cd99a9917dc151cbd966d6f6f3e60bd85 100644
--- a/src/plugins/e-acsl/tests/libc/oracle/gen_file.c
+++ b/src/plugins/e-acsl/tests/libc/oracle/gen_file.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 char *__gen_e_acsl_literal_string;
 char *__gen_e_acsl_literal_string_2;
@@ -9,7 +10,7 @@ extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
     requires valid_mode: valid_read_string(mode);
     ensures
       result_null_or_valid_fd:
-        \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]);
+        \result == \null || \subset(\result, &__fc_fopen[0 .. 16 - 1]);
     assigns \result;
     assigns \result
       \from (indirect: *(filename + (0 .. strlen{Old}(filename)))),
@@ -20,7 +21,7 @@ FILE *__gen_e_acsl_fopen(char const * restrict filename,
 
 /*@ requires valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1));
     requires valid_stream: \valid(stream);
-    ensures size_read: \result ≤ \old(nmemb);
+    ensures size_read: \result <= \old(nmemb);
     ensures
       initialization:
         \initialized((char *)\old(ptr) + (0 .. \result * \old(size) - 1));
@@ -36,7 +37,7 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
 
 /*@ requires valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1));
     requires valid_stream: \valid(stream);
-    ensures size_read: \result ≤ \old(nmemb);
+    ensures size_read: \result <= \old(nmemb);
     ensures
       initialization:
         \initialized((char *)\old(ptr) + (0 .. \result * \old(size) - 1));
@@ -75,8 +76,17 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
     int __gen_e_acsl_valid_2;
     __e_acsl_store_block((void *)(& stream),(size_t)8);
     __e_acsl_store_block((void *)(& ptr),(size_t)8);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"ptr",ptr);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0,
+                                 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0,
+                                 1);
     __gmpz_init_set_si(__gen_e_acsl_sizeof,1L);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"nmemb",0,
+                                   nmemb);
     __gmpz_init_set_ui(__gen_e_acsl_nmemb,nmemb);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"size",0,size);
     __gmpz_init_set_ui(__gen_e_acsl_size_2,size);
     __gmpz_init(__gen_e_acsl_mul);
     __gmpz_mul(__gen_e_acsl_mul,
@@ -102,6 +112,8 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gmpz_init_set(__gen_e_acsl_size,
                     (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_2));
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
     __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
     if (__gen_e_acsl_le <= 0) {
@@ -111,26 +123,64 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
                       (__e_acsl_mpz_struct const *)(__gen_e_acsl__3));
       __gmpz_clear(__gen_e_acsl__3);
     }
-    else __gmpz_init_set(__gen_e_acsl_if,
-                         (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
+    else {
+      __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0,
+                                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
+      __gmpz_init_set(__gen_e_acsl_if,
+                      (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
+    }
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2,
+                                 "__gen_e_acsl_if",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_if));
     __gmpz_init_set_ui(__gen_e_acsl__4,18446744073709551615UL);
     __gen_e_acsl_le_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
-    __e_acsl_assert(__gen_e_acsl_le_2 <= 0,1,"RTE","fread",
-                    "offset_lesser_or_eq_than_SIZE_MAX:\n  (\\let size = sizeof(char) * (((nmemb * size - 1) - 0) + 1);\n   size <= 0? 0: size)\n  <= 18446744073709551615",
-                    "FRAMAC_SHARE/libc/stdio.h",351);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,
+                                 "__gen_e_acsl_if",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_if));
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "offset_lesser_or_eq_than_SIZE_MAX:\n  (\\let size = sizeof(char) * (((nmemb * size - 1) - 0) + 1);\n   size <= 0? 0: size)\n  <= 18446744073709551615";
+    __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data_2.fct = "fread";
+    __gen_e_acsl_assert_data_2.line = 351;
+    __e_acsl_assert(__gen_e_acsl_le_2 <= 0,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     __gen_e_acsl_size_3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if));
     __gen_e_acsl_valid = __e_acsl_valid((void *)((char *)ptr + 1 * 0),
                                         __gen_e_acsl_size_3,ptr,
                                         (void *)(& ptr));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","fread",
-                    "valid_ptr_block: \\valid((char *)ptr + (0 .. nmemb * size - 1))",
-                    "FRAMAC_SHARE/libc/stdio.h",351);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "valid_ptr_block: \\valid((char *)ptr + (0 .. nmemb * size - 1))",
+                                 0,__gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "valid_ptr_block: \\valid((char *)ptr + (0 .. nmemb * size - 1))";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data.fct = "fread";
+    __gen_e_acsl_assert_data.line = 351;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"stream",
+                                 (void *)stream);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(FILE)",0,sizeof(FILE));
     __gen_e_acsl_valid_2 = __e_acsl_valid((void *)stream,sizeof(FILE),
                                           (void *)stream,(void *)(& stream));
-    __e_acsl_assert(__gen_e_acsl_valid_2,1,"Precondition","fread",
-                    "valid_stream: \\valid(stream)",
-                    "FRAMAC_SHARE/libc/stdio.h",352);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\valid(stream)",0,__gen_e_acsl_valid_2);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Precondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "valid_stream: \\valid(stream)";
+    __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data_3.fct = "fread";
+    __gen_e_acsl_assert_data_3.line = 352;
+    __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __gmpz_clear(__gen_e_acsl_size);
     __gmpz_clear(__gen_e_acsl_sizeof);
     __gmpz_clear(__gen_e_acsl_nmemb);
@@ -162,7 +212,13 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
     __e_acsl_mpz_t __gen_e_acsl__5;
     int __gen_e_acsl_le_3;
     unsigned long __gen_e_acsl_size_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"__retres",0,
+                                   __retres);
     __gmpz_init_set_ui(__gen_e_acsl___retres,__retres);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0,
+                                   size);
     __gmpz_init_set_ui(__gen_e_acsl_size_4,size);
     __gmpz_init(__gen_e_acsl_mul_3);
     __gmpz_mul(__gen_e_acsl_mul_3,
@@ -171,9 +227,14 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
     __gmpz_init_set_ui(__gen_e_acsl__5,18446744073709551615UL);
     __gen_e_acsl_le_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_3),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__5));
-    __e_acsl_assert(__gen_e_acsl_le_3 <= 0,1,"RTE","fread",
-                    "size_lesser_or_eq_than_SIZE_MAX: __retres * size <= 18446744073709551615",
-                    "FRAMAC_SHARE/libc/stdio.h",350);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "RTE";
+    __gen_e_acsl_assert_data_4.pred_txt = "size_lesser_or_eq_than_SIZE_MAX: __retres * size <= 18446744073709551615";
+    __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data_4.fct = "fread";
+    __gen_e_acsl_assert_data_4.line = 350;
+    __e_acsl_assert(__gen_e_acsl_le_3 <= 0,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     __gen_e_acsl_size_5 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_3));
     __e_acsl_initialize(ptr,__gen_e_acsl_size_5);
     __gmpz_clear(__gen_e_acsl___retres);
@@ -198,11 +259,35 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
     int __gen_e_acsl_le_5;
     unsigned long __gen_e_acsl_size_8;
     int __gen_e_acsl_initialized;
-    __e_acsl_assert(__retres <= __gen_e_acsl_at,1,"Postcondition","fread",
-                    "size_read: \\result <= \\old(nmemb)",
-                    "FRAMAC_SHARE/libc/stdio.h",356);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"\\result",0,
+                                   __retres);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "\\old(nmemb)",0,__gen_e_acsl_at);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Postcondition";
+    __gen_e_acsl_assert_data_5.pred_txt = "size_read: \\result <= \\old(nmemb)";
+    __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data_5.fct = "fread";
+    __gen_e_acsl_assert_data_5.line = 356;
+    __e_acsl_assert(__retres <= __gen_e_acsl_at,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\old(ptr)",
+                                 __gen_e_acsl_at_2);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(char)",
+                                 0,1);
     __gmpz_init_set_si(__gen_e_acsl_sizeof_2,1L);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,"\\result",0,
+                                   __retres);
     __gmpz_init_set_ui(__gen_e_acsl_result,__retres);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,"\\old(size)",
+                                 0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_3));
     __gmpz_init(__gen_e_acsl_mul_4);
     __gmpz_mul(__gen_e_acsl_mul_4,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_result),
@@ -227,6 +312,8 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2));
     __gmpz_init_set(__gen_e_acsl_size_6,
                     (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_5));
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,"size",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6));
     __gen_e_acsl_le_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__7));
     if (__gen_e_acsl_le_4 <= 0) {
@@ -236,21 +323,46 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
                       (__e_acsl_mpz_struct const *)(__gen_e_acsl__8));
       __gmpz_clear(__gen_e_acsl__8);
     }
-    else __gmpz_init_set(__gen_e_acsl_if_2,
-                         (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6));
+    else {
+      __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,"size",0,
+                                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6));
+      __gmpz_init_set(__gen_e_acsl_if_2,
+                      (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_6));
+    }
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_7,
+                                 "__gen_e_acsl_if_2",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2));
     __gmpz_init_set_ui(__gen_e_acsl__9,18446744073709551615UL);
     __gen_e_acsl_le_5 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__9));
-    __e_acsl_assert(__gen_e_acsl_le_5 <= 0,1,"RTE","fread",
-                    "offset_lesser_or_eq_than_SIZE_MAX:\n  (\\let size = sizeof(char) * (((\\result * \\old(size) - 1) - 0) + 1);\n   size <= 0? 0: size)\n  <= 18446744073709551615",
-                    "FRAMAC_SHARE/libc/stdio.h",357);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_6,
+                                 "__gen_e_acsl_if_2",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2));
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "RTE";
+    __gen_e_acsl_assert_data_7.pred_txt = "offset_lesser_or_eq_than_SIZE_MAX:\n  (\\let size = sizeof(char) * (((\\result * \\old(size) - 1) - 0) + 1);\n   size <= 0? 0: size)\n  <= 18446744073709551615";
+    __gen_e_acsl_assert_data_7.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data_7.fct = "fread";
+    __gen_e_acsl_assert_data_7.line = 357;
+    __e_acsl_assert(__gen_e_acsl_le_5 <= 0,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
     __gen_e_acsl_size_8 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)((char *)__gen_e_acsl_at_2 + 
                                                              1 * 0),
                                                     __gen_e_acsl_size_8);
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Postcondition","fread",
-                    "initialization:\n  \\initialized((char *)\\old(ptr) + (0 .. \\result * \\old(size) - 1))",
-                    "FRAMAC_SHARE/libc/stdio.h",357);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "initialization:\n  \\initialized((char *)\\old(ptr) + (0 .. \\result * \\old(size) - 1))",
+                                 0,__gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Postcondition";
+    __gen_e_acsl_assert_data_6.pred_txt = "initialization:\n  \\initialized((char *)\\old(ptr) + (0 .. \\result * \\old(size) - 1))";
+    __gen_e_acsl_assert_data_6.file = "FRAMAC_SHARE/libc/stdio.h";
+    __gen_e_acsl_assert_data_6.fct = "fread";
+    __gen_e_acsl_assert_data_6.line = 357;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     __e_acsl_delete_block((void *)(& stream));
     __e_acsl_delete_block((void *)(& ptr));
     __gmpz_clear(__gen_e_acsl_size_6);
@@ -274,7 +386,7 @@ size_t __gen_e_acsl_fread(void * restrict ptr, size_t size, size_t nmemb,
     requires valid_mode: valid_read_string(mode);
     ensures
       result_null_or_valid_fd:
-        \result ≡ \null ∨ \subset(\result, &__fc_fopen[0 .. 16 - 1]);
+        \result == \null || \subset(\result, &__fc_fopen[0 .. 16 - 1]);
     assigns \result;
     assigns \result
       \from (indirect: *(filename + (0 .. strlen{Old}(filename)))),
@@ -328,101 +440,266 @@ int main(void)
   int res = (int)tmp_0;
   {
     int __gen_e_acsl_initialized;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(int *)buf",
+                                 (void *)(buf));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(buf),
                                                     sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized,1,"Assertion","main",
-                    "!\\initialized((int *)buf)","tests/libc/file.c",13);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized((int *)buf)",0,
+                                 __gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "!\\initialized((int *)buf)";
+    __gen_e_acsl_assert_data.file = "tests/libc/file.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 13;
+    __e_acsl_assert(! __gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert ¬\initialized((int *)buf); */ ;
+  /*@ assert !\initialized((int *)buf); */ ;
   if (res == 0) {
     {
       int __gen_e_acsl_initialized_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&buf[1]",
+                                   (void *)(& buf[1]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& buf[1]),
                                                         sizeof(int));
-      __e_acsl_assert(! __gen_e_acsl_initialized_2,1,"Assertion","main",
-                      "!\\initialized(&buf[1])","tests/libc/file.c",15);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\initialized(&buf[1])",0,
+                                   __gen_e_acsl_initialized_2);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Assertion";
+      __gen_e_acsl_assert_data_2.pred_txt = "!\\initialized(&buf[1])";
+      __gen_e_acsl_assert_data_2.file = "tests/libc/file.c";
+      __gen_e_acsl_assert_data_2.fct = "main";
+      __gen_e_acsl_assert_data_2.line = 15;
+      __e_acsl_assert(! __gen_e_acsl_initialized_2,
+                      & __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
-    /*@ assert ¬\initialized(&buf[1]); */ ;
+    /*@ assert !\initialized(&buf[1]); */ ;
   }
   if (res >= 1) {
     {
       int __gen_e_acsl_initialized_3;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&buf[1]",
+                                   (void *)(& buf[1]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& buf[1]),
                                                         sizeof(int));
-      __e_acsl_assert(__gen_e_acsl_initialized_3,1,"Assertion","main",
-                      "\\initialized(&buf[1])","tests/libc/file.c",18);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(&buf[1])",0,
+                                   __gen_e_acsl_initialized_3);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Assertion";
+      __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(&buf[1])";
+      __gen_e_acsl_assert_data_3.file = "tests/libc/file.c";
+      __gen_e_acsl_assert_data_3.fct = "main";
+      __gen_e_acsl_assert_data_3.line = 18;
+      __e_acsl_assert(__gen_e_acsl_initialized_3,
+                      & __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     }
     /*@ assert \initialized(&buf[1]); */ ;
   }
   if (res >= 2) {
     {
       int __gen_e_acsl_initialized_4;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&buf[2]",
+                                   (void *)(& buf[2]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& buf[2]),
                                                         sizeof(int));
-      __e_acsl_assert(__gen_e_acsl_initialized_4,1,"Assertion","main",
-                      "\\initialized(&buf[2])","tests/libc/file.c",21);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\initialized(&buf[2])",0,
+                                   __gen_e_acsl_initialized_4);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Assertion";
+      __gen_e_acsl_assert_data_4.pred_txt = "\\initialized(&buf[2])";
+      __gen_e_acsl_assert_data_4.file = "tests/libc/file.c";
+      __gen_e_acsl_assert_data_4.fct = "main";
+      __gen_e_acsl_assert_data_4.line = 21;
+      __e_acsl_assert(__gen_e_acsl_initialized_4,
+                      & __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     }
     /*@ assert \initialized(&buf[2]); */ ;
   }
   if (res >= 3) {
     {
       int __gen_e_acsl_initialized_5;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&buf[3]",
+                                   (void *)(& buf[3]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& buf[3]),
                                                         sizeof(int));
-      __e_acsl_assert(__gen_e_acsl_initialized_5,1,"Assertion","main",
-                      "\\initialized(&buf[3])","tests/libc/file.c",24);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\initialized(&buf[3])",0,
+                                   __gen_e_acsl_initialized_5);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Assertion";
+      __gen_e_acsl_assert_data_5.pred_txt = "\\initialized(&buf[3])";
+      __gen_e_acsl_assert_data_5.file = "tests/libc/file.c";
+      __gen_e_acsl_assert_data_5.fct = "main";
+      __gen_e_acsl_assert_data_5.line = 24;
+      __e_acsl_assert(__gen_e_acsl_initialized_5,
+                      & __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     }
     /*@ assert \initialized(&buf[3]); */ ;
   }
   if (res >= 4) {
     {
       int __gen_e_acsl_initialized_6;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&buf[4]",
+                                   (void *)(& buf[4]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& buf[4]),
                                                         sizeof(int));
-      __e_acsl_assert(__gen_e_acsl_initialized_6,1,"Assertion","main",
-                      "\\initialized(&buf[4])","tests/libc/file.c",27);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "\\initialized(&buf[4])",0,
+                                   __gen_e_acsl_initialized_6);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "Assertion";
+      __gen_e_acsl_assert_data_6.pred_txt = "\\initialized(&buf[4])";
+      __gen_e_acsl_assert_data_6.file = "tests/libc/file.c";
+      __gen_e_acsl_assert_data_6.fct = "main";
+      __gen_e_acsl_assert_data_6.line = 27;
+      __e_acsl_assert(__gen_e_acsl_initialized_6,
+                      & __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     }
     /*@ assert \initialized(&buf[4]); */ ;
   }
   {
     int __gen_e_acsl_initialized_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&buf[5]",
+                                 (void *)(& buf[5]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& buf[5]),
                                                       sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_7,1,"Assertion","main",
-                    "!\\initialized(&buf[5])","tests/libc/file.c",29);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "\\initialized(&buf[5])",0,
+                                 __gen_e_acsl_initialized_7);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "!\\initialized(&buf[5])";
+    __gen_e_acsl_assert_data_7.file = "tests/libc/file.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 29;
+    __e_acsl_assert(! __gen_e_acsl_initialized_7,
+                    & __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
-  /*@ assert ¬\initialized(&buf[5]); */ ;
+  /*@ assert !\initialized(&buf[5]); */ ;
   __gen_e_acsl_fread((void *)(& buf2[1]),sizeof(int),(unsigned long)4,f);
   {
     int __gen_e_acsl_initialized_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"(int *)buf2",
+                                 (void *)(buf2));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(buf2),
                                                       sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_8,1,"Assertion","main",
-                    "!\\initialized((int *)buf2)","tests/libc/file.c",36);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                 "\\initialized((int *)buf2)",0,
+                                 __gen_e_acsl_initialized_8);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "!\\initialized((int *)buf2)";
+    __gen_e_acsl_assert_data_8.file = "tests/libc/file.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 36;
+    __e_acsl_assert(! __gen_e_acsl_initialized_8,
+                    & __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
-  /*@ assert ¬\initialized((int *)buf2); */ ;
+  /*@ assert !\initialized((int *)buf2); */ ;
   {
     int __gen_e_acsl_size;
     int __gen_e_acsl_if;
     int __gen_e_acsl_initialized_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"(int *)buf2",
+                                 (void *)(buf2));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"sizeof(int)",
+                                 0,4);
     __gen_e_acsl_size = 4 * ((4 - 1) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0,
+                                 __gen_e_acsl_size);
     if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0;
-    else __gen_e_acsl_if = __gen_e_acsl_size;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0,
+                                   __gen_e_acsl_size);
+      __gen_e_acsl_if = __gen_e_acsl_size;
+    }
     __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)((char *)(buf2) + 
                                                                4 * 1),
                                                       (size_t)__gen_e_acsl_if);
-    __e_acsl_assert(__gen_e_acsl_initialized_9,1,"Assertion","main",
-                    "\\initialized(&buf2[1 .. 4])","tests/libc/file.c",37);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                 "\\initialized(&buf2[1 .. 4])",0,
+                                 __gen_e_acsl_initialized_9);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "\\initialized(&buf2[1 .. 4])";
+    __gen_e_acsl_assert_data_9.file = "tests/libc/file.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 37;
+    __e_acsl_assert(__gen_e_acsl_initialized_9,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
   /*@ assert \initialized(&buf2[1 .. 4]); */ ;
   {
     int __gen_e_acsl_initialized_10;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&buf2[5]",
+                                 (void *)(& buf2[5]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& buf2[5]),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_10,1,"Assertion","main",
-                    "!\\initialized(&buf2[5])","tests/libc/file.c",38);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                 "\\initialized(&buf2[5])",0,
+                                 __gen_e_acsl_initialized_10);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "!\\initialized(&buf2[5])";
+    __gen_e_acsl_assert_data_10.file = "tests/libc/file.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 38;
+    __e_acsl_assert(! __gen_e_acsl_initialized_10,
+                    & __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
   }
-  /*@ assert ¬\initialized(&buf2[5]); */ ;
+  /*@ assert !\initialized(&buf2[5]); */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(buf2));
   __e_acsl_delete_block((void *)(& f));
diff --git a/src/plugins/e-acsl/tests/libc/oracle/gen_mem.c b/src/plugins/e-acsl/tests/libc/oracle/gen_mem.c
index 2416c3eb591f25dd8e76e63e6f907724503a4de6..73a46fb31bd2a4298b3ca33f997c50a93024f7bb 100644
--- a/src/plugins/e-acsl/tests/libc/oracle/gen_mem.c
+++ b/src/plugins/e-acsl/tests/libc/oracle/gen_mem.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "string.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -11,9 +12,9 @@ extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
         \separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1));
     ensures
       copied_contents:
-        memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡
+        memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ==
         0;
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures result_ptr: \result == \old(dest);
     assigns *((char *)dest + (0 .. n - 1)), \result;
     assigns *((char *)dest + (0 .. n - 1))
       \from *((char *)src + (0 .. n - 1));
@@ -26,9 +27,9 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src,
     requires valid_src: valid_read_or_empty(src, n);
     ensures
       copied_contents:
-        memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡
+        memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ==
         0;
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures result_ptr: \result == \old(dest);
     assigns *((char *)dest + (0 .. n - 1)), \result;
     assigns *((char *)dest + (0 .. n - 1))
       \from *((char *)src + (0 .. n - 1));
@@ -37,9 +38,8 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src,
 void *__gen_e_acsl_memmove(void *dest, void const *src, size_t n);
 
 /*@ requires valid_s: valid_or_empty(s, n);
-    ensures
-      acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) ≡ \true;
-    ensures result_ptr: \result ≡ \old(s);
+    ensures acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) == \true;
+    ensures result_ptr: \result == \old(s);
     assigns *((char *)s + (0 .. n - 1)), \result;
     assigns *((char *)s + (0 .. n - 1)) \from c;
     assigns \result \from s;
@@ -59,119 +59,330 @@ int main(void)
   __gen_e_acsl_memset((void *)(a),1,(unsigned long)1);
   {
     int __gen_e_acsl_initialized;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(char *)a",
+                                 (void *)(a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(char)",
+                                   0,sizeof(char));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(a),sizeof(char));
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main",
-                    "\\initialized((char *)a)","tests/libc/mem.c",10);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized((char *)a)",0,
+                                 __gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\initialized((char *)a)";
+    __gen_e_acsl_assert_data.file = "tests/libc/mem.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 10;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \initialized((char *)a); */ ;
   {
     int __gen_e_acsl_initialized_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&a[1]",
+                                 (void *)(& a[1]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char)",0,sizeof(char));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& a[1]),
                                                       sizeof(char));
-    __e_acsl_assert(! __gen_e_acsl_initialized_2,1,"Assertion","main",
-                    "!\\initialized(&a[1])","tests/libc/mem.c",11);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&a[1])",0,
+                                 __gen_e_acsl_initialized_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "!\\initialized(&a[1])";
+    __gen_e_acsl_assert_data_2.file = "tests/libc/mem.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 11;
+    __e_acsl_assert(! __gen_e_acsl_initialized_2,
+                    & __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert ¬\initialized(&a[1]); */ ;
+  /*@ assert !\initialized(&a[1]); */ ;
   __gen_e_acsl_memset((void *)(& a[1]),1,(unsigned long)1);
   {
     int __gen_e_acsl_initialized_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&a[1]",
+                                 (void *)(& a[1]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(char)",0,sizeof(char));
     __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& a[1]),
                                                       sizeof(char));
-    __e_acsl_assert(__gen_e_acsl_initialized_3,1,"Assertion","main",
-                    "\\initialized(&a[1])","tests/libc/mem.c",13);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized(&a[1])",0,
+                                 __gen_e_acsl_initialized_3);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(&a[1])";
+    __gen_e_acsl_assert_data_3.file = "tests/libc/mem.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 13;
+    __e_acsl_assert(__gen_e_acsl_initialized_3,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   /*@ assert \initialized(&a[1]); */ ;
   __gen_e_acsl_memset((void *)(& b[2]),42,(unsigned long)2 * sizeof(b[0]));
   {
     int __gen_e_acsl_initialized_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"(int *)b",
+                                 (void *)(b));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(b),
                                                       sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_4,1,"Assertion","main",
-                    "!\\initialized((int *)b)","tests/libc/mem.c",16);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\initialized((int *)b)",0,
+                                 __gen_e_acsl_initialized_4);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "!\\initialized((int *)b)";
+    __gen_e_acsl_assert_data_4.file = "tests/libc/mem.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 16;
+    __e_acsl_assert(! __gen_e_acsl_initialized_4,
+                    & __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  /*@ assert ¬\initialized((int *)b); */ ;
+  /*@ assert !\initialized((int *)b); */ ;
   {
     int __gen_e_acsl_initialized_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&b[1]",
+                                 (void *)(& b[1]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& b[1]),
                                                       sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_5,1,"Assertion","main",
-                    "!\\initialized(&b[1])","tests/libc/mem.c",17);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\initialized(&b[1])",0,
+                                 __gen_e_acsl_initialized_5);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "!\\initialized(&b[1])";
+    __gen_e_acsl_assert_data_5.file = "tests/libc/mem.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 17;
+    __e_acsl_assert(! __gen_e_acsl_initialized_5,
+                    & __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert ¬\initialized(&b[1]); */ ;
+  /*@ assert !\initialized(&b[1]); */ ;
   {
     int __gen_e_acsl_size;
     int __gen_e_acsl_if;
     int __gen_e_acsl_initialized_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"(int *)b",
+                                 (void *)(b));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(int)",
+                                 0,4);
     __gen_e_acsl_size = 4 * ((3 - 2) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0,
+                                 __gen_e_acsl_size);
     if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0;
-    else __gen_e_acsl_if = __gen_e_acsl_size;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0,
+                                   __gen_e_acsl_size);
+      __gen_e_acsl_if = __gen_e_acsl_size;
+    }
     __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)((char *)(b) + 
                                                                4 * 2),
                                                       (size_t)__gen_e_acsl_if);
-    __e_acsl_assert(__gen_e_acsl_initialized_6,1,"Assertion","main",
-                    "\\initialized(&b[2 .. 3])","tests/libc/mem.c",18);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "\\initialized(&b[2 .. 3])",0,
+                                 __gen_e_acsl_initialized_6);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "\\initialized(&b[2 .. 3])";
+    __gen_e_acsl_assert_data_6.file = "tests/libc/mem.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 18;
+    __e_acsl_assert(__gen_e_acsl_initialized_6,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
   /*@ assert \initialized(&b[2 .. 3]); */ ;
   {
     int __gen_e_acsl_initialized_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&b[4]",
+                                 (void *)(& b[4]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& b[4]),
                                                       sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_7,1,"Assertion","main",
-                    "!\\initialized(&b[4])","tests/libc/mem.c",19);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "\\initialized(&b[4])",0,
+                                 __gen_e_acsl_initialized_7);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "!\\initialized(&b[4])";
+    __gen_e_acsl_assert_data_7.file = "tests/libc/mem.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 19;
+    __e_acsl_assert(! __gen_e_acsl_initialized_7,
+                    & __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
-  /*@ assert ¬\initialized(&b[4]); */ ;
+  /*@ assert !\initialized(&b[4]); */ ;
   __gen_e_acsl_memcpy((void *)(& c[1]),(void const *)(a),(unsigned long)2);
   {
     int __gen_e_acsl_initialized_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"(char *)c",
+                                 (void *)(c));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(char)",0,sizeof(char));
     __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(c),
                                                       sizeof(char));
-    __e_acsl_assert(! __gen_e_acsl_initialized_8,1,"Assertion","main",
-                    "!\\initialized((char *)c)","tests/libc/mem.c",23);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                 "\\initialized((char *)c)",0,
+                                 __gen_e_acsl_initialized_8);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "!\\initialized((char *)c)";
+    __gen_e_acsl_assert_data_8.file = "tests/libc/mem.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 23;
+    __e_acsl_assert(! __gen_e_acsl_initialized_8,
+                    & __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
-  /*@ assert ¬\initialized((char *)c); */ ;
+  /*@ assert !\initialized((char *)c); */ ;
   {
     int __gen_e_acsl_size_2;
     int __gen_e_acsl_if_2;
     int __gen_e_acsl_initialized_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"(char *)c",
+                                 (void *)(c));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"sizeof(char)",
+                                 0,1);
     __gen_e_acsl_size_2 = 1 * ((2 - 1) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0,
+                                 __gen_e_acsl_size_2);
     if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0;
-    else __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0,
+                                   __gen_e_acsl_size_2);
+      __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    }
     __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(c + 1 * 1),
                                                       (size_t)__gen_e_acsl_if_2);
-    __e_acsl_assert(__gen_e_acsl_initialized_9,1,"Assertion","main",
-                    "\\initialized(&c[1 .. 2])","tests/libc/mem.c",24);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                 "\\initialized(&c[1 .. 2])",0,
+                                 __gen_e_acsl_initialized_9);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "\\initialized(&c[1 .. 2])";
+    __gen_e_acsl_assert_data_9.file = "tests/libc/mem.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 24;
+    __e_acsl_assert(__gen_e_acsl_initialized_9,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
   /*@ assert \initialized(&c[1 .. 2]); */ ;
   {
     int __gen_e_acsl_initialized_10;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&c[3]",
+                                 (void *)(& c[3]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                   "sizeof(char)",0,sizeof(char));
     __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& c[3]),
                                                        sizeof(char));
-    __e_acsl_assert(! __gen_e_acsl_initialized_10,1,"Assertion","main",
-                    "!\\initialized(&c[3])","tests/libc/mem.c",25);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                 "\\initialized(&c[3])",0,
+                                 __gen_e_acsl_initialized_10);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "!\\initialized(&c[3])";
+    __gen_e_acsl_assert_data_10.file = "tests/libc/mem.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 25;
+    __e_acsl_assert(! __gen_e_acsl_initialized_10,
+                    & __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
   }
-  /*@ assert ¬\initialized(&c[3]); */ ;
+  /*@ assert !\initialized(&c[3]); */ ;
   __gen_e_acsl_memmove((void *)(c),(void const *)(& c[1]),(unsigned long)2);
   {
     int __gen_e_acsl_size_3;
     int __gen_e_acsl_if_3;
     int __gen_e_acsl_initialized_11;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"(char *)c",
+                                 (void *)(c));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                 "sizeof(char)",0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                 "sizeof(char)",0,1);
     __gen_e_acsl_size_3 = 1 * ((2 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0,
+                                 __gen_e_acsl_size_3);
     if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0;
-    else __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0,
+                                   __gen_e_acsl_size_3);
+      __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+    }
     __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(c + 1 * 0),
                                                        (size_t)__gen_e_acsl_if_3);
-    __e_acsl_assert(__gen_e_acsl_initialized_11,1,"Assertion","main",
-                    "\\initialized(&c[0 .. 2])","tests/libc/mem.c",28);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                 "\\initialized(&c[0 .. 2])",0,
+                                 __gen_e_acsl_initialized_11);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "\\initialized(&c[0 .. 2])";
+    __gen_e_acsl_assert_data_11.file = "tests/libc/mem.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 28;
+    __e_acsl_assert(__gen_e_acsl_initialized_11,
+                    & __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
   }
   /*@ assert \initialized(&c[0 .. 2]); */ ;
   {
     int __gen_e_acsl_initialized_12;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"&c[3]",
+                                 (void *)(& c[3]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                   "sizeof(char)",0,sizeof(char));
     __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& c[3]),
                                                        sizeof(char));
-    __e_acsl_assert(! __gen_e_acsl_initialized_12,1,"Assertion","main",
-                    "!\\initialized(&c[3])","tests/libc/mem.c",29);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                 "\\initialized(&c[3])",0,
+                                 __gen_e_acsl_initialized_12);
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "!\\initialized(&c[3])";
+    __gen_e_acsl_assert_data_12.file = "tests/libc/mem.c";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 29;
+    __e_acsl_assert(! __gen_e_acsl_initialized_12,
+                    & __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
   }
-  /*@ assert ¬\initialized(&c[3]); */ ;
+  /*@ assert !\initialized(&c[3]); */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(c));
   __e_acsl_delete_block((void *)(b));
@@ -181,9 +392,8 @@ int main(void)
 }
 
 /*@ requires valid_s: valid_or_empty(s, n);
-    ensures
-      acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) ≡ \true;
-    ensures result_ptr: \result ≡ \old(s);
+    ensures acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) == \true;
+    ensures result_ptr: \result == \old(s);
     assigns *((char *)s + (0 .. n - 1)), \result;
     assigns *((char *)s + (0 .. n - 1)) \from c;
     assigns \result \from s;
@@ -196,20 +406,33 @@ void *__gen_e_acsl_memset(void *s, int c, size_t n)
   __gen_e_acsl_at = s;
   __retres = memset(s,c,n);
   __e_acsl_initialize(s,n);
-  __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","memset",
-                  "result_ptr: \\result == \\old(s)",
-                  "FRAMAC_SHARE/libc/string.h",135);
-  __e_acsl_delete_block((void *)(& s));
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"\\result",
+                                 __retres);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"\\old(s)",
+                                 __gen_e_acsl_at);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Postcondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "result_ptr: \\result == \\old(s)";
+    __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_3.fct = "memset";
+    __gen_e_acsl_assert_data_3.line = 135;
+    __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+    __e_acsl_delete_block((void *)(& s));
+    return __retres;
+  }
 }
 
 /*@ requires valid_dest: valid_or_empty(dest, n);
     requires valid_src: valid_read_or_empty(src, n);
     ensures
       copied_contents:
-        memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡
+        memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ==
         0;
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures result_ptr: \result == \old(dest);
     assigns *((char *)dest + (0 .. n - 1)), \result;
     assigns *((char *)dest + (0 .. n - 1))
       \from *((char *)src + (0 .. n - 1));
@@ -224,12 +447,25 @@ void *__gen_e_acsl_memmove(void *dest, void const *src, size_t n)
   __gen_e_acsl_at = dest;
   __retres = memmove(dest,src,n);
   __e_acsl_initialize(dest,n);
-  __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","memmove",
-                  "result_ptr: \\result == \\old(dest)",
-                  "FRAMAC_SHARE/libc/string.h",125);
-  __e_acsl_delete_block((void *)(& src));
-  __e_acsl_delete_block((void *)(& dest));
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"\\result",
+                                 __retres);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"\\old(dest)",
+                                 __gen_e_acsl_at);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Postcondition";
+    __gen_e_acsl_assert_data_4.pred_txt = "result_ptr: \\result == \\old(dest)";
+    __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_4.fct = "memmove";
+    __gen_e_acsl_assert_data_4.line = 125;
+    __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    __e_acsl_delete_block((void *)(& src));
+    __e_acsl_delete_block((void *)(& dest));
+    return __retres;
+  }
 }
 
 /*@ requires valid_dest: valid_or_empty(dest, n);
@@ -239,9 +475,9 @@ void *__gen_e_acsl_memmove(void *dest, void const *src, size_t n)
         \separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1));
     ensures
       copied_contents:
-        memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡
+        memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ==
         0;
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures result_ptr: \result == \old(dest);
     assigns *((char *)dest + (0 .. n - 1)), \result;
     assigns *((char *)dest + (0 .. n - 1))
       \from *((char *)src + (0 .. n - 1));
@@ -276,6 +512,16 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src,
     int __gen_e_acsl_separated;
     __e_acsl_store_block((void *)(& src),(size_t)8);
     __e_acsl_store_block((void *)(& dest),(size_t)8);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"dest",dest);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"n",0,n);
     __gmpz_init_set_ui(__gen_e_acsl_n,n);
     __gmpz_init_set_si(__gen_e_acsl_,1L);
     __gmpz_init(__gen_e_acsl_sub);
@@ -293,43 +539,107 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_));
     __gen_e_acsl__3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size = 1UL * __gen_e_acsl__3;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0,
+                                   __gen_e_acsl_size);
     if (__gen_e_acsl_size <= 0UL) __gen_e_acsl_if = 0UL;
-    else __gen_e_acsl_if = __gen_e_acsl_size;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0,
+                                     __gen_e_acsl_size);
+      __gen_e_acsl_if = __gen_e_acsl_size;
+    }
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)((char *)dest + 
                                                            1 * 0),
                                                   __gen_e_acsl_if,dest,
                                                   (void *)(& dest));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","memcpy",
-                    "separated_guard: \\valid_read((char *)dest + (0 .. n - 1))",
-                    "FRAMAC_SHARE/libc/string.h",98);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "RTE";
+    __gen_e_acsl_assert_data_4.pred_txt = "separated_guard: \\valid_read((char *)dest + (0 .. n - 1))";
+    __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_4.fct = "memcpy";
+    __gen_e_acsl_assert_data_4.line = 98;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"src",
+                                 (void *)src);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"n",0,n);
     __gen_e_acsl__4 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size_2 = 1UL * __gen_e_acsl__4;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0,
+                                   __gen_e_acsl_size_2);
     if (__gen_e_acsl_size_2 <= 0UL) __gen_e_acsl_if_2 = 0UL;
-    else __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0,
+                                     __gen_e_acsl_size_2);
+      __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    }
     __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)((char *)src + 
                                                              1 * 0),
                                                     __gen_e_acsl_if_2,
                                                     (void *)src,
                                                     (void *)(& src));
-    __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","memcpy",
-                    "separated_guard: \\valid_read((char *)src + (0 .. n - 1))",
-                    "FRAMAC_SHARE/libc/string.h",98);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "RTE";
+    __gen_e_acsl_assert_data_5.pred_txt = "separated_guard: \\valid_read((char *)src + (0 .. n - 1))";
+    __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_5.fct = "memcpy";
+    __gen_e_acsl_assert_data_5.line = 98;
+    __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"dest",dest);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n);
     __gen_e_acsl__5 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size_3 = 1UL * __gen_e_acsl__5;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                   __gen_e_acsl_size_3);
     if (__gen_e_acsl_size_3 <= 0UL) __gen_e_acsl_if_3 = 0UL;
-    else __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                     __gen_e_acsl_size_3);
+      __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+    }
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"src",
+                                 (void *)src);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n);
     __gen_e_acsl__6 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size_4 = 1UL * __gen_e_acsl__6;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                   __gen_e_acsl_size_4);
     if (__gen_e_acsl_size_4 <= 0UL) __gen_e_acsl_if_4 = 0UL;
-    else __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                     __gen_e_acsl_size_4);
+      __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+    }
     __gen_e_acsl_separated = __e_acsl_separated((size_t)2,
                                                 (char *)dest + 1 * 0,
                                                 __gen_e_acsl_if_3,
                                                 (char *)src + 1 * 0,
                                                 __gen_e_acsl_if_4);
-    __e_acsl_assert(__gen_e_acsl_separated,1,"Precondition","memcpy",
-                    "separation:\n  \\separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1))",
-                    "FRAMAC_SHARE/libc/string.h",98);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "separation:\n  \\separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1))",
+                                 0,__gen_e_acsl_separated);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Precondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "separation:\n  \\separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1))";
+    __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_3.fct = "memcpy";
+    __gen_e_acsl_assert_data_3.line = 98;
+    __e_acsl_assert(__gen_e_acsl_separated,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __gmpz_clear(__gen_e_acsl_n);
     __gmpz_clear(__gen_e_acsl_);
     __gmpz_clear(__gen_e_acsl_sub);
@@ -340,12 +650,25 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src,
   __gen_e_acsl_at = dest;
   __retres = memcpy(dest,src,n);
   __e_acsl_initialize(dest,n);
-  __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","memcpy",
-                  "result_ptr: \\result == \\old(dest)",
-                  "FRAMAC_SHARE/libc/string.h",102);
-  __e_acsl_delete_block((void *)(& src));
-  __e_acsl_delete_block((void *)(& dest));
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"\\result",
+                                 __retres);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"\\old(dest)",
+                                 __gen_e_acsl_at);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Postcondition";
+    __gen_e_acsl_assert_data_7.pred_txt = "result_ptr: \\result == \\old(dest)";
+    __gen_e_acsl_assert_data_7.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_7.fct = "memcpy";
+    __gen_e_acsl_assert_data_7.line = 102;
+    __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+    __e_acsl_delete_block((void *)(& src));
+    __e_acsl_delete_block((void *)(& dest));
+    return __retres;
+  }
 }
 
 
diff --git a/src/plugins/e-acsl/tests/libc/oracle/gen_sprintf.c b/src/plugins/e-acsl/tests/libc/oracle/gen_sprintf.c
index 4686cea0c6bfc91acb6d32d4cc97aac1a02621e7..fd75328a411a97bb9bd04a7c8fd4ee371c52f604 100644
--- a/src/plugins/e-acsl/tests/libc/oracle/gen_sprintf.c
+++ b/src/plugins/e-acsl/tests/libc/oracle/gen_sprintf.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 char *__gen_e_acsl_literal_string;
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -32,16 +33,38 @@ int main(void)
       int __gen_e_acsl_size;
       int __gen_e_acsl_if;
       int __gen_e_acsl_initialized;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(char *)buf",
+                                   (void *)(buf));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",
+                                   0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",
+                                   0,1);
       __gen_e_acsl_size = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0,
+                                   __gen_e_acsl_size);
       if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0;
-      else __gen_e_acsl_if = __gen_e_acsl_size;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0,
+                                     __gen_e_acsl_size);
+        __gen_e_acsl_if = __gen_e_acsl_size;
+      }
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)(buf + 1 * 0),
                                                       (size_t)__gen_e_acsl_if);
-      __e_acsl_assert(! __gen_e_acsl_initialized,1,"Assertion","main",
-                      "!\\initialized(&buf[0 .. 3])","tests/libc/sprintf.c",
-                      10);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&buf[0 .. 3])",0,
+                                   __gen_e_acsl_initialized);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "!\\initialized(&buf[0 .. 3])";
+      __gen_e_acsl_assert_data.file = "tests/libc/sprintf.c";
+      __gen_e_acsl_assert_data.fct = "main";
+      __gen_e_acsl_assert_data.line = 10;
+      __e_acsl_assert(! __gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
-    /*@ assert ¬\initialized(&buf[0 .. 3]); */ ;
+    /*@ assert !\initialized(&buf[0 .. 3]); */ ;
     __gen_e_acsl_sprintf_res = sprintf(buf,__gen_e_acsl_literal_string,10); /* sprintf_va_1 */
     if (__gen_e_acsl_sprintf_res >= 0) __e_acsl_initialize((void *)(buf),
                                                            (size_t)(__gen_e_acsl_sprintf_res + 1L));
@@ -49,24 +72,63 @@ int main(void)
       int __gen_e_acsl_size_2;
       int __gen_e_acsl_if_2;
       int __gen_e_acsl_initialized_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,
+                                   "(char *)buf",(void *)(buf));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_2 = 1 * ((2 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0,
+                                   __gen_e_acsl_size_2);
       if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0;
-      else __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0,
+                                     __gen_e_acsl_size_2);
+        __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+      }
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(buf + 1 * 0),
                                                         (size_t)__gen_e_acsl_if_2);
-      __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion","main",
-                      "\\initialized(&buf[0 .. 2])","tests/libc/sprintf.c",
-                      13);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\initialized(&buf[0 .. 2])",0,
+                                   __gen_e_acsl_initialized_2);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Assertion";
+      __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&buf[0 .. 2])";
+      __gen_e_acsl_assert_data_2.file = "tests/libc/sprintf.c";
+      __gen_e_acsl_assert_data_2.fct = "main";
+      __gen_e_acsl_assert_data_2.line = 13;
+      __e_acsl_assert(__gen_e_acsl_initialized_2,
+                      & __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
     /*@ assert \initialized(&buf[0 .. 2]); */ ;
     {
       int __gen_e_acsl_initialized_3;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&buf[3]",
+                                   (void *)(& buf[3]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& buf[3]),
                                                         sizeof(char));
-      __e_acsl_assert(! __gen_e_acsl_initialized_3,1,"Assertion","main",
-                      "!\\initialized(&buf[3])","tests/libc/sprintf.c",14);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(&buf[3])",0,
+                                   __gen_e_acsl_initialized_3);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Assertion";
+      __gen_e_acsl_assert_data_3.pred_txt = "!\\initialized(&buf[3])";
+      __gen_e_acsl_assert_data_3.file = "tests/libc/sprintf.c";
+      __gen_e_acsl_assert_data_3.fct = "main";
+      __gen_e_acsl_assert_data_3.line = 14;
+      __e_acsl_assert(! __gen_e_acsl_initialized_3,
+                      & __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     }
-    /*@ assert ¬\initialized(&buf[3]); */ ;
+    /*@ assert !\initialized(&buf[3]); */ ;
     __e_acsl_delete_block((void *)(buf));
   }
   {
@@ -76,17 +138,40 @@ int main(void)
       int __gen_e_acsl_size_3;
       int __gen_e_acsl_if_3;
       int __gen_e_acsl_initialized_4;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,
+                                   "(char *)buf_0",(void *)(buf_0));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_3 = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0,
+                                   __gen_e_acsl_size_3);
       if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0;
-      else __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0,
+                                     __gen_e_acsl_size_3);
+        __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+      }
       __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(buf_0 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_3);
-      __e_acsl_assert(! __gen_e_acsl_initialized_4,1,"Assertion","main",
-                      "!\\initialized(&buf_0[0 .. 3])",
-                      "tests/libc/sprintf.c",18);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\initialized(&buf_0[0 .. 3])",0,
+                                   __gen_e_acsl_initialized_4);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Assertion";
+      __gen_e_acsl_assert_data_4.pred_txt = "!\\initialized(&buf_0[0 .. 3])";
+      __gen_e_acsl_assert_data_4.file = "tests/libc/sprintf.c";
+      __gen_e_acsl_assert_data_4.fct = "main";
+      __gen_e_acsl_assert_data_4.line = 18;
+      __e_acsl_assert(! __gen_e_acsl_initialized_4,
+                      & __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     }
-    /*@ assert ¬\initialized(&buf_0[0 .. 3]); */ ;
+    /*@ assert !\initialized(&buf_0[0 .. 3]); */ ;
     __gen_e_acsl_snprintf_res = snprintf(buf_0,(unsigned long)2,
                                          __gen_e_acsl_literal_string,10); /* snprintf_va_1 */
     if (__gen_e_acsl_snprintf_res >= 0) {
@@ -99,32 +184,78 @@ int main(void)
       int __gen_e_acsl_size_4;
       int __gen_e_acsl_if_4;
       int __gen_e_acsl_initialized_5;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,
+                                   "(char *)buf_0",(void *)(buf_0));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_4 = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0,
+                                   __gen_e_acsl_size_4);
       if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0;
-      else __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0,
+                                     __gen_e_acsl_size_4);
+        __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+      }
       __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(buf_0 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_4);
-      __e_acsl_assert(__gen_e_acsl_initialized_5,1,"Assertion","main",
-                      "\\initialized(&buf_0[0 .. 1])","tests/libc/sprintf.c",
-                      21);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\initialized(&buf_0[0 .. 1])",0,
+                                   __gen_e_acsl_initialized_5);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Assertion";
+      __gen_e_acsl_assert_data_5.pred_txt = "\\initialized(&buf_0[0 .. 1])";
+      __gen_e_acsl_assert_data_5.file = "tests/libc/sprintf.c";
+      __gen_e_acsl_assert_data_5.fct = "main";
+      __gen_e_acsl_assert_data_5.line = 21;
+      __e_acsl_assert(__gen_e_acsl_initialized_5,
+                      & __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     }
     /*@ assert \initialized(&buf_0[0 .. 1]); */ ;
     {
       int __gen_e_acsl_size_5;
       int __gen_e_acsl_if_5;
       int __gen_e_acsl_initialized_6;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,
+                                   "(char *)buf_0",(void *)(buf_0));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_5 = 1 * ((3 - 2) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0,
+                                   __gen_e_acsl_size_5);
       if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0;
-      else __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0,
+                                     __gen_e_acsl_size_5);
+        __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+      }
       __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(buf_0 + 
                                                                  1 * 2),
                                                         (size_t)__gen_e_acsl_if_5);
-      __e_acsl_assert(! __gen_e_acsl_initialized_6,1,"Assertion","main",
-                      "!\\initialized(&buf_0[2 .. 3])",
-                      "tests/libc/sprintf.c",22);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "\\initialized(&buf_0[2 .. 3])",0,
+                                   __gen_e_acsl_initialized_6);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "Assertion";
+      __gen_e_acsl_assert_data_6.pred_txt = "!\\initialized(&buf_0[2 .. 3])";
+      __gen_e_acsl_assert_data_6.file = "tests/libc/sprintf.c";
+      __gen_e_acsl_assert_data_6.fct = "main";
+      __gen_e_acsl_assert_data_6.line = 22;
+      __e_acsl_assert(! __gen_e_acsl_initialized_6,
+                      & __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     }
-    /*@ assert ¬\initialized(&buf_0[2 .. 3]); */ ;
+    /*@ assert !\initialized(&buf_0[2 .. 3]); */ ;
     __e_acsl_delete_block((void *)(buf_0));
   }
   {
@@ -134,17 +265,40 @@ int main(void)
       int __gen_e_acsl_size_6;
       int __gen_e_acsl_if_6;
       int __gen_e_acsl_initialized_7;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,
+                                   "(char *)buf_1",(void *)(buf_1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_6 = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"size",0,
+                                   __gen_e_acsl_size_6);
       if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0;
-      else __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"size",0,
+                                     __gen_e_acsl_size_6);
+        __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+      }
       __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(buf_1 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_6);
-      __e_acsl_assert(! __gen_e_acsl_initialized_7,1,"Assertion","main",
-                      "!\\initialized(&buf_1[0 .. 3])",
-                      "tests/libc/sprintf.c",26);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                   "\\initialized(&buf_1[0 .. 3])",0,
+                                   __gen_e_acsl_initialized_7);
+      __gen_e_acsl_assert_data_7.blocking = 1;
+      __gen_e_acsl_assert_data_7.kind = "Assertion";
+      __gen_e_acsl_assert_data_7.pred_txt = "!\\initialized(&buf_1[0 .. 3])";
+      __gen_e_acsl_assert_data_7.file = "tests/libc/sprintf.c";
+      __gen_e_acsl_assert_data_7.fct = "main";
+      __gen_e_acsl_assert_data_7.line = 26;
+      __e_acsl_assert(! __gen_e_acsl_initialized_7,
+                      & __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
     }
-    /*@ assert ¬\initialized(&buf_1[0 .. 3]); */ ;
+    /*@ assert !\initialized(&buf_1[0 .. 3]); */ ;
     __gen_e_acsl_snprintf_res_2 = snprintf(buf_1,(unsigned long)4,
                                            __gen_e_acsl_literal_string,10); /* snprintf_va_2 */
     if (__gen_e_acsl_snprintf_res_2 >= 0) {
@@ -157,25 +311,64 @@ int main(void)
       int __gen_e_acsl_size_7;
       int __gen_e_acsl_if_7;
       int __gen_e_acsl_initialized_8;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,
+                                   "(char *)buf_1",(void *)(buf_1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_7 = 1 * ((2 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0,
+                                   __gen_e_acsl_size_7);
       if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0;
-      else __gen_e_acsl_if_7 = __gen_e_acsl_size_7;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0,
+                                     __gen_e_acsl_size_7);
+        __gen_e_acsl_if_7 = __gen_e_acsl_size_7;
+      }
       __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(buf_1 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_7);
-      __e_acsl_assert(__gen_e_acsl_initialized_8,1,"Assertion","main",
-                      "\\initialized(&buf_1[0 .. 2])","tests/libc/sprintf.c",
-                      29);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "\\initialized(&buf_1[0 .. 2])",0,
+                                   __gen_e_acsl_initialized_8);
+      __gen_e_acsl_assert_data_8.blocking = 1;
+      __gen_e_acsl_assert_data_8.kind = "Assertion";
+      __gen_e_acsl_assert_data_8.pred_txt = "\\initialized(&buf_1[0 .. 2])";
+      __gen_e_acsl_assert_data_8.file = "tests/libc/sprintf.c";
+      __gen_e_acsl_assert_data_8.fct = "main";
+      __gen_e_acsl_assert_data_8.line = 29;
+      __e_acsl_assert(__gen_e_acsl_initialized_8,
+                      & __gen_e_acsl_assert_data_8);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
     }
     /*@ assert \initialized(&buf_1[0 .. 2]); */ ;
     {
       int __gen_e_acsl_initialized_9;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&buf_1[3]",
+                                   (void *)(& buf_1[3]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(& buf_1[3]),
                                                         sizeof(char));
-      __e_acsl_assert(! __gen_e_acsl_initialized_9,1,"Assertion","main",
-                      "!\\initialized(&buf_1[3])","tests/libc/sprintf.c",30);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "\\initialized(&buf_1[3])",0,
+                                   __gen_e_acsl_initialized_9);
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "Assertion";
+      __gen_e_acsl_assert_data_9.pred_txt = "!\\initialized(&buf_1[3])";
+      __gen_e_acsl_assert_data_9.file = "tests/libc/sprintf.c";
+      __gen_e_acsl_assert_data_9.fct = "main";
+      __gen_e_acsl_assert_data_9.line = 30;
+      __e_acsl_assert(! __gen_e_acsl_initialized_9,
+                      & __gen_e_acsl_assert_data_9);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
     }
-    /*@ assert ¬\initialized(&buf_1[3]); */ ;
+    /*@ assert !\initialized(&buf_1[3]); */ ;
     __e_acsl_delete_block((void *)(buf_1));
   }
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/libc/oracle/gen_str.c b/src/plugins/e-acsl/tests/libc/oracle/gen_str.c
index dea7fa975c07e495ed7d09fc665b92ba4d89d40a..3220219b18d1782dbf64cf231dbd1ee187af5fac 100644
--- a/src/plugins/e-acsl/tests/libc/oracle/gen_str.c
+++ b/src/plugins/e-acsl/tests/libc/oracle/gen_str.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "string.h"
 char *__gen_e_acsl_literal_string;
@@ -10,8 +11,8 @@ extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
     requires
       separation:
         \separated(dest + (0 .. strlen(src)), src + (0 .. strlen(src)));
-    ensures equal_contents: strcmp(\old(dest), \old(src)) ≡ 0;
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures equal_contents: strcmp(\old(dest), \old(src)) == 0;
+    ensures result_ptr: \result == \old(dest);
     assigns *(dest + (0 .. strlen{Old}(src))), \result;
     assigns *(dest + (0 .. strlen{Old}(src)))
       \from *(src + (0 .. strlen{Old}(src)));
@@ -22,7 +23,7 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src);
 /*@ requires valid_nstring_src: valid_read_nstring(src, n);
     requires room_nstring: \valid(dest + (0 .. n - 1));
     requires separation: \separated(dest + (0 .. n - 1), src + (0 .. n - 1));
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures result_ptr: \result == \old(dest);
     ensures initialization: \initialized(\old(dest) + (0 .. \old(n) - 1));
     assigns *(dest + (0 .. n - 1)), \result;
     assigns *(dest + (0 .. n - 1)) \from *(src + (0 .. n - 1));
@@ -30,13 +31,12 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src);
     
     behavior complete:
       assumes src_fits: strlen(src) < n;
-      ensures equal_after_copy: strcmp(\old(dest), \old(src)) ≡ 0;
+      ensures equal_after_copy: strcmp(\old(dest), \old(src)) == 0;
     
     behavior partial:
-      assumes src_too_long: n ≤ strlen(src);
+      assumes src_too_long: n <= strlen(src);
       ensures
-        equal_prefix:
-          memcmp{Post, Post}(\old(dest), \old(src), \old(n)) ≡ 0;
+        equal_prefix: memcmp{Post, Post}(\old(dest), \old(src), \old(n)) == 0;
  */
 char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
                            size_t n);
@@ -45,14 +45,14 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
     requires valid_string_dest: valid_string(dest);
     requires room_string: \valid(dest + (0 .. strlen(dest) + strlen(src)));
     ensures
-      sum_of_lengths: strlen(\old(dest)) ≡ \old(strlen(dest) + strlen(src));
+      sum_of_lengths: strlen(\old(dest)) == \old(strlen(dest) + strlen(src));
     ensures
       initialization: dest:
         \initialized(\old(dest) + (0 .. \old(strlen(dest) + strlen(src))));
     ensures
       dest_null_terminated:
-        *(\old(dest) + \old(strlen(dest) + strlen(src))) ≡ 0;
-    ensures result_ptr: \result ≡ \old(dest);
+        *(\old(dest) + \old(strlen(dest) + strlen(src))) == 0;
+    ensures result_ptr: \result == \old(dest);
     assigns *(dest +
               (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))),
             \result;
@@ -65,7 +65,7 @@ char *__gen_e_acsl_strcat(char * restrict dest, char const * restrict src);
 
 /*@ requires valid_nstring_src: valid_read_nstring(src, n);
     requires valid_string_dest: valid_string(dest);
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures result_ptr: \result == \old(dest);
     assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)), \result;
     assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n))
       \from *(src + (0 .. n));
@@ -73,12 +73,12 @@ char *__gen_e_acsl_strcat(char * restrict dest, char const * restrict src);
     
     behavior complete:
       assumes
-        valid_string_src_fits: valid_read_string(src) ∧ strlen(src) ≤ n;
+        valid_string_src_fits: valid_read_string(src) && strlen(src) <= n;
       requires
         room_string: \valid((dest + strlen(dest)) + (0 .. strlen(src)));
       ensures
         sum_of_lengths:
-          strlen(\old(dest)) ≡ \old(strlen(dest) + strlen(src));
+          strlen(\old(dest)) == \old(strlen(dest) + strlen(src));
       assigns *(dest +
                 (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))),
               \result;
@@ -90,11 +90,11 @@ char *__gen_e_acsl_strcat(char * restrict dest, char const * restrict src);
     behavior partial:
       assumes
         valid_string_src_too_large:
-          ¬(valid_read_string(src) ∧ strlen(src) ≤ n);
+          !(valid_read_string(src) && strlen(src) <= n);
       requires room_string: \valid((dest + strlen(dest)) + (0 .. n));
       ensures
         sum_of_bounded_lengths:
-          strlen(\old(dest)) ≡ \old(strlen(dest)) + \old(n);
+          strlen(\old(dest)) == \old(strlen(dest)) + \old(n);
       assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)),
               \result;
       assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n))
@@ -106,7 +106,7 @@ char *__gen_e_acsl_strncat(char * restrict dest, char const * restrict src,
 
 /*@ requires valid_nstring_src: valid_read_nstring(src, n);
     requires valid_string_dest: valid_string(dest);
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures result_ptr: \result == \old(dest);
     assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)), \result;
     assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n))
       \from *(src + (0 .. n));
@@ -114,12 +114,12 @@ char *__gen_e_acsl_strncat(char * restrict dest, char const * restrict src,
     
     behavior complete:
       assumes
-        valid_string_src_fits: valid_read_string(src) ∧ strlen(src) ≤ n;
+        valid_string_src_fits: valid_read_string(src) && strlen(src) <= n;
       requires
         room_string: \valid((dest + strlen(dest)) + (0 .. strlen(src)));
       ensures
         sum_of_lengths:
-          strlen(\old(dest)) ≡ \old(strlen(dest) + strlen(src));
+          strlen(\old(dest)) == \old(strlen(dest) + strlen(src));
       assigns *(dest +
                 (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))),
               \result;
@@ -131,11 +131,11 @@ char *__gen_e_acsl_strncat(char * restrict dest, char const * restrict src,
     behavior partial:
       assumes
         valid_string_src_too_large:
-          ¬(valid_read_string(src) ∧ strlen(src) ≤ n);
+          !(valid_read_string(src) && strlen(src) <= n);
       requires room_string: \valid((dest + strlen(dest)) + (0 .. n));
       ensures
         sum_of_bounded_lengths:
-          strlen(\old(dest)) ≡ \old(strlen(dest)) + \old(n);
+          strlen(\old(dest)) == \old(strlen(dest)) + \old(n);
       assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n)),
               \result;
       assigns *(dest + (strlen{Old}(dest) .. strlen{Old}(dest) + n))
@@ -166,8 +166,16 @@ char *__gen_e_acsl_strncat(char * restrict dest, char const * restrict src,
     __e_acsl_mpz_t __gen_e_acsl__2;
     int __gen_e_acsl_le;
     unsigned long __gen_e_acsl_size;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "__gen_e_acsl_strcat_src_size",0,
+                                   __gen_e_acsl_strcat_src_size);
     __gmpz_init_set_ui(__gen_e_acsl___gen_e_acsl_strcat_src_size,
                        __gen_e_acsl_strcat_src_size);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "__gen_e_acsl_strcat_dest_size",0,
+                                   __gen_e_acsl_strcat_dest_size);
     __gmpz_init_set_ui(__gen_e_acsl___gen_e_acsl_strcat_dest_size,
                        __gen_e_acsl_strcat_dest_size);
     __gmpz_init(__gen_e_acsl_add);
@@ -182,9 +190,14 @@ char *__gen_e_acsl_strncat(char * restrict dest, char const * restrict src,
     __gmpz_init_set_ui(__gen_e_acsl__2,18446744073709551615UL);
     __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
-    __e_acsl_assert(__gen_e_acsl_le <= 0,1,"RTE","strncat",
-                    "size_lesser_or_eq_than_SIZE_MAX:\n  (__gen_e_acsl_strcat_src_size + __gen_e_acsl_strcat_dest_size) + 1 <=\n  18446744073709551615",
-                    "FRAMAC_SHARE/libc/string.h",438);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "RTE";
+    __gen_e_acsl_assert_data_5.pred_txt = "size_lesser_or_eq_than_SIZE_MAX:\n  (__gen_e_acsl_strcat_src_size + __gen_e_acsl_strcat_dest_size) + 1 <=\n  18446744073709551615";
+    __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_5.fct = "strncat";
+    __gen_e_acsl_assert_data_5.line = 438;
+    __e_acsl_assert(__gen_e_acsl_le <= 0,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     __gen_e_acsl_size = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2));
     __e_acsl_initialize((void *)dest,__gen_e_acsl_size);
     __gmpz_clear(__gen_e_acsl___gen_e_acsl_strcat_src_size);
@@ -194,26 +207,39 @@ char *__gen_e_acsl_strncat(char * restrict dest, char const * restrict src,
     __gmpz_clear(__gen_e_acsl_add_2);
     __gmpz_clear(__gen_e_acsl__2);
   }
-  __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","strncat",
-                  "result_ptr: \\result == \\old(dest)",
-                  "FRAMAC_SHARE/libc/string.h",443);
-  __e_acsl_contract_clean(__gen_e_acsl_contract);
-  __e_acsl_delete_block((void *)(& dest));
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\result",
+                                 (void *)__retres);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\old(dest)",
+                                 (void *)__gen_e_acsl_at);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Postcondition";
+    __gen_e_acsl_assert_data_6.pred_txt = "result_ptr: \\result == \\old(dest)";
+    __gen_e_acsl_assert_data_6.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_6.fct = "strncat";
+    __gen_e_acsl_assert_data_6.line = 443;
+    __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+    __e_acsl_contract_clean(__gen_e_acsl_contract);
+    __e_acsl_delete_block((void *)(& dest));
+    return __retres;
+  }
 }
 
 /*@ requires valid_string_src: valid_read_string(src);
     requires valid_string_dest: valid_string(dest);
     requires room_string: \valid(dest + (0 .. strlen(dest) + strlen(src)));
     ensures
-      sum_of_lengths: strlen(\old(dest)) ≡ \old(strlen(dest) + strlen(src));
+      sum_of_lengths: strlen(\old(dest)) == \old(strlen(dest) + strlen(src));
     ensures
       initialization: dest:
         \initialized(\old(dest) + (0 .. \old(strlen(dest) + strlen(src))));
     ensures
       dest_null_terminated:
-        *(\old(dest) + \old(strlen(dest) + strlen(src))) ≡ 0;
-    ensures result_ptr: \result ≡ \old(dest);
+        *(\old(dest) + \old(strlen(dest) + strlen(src))) == 0;
+    ensures result_ptr: \result == \old(dest);
     assigns *(dest +
               (strlen{Old}(dest) .. strlen{Old}(dest) + strlen{Old}(src))),
             \result;
@@ -243,8 +269,16 @@ char *__gen_e_acsl_strcat(char * restrict dest, char const * restrict src)
     __e_acsl_mpz_t __gen_e_acsl__2;
     int __gen_e_acsl_le;
     unsigned long __gen_e_acsl_size;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "__gen_e_acsl_strcat_src_size",0,
+                                   __gen_e_acsl_strcat_src_size);
     __gmpz_init_set_ui(__gen_e_acsl___gen_e_acsl_strcat_src_size,
                        __gen_e_acsl_strcat_src_size);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "__gen_e_acsl_strcat_dest_size",0,
+                                   __gen_e_acsl_strcat_dest_size);
     __gmpz_init_set_ui(__gen_e_acsl___gen_e_acsl_strcat_dest_size,
                        __gen_e_acsl_strcat_dest_size);
     __gmpz_init(__gen_e_acsl_add);
@@ -259,9 +293,14 @@ char *__gen_e_acsl_strcat(char * restrict dest, char const * restrict src)
     __gmpz_init_set_ui(__gen_e_acsl__2,18446744073709551615UL);
     __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
-    __e_acsl_assert(__gen_e_acsl_le <= 0,1,"RTE","strcat",
-                    "size_lesser_or_eq_than_SIZE_MAX:\n  (__gen_e_acsl_strcat_src_size + __gen_e_acsl_strcat_dest_size) + 1 <=\n  18446744073709551615",
-                    "FRAMAC_SHARE/libc/string.h",423);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "RTE";
+    __gen_e_acsl_assert_data_4.pred_txt = "size_lesser_or_eq_than_SIZE_MAX:\n  (__gen_e_acsl_strcat_src_size + __gen_e_acsl_strcat_dest_size) + 1 <=\n  18446744073709551615";
+    __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_4.fct = "strcat";
+    __gen_e_acsl_assert_data_4.line = 423;
+    __e_acsl_assert(__gen_e_acsl_le <= 0,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     __gen_e_acsl_size = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2));
     __e_acsl_initialize((void *)dest,__gen_e_acsl_size);
     __gmpz_clear(__gen_e_acsl___gen_e_acsl_strcat_src_size);
@@ -271,17 +310,31 @@ char *__gen_e_acsl_strcat(char * restrict dest, char const * restrict src)
     __gmpz_clear(__gen_e_acsl_add_2);
     __gmpz_clear(__gen_e_acsl__2);
   }
-  __e_acsl_assert(__retres == __gen_e_acsl_at_2,1,"Postcondition","strcat",
-                  "result_ptr: \\result == \\old(dest)",
-                  "FRAMAC_SHARE/libc/string.h",434);
-  __e_acsl_delete_block((void *)(& dest));
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"\\result",
+                                 (void *)__retres);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"\\old(dest)",
+                                 (void *)__gen_e_acsl_at_2);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Postcondition";
+    __gen_e_acsl_assert_data_8.pred_txt = "result_ptr: \\result == \\old(dest)";
+    __gen_e_acsl_assert_data_8.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_8.fct = "strcat";
+    __gen_e_acsl_assert_data_8.line = 434;
+    __e_acsl_assert(__retres == __gen_e_acsl_at_2,
+                    & __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+    __e_acsl_delete_block((void *)(& dest));
+    return __retres;
+  }
 }
 
 /*@ requires valid_nstring_src: valid_read_nstring(src, n);
     requires room_nstring: \valid(dest + (0 .. n - 1));
     requires separation: \separated(dest + (0 .. n - 1), src + (0 .. n - 1));
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures result_ptr: \result == \old(dest);
     ensures initialization: \initialized(\old(dest) + (0 .. \old(n) - 1));
     assigns *(dest + (0 .. n - 1)), \result;
     assigns *(dest + (0 .. n - 1)) \from *(src + (0 .. n - 1));
@@ -289,13 +342,12 @@ char *__gen_e_acsl_strcat(char * restrict dest, char const * restrict src)
     
     behavior complete:
       assumes src_fits: strlen(src) < n;
-      ensures equal_after_copy: strcmp(\old(dest), \old(src)) ≡ 0;
+      ensures equal_after_copy: strcmp(\old(dest), \old(src)) == 0;
     
     behavior partial:
-      assumes src_too_long: n ≤ strlen(src);
+      assumes src_too_long: n <= strlen(src);
       ensures
-        equal_prefix:
-          memcmp{Post, Post}(\old(dest), \old(src), \old(n)) ≡ 0;
+        equal_prefix: memcmp{Post, Post}(\old(dest), \old(src), \old(n)) == 0;
  */
 char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
                            size_t n)
@@ -334,6 +386,15 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
     __e_acsl_store_block((void *)(& src),(size_t)8);
     __e_acsl_store_block((void *)(& dest),(size_t)8);
     __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"dest",
+                                 (void *)dest);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"n",0,n);
     __gmpz_init_set_ui(__gen_e_acsl_n,n);
     __gmpz_init_set_si(__gen_e_acsl_,1L);
     __gmpz_init(__gen_e_acsl_sub);
@@ -351,51 +412,141 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_));
     __gen_e_acsl__3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size = 1UL * __gen_e_acsl__3;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"size",0,
+                                   __gen_e_acsl_size);
     if (__gen_e_acsl_size <= 0UL) __gen_e_acsl_if = 0UL;
-    else __gen_e_acsl_if = __gen_e_acsl_size;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"size",0,
+                                     __gen_e_acsl_size);
+      __gen_e_acsl_if = __gen_e_acsl_size;
+    }
     __gen_e_acsl_valid = __e_acsl_valid((void *)(dest + 1 * 0),
                                         __gen_e_acsl_if,(void *)dest,
                                         (void *)(& dest));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","strncpy",
-                    "room_nstring: \\valid(dest + (0 .. n - 1))",
-                    "FRAMAC_SHARE/libc/string.h",380);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "room_nstring: \\valid(dest + (0 .. n - 1))",
+                                 0,__gen_e_acsl_valid);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Precondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "room_nstring: \\valid(dest + (0 .. n - 1))";
+    __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_2.fct = "strncpy";
+    __gen_e_acsl_assert_data_2.line = 380;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"dest",
+                                 (void *)dest);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"n",0,n);
     __gen_e_acsl__4 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size_2 = 1UL * __gen_e_acsl__4;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0,
+                                   __gen_e_acsl_size_2);
     if (__gen_e_acsl_size_2 <= 0UL) __gen_e_acsl_if_2 = 0UL;
-    else __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0,
+                                     __gen_e_acsl_size_2);
+      __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    }
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(dest + 1 * 0),
                                                   __gen_e_acsl_if_2,
                                                   (void *)dest,
                                                   (void *)(& dest));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","strncpy",
-                    "separated_guard: \\valid_read(dest + (0 .. n - 1))",
-                    "FRAMAC_SHARE/libc/string.h",382);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "RTE";
+    __gen_e_acsl_assert_data_4.pred_txt = "separated_guard: \\valid_read(dest + (0 .. n - 1))";
+    __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_4.fct = "strncpy";
+    __gen_e_acsl_assert_data_4.line = 382;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"src",
+                                 (void *)src);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "sizeof(char const)",0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "sizeof(char const)",0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"n",0,n);
     __gen_e_acsl__5 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size_3 = 1UL * __gen_e_acsl__5;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0,
+                                   __gen_e_acsl_size_3);
     if (__gen_e_acsl_size_3 <= 0UL) __gen_e_acsl_if_3 = 0UL;
-    else __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0,
+                                     __gen_e_acsl_size_3);
+      __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+    }
     __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(src + 1 * 0),
                                                     __gen_e_acsl_if_3,
                                                     (void *)src,
                                                     (void *)(& src));
-    __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","strncpy",
-                    "separated_guard: \\valid_read(src + (0 .. n - 1))",
-                    "FRAMAC_SHARE/libc/string.h",382);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "RTE";
+    __gen_e_acsl_assert_data_5.pred_txt = "separated_guard: \\valid_read(src + (0 .. n - 1))";
+    __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_5.fct = "strncpy";
+    __gen_e_acsl_assert_data_5.line = 382;
+    __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"dest",
+                                 (void *)dest);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n);
     __gen_e_acsl__6 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size_4 = 1UL * __gen_e_acsl__6;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                   __gen_e_acsl_size_4);
     if (__gen_e_acsl_size_4 <= 0UL) __gen_e_acsl_if_4 = 0UL;
-    else __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                     __gen_e_acsl_size_4);
+      __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+    }
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"src",
+                                 (void *)src);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "sizeof(char const)",0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "sizeof(char const)",0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n);
     __gen_e_acsl__7 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size_5 = 1UL * __gen_e_acsl__7;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                   __gen_e_acsl_size_5);
     if (__gen_e_acsl_size_5 <= 0UL) __gen_e_acsl_if_5 = 0UL;
-    else __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                     __gen_e_acsl_size_5);
+      __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+    }
     __gen_e_acsl_separated = __e_acsl_separated((size_t)2,dest + 1 * 0,
                                                 __gen_e_acsl_if_4,
                                                 src + 1 * 0,
                                                 __gen_e_acsl_if_5);
-    __e_acsl_assert(__gen_e_acsl_separated,1,"Precondition","strncpy",
-                    "separation: \\separated(dest + (0 .. n - 1), src + (0 .. n - 1))",
-                    "FRAMAC_SHARE/libc/string.h",382);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "separation: \\separated(dest + (0 .. n - 1), src + (0 .. n - 1))",
+                                 0,__gen_e_acsl_separated);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Precondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "separation: \\separated(dest + (0 .. n - 1), src + (0 .. n - 1))";
+    __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_3.fct = "strncpy";
+    __gen_e_acsl_assert_data_3.line = 382;
+    __e_acsl_assert(__gen_e_acsl_separated,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __gmpz_clear(__gen_e_acsl_n);
     __gmpz_clear(__gen_e_acsl_);
     __gmpz_clear(__gen_e_acsl_sub);
@@ -424,9 +575,30 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
     unsigned long __gen_e_acsl__10;
     unsigned long __gen_e_acsl_if_6;
     int __gen_e_acsl_initialized;
-    __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","strncpy",
-                    "result_ptr: \\result == \\old(dest)",
-                    "FRAMAC_SHARE/libc/string.h",385);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\result",
+                                 (void *)__retres);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"\\old(dest)",
+                                 (void *)__gen_e_acsl_at);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Postcondition";
+    __gen_e_acsl_assert_data_6.pred_txt = "result_ptr: \\result == \\old(dest)";
+    __gen_e_acsl_assert_data_6.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_6.fct = "strncpy";
+    __gen_e_acsl_assert_data_6.line = 385;
+    __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"\\old(dest)",
+                                 (void *)__gen_e_acsl_at_2);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_7,"\\old(n)",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_3));
     __gmpz_init_set_si(__gen_e_acsl__8,1L);
     __gmpz_init(__gen_e_acsl_sub_3);
     __gmpz_sub(__gen_e_acsl_sub_3,
@@ -443,14 +615,28 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl__8));
     __gen_e_acsl__10 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2));
     __gen_e_acsl_size_6 = 1UL * __gen_e_acsl__10;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,"size",0,
+                                   __gen_e_acsl_size_6);
     if (__gen_e_acsl_size_6 <= 0UL) __gen_e_acsl_if_6 = 0UL;
-    else __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,"size",0,
+                                     __gen_e_acsl_size_6);
+      __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+    }
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(__gen_e_acsl_at_2 + 
                                                              1 * 0),
                                                     __gen_e_acsl_if_6);
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Postcondition","strncpy",
-                    "initialization: \\initialized(\\old(dest) + (0 .. \\old(n) - 1))",
-                    "FRAMAC_SHARE/libc/string.h",386);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "initialization: \\initialized(\\old(dest) + (0 .. \\old(n) - 1))",
+                                 0,__gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Postcondition";
+    __gen_e_acsl_assert_data_7.pred_txt = "initialization: \\initialized(\\old(dest) + (0 .. \\old(n) - 1))";
+    __gen_e_acsl_assert_data_7.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_7.fct = "strncpy";
+    __gen_e_acsl_assert_data_7.line = 386;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     __e_acsl_delete_block((void *)(& src));
     __e_acsl_delete_block((void *)(& dest));
@@ -469,8 +655,8 @@ char *__gen_e_acsl_strncpy(char * restrict dest, char const * restrict src,
     requires
       separation:
         \separated(dest + (0 .. strlen(src)), src + (0 .. strlen(src)));
-    ensures equal_contents: strcmp(\old(dest), \old(src)) ≡ 0;
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures equal_contents: strcmp(\old(dest), \old(src)) == 0;
+    ensures result_ptr: \result == \old(dest);
     assigns *(dest + (0 .. strlen{Old}(src))), \result;
     assigns *(dest + (0 .. strlen{Old}(src)))
       \from *(src + (0 .. strlen{Old}(src)));
@@ -493,6 +679,11 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src)
     __e_acsl_mpz_t __gen_e_acsl__2;
     int __gen_e_acsl_le;
     unsigned long __gen_e_acsl_size;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "__gen_e_acsl_strcpy_src_size",0,
+                                   __gen_e_acsl_strcpy_src_size);
     __gmpz_init_set_ui(__gen_e_acsl___gen_e_acsl_strcpy_src_size,
                        __gen_e_acsl_strcpy_src_size);
     __gmpz_init_set_si(__gen_e_acsl_,1L);
@@ -503,9 +694,14 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src)
     __gmpz_init_set_ui(__gen_e_acsl__2,18446744073709551615UL);
     __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
-    __e_acsl_assert(__gen_e_acsl_le <= 0,1,"RTE","strcpy",
-                    "size_lesser_or_eq_than_SIZE_MAX:\n  __gen_e_acsl_strcpy_src_size + 1 <= 18446744073709551615",
-                    "FRAMAC_SHARE/libc/string.h",367);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "RTE";
+    __gen_e_acsl_assert_data_6.pred_txt = "size_lesser_or_eq_than_SIZE_MAX:\n  __gen_e_acsl_strcpy_src_size + 1 <= 18446744073709551615";
+    __gen_e_acsl_assert_data_6.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_6.fct = "strcpy";
+    __gen_e_acsl_assert_data_6.line = 367;
+    __e_acsl_assert(__gen_e_acsl_le <= 0,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     __gen_e_acsl_size = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __e_acsl_initialize((void *)dest,__gen_e_acsl_size);
     __gmpz_clear(__gen_e_acsl___gen_e_acsl_strcpy_src_size);
@@ -513,12 +709,25 @@ char *__gen_e_acsl_strcpy(char * restrict dest, char const * restrict src)
     __gmpz_clear(__gen_e_acsl_add);
     __gmpz_clear(__gen_e_acsl__2);
   }
-  __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","strcpy",
-                  "result_ptr: \\result == \\old(dest)",
-                  "FRAMAC_SHARE/libc/string.h",374);
-  __e_acsl_delete_block((void *)(& src));
-  __e_acsl_delete_block((void *)(& dest));
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"\\result",
+                                 (void *)__retres);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"\\old(dest)",
+                                 (void *)__gen_e_acsl_at);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Postcondition";
+    __gen_e_acsl_assert_data_8.pred_txt = "result_ptr: \\result == \\old(dest)";
+    __gen_e_acsl_assert_data_8.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_8.fct = "strcpy";
+    __gen_e_acsl_assert_data_8.line = 374;
+    __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+    __e_acsl_delete_block((void *)(& src));
+    __e_acsl_delete_block((void *)(& dest));
+    return __retres;
+  }
 }
 
 void __e_acsl_globals_init(void)
@@ -549,26 +758,73 @@ int main(void)
       int __gen_e_acsl_size;
       int __gen_e_acsl_if;
       int __gen_e_acsl_initialized;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(char *)dest",
+                                   (void *)(dest));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",
+                                   0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",
+                                   0,1);
       __gen_e_acsl_size = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0,
+                                   __gen_e_acsl_size);
       if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0;
-      else __gen_e_acsl_if = __gen_e_acsl_size;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0,
+                                     __gen_e_acsl_size);
+        __gen_e_acsl_if = __gen_e_acsl_size;
+      }
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)(dest + 1 * 0),
                                                       (size_t)__gen_e_acsl_if);
-      __e_acsl_assert(! __gen_e_acsl_initialized,1,"Assertion","main",
-                      "!\\initialized(&dest[0 .. 3])","tests/libc/str.c",12);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&dest[0 .. 3])",0,
+                                   __gen_e_acsl_initialized);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "!\\initialized(&dest[0 .. 3])";
+      __gen_e_acsl_assert_data.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data.fct = "main";
+      __gen_e_acsl_assert_data.line = 12;
+      __e_acsl_assert(! __gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
-    /*@ assert ¬\initialized(&dest[0 .. 3]); */ ;
+    /*@ assert !\initialized(&dest[0 .. 3]); */ ;
     {
       int __gen_e_acsl_size_2;
       int __gen_e_acsl_if_2;
       int __gen_e_acsl_initialized_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,
+                                   "(char *)src",(void *)(src));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_2 = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0,
+                                   __gen_e_acsl_size_2);
       if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0;
-      else __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"size",0,
+                                     __gen_e_acsl_size_2);
+        __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+      }
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(src + 1 * 0),
                                                         (size_t)__gen_e_acsl_if_2);
-      __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion","main",
-                      "\\initialized(&src[0 .. 1])","tests/libc/str.c",13);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\initialized(&src[0 .. 1])",0,
+                                   __gen_e_acsl_initialized_2);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Assertion";
+      __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&src[0 .. 1])";
+      __gen_e_acsl_assert_data_2.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_2.fct = "main";
+      __gen_e_acsl_assert_data_2.line = 13;
+      __e_acsl_assert(__gen_e_acsl_initialized_2,
+                      & __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
     /*@ assert \initialized(&src[0 .. 1]); */ ;
     __gen_e_acsl_strcpy(dest,(char const *)(src));
@@ -576,28 +832,76 @@ int main(void)
       int __gen_e_acsl_size_3;
       int __gen_e_acsl_if_3;
       int __gen_e_acsl_initialized_3;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "(char *)dest",(void *)(dest));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_3 = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0,
+                                   __gen_e_acsl_size_3);
       if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0;
-      else __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0,
+                                     __gen_e_acsl_size_3);
+        __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+      }
       __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(dest + 1 * 0),
                                                         (size_t)__gen_e_acsl_if_3);
-      __e_acsl_assert(__gen_e_acsl_initialized_3,1,"Assertion","main",
-                      "\\initialized(&dest[0 .. 1])","tests/libc/str.c",16);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(&dest[0 .. 1])",0,
+                                   __gen_e_acsl_initialized_3);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Assertion";
+      __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(&dest[0 .. 1])";
+      __gen_e_acsl_assert_data_3.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_3.fct = "main";
+      __gen_e_acsl_assert_data_3.line = 16;
+      __e_acsl_assert(__gen_e_acsl_initialized_3,
+                      & __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     }
     /*@ assert \initialized(&dest[0 .. 1]); */ ;
     {
       int __gen_e_acsl_size_4;
       int __gen_e_acsl_if_4;
       int __gen_e_acsl_initialized_4;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,
+                                   "(char *)dest",(void *)(dest));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_4 = 1 * ((3 - 2) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0,
+                                   __gen_e_acsl_size_4);
       if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0;
-      else __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0,
+                                     __gen_e_acsl_size_4);
+        __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+      }
       __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(dest + 1 * 2),
                                                         (size_t)__gen_e_acsl_if_4);
-      __e_acsl_assert(! __gen_e_acsl_initialized_4,1,"Assertion","main",
-                      "!\\initialized(&dest[2 .. 3])","tests/libc/str.c",17);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\initialized(&dest[2 .. 3])",0,
+                                   __gen_e_acsl_initialized_4);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Assertion";
+      __gen_e_acsl_assert_data_4.pred_txt = "!\\initialized(&dest[2 .. 3])";
+      __gen_e_acsl_assert_data_4.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_4.fct = "main";
+      __gen_e_acsl_assert_data_4.line = 17;
+      __e_acsl_assert(! __gen_e_acsl_initialized_4,
+                      & __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     }
-    /*@ assert ¬\initialized(&dest[2 .. 3]); */ ;
+    /*@ assert !\initialized(&dest[2 .. 3]); */ ;
     __e_acsl_delete_block((void *)(src));
     __e_acsl_delete_block((void *)(dest));
   }
@@ -611,55 +915,141 @@ int main(void)
       int __gen_e_acsl_size_5;
       int __gen_e_acsl_if_5;
       int __gen_e_acsl_initialized_5;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,
+                                   "(char *)dest_0",(void *)(dest_0));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_5 = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0,
+                                   __gen_e_acsl_size_5);
       if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0;
-      else __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0,
+                                     __gen_e_acsl_size_5);
+        __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+      }
       __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(dest_0 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_5);
-      __e_acsl_assert(! __gen_e_acsl_initialized_5,1,"Assertion","main",
-                      "!\\initialized(&dest_0[0 .. 3])","tests/libc/str.c",
-                      22);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\initialized(&dest_0[0 .. 3])",0,
+                                   __gen_e_acsl_initialized_5);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Assertion";
+      __gen_e_acsl_assert_data_5.pred_txt = "!\\initialized(&dest_0[0 .. 3])";
+      __gen_e_acsl_assert_data_5.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_5.fct = "main";
+      __gen_e_acsl_assert_data_5.line = 22;
+      __e_acsl_assert(! __gen_e_acsl_initialized_5,
+                      & __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     }
-    /*@ assert ¬\initialized(&dest_0[0 .. 3]); */ ;
+    /*@ assert !\initialized(&dest_0[0 .. 3]); */ ;
     {
       int __gen_e_acsl_size_6;
       int __gen_e_acsl_if_6;
       int __gen_e_acsl_initialized_6;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,
+                                   "(char *)src_0",(void *)(src_0));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_6 = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0,
+                                   __gen_e_acsl_size_6);
       if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0;
-      else __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0,
+                                     __gen_e_acsl_size_6);
+        __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+      }
       __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(src_0 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_6);
-      __e_acsl_assert(__gen_e_acsl_initialized_6,1,"Assertion","main",
-                      "\\initialized(&src_0[0 .. 3])","tests/libc/str.c",23);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "\\initialized(&src_0[0 .. 3])",0,
+                                   __gen_e_acsl_initialized_6);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "Assertion";
+      __gen_e_acsl_assert_data_6.pred_txt = "\\initialized(&src_0[0 .. 3])";
+      __gen_e_acsl_assert_data_6.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_6.fct = "main";
+      __gen_e_acsl_assert_data_6.line = 23;
+      __e_acsl_assert(__gen_e_acsl_initialized_6,
+                      & __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     }
     /*@ assert \initialized(&src_0[0 .. 3]); */ ;
     __gen_e_acsl_strncpy(dest_0,(char const *)(src_0),(unsigned long)1);
     {
       int __gen_e_acsl_initialized_7;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,
+                                   "(char *)dest_0",(void *)(dest_0));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(dest_0),
                                                         sizeof(char));
-      __e_acsl_assert(__gen_e_acsl_initialized_7,1,"Assertion","main",
-                      "\\initialized((char *)dest_0)","tests/libc/str.c",26);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                   "\\initialized((char *)dest_0)",0,
+                                   __gen_e_acsl_initialized_7);
+      __gen_e_acsl_assert_data_7.blocking = 1;
+      __gen_e_acsl_assert_data_7.kind = "Assertion";
+      __gen_e_acsl_assert_data_7.pred_txt = "\\initialized((char *)dest_0)";
+      __gen_e_acsl_assert_data_7.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_7.fct = "main";
+      __gen_e_acsl_assert_data_7.line = 26;
+      __e_acsl_assert(__gen_e_acsl_initialized_7,
+                      & __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
     }
     /*@ assert \initialized((char *)dest_0); */ ;
     {
       int __gen_e_acsl_size_7;
       int __gen_e_acsl_if_7;
       int __gen_e_acsl_initialized_8;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,
+                                   "(char *)dest_0",(void *)(dest_0));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_7 = 1 * ((3 - 1) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0,
+                                   __gen_e_acsl_size_7);
       if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0;
-      else __gen_e_acsl_if_7 = __gen_e_acsl_size_7;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0,
+                                     __gen_e_acsl_size_7);
+        __gen_e_acsl_if_7 = __gen_e_acsl_size_7;
+      }
       __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(dest_0 + 
                                                                  1 * 1),
                                                         (size_t)__gen_e_acsl_if_7);
-      __e_acsl_assert(! __gen_e_acsl_initialized_8,1,"Assertion","main",
-                      "!\\initialized(&dest_0[1 .. 3])","tests/libc/str.c",
-                      27);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "\\initialized(&dest_0[1 .. 3])",0,
+                                   __gen_e_acsl_initialized_8);
+      __gen_e_acsl_assert_data_8.blocking = 1;
+      __gen_e_acsl_assert_data_8.kind = "Assertion";
+      __gen_e_acsl_assert_data_8.pred_txt = "!\\initialized(&dest_0[1 .. 3])";
+      __gen_e_acsl_assert_data_8.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_8.fct = "main";
+      __gen_e_acsl_assert_data_8.line = 27;
+      __e_acsl_assert(! __gen_e_acsl_initialized_8,
+                      & __gen_e_acsl_assert_data_8);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
     }
-    /*@ assert ¬\initialized(&dest_0[1 .. 3]); */ ;
+    /*@ assert !\initialized(&dest_0[1 .. 3]); */ ;
     __e_acsl_delete_block((void *)(src_0));
     __e_acsl_delete_block((void *)(dest_0));
   }
@@ -673,29 +1063,76 @@ int main(void)
       int __gen_e_acsl_size_8;
       int __gen_e_acsl_if_8;
       int __gen_e_acsl_initialized_9;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,
+                                   "(char *)dest_1",(void *)(dest_1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_8 = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0,
+                                   __gen_e_acsl_size_8);
       if (__gen_e_acsl_size_8 <= 0) __gen_e_acsl_if_8 = 0;
-      else __gen_e_acsl_if_8 = __gen_e_acsl_size_8;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0,
+                                     __gen_e_acsl_size_8);
+        __gen_e_acsl_if_8 = __gen_e_acsl_size_8;
+      }
       __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(dest_1 + 
                                                                  1 * 0),
                                                         (size_t)__gen_e_acsl_if_8);
-      __e_acsl_assert(! __gen_e_acsl_initialized_9,1,"Assertion","main",
-                      "!\\initialized(&dest_1[0 .. 3])","tests/libc/str.c",
-                      32);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "\\initialized(&dest_1[0 .. 3])",0,
+                                   __gen_e_acsl_initialized_9);
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "Assertion";
+      __gen_e_acsl_assert_data_9.pred_txt = "!\\initialized(&dest_1[0 .. 3])";
+      __gen_e_acsl_assert_data_9.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_9.fct = "main";
+      __gen_e_acsl_assert_data_9.line = 32;
+      __e_acsl_assert(! __gen_e_acsl_initialized_9,
+                      & __gen_e_acsl_assert_data_9);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
     }
-    /*@ assert ¬\initialized(&dest_1[0 .. 3]); */ ;
+    /*@ assert !\initialized(&dest_1[0 .. 3]); */ ;
     {
       int __gen_e_acsl_size_9;
       int __gen_e_acsl_if_9;
       int __gen_e_acsl_initialized_10;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,
+                                   "(char *)src_1",(void *)(src_1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_9 = 1 * ((3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0,
+                                   __gen_e_acsl_size_9);
       if (__gen_e_acsl_size_9 <= 0) __gen_e_acsl_if_9 = 0;
-      else __gen_e_acsl_if_9 = __gen_e_acsl_size_9;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0,
+                                     __gen_e_acsl_size_9);
+        __gen_e_acsl_if_9 = __gen_e_acsl_size_9;
+      }
       __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(src_1 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_9);
-      __e_acsl_assert(__gen_e_acsl_initialized_10,1,"Assertion","main",
-                      "\\initialized(&src_1[0 .. 3])","tests/libc/str.c",33);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "\\initialized(&src_1[0 .. 3])",0,
+                                   __gen_e_acsl_initialized_10);
+      __gen_e_acsl_assert_data_10.blocking = 1;
+      __gen_e_acsl_assert_data_10.kind = "Assertion";
+      __gen_e_acsl_assert_data_10.pred_txt = "\\initialized(&src_1[0 .. 3])";
+      __gen_e_acsl_assert_data_10.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_10.fct = "main";
+      __gen_e_acsl_assert_data_10.line = 33;
+      __e_acsl_assert(__gen_e_acsl_initialized_10,
+                      & __gen_e_acsl_assert_data_10);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
     }
     /*@ assert \initialized(&src_1[0 .. 3]); */ ;
     __gen_e_acsl_strncpy(dest_1,(char const *)(src_1),(unsigned long)3);
@@ -703,24 +1140,64 @@ int main(void)
       int __gen_e_acsl_size_10;
       int __gen_e_acsl_if_10;
       int __gen_e_acsl_initialized_11;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,
+                                   "(char *)dest_1",(void *)(dest_1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_10 = 1 * ((2 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0,
+                                   __gen_e_acsl_size_10);
       if (__gen_e_acsl_size_10 <= 0) __gen_e_acsl_if_10 = 0;
-      else __gen_e_acsl_if_10 = __gen_e_acsl_size_10;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0,
+                                     __gen_e_acsl_size_10);
+        __gen_e_acsl_if_10 = __gen_e_acsl_size_10;
+      }
       __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(dest_1 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_10);
-      __e_acsl_assert(__gen_e_acsl_initialized_11,1,"Assertion","main",
-                      "\\initialized(&dest_1[0 .. 2])","tests/libc/str.c",36);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                   "\\initialized(&dest_1[0 .. 2])",0,
+                                   __gen_e_acsl_initialized_11);
+      __gen_e_acsl_assert_data_11.blocking = 1;
+      __gen_e_acsl_assert_data_11.kind = "Assertion";
+      __gen_e_acsl_assert_data_11.pred_txt = "\\initialized(&dest_1[0 .. 2])";
+      __gen_e_acsl_assert_data_11.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_11.fct = "main";
+      __gen_e_acsl_assert_data_11.line = 36;
+      __e_acsl_assert(__gen_e_acsl_initialized_11,
+                      & __gen_e_acsl_assert_data_11);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
     }
     /*@ assert \initialized(&dest_1[0 .. 2]); */ ;
     {
       int __gen_e_acsl_initialized_12;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,
+                                   "&dest_1[3]",(void *)(& dest_1[3]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& dest_1[3]),
                                                          sizeof(char));
-      __e_acsl_assert(! __gen_e_acsl_initialized_12,1,"Assertion","main",
-                      "!\\initialized(&dest_1[3])","tests/libc/str.c",37);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                   "\\initialized(&dest_1[3])",0,
+                                   __gen_e_acsl_initialized_12);
+      __gen_e_acsl_assert_data_12.blocking = 1;
+      __gen_e_acsl_assert_data_12.kind = "Assertion";
+      __gen_e_acsl_assert_data_12.pred_txt = "!\\initialized(&dest_1[3])";
+      __gen_e_acsl_assert_data_12.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_12.fct = "main";
+      __gen_e_acsl_assert_data_12.line = 37;
+      __e_acsl_assert(! __gen_e_acsl_initialized_12,
+                      & __gen_e_acsl_assert_data_12);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
     }
-    /*@ assert ¬\initialized(&dest_1[3]); */ ;
+    /*@ assert !\initialized(&dest_1[3]); */ ;
     __e_acsl_delete_block((void *)(src_1));
     __e_acsl_delete_block((void *)(dest_1));
   }
@@ -735,43 +1212,114 @@ int main(void)
       int __gen_e_acsl_size_11;
       int __gen_e_acsl_if_11;
       int __gen_e_acsl_initialized_13;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,
+                                   "(char *)dest_2",(void *)(dest_2));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_11 = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0,
+                                   __gen_e_acsl_size_11);
       if (__gen_e_acsl_size_11 <= 0) __gen_e_acsl_if_11 = 0;
-      else __gen_e_acsl_if_11 = __gen_e_acsl_size_11;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0,
+                                     __gen_e_acsl_size_11);
+        __gen_e_acsl_if_11 = __gen_e_acsl_size_11;
+      }
       __gen_e_acsl_initialized_13 = __e_acsl_initialized((void *)(dest_2 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_11);
-      __e_acsl_assert(__gen_e_acsl_initialized_13,1,"Assertion","main",
-                      "\\initialized(&dest_2[0 .. 1])","tests/libc/str.c",43);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                   "\\initialized(&dest_2[0 .. 1])",0,
+                                   __gen_e_acsl_initialized_13);
+      __gen_e_acsl_assert_data_13.blocking = 1;
+      __gen_e_acsl_assert_data_13.kind = "Assertion";
+      __gen_e_acsl_assert_data_13.pred_txt = "\\initialized(&dest_2[0 .. 1])";
+      __gen_e_acsl_assert_data_13.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_13.fct = "main";
+      __gen_e_acsl_assert_data_13.line = 43;
+      __e_acsl_assert(__gen_e_acsl_initialized_13,
+                      & __gen_e_acsl_assert_data_13);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
     }
     /*@ assert \initialized(&dest_2[0 .. 1]); */ ;
     {
       int __gen_e_acsl_size_12;
       int __gen_e_acsl_if_12;
       int __gen_e_acsl_initialized_14;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,
+                                   "(char *)dest_2",(void *)(dest_2));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_12 = 1 * ((3 - 2) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"size",0,
+                                   __gen_e_acsl_size_12);
       if (__gen_e_acsl_size_12 <= 0) __gen_e_acsl_if_12 = 0;
-      else __gen_e_acsl_if_12 = __gen_e_acsl_size_12;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"size",0,
+                                     __gen_e_acsl_size_12);
+        __gen_e_acsl_if_12 = __gen_e_acsl_size_12;
+      }
       __gen_e_acsl_initialized_14 = __e_acsl_initialized((void *)(dest_2 + 
                                                                   1 * 2),
                                                          (size_t)__gen_e_acsl_if_12);
-      __e_acsl_assert(! __gen_e_acsl_initialized_14,1,"Assertion","main",
-                      "!\\initialized(&dest_2[2 .. 3])","tests/libc/str.c",
-                      44);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,
+                                   "\\initialized(&dest_2[2 .. 3])",0,
+                                   __gen_e_acsl_initialized_14);
+      __gen_e_acsl_assert_data_14.blocking = 1;
+      __gen_e_acsl_assert_data_14.kind = "Assertion";
+      __gen_e_acsl_assert_data_14.pred_txt = "!\\initialized(&dest_2[2 .. 3])";
+      __gen_e_acsl_assert_data_14.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_14.fct = "main";
+      __gen_e_acsl_assert_data_14.line = 44;
+      __e_acsl_assert(! __gen_e_acsl_initialized_14,
+                      & __gen_e_acsl_assert_data_14);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
     }
-    /*@ assert ¬\initialized(&dest_2[2 .. 3]); */ ;
+    /*@ assert !\initialized(&dest_2[2 .. 3]); */ ;
     {
       int __gen_e_acsl_size_13;
       int __gen_e_acsl_if_13;
       int __gen_e_acsl_initialized_15;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,
+                                   "(char *)src_2",(void *)(src_2));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_13 = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"size",0,
+                                   __gen_e_acsl_size_13);
       if (__gen_e_acsl_size_13 <= 0) __gen_e_acsl_if_13 = 0;
-      else __gen_e_acsl_if_13 = __gen_e_acsl_size_13;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"size",0,
+                                     __gen_e_acsl_size_13);
+        __gen_e_acsl_if_13 = __gen_e_acsl_size_13;
+      }
       __gen_e_acsl_initialized_15 = __e_acsl_initialized((void *)(src_2 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_13);
-      __e_acsl_assert(__gen_e_acsl_initialized_15,1,"Assertion","main",
-                      "\\initialized(&src_2[0 .. 1])","tests/libc/str.c",45);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,
+                                   "\\initialized(&src_2[0 .. 1])",0,
+                                   __gen_e_acsl_initialized_15);
+      __gen_e_acsl_assert_data_15.blocking = 1;
+      __gen_e_acsl_assert_data_15.kind = "Assertion";
+      __gen_e_acsl_assert_data_15.pred_txt = "\\initialized(&src_2[0 .. 1])";
+      __gen_e_acsl_assert_data_15.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_15.fct = "main";
+      __gen_e_acsl_assert_data_15.line = 45;
+      __e_acsl_assert(__gen_e_acsl_initialized_15,
+                      & __gen_e_acsl_assert_data_15);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
     }
     /*@ assert \initialized(&src_2[0 .. 1]); */ ;
     __gen_e_acsl_strcat(dest_2,(char const *)(src_2));
@@ -779,24 +1327,64 @@ int main(void)
       int __gen_e_acsl_size_14;
       int __gen_e_acsl_if_14;
       int __gen_e_acsl_initialized_16;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,
+                                   "(char *)dest_2",(void *)(dest_2));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_14 = 1 * ((2 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0,
+                                   __gen_e_acsl_size_14);
       if (__gen_e_acsl_size_14 <= 0) __gen_e_acsl_if_14 = 0;
-      else __gen_e_acsl_if_14 = __gen_e_acsl_size_14;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0,
+                                     __gen_e_acsl_size_14);
+        __gen_e_acsl_if_14 = __gen_e_acsl_size_14;
+      }
       __gen_e_acsl_initialized_16 = __e_acsl_initialized((void *)(dest_2 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_14);
-      __e_acsl_assert(__gen_e_acsl_initialized_16,1,"Assertion","main",
-                      "\\initialized(&dest_2[0 .. 2])","tests/libc/str.c",48);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,
+                                   "\\initialized(&dest_2[0 .. 2])",0,
+                                   __gen_e_acsl_initialized_16);
+      __gen_e_acsl_assert_data_16.blocking = 1;
+      __gen_e_acsl_assert_data_16.kind = "Assertion";
+      __gen_e_acsl_assert_data_16.pred_txt = "\\initialized(&dest_2[0 .. 2])";
+      __gen_e_acsl_assert_data_16.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_16.fct = "main";
+      __gen_e_acsl_assert_data_16.line = 48;
+      __e_acsl_assert(__gen_e_acsl_initialized_16,
+                      & __gen_e_acsl_assert_data_16);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
     }
     /*@ assert \initialized(&dest_2[0 .. 2]); */ ;
     {
       int __gen_e_acsl_initialized_17;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,
+                                   "&dest_2[3]",(void *)(& dest_2[3]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_17 = __e_acsl_initialized((void *)(& dest_2[3]),
                                                          sizeof(char));
-      __e_acsl_assert(! __gen_e_acsl_initialized_17,1,"Assertion","main",
-                      "!\\initialized(&dest_2[3])","tests/libc/str.c",49);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,
+                                   "\\initialized(&dest_2[3])",0,
+                                   __gen_e_acsl_initialized_17);
+      __gen_e_acsl_assert_data_17.blocking = 1;
+      __gen_e_acsl_assert_data_17.kind = "Assertion";
+      __gen_e_acsl_assert_data_17.pred_txt = "!\\initialized(&dest_2[3])";
+      __gen_e_acsl_assert_data_17.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_17.fct = "main";
+      __gen_e_acsl_assert_data_17.line = 49;
+      __e_acsl_assert(! __gen_e_acsl_initialized_17,
+                      & __gen_e_acsl_assert_data_17);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
     }
-    /*@ assert ¬\initialized(&dest_2[3]); */ ;
+    /*@ assert !\initialized(&dest_2[3]); */ ;
     __e_acsl_delete_block((void *)(src_2));
     __e_acsl_delete_block((void *)(dest_2));
   }
@@ -811,43 +1399,114 @@ int main(void)
       int __gen_e_acsl_size_15;
       int __gen_e_acsl_if_15;
       int __gen_e_acsl_initialized_18;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,
+                                   "(char *)dest_3",(void *)(dest_3));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_15 = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"size",0,
+                                   __gen_e_acsl_size_15);
       if (__gen_e_acsl_size_15 <= 0) __gen_e_acsl_if_15 = 0;
-      else __gen_e_acsl_if_15 = __gen_e_acsl_size_15;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"size",0,
+                                     __gen_e_acsl_size_15);
+        __gen_e_acsl_if_15 = __gen_e_acsl_size_15;
+      }
       __gen_e_acsl_initialized_18 = __e_acsl_initialized((void *)(dest_3 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_15);
-      __e_acsl_assert(__gen_e_acsl_initialized_18,1,"Assertion","main",
-                      "\\initialized(&dest_3[0 .. 1])","tests/libc/str.c",55);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,
+                                   "\\initialized(&dest_3[0 .. 1])",0,
+                                   __gen_e_acsl_initialized_18);
+      __gen_e_acsl_assert_data_18.blocking = 1;
+      __gen_e_acsl_assert_data_18.kind = "Assertion";
+      __gen_e_acsl_assert_data_18.pred_txt = "\\initialized(&dest_3[0 .. 1])";
+      __gen_e_acsl_assert_data_18.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_18.fct = "main";
+      __gen_e_acsl_assert_data_18.line = 55;
+      __e_acsl_assert(__gen_e_acsl_initialized_18,
+                      & __gen_e_acsl_assert_data_18);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18);
     }
     /*@ assert \initialized(&dest_3[0 .. 1]); */ ;
     {
       int __gen_e_acsl_size_16;
       int __gen_e_acsl_if_16;
       int __gen_e_acsl_initialized_19;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_19,
+                                   "(char *)dest_3",(void *)(dest_3));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_16 = 1 * ((3 - 2) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,"size",0,
+                                   __gen_e_acsl_size_16);
       if (__gen_e_acsl_size_16 <= 0) __gen_e_acsl_if_16 = 0;
-      else __gen_e_acsl_if_16 = __gen_e_acsl_size_16;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,"size",0,
+                                     __gen_e_acsl_size_16);
+        __gen_e_acsl_if_16 = __gen_e_acsl_size_16;
+      }
       __gen_e_acsl_initialized_19 = __e_acsl_initialized((void *)(dest_3 + 
                                                                   1 * 2),
                                                          (size_t)__gen_e_acsl_if_16);
-      __e_acsl_assert(! __gen_e_acsl_initialized_19,1,"Assertion","main",
-                      "!\\initialized(&dest_3[2 .. 3])","tests/libc/str.c",
-                      56);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,
+                                   "\\initialized(&dest_3[2 .. 3])",0,
+                                   __gen_e_acsl_initialized_19);
+      __gen_e_acsl_assert_data_19.blocking = 1;
+      __gen_e_acsl_assert_data_19.kind = "Assertion";
+      __gen_e_acsl_assert_data_19.pred_txt = "!\\initialized(&dest_3[2 .. 3])";
+      __gen_e_acsl_assert_data_19.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_19.fct = "main";
+      __gen_e_acsl_assert_data_19.line = 56;
+      __e_acsl_assert(! __gen_e_acsl_initialized_19,
+                      & __gen_e_acsl_assert_data_19);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19);
     }
-    /*@ assert ¬\initialized(&dest_3[2 .. 3]); */ ;
+    /*@ assert !\initialized(&dest_3[2 .. 3]); */ ;
     {
       int __gen_e_acsl_size_17;
       int __gen_e_acsl_if_17;
       int __gen_e_acsl_initialized_20;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20,
+                                   "(char *)src_3",(void *)(src_3));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_17 = 1 * ((2 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,"size",0,
+                                   __gen_e_acsl_size_17);
       if (__gen_e_acsl_size_17 <= 0) __gen_e_acsl_if_17 = 0;
-      else __gen_e_acsl_if_17 = __gen_e_acsl_size_17;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,"size",0,
+                                     __gen_e_acsl_size_17);
+        __gen_e_acsl_if_17 = __gen_e_acsl_size_17;
+      }
       __gen_e_acsl_initialized_20 = __e_acsl_initialized((void *)(src_3 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_17);
-      __e_acsl_assert(__gen_e_acsl_initialized_20,1,"Assertion","main",
-                      "\\initialized(&src_3[0 .. 2])","tests/libc/str.c",57);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,
+                                   "\\initialized(&src_3[0 .. 2])",0,
+                                   __gen_e_acsl_initialized_20);
+      __gen_e_acsl_assert_data_20.blocking = 1;
+      __gen_e_acsl_assert_data_20.kind = "Assertion";
+      __gen_e_acsl_assert_data_20.pred_txt = "\\initialized(&src_3[0 .. 2])";
+      __gen_e_acsl_assert_data_20.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_20.fct = "main";
+      __gen_e_acsl_assert_data_20.line = 57;
+      __e_acsl_assert(__gen_e_acsl_initialized_20,
+                      & __gen_e_acsl_assert_data_20);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20);
     }
     /*@ assert \initialized(&src_3[0 .. 2]); */ ;
     __gen_e_acsl_strncat(dest_3,(char const *)(src_3),(unsigned long)1);
@@ -855,24 +1514,64 @@ int main(void)
       int __gen_e_acsl_size_18;
       int __gen_e_acsl_if_18;
       int __gen_e_acsl_initialized_21;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_21,
+                                   "(char *)dest_3",(void *)(dest_3));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_18 = 1 * ((2 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21,"size",0,
+                                   __gen_e_acsl_size_18);
       if (__gen_e_acsl_size_18 <= 0) __gen_e_acsl_if_18 = 0;
-      else __gen_e_acsl_if_18 = __gen_e_acsl_size_18;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21,"size",0,
+                                     __gen_e_acsl_size_18);
+        __gen_e_acsl_if_18 = __gen_e_acsl_size_18;
+      }
       __gen_e_acsl_initialized_21 = __e_acsl_initialized((void *)(dest_3 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_18);
-      __e_acsl_assert(__gen_e_acsl_initialized_21,1,"Assertion","main",
-                      "\\initialized(&dest_3[0 .. 2])","tests/libc/str.c",60);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21,
+                                   "\\initialized(&dest_3[0 .. 2])",0,
+                                   __gen_e_acsl_initialized_21);
+      __gen_e_acsl_assert_data_21.blocking = 1;
+      __gen_e_acsl_assert_data_21.kind = "Assertion";
+      __gen_e_acsl_assert_data_21.pred_txt = "\\initialized(&dest_3[0 .. 2])";
+      __gen_e_acsl_assert_data_21.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_21.fct = "main";
+      __gen_e_acsl_assert_data_21.line = 60;
+      __e_acsl_assert(__gen_e_acsl_initialized_21,
+                      & __gen_e_acsl_assert_data_21);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21);
     }
     /*@ assert \initialized(&dest_3[0 .. 2]); */ ;
     {
       int __gen_e_acsl_initialized_22;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_22,
+                                   "&dest_3[3]",(void *)(& dest_3[3]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_22,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_22 = __e_acsl_initialized((void *)(& dest_3[3]),
                                                          sizeof(char));
-      __e_acsl_assert(! __gen_e_acsl_initialized_22,1,"Assertion","main",
-                      "!\\initialized(&dest_3[3])","tests/libc/str.c",61);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,
+                                   "\\initialized(&dest_3[3])",0,
+                                   __gen_e_acsl_initialized_22);
+      __gen_e_acsl_assert_data_22.blocking = 1;
+      __gen_e_acsl_assert_data_22.kind = "Assertion";
+      __gen_e_acsl_assert_data_22.pred_txt = "!\\initialized(&dest_3[3])";
+      __gen_e_acsl_assert_data_22.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_22.fct = "main";
+      __gen_e_acsl_assert_data_22.line = 61;
+      __e_acsl_assert(! __gen_e_acsl_initialized_22,
+                      & __gen_e_acsl_assert_data_22);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22);
     }
-    /*@ assert ¬\initialized(&dest_3[3]); */ ;
+    /*@ assert !\initialized(&dest_3[3]); */ ;
     __e_acsl_delete_block((void *)(src_3));
     __e_acsl_delete_block((void *)(dest_3));
   }
@@ -887,43 +1586,114 @@ int main(void)
       int __gen_e_acsl_size_19;
       int __gen_e_acsl_if_19;
       int __gen_e_acsl_initialized_23;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_23,
+                                   "(char *)dest_4",(void *)(dest_4));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_19 = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"size",0,
+                                   __gen_e_acsl_size_19);
       if (__gen_e_acsl_size_19 <= 0) __gen_e_acsl_if_19 = 0;
-      else __gen_e_acsl_if_19 = __gen_e_acsl_size_19;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"size",0,
+                                     __gen_e_acsl_size_19);
+        __gen_e_acsl_if_19 = __gen_e_acsl_size_19;
+      }
       __gen_e_acsl_initialized_23 = __e_acsl_initialized((void *)(dest_4 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_19);
-      __e_acsl_assert(__gen_e_acsl_initialized_23,1,"Assertion","main",
-                      "\\initialized(&dest_4[0 .. 1])","tests/libc/str.c",67);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,
+                                   "\\initialized(&dest_4[0 .. 1])",0,
+                                   __gen_e_acsl_initialized_23);
+      __gen_e_acsl_assert_data_23.blocking = 1;
+      __gen_e_acsl_assert_data_23.kind = "Assertion";
+      __gen_e_acsl_assert_data_23.pred_txt = "\\initialized(&dest_4[0 .. 1])";
+      __gen_e_acsl_assert_data_23.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_23.fct = "main";
+      __gen_e_acsl_assert_data_23.line = 67;
+      __e_acsl_assert(__gen_e_acsl_initialized_23,
+                      & __gen_e_acsl_assert_data_23);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23);
     }
     /*@ assert \initialized(&dest_4[0 .. 1]); */ ;
     {
       int __gen_e_acsl_size_20;
       int __gen_e_acsl_if_20;
       int __gen_e_acsl_initialized_24;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_24 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_24,
+                                   "(char *)dest_4",(void *)(dest_4));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_20 = 1 * ((3 - 2) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,"size",0,
+                                   __gen_e_acsl_size_20);
       if (__gen_e_acsl_size_20 <= 0) __gen_e_acsl_if_20 = 0;
-      else __gen_e_acsl_if_20 = __gen_e_acsl_size_20;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,"size",0,
+                                     __gen_e_acsl_size_20);
+        __gen_e_acsl_if_20 = __gen_e_acsl_size_20;
+      }
       __gen_e_acsl_initialized_24 = __e_acsl_initialized((void *)(dest_4 + 
                                                                   1 * 2),
                                                          (size_t)__gen_e_acsl_if_20);
-      __e_acsl_assert(! __gen_e_acsl_initialized_24,1,"Assertion","main",
-                      "!\\initialized(&dest_4[2 .. 3])","tests/libc/str.c",
-                      68);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,
+                                   "\\initialized(&dest_4[2 .. 3])",0,
+                                   __gen_e_acsl_initialized_24);
+      __gen_e_acsl_assert_data_24.blocking = 1;
+      __gen_e_acsl_assert_data_24.kind = "Assertion";
+      __gen_e_acsl_assert_data_24.pred_txt = "!\\initialized(&dest_4[2 .. 3])";
+      __gen_e_acsl_assert_data_24.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_24.fct = "main";
+      __gen_e_acsl_assert_data_24.line = 68;
+      __e_acsl_assert(! __gen_e_acsl_initialized_24,
+                      & __gen_e_acsl_assert_data_24);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_24);
     }
-    /*@ assert ¬\initialized(&dest_4[2 .. 3]); */ ;
+    /*@ assert !\initialized(&dest_4[2 .. 3]); */ ;
     {
       int __gen_e_acsl_size_21;
       int __gen_e_acsl_if_21;
       int __gen_e_acsl_initialized_25;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_25 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_25,
+                                   "(char *)src_4",(void *)(src_4));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_21 = 1 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"size",0,
+                                   __gen_e_acsl_size_21);
       if (__gen_e_acsl_size_21 <= 0) __gen_e_acsl_if_21 = 0;
-      else __gen_e_acsl_if_21 = __gen_e_acsl_size_21;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"size",0,
+                                     __gen_e_acsl_size_21);
+        __gen_e_acsl_if_21 = __gen_e_acsl_size_21;
+      }
       __gen_e_acsl_initialized_25 = __e_acsl_initialized((void *)(src_4 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_21);
-      __e_acsl_assert(__gen_e_acsl_initialized_25,1,"Assertion","main",
-                      "\\initialized(&src_4[0 .. 1])","tests/libc/str.c",69);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,
+                                   "\\initialized(&src_4[0 .. 1])",0,
+                                   __gen_e_acsl_initialized_25);
+      __gen_e_acsl_assert_data_25.blocking = 1;
+      __gen_e_acsl_assert_data_25.kind = "Assertion";
+      __gen_e_acsl_assert_data_25.pred_txt = "\\initialized(&src_4[0 .. 1])";
+      __gen_e_acsl_assert_data_25.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_25.fct = "main";
+      __gen_e_acsl_assert_data_25.line = 69;
+      __e_acsl_assert(__gen_e_acsl_initialized_25,
+                      & __gen_e_acsl_assert_data_25);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_25);
     }
     /*@ assert \initialized(&src_4[0 .. 1]); */ ;
     __gen_e_acsl_strncat(dest_4,(char const *)(src_4),(unsigned long)2);
@@ -931,24 +1701,64 @@ int main(void)
       int __gen_e_acsl_size_22;
       int __gen_e_acsl_if_22;
       int __gen_e_acsl_initialized_26;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_26 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_26,
+                                   "(char *)dest_4",(void *)(dest_4));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,
+                                   "sizeof(char)",0,1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,
+                                   "sizeof(char)",0,1);
       __gen_e_acsl_size_22 = 1 * ((2 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,"size",0,
+                                   __gen_e_acsl_size_22);
       if (__gen_e_acsl_size_22 <= 0) __gen_e_acsl_if_22 = 0;
-      else __gen_e_acsl_if_22 = __gen_e_acsl_size_22;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,"size",0,
+                                     __gen_e_acsl_size_22);
+        __gen_e_acsl_if_22 = __gen_e_acsl_size_22;
+      }
       __gen_e_acsl_initialized_26 = __e_acsl_initialized((void *)(dest_4 + 
                                                                   1 * 0),
                                                          (size_t)__gen_e_acsl_if_22);
-      __e_acsl_assert(__gen_e_acsl_initialized_26,1,"Assertion","main",
-                      "\\initialized(&dest_4[0 .. 2])","tests/libc/str.c",72);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,
+                                   "\\initialized(&dest_4[0 .. 2])",0,
+                                   __gen_e_acsl_initialized_26);
+      __gen_e_acsl_assert_data_26.blocking = 1;
+      __gen_e_acsl_assert_data_26.kind = "Assertion";
+      __gen_e_acsl_assert_data_26.pred_txt = "\\initialized(&dest_4[0 .. 2])";
+      __gen_e_acsl_assert_data_26.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_26.fct = "main";
+      __gen_e_acsl_assert_data_26.line = 72;
+      __e_acsl_assert(__gen_e_acsl_initialized_26,
+                      & __gen_e_acsl_assert_data_26);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_26);
     }
     /*@ assert \initialized(&dest_4[0 .. 2]); */ ;
     {
       int __gen_e_acsl_initialized_27;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_27 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_27,
+                                   "&dest_4[3]",(void *)(& dest_4[3]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_27,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_initialized_27 = __e_acsl_initialized((void *)(& dest_4[3]),
                                                          sizeof(char));
-      __e_acsl_assert(! __gen_e_acsl_initialized_27,1,"Assertion","main",
-                      "!\\initialized(&dest_4[3])","tests/libc/str.c",73);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27,
+                                   "\\initialized(&dest_4[3])",0,
+                                   __gen_e_acsl_initialized_27);
+      __gen_e_acsl_assert_data_27.blocking = 1;
+      __gen_e_acsl_assert_data_27.kind = "Assertion";
+      __gen_e_acsl_assert_data_27.pred_txt = "!\\initialized(&dest_4[3])";
+      __gen_e_acsl_assert_data_27.file = "tests/libc/str.c";
+      __gen_e_acsl_assert_data_27.fct = "main";
+      __gen_e_acsl_assert_data_27.line = 73;
+      __e_acsl_assert(! __gen_e_acsl_initialized_27,
+                      & __gen_e_acsl_assert_data_27);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_27);
     }
-    /*@ assert ¬\initialized(&dest_4[3]); */ ;
+    /*@ assert !\initialized(&dest_4[3]); */ ;
     __e_acsl_delete_block((void *)(src_4));
     __e_acsl_delete_block((void *)(dest_4));
   }
diff --git a/src/plugins/e-acsl/tests/libc/oracle/mem.res.oracle b/src/plugins/e-acsl/tests/libc/oracle/mem.res.oracle
index 218f631f75fdad170fc5d433dd7a2b5c94346209..063513be8b69a14d5df4c5e2f38ba83debea7ce5 100644
--- a/src/plugins/e-acsl/tests/libc/oracle/mem.res.oracle
+++ b/src/plugins/e-acsl/tests/libc/oracle/mem.res.oracle
@@ -40,11 +40,98 @@
   E-ACSL construct `assigns clause in behavior' is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] FRAMAC_SHARE/libc/string.h:135: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/string.h:134: Warning: 
   function __gen_e_acsl_memset: postcondition 'acsl_c_equiv' got status unknown.
+[eva:alarm] tests/libc/mem.c:10: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:10: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:11: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:11: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:16: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:16: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:17: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:17: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:18: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:19: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:19: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:102: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/string.h:101: Warning: 
   function __gen_e_acsl_memcpy: postcondition 'copied_contents' got status unknown.
+[eva:alarm] tests/libc/mem.c:23: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:23: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:24: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:25: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:25: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:125: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/string.h:124: Warning: 
   function __gen_e_acsl_memmove: postcondition 'copied_contents' got status unknown.
+[eva:alarm] tests/libc/mem.c:28: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:29: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/mem.c:29: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/libc/oracle/sprintf.res.oracle b/src/plugins/e-acsl/tests/libc/oracle/sprintf.res.oracle
index e477cc3d8212ab45c130b864f2ea26044a9e2607..e3fd378172df44241adf78824a3738d7d6bae1d3 100644
--- a/src/plugins/e-acsl/tests/libc/oracle/sprintf.res.oracle
+++ b/src/plugins/e-acsl/tests/libc/oracle/sprintf.res.oracle
@@ -1,20 +1,53 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/libc/sprintf.c:10: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/sprintf.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/libc/sprintf.c:13: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/libc/sprintf.c:13: Warning: assertion got status unknown.
+[eva:alarm] tests/libc/sprintf.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/sprintf.c:14: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/libc/sprintf.c:14: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/libc/sprintf.c:14: Warning: assertion got status unknown.
+[eva:alarm] tests/libc/sprintf.c:18: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/sprintf.c:21: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/libc/sprintf.c:21: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/libc/sprintf.c:21: Warning: assertion got status unknown.
+[eva:alarm] tests/libc/sprintf.c:22: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/libc/sprintf.c:22: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/libc/sprintf.c:22: Warning: assertion got status unknown.
+[eva:alarm] tests/libc/sprintf.c:26: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/sprintf.c:29: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/libc/sprintf.c:29: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/libc/sprintf.c:29: Warning: assertion got status unknown.
+[eva:alarm] tests/libc/sprintf.c:30: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/sprintf.c:30: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/libc/sprintf.c:30: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/libc/sprintf.c:30: Warning: assertion got status unknown.
diff --git a/src/plugins/e-acsl/tests/libc/oracle/str.res.oracle b/src/plugins/e-acsl/tests/libc/oracle/str.res.oracle
index b9b98bcc628913f1dea52d98fb97c33115ee181c..2e04b464ae0b12258d1104ea66575204cfff0230 100644
--- a/src/plugins/e-acsl/tests/libc/oracle/str.res.oracle
+++ b/src/plugins/e-acsl/tests/libc/oracle/str.res.oracle
@@ -136,10 +136,31 @@
   E-ACSL construct `assigns clause in behavior' is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/libc/str.c:12: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/str.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/string.h:367: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:374: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/string.h:373: Warning: 
   function __gen_e_acsl_strcpy: postcondition 'equal_contents' got status unknown.
+[eva:alarm] tests/libc/str.c:16: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/libc/str.c:16: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/libc/str.c:16: Warning: assertion got status unknown.
+[eva:alarm] tests/libc/str.c:17: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/str.c:22: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/libc/str.c:23: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/addrOf.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/addrOf.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..cf9fff8f793ad2c431c3fe57db34b9dbae3c06ed 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/addrOf.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/addrOf.res.oracle
@@ -1,2 +1,11 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/addrOf.i:10: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/addrOf.i:10: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/addrOf.i:16: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/alias.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/alias.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..5a764aec8287bf767cec6397ea67d06acd2dfaff 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/alias.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/alias.res.oracle
@@ -1,2 +1,8 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/alias.i:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/alias.i:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/array_overflow.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/array_overflow.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..edbaf9d69d262c617cb8811beffbe7a1e41161f8 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/array_overflow.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/array_overflow.res.oracle
@@ -1,2 +1,26 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/array_overflow.c:31: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/array_overflow.c:31: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/array_overflow.c:36: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/array_overflow.c:36: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/array_overflow.c:42: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/array_overflow.c:42: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/array_overflow.c:43: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/array_overflow.c:43: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/base_addr.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/base_addr.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..fa9837aeceda7a26e668d47e235ebf50ce7ac37a 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/base_addr.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/base_addr.res.oracle
@@ -1,2 +1,71 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/base_addr.c:13: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:14: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:15: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:17: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:18: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:25: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:26: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:27: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:29: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:30: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:35: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:36: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:40: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:41: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:46: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:47: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:48: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:50: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:51: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:57: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:59: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:61: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/base_addr.c:63: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/block_length.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/block_length.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..abce1f03dd5d982d61bfcf3ba2a0aaa976861423 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/block_length.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/block_length.res.oracle
@@ -1,2 +1,125 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/block_length.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:14: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:17: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:17: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:17: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:22: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:22: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:23: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:23: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:24: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:24: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:26: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:26: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:26: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:32: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:32: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:33: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:33: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:34: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:34: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:36: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:36: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:36: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:38: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:38: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:38: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:43: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:43: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:44: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:44: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:46: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:46: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:46: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:52: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:52: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:54: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_length.c:54: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/block_valid.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/block_valid.res.oracle
index 391720dab80eb827c5e58ab5259c4a25000d433e..a016798e7d4cff10a66ca3de32b5be18cae68d2a 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/block_valid.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/block_valid.res.oracle
@@ -1,13 +1,91 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/block_valid.c:19: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:19: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:19: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:19: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:21: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:21: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:24: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:24: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:24: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:24: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:26: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:26: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:44: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:44: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:44: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:44: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/block_valid.c:44: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/block_valid.c:45: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:45: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:45: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:45: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/block_valid.c:45: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/block_valid.c:47: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:47: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:47: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/block_valid.c:47: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/memory/block_valid.c:47: Warning: 
   assertion got status unknown.
+[eva:alarm] tests/memory/block_valid.c:49: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:49: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/block_valid.c:49: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/block_valid.c:49: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/memory/block_valid.c:49: Warning: 
diff --git a/src/plugins/e-acsl/tests/memory/oracle/bypassed_var.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/bypassed_var.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..0b45c4d7bc7732256b8c7ab4ce696812463ab9f9 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/bypassed_var.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/bypassed_var.res.oracle
@@ -1,2 +1,8 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/bypassed_var.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/bypassed_var.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/call.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/call.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..c0c951a8d3accb1968f964c8d7baa85b7bc1c106 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/call.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/call.res.oracle
@@ -1,2 +1,8 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/call.c:7: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/call.c:7: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/compound_initializers.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/compound_initializers.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..ad59073eae02d11d24cb5eb1a3f1992161107aa9 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/compound_initializers.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/compound_initializers.res.oracle
@@ -1,2 +1,68 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/compound_initializers.c:23: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:23: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:24: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:24: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:24: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:24: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:25: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:25: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:25: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:25: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:26: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:26: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:27: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:27: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:28: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:28: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:29: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:29: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:30: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:30: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:32: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/compound_initializers.c:32: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/decl_in_switch.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/decl_in_switch.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..067f47f9b04b73ef9b055a7c34b51f764558cf8a 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/decl_in_switch.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/decl_in_switch.res.oracle
@@ -1,2 +1,32 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/decl_in_switch.c:22: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/decl_in_switch.c:22: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/decl_in_switch.c:30: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/decl_in_switch.c:30: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/decl_in_switch.c:45: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/decl_in_switch.c:45: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/decl_in_switch.c:74: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/decl_in_switch.c:74: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/decl_in_switch.c:80: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/decl_in_switch.c:80: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/early_exit.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/early_exit.res.oracle
index 965ff85803169a13ec505dc05504dd6b12557d30..162e8c59c130bc048b544ecb0d972b4cc598b6cc 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/early_exit.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/early_exit.res.oracle
@@ -1,7 +1,24 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/early_exit.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/early_exit.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/early_exit.c:13: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/early_exit.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:locals-escaping] tests/memory/early_exit.c:14: Warning: 
   locals {a} escaping the scope of a block of goto_bts through p
 [eva:alarm] tests/memory/early_exit.c:18: Warning: 
-  accessing left-value that contains escaping addresses.
-  assert ¬\dangling(&p);
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/early_exit.c:18: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/early_exit.c:18: Warning: 
+  accessing left-value that contains escaping addresses. assert !\dangling(&p);
diff --git a/src/plugins/e-acsl/tests/memory/oracle/errno.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/errno.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..9ded20926422eeb54a5a7f00be68e0dda8800783 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/errno.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/errno.res.oracle
@@ -1,2 +1,14 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/errno.c:11: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/errno.c:11: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/errno.c:11: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/errno.c:11: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_addrOf.c b/src/plugins/e-acsl/tests/memory/oracle/gen_addrOf.c
index 77eb66c73434ef0a19ff2a79c1618a08e4cef21e..f61ad04efb3ee5089040def3cd8832a77b7140da 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_addrOf.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_addrOf.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -20,9 +20,22 @@ void f(void)
   m = 123;
   {
     int __gen_e_acsl_initialized;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)p,sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","f",
-                    "\\initialized(p)","tests/memory/addrOf.i",10);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(p)",0,
+                                 __gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\initialized(p)";
+    __gen_e_acsl_assert_data.file = "tests/memory/addrOf.i";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 10;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \initialized(p); */ ;
   __e_acsl_delete_block((void *)(& p));
@@ -37,9 +50,22 @@ int main(void)
   __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int x = 0;
   f();
-  __e_acsl_assert(& x == & x,1,"Assertion","main","&x == &x",
-                  "tests/memory/addrOf.i",16);
-  /*@ assert &x ≡ &x; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&x",
+                                 (void *)(& x));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&x",
+                                 (void *)(& x));
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "&x == &x";
+    __gen_e_acsl_assert_data.file = "tests/memory/addrOf.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 16;
+    __e_acsl_assert(& x == & x,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert &x == &x; */ ;
   __retres = 0;
   __e_acsl_memory_clean();
   return __retres;
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_alias.c b/src/plugins/e-acsl/tests/memory/oracle/gen_alias.c
index c056a0c0b85eeb3ddc2fde3335ac14824a34261a..8fde27e576fe0037c66076b0985c5d5ac5e1ae7d 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_alias.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_alias.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -26,10 +26,24 @@ int main(void)
   f(& i,255);
   {
     int __gen_e_acsl_initialized;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&i",
+                                 (void *)(& i));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& i),
                                                     sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main",
-                    "\\initialized(&i)","tests/memory/alias.i",13);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&i)",0,
+                                 __gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\initialized(&i)";
+    __gen_e_acsl_assert_data.file = "tests/memory/alias.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 13;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \initialized(&i); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_array_overflow.c b/src/plugins/e-acsl/tests/memory/oracle/gen_array_overflow.c
index 9ddd7c0b569e52ac51fabaf2ece1c78ecb2847ee..5063118cbb709273aa4f1f3483c53ccdebfcdae0 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_array_overflow.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_array_overflow.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -30,27 +31,55 @@ int main(void)
   int b[4] = {5, 6, 7, 8};
   {
     int __gen_e_acsl_valid;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a[4]",
+                                 (void *)(& a[4]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)(& a[4]),sizeof(int),
                                         (void *)(a),(void *)0);
-    __e_acsl_assert(! __gen_e_acsl_valid,1,"Assertion","main",
-                    "!\\valid(&a[4])","tests/memory/array_overflow.c",31);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&a[4])",
+                                 0,__gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "!\\valid(&a[4])";
+    __gen_e_acsl_assert_data.file = "tests/memory/array_overflow.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 31;
+    __e_acsl_assert(! __gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert ¬\valid(&a[4]); */ ;
+  /*@ assert !\valid(&a[4]); */ ;
   int *ap = a;
   __e_acsl_store_block((void *)(& ap),(size_t)8);
   __e_acsl_full_init((void *)(& ap));
   int *bp = b;
   {
     int __gen_e_acsl_valid_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,
+                                 "&(*((int (*)[])ap))[4]",
+                                 (void *)(& (*((int (*)[])ap))[4]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& (*((int (*)[])ap))[4]),
                                           sizeof(int),
                                           (void *)(*((int (*)[])ap)),
                                           (void *)0);
-    __e_acsl_assert(! __gen_e_acsl_valid_2,1,"Assertion","main",
-                    "!\\valid(&(*((int (*)[])ap))[4])",
-                    "tests/memory/array_overflow.c",36);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\valid(&(*((int (*)[])ap))[4])",0,
+                                 __gen_e_acsl_valid_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(&(*((int (*)[])ap))[4])";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/array_overflow.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 36;
+    __e_acsl_assert(! __gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert ¬\valid(&(*((int (*)[])ap))[4]); */ ;
+  /*@ assert !\valid(&(*((int (*)[])ap))[4]); */ ;
   struct dat d = {.arr = {4, 5, 6, 7}};
   __e_acsl_store_block((void *)(& d),(size_t)16);
   __e_acsl_full_init((void *)(& d));
@@ -62,21 +91,50 @@ int main(void)
   __e_acsl_full_init((void *)(& d2));
   {
     int __gen_e_acsl_valid_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&d.arr[4]",
+                                 (void *)(& d.arr[4]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_3 = __e_acsl_valid((void *)(& d.arr[4]),sizeof(int),
                                           (void *)(& d.arr[0]),(void *)0);
-    __e_acsl_assert(! __gen_e_acsl_valid_3,1,"Assertion","main",
-                    "!\\valid(&d.arr[4])","tests/memory/array_overflow.c",42);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\valid(&d.arr[4])",0,__gen_e_acsl_valid_3);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "!\\valid(&d.arr[4])";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/array_overflow.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 42;
+    __e_acsl_assert(! __gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert ¬\valid(&d.arr[4]); */ ;
+  /*@ assert !\valid(&d.arr[4]); */ ;
   {
     int __gen_e_acsl_valid_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,
+                                 "&(d2.p[1])->arr[2]",
+                                 (void *)(& (d2.p[1])->arr[2]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(& (d2.p[1])->arr[2]),
                                           sizeof(int),
                                           (void *)(& (d2.p[1])->arr[0]),
                                           (void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_4,1,"Assertion","main",
-                    "\\valid(&(d2.p[1])->arr[2])",
-                    "tests/memory/array_overflow.c",43);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\valid(&(d2.p[1])->arr[2])",0,
+                                 __gen_e_acsl_valid_4);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\valid(&(d2.p[1])->arr[2])";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/array_overflow.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 43;
+    __e_acsl_assert(__gen_e_acsl_valid_4,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
   /*@ assert \valid(&(d2.p[1])->arr[2]); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_base_addr.c b/src/plugins/e-acsl/tests/memory/oracle/gen_base_addr.c
index df3b503ecb9c9d7a4cfecbc76de75042ff1ab23a..f2d790c6c669a71a568f4715f273b81038ce508b 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_base_addr.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_base_addr.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -37,59 +38,119 @@ int main(void)
   {
     void *__gen_e_acsl_base_addr;
     void *__gen_e_acsl_base_addr_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gen_e_acsl_base_addr = __e_acsl_base_addr((void *)(A));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,
+                                 "\\base_addr((int *)A)",
+                                 __gen_e_acsl_base_addr);
     __gen_e_acsl_base_addr_2 = __e_acsl_base_addr((void *)(& A));
-    __e_acsl_assert(__gen_e_acsl_base_addr == __gen_e_acsl_base_addr_2,1,
-                    "Assertion","main",
-                    "\\base_addr((int *)A) == \\base_addr(&A)",
-                    "tests/memory/base_addr.c",13);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,
+                                 "\\base_addr(&A)",__gen_e_acsl_base_addr_2);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\base_addr((int *)A) == \\base_addr(&A)";
+    __gen_e_acsl_assert_data.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 13;
+    __e_acsl_assert(__gen_e_acsl_base_addr == __gen_e_acsl_base_addr_2,
+                    & __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert \base_addr((int *)A) ≡ \base_addr(&A); */ ;
+  /*@ assert \base_addr((int *)A) == \base_addr(&A); */ ;
   {
     void *__gen_e_acsl_base_addr_3;
     void *__gen_e_acsl_base_addr_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_3 = __e_acsl_base_addr((void *)(A));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,
+                                 "\\base_addr((int *)A)",
+                                 __gen_e_acsl_base_addr_3);
     __gen_e_acsl_base_addr_4 = __e_acsl_base_addr((void *)PA);
-    __e_acsl_assert(__gen_e_acsl_base_addr_3 == __gen_e_acsl_base_addr_4,1,
-                    "Assertion","main",
-                    "\\base_addr((int *)A) == \\base_addr(PA)",
-                    "tests/memory/base_addr.c",14);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,
+                                 "\\base_addr(PA)",__gen_e_acsl_base_addr_4);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\base_addr((int *)A) == \\base_addr(PA)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 14;
+    __e_acsl_assert(__gen_e_acsl_base_addr_3 == __gen_e_acsl_base_addr_4,
+                    & __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert \base_addr((int *)A) ≡ \base_addr(PA); */ ;
+  /*@ assert \base_addr((int *)A) == \base_addr(PA); */ ;
   {
     void *__gen_e_acsl_base_addr_5;
     void *__gen_e_acsl_base_addr_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_5 = __e_acsl_base_addr((void *)(& A[3]));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                 "\\base_addr(&A[3])",
+                                 __gen_e_acsl_base_addr_5);
     __gen_e_acsl_base_addr_6 = __e_acsl_base_addr((void *)PA);
-    __e_acsl_assert(__gen_e_acsl_base_addr_5 == __gen_e_acsl_base_addr_6,1,
-                    "Assertion","main",
-                    "\\base_addr(&A[3]) == \\base_addr(PA)",
-                    "tests/memory/base_addr.c",15);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                 "\\base_addr(PA)",__gen_e_acsl_base_addr_6);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\base_addr(&A[3]) == \\base_addr(PA)";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 15;
+    __e_acsl_assert(__gen_e_acsl_base_addr_5 == __gen_e_acsl_base_addr_6,
+                    & __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert \base_addr(&A[3]) ≡ \base_addr(PA); */ ;
+  /*@ assert \base_addr(&A[3]) == \base_addr(PA); */ ;
   PA ++;
   {
     void *__gen_e_acsl_base_addr_7;
     void *__gen_e_acsl_base_addr_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_7 = __e_acsl_base_addr((void *)PA);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,
+                                 "\\base_addr(PA)",__gen_e_acsl_base_addr_7);
     __gen_e_acsl_base_addr_8 = __e_acsl_base_addr((void *)(A));
-    __e_acsl_assert(__gen_e_acsl_base_addr_7 == __gen_e_acsl_base_addr_8,1,
-                    "Assertion","main",
-                    "\\base_addr(PA) == \\base_addr((int *)A)",
-                    "tests/memory/base_addr.c",17);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,
+                                 "\\base_addr((int *)A)",
+                                 __gen_e_acsl_base_addr_8);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\base_addr(PA) == \\base_addr((int *)A)";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 17;
+    __e_acsl_assert(__gen_e_acsl_base_addr_7 == __gen_e_acsl_base_addr_8,
+                    & __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  /*@ assert \base_addr(PA) ≡ \base_addr((int *)A); */ ;
+  /*@ assert \base_addr(PA) == \base_addr((int *)A); */ ;
   {
     void *__gen_e_acsl_base_addr_9;
     void *__gen_e_acsl_base_addr_10;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_9 = __e_acsl_base_addr((void *)(PA + 2));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,
+                                 "\\base_addr(PA + 2)",
+                                 __gen_e_acsl_base_addr_9);
     __gen_e_acsl_base_addr_10 = __e_acsl_base_addr((void *)(& A[3]));
-    __e_acsl_assert(__gen_e_acsl_base_addr_9 == __gen_e_acsl_base_addr_10,1,
-                    "Assertion","main",
-                    "\\base_addr(PA + 2) == \\base_addr(&A[3])",
-                    "tests/memory/base_addr.c",18);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,
+                                 "\\base_addr(&A[3])",
+                                 __gen_e_acsl_base_addr_10);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "\\base_addr(PA + 2) == \\base_addr(&A[3])";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 18;
+    __e_acsl_assert(__gen_e_acsl_base_addr_9 == __gen_e_acsl_base_addr_10,
+                    & __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert \base_addr(PA + 2) ≡ \base_addr(&A[3]); */ ;
+  /*@ assert \base_addr(PA + 2) == \base_addr(&A[3]); */ ;
   int a[4] = {1, 2, 3, 4};
   __e_acsl_store_block((void *)(a),(size_t)16);
   __e_acsl_full_init((void *)(& a));
@@ -98,60 +159,121 @@ int main(void)
   {
     void *__gen_e_acsl_base_addr_11;
     void *__gen_e_acsl_base_addr_12;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_11 = __e_acsl_base_addr((void *)(a));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,
+                                 "\\base_addr((int *)a)",
+                                 __gen_e_acsl_base_addr_11);
     __gen_e_acsl_base_addr_12 = __e_acsl_base_addr((void *)(& a));
-    __e_acsl_assert(__gen_e_acsl_base_addr_11 == __gen_e_acsl_base_addr_12,1,
-                    "Assertion","main",
-                    "\\base_addr((int *)a) == \\base_addr(&a)",
-                    "tests/memory/base_addr.c",25);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,
+                                 "\\base_addr(&a)",__gen_e_acsl_base_addr_12);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "\\base_addr((int *)a) == \\base_addr(&a)";
+    __gen_e_acsl_assert_data_6.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 25;
+    __e_acsl_assert(__gen_e_acsl_base_addr_11 == __gen_e_acsl_base_addr_12,
+                    & __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
-  /*@ assert \base_addr((int *)a) ≡ \base_addr(&a); */ ;
+  /*@ assert \base_addr((int *)a) == \base_addr(&a); */ ;
   {
     void *__gen_e_acsl_base_addr_13;
     void *__gen_e_acsl_base_addr_14;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_13 = __e_acsl_base_addr((void *)(a));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,
+                                 "\\base_addr((int *)a)",
+                                 __gen_e_acsl_base_addr_13);
     __gen_e_acsl_base_addr_14 = __e_acsl_base_addr((void *)pa);
-    __e_acsl_assert(__gen_e_acsl_base_addr_13 == __gen_e_acsl_base_addr_14,1,
-                    "Assertion","main",
-                    "\\base_addr((int *)a) == \\base_addr(pa)",
-                    "tests/memory/base_addr.c",26);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,
+                                 "\\base_addr(pa)",__gen_e_acsl_base_addr_14);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "\\base_addr((int *)a) == \\base_addr(pa)";
+    __gen_e_acsl_assert_data_7.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 26;
+    __e_acsl_assert(__gen_e_acsl_base_addr_13 == __gen_e_acsl_base_addr_14,
+                    & __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
-  /*@ assert \base_addr((int *)a) ≡ \base_addr(pa); */ ;
+  /*@ assert \base_addr((int *)a) == \base_addr(pa); */ ;
   {
     void *__gen_e_acsl_base_addr_15;
     void *__gen_e_acsl_base_addr_16;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_15 = __e_acsl_base_addr((void *)(& a[3]));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,
+                                 "\\base_addr(&a[3])",
+                                 __gen_e_acsl_base_addr_15);
     __gen_e_acsl_base_addr_16 = __e_acsl_base_addr((void *)pa);
-    __e_acsl_assert(__gen_e_acsl_base_addr_15 == __gen_e_acsl_base_addr_16,1,
-                    "Assertion","main",
-                    "\\base_addr(&a[3]) == \\base_addr(pa)",
-                    "tests/memory/base_addr.c",27);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,
+                                 "\\base_addr(pa)",__gen_e_acsl_base_addr_16);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "\\base_addr(&a[3]) == \\base_addr(pa)";
+    __gen_e_acsl_assert_data_8.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 27;
+    __e_acsl_assert(__gen_e_acsl_base_addr_15 == __gen_e_acsl_base_addr_16,
+                    & __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
-  /*@ assert \base_addr(&a[3]) ≡ \base_addr(pa); */ ;
+  /*@ assert \base_addr(&a[3]) == \base_addr(pa); */ ;
   __e_acsl_full_init((void *)(& pa));
   pa ++;
   {
     void *__gen_e_acsl_base_addr_17;
     void *__gen_e_acsl_base_addr_18;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_17 = __e_acsl_base_addr((void *)pa);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,
+                                 "\\base_addr(pa)",__gen_e_acsl_base_addr_17);
     __gen_e_acsl_base_addr_18 = __e_acsl_base_addr((void *)(a));
-    __e_acsl_assert(__gen_e_acsl_base_addr_17 == __gen_e_acsl_base_addr_18,1,
-                    "Assertion","main",
-                    "\\base_addr(pa) == \\base_addr((int *)a)",
-                    "tests/memory/base_addr.c",29);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,
+                                 "\\base_addr((int *)a)",
+                                 __gen_e_acsl_base_addr_18);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "\\base_addr(pa) == \\base_addr((int *)a)";
+    __gen_e_acsl_assert_data_9.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 29;
+    __e_acsl_assert(__gen_e_acsl_base_addr_17 == __gen_e_acsl_base_addr_18,
+                    & __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
-  /*@ assert \base_addr(pa) ≡ \base_addr((int *)a); */ ;
+  /*@ assert \base_addr(pa) == \base_addr((int *)a); */ ;
   {
     void *__gen_e_acsl_base_addr_19;
     void *__gen_e_acsl_base_addr_20;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_19 = __e_acsl_base_addr((void *)(pa + 2));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,
+                                 "\\base_addr(pa + 2)",
+                                 __gen_e_acsl_base_addr_19);
     __gen_e_acsl_base_addr_20 = __e_acsl_base_addr((void *)(a));
-    __e_acsl_assert(__gen_e_acsl_base_addr_19 == __gen_e_acsl_base_addr_20,1,
-                    "Assertion","main",
-                    "\\base_addr(pa + 2) == \\base_addr((int *)a)",
-                    "tests/memory/base_addr.c",30);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,
+                                 "\\base_addr((int *)a)",
+                                 __gen_e_acsl_base_addr_20);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "\\base_addr(pa + 2) == \\base_addr((int *)a)";
+    __gen_e_acsl_assert_data_10.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 30;
+    __e_acsl_assert(__gen_e_acsl_base_addr_19 == __gen_e_acsl_base_addr_20,
+                    & __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
   }
-  /*@ assert \base_addr(pa + 2) ≡ \base_addr((int *)a); */ ;
+  /*@ assert \base_addr(pa + 2) == \base_addr((int *)a); */ ;
   long l = (long)4;
   __e_acsl_store_block((void *)(& l),(size_t)8);
   __e_acsl_full_init((void *)(& l));
@@ -161,24 +283,48 @@ int main(void)
   {
     void *__gen_e_acsl_base_addr_21;
     void *__gen_e_acsl_base_addr_22;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_21 = __e_acsl_base_addr((void *)(& l));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,
+                                 "\\base_addr(&l)",__gen_e_acsl_base_addr_21);
     __gen_e_acsl_base_addr_22 = __e_acsl_base_addr((void *)pl);
-    __e_acsl_assert(__gen_e_acsl_base_addr_21 == __gen_e_acsl_base_addr_22,1,
-                    "Assertion","main","\\base_addr(&l) == \\base_addr(pl)",
-                    "tests/memory/base_addr.c",35);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,
+                                 "\\base_addr(pl)",__gen_e_acsl_base_addr_22);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "\\base_addr(&l) == \\base_addr(pl)";
+    __gen_e_acsl_assert_data_11.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 35;
+    __e_acsl_assert(__gen_e_acsl_base_addr_21 == __gen_e_acsl_base_addr_22,
+                    & __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
   }
-  /*@ assert \base_addr(&l) ≡ \base_addr(pl); */ ;
+  /*@ assert \base_addr(&l) == \base_addr(pl); */ ;
   {
     void *__gen_e_acsl_base_addr_23;
     void *__gen_e_acsl_base_addr_24;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_23 = __e_acsl_base_addr((void *)(pl + 2));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,
+                                 "\\base_addr(pl + 2)",
+                                 __gen_e_acsl_base_addr_23);
     __gen_e_acsl_base_addr_24 = __e_acsl_base_addr((void *)(& l));
-    __e_acsl_assert(__gen_e_acsl_base_addr_23 == __gen_e_acsl_base_addr_24,1,
-                    "Assertion","main",
-                    "\\base_addr(pl + 2) == \\base_addr(&l)",
-                    "tests/memory/base_addr.c",36);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,
+                                 "\\base_addr(&l)",__gen_e_acsl_base_addr_24);
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "\\base_addr(pl + 2) == \\base_addr(&l)";
+    __gen_e_acsl_assert_data_12.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 36;
+    __e_acsl_assert(__gen_e_acsl_base_addr_23 == __gen_e_acsl_base_addr_24,
+                    & __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
   }
-  /*@ assert \base_addr(pl + 2) ≡ \base_addr(&l); */ ;
+  /*@ assert \base_addr(pl + 2) == \base_addr(&l); */ ;
   short *pi = (short *)(& l);
   __e_acsl_store_block((void *)(& pi),(size_t)8);
   __e_acsl_full_init((void *)(& pi));
@@ -189,23 +335,47 @@ int main(void)
   {
     void *__gen_e_acsl_base_addr_25;
     void *__gen_e_acsl_base_addr_26;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_25 = __e_acsl_base_addr((void *)pi);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,
+                                 "\\base_addr(pi)",__gen_e_acsl_base_addr_25);
     __gen_e_acsl_base_addr_26 = __e_acsl_base_addr((void *)pl);
-    __e_acsl_assert(__gen_e_acsl_base_addr_25 == __gen_e_acsl_base_addr_26,1,
-                    "Assertion","main","\\base_addr(pi) == \\base_addr(pl)",
-                    "tests/memory/base_addr.c",40);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,
+                                 "\\base_addr(pl)",__gen_e_acsl_base_addr_26);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "\\base_addr(pi) == \\base_addr(pl)";
+    __gen_e_acsl_assert_data_13.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 40;
+    __e_acsl_assert(__gen_e_acsl_base_addr_25 == __gen_e_acsl_base_addr_26,
+                    & __gen_e_acsl_assert_data_13);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
   }
-  /*@ assert \base_addr(pi) ≡ \base_addr(pl); */ ;
+  /*@ assert \base_addr(pi) == \base_addr(pl); */ ;
   {
     void *__gen_e_acsl_base_addr_27;
     void *__gen_e_acsl_base_addr_28;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_27 = __e_acsl_base_addr((void *)pl);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,
+                                 "\\base_addr(pl)",__gen_e_acsl_base_addr_27);
     __gen_e_acsl_base_addr_28 = __e_acsl_base_addr((void *)(& l));
-    __e_acsl_assert(__gen_e_acsl_base_addr_27 == __gen_e_acsl_base_addr_28,1,
-                    "Assertion","main","\\base_addr(pl) == \\base_addr(&l)",
-                    "tests/memory/base_addr.c",41);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,
+                                 "\\base_addr(&l)",__gen_e_acsl_base_addr_28);
+    __gen_e_acsl_assert_data_14.blocking = 1;
+    __gen_e_acsl_assert_data_14.kind = "Assertion";
+    __gen_e_acsl_assert_data_14.pred_txt = "\\base_addr(pl) == \\base_addr(&l)";
+    __gen_e_acsl_assert_data_14.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_14.fct = "main";
+    __gen_e_acsl_assert_data_14.line = 41;
+    __e_acsl_assert(__gen_e_acsl_base_addr_27 == __gen_e_acsl_base_addr_28,
+                    & __gen_e_acsl_assert_data_14);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
   }
-  /*@ assert \base_addr(pl) ≡ \base_addr(&l); */ ;
+  /*@ assert \base_addr(pl) == \base_addr(&l); */ ;
   char *p = malloc((unsigned long)12);
   __e_acsl_store_block((void *)(& p),(size_t)8);
   __e_acsl_full_init((void *)(& p));
@@ -215,59 +385,121 @@ int main(void)
   {
     void *__gen_e_acsl_base_addr_29;
     void *__gen_e_acsl_base_addr_30;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_29 = __e_acsl_base_addr((void *)p);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,
+                                 "\\base_addr(p)",__gen_e_acsl_base_addr_29);
     __gen_e_acsl_base_addr_30 = __e_acsl_base_addr((void *)pd);
-    __e_acsl_assert(__gen_e_acsl_base_addr_29 == __gen_e_acsl_base_addr_30,1,
-                    "Assertion","main","\\base_addr(p) == \\base_addr(pd)",
-                    "tests/memory/base_addr.c",46);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,
+                                 "\\base_addr(pd)",__gen_e_acsl_base_addr_30);
+    __gen_e_acsl_assert_data_15.blocking = 1;
+    __gen_e_acsl_assert_data_15.kind = "Assertion";
+    __gen_e_acsl_assert_data_15.pred_txt = "\\base_addr(p) == \\base_addr(pd)";
+    __gen_e_acsl_assert_data_15.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_15.fct = "main";
+    __gen_e_acsl_assert_data_15.line = 46;
+    __e_acsl_assert(__gen_e_acsl_base_addr_29 == __gen_e_acsl_base_addr_30,
+                    & __gen_e_acsl_assert_data_15);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
   }
-  /*@ assert \base_addr(p) ≡ \base_addr(pd); */ ;
+  /*@ assert \base_addr(p) == \base_addr(pd); */ ;
   {
     void *__gen_e_acsl_base_addr_31;
     void *__gen_e_acsl_base_addr_32;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_31 = __e_acsl_base_addr((void *)(p + 1));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,
+                                 "\\base_addr(p + 1)",
+                                 __gen_e_acsl_base_addr_31);
     __gen_e_acsl_base_addr_32 = __e_acsl_base_addr((void *)(pd + 5));
-    __e_acsl_assert(__gen_e_acsl_base_addr_31 == __gen_e_acsl_base_addr_32,1,
-                    "Assertion","main",
-                    "\\base_addr(p + 1) == \\base_addr(pd + 5)",
-                    "tests/memory/base_addr.c",47);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,
+                                 "\\base_addr(pd + 5)",
+                                 __gen_e_acsl_base_addr_32);
+    __gen_e_acsl_assert_data_16.blocking = 1;
+    __gen_e_acsl_assert_data_16.kind = "Assertion";
+    __gen_e_acsl_assert_data_16.pred_txt = "\\base_addr(p + 1) == \\base_addr(pd + 5)";
+    __gen_e_acsl_assert_data_16.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_16.fct = "main";
+    __gen_e_acsl_assert_data_16.line = 47;
+    __e_acsl_assert(__gen_e_acsl_base_addr_31 == __gen_e_acsl_base_addr_32,
+                    & __gen_e_acsl_assert_data_16);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
   }
-  /*@ assert \base_addr(p + 1) ≡ \base_addr(pd + 5); */ ;
+  /*@ assert \base_addr(p + 1) == \base_addr(pd + 5); */ ;
   {
     void *__gen_e_acsl_base_addr_33;
     void *__gen_e_acsl_base_addr_34;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_33 = __e_acsl_base_addr((void *)(p + 11));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,
+                                 "\\base_addr(p + 11)",
+                                 __gen_e_acsl_base_addr_33);
     __gen_e_acsl_base_addr_34 = __e_acsl_base_addr((void *)(pd + 1));
-    __e_acsl_assert(__gen_e_acsl_base_addr_33 == __gen_e_acsl_base_addr_34,1,
-                    "Assertion","main",
-                    "\\base_addr(p + 11) == \\base_addr(pd + 1)",
-                    "tests/memory/base_addr.c",48);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,
+                                 "\\base_addr(pd + 1)",
+                                 __gen_e_acsl_base_addr_34);
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "Assertion";
+    __gen_e_acsl_assert_data_17.pred_txt = "\\base_addr(p + 11) == \\base_addr(pd + 1)";
+    __gen_e_acsl_assert_data_17.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_17.fct = "main";
+    __gen_e_acsl_assert_data_17.line = 48;
+    __e_acsl_assert(__gen_e_acsl_base_addr_33 == __gen_e_acsl_base_addr_34,
+                    & __gen_e_acsl_assert_data_17);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
   }
-  /*@ assert \base_addr(p + 11) ≡ \base_addr(pd + 1); */ ;
+  /*@ assert \base_addr(p + 11) == \base_addr(pd + 1); */ ;
   __e_acsl_full_init((void *)(& p));
   p += 5;
   {
     void *__gen_e_acsl_base_addr_35;
     void *__gen_e_acsl_base_addr_36;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_35 = __e_acsl_base_addr((void *)(p + 5));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,
+                                 "\\base_addr(p + 5)",
+                                 __gen_e_acsl_base_addr_35);
     __gen_e_acsl_base_addr_36 = __e_acsl_base_addr((void *)pd);
-    __e_acsl_assert(__gen_e_acsl_base_addr_35 == __gen_e_acsl_base_addr_36,1,
-                    "Assertion","main",
-                    "\\base_addr(p + 5) == \\base_addr(pd)",
-                    "tests/memory/base_addr.c",50);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,
+                                 "\\base_addr(pd)",__gen_e_acsl_base_addr_36);
+    __gen_e_acsl_assert_data_18.blocking = 1;
+    __gen_e_acsl_assert_data_18.kind = "Assertion";
+    __gen_e_acsl_assert_data_18.pred_txt = "\\base_addr(p + 5) == \\base_addr(pd)";
+    __gen_e_acsl_assert_data_18.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_18.fct = "main";
+    __gen_e_acsl_assert_data_18.line = 50;
+    __e_acsl_assert(__gen_e_acsl_base_addr_35 == __gen_e_acsl_base_addr_36,
+                    & __gen_e_acsl_assert_data_18);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18);
   }
-  /*@ assert \base_addr(p + 5) ≡ \base_addr(pd); */ ;
+  /*@ assert \base_addr(p + 5) == \base_addr(pd); */ ;
   {
     void *__gen_e_acsl_base_addr_37;
     void *__gen_e_acsl_base_addr_38;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_37 = __e_acsl_base_addr((void *)(p - 5));
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_19,
+                                 "\\base_addr(p - 5)",
+                                 __gen_e_acsl_base_addr_37);
     __gen_e_acsl_base_addr_38 = __e_acsl_base_addr((void *)pd);
-    __e_acsl_assert(__gen_e_acsl_base_addr_37 == __gen_e_acsl_base_addr_38,1,
-                    "Assertion","main",
-                    "\\base_addr(p - 5) == \\base_addr(pd)",
-                    "tests/memory/base_addr.c",51);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_19,
+                                 "\\base_addr(pd)",__gen_e_acsl_base_addr_38);
+    __gen_e_acsl_assert_data_19.blocking = 1;
+    __gen_e_acsl_assert_data_19.kind = "Assertion";
+    __gen_e_acsl_assert_data_19.pred_txt = "\\base_addr(p - 5) == \\base_addr(pd)";
+    __gen_e_acsl_assert_data_19.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_19.fct = "main";
+    __gen_e_acsl_assert_data_19.line = 51;
+    __e_acsl_assert(__gen_e_acsl_base_addr_37 == __gen_e_acsl_base_addr_38,
+                    & __gen_e_acsl_assert_data_19);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19);
   }
-  /*@ assert \base_addr(p - 5) ≡ \base_addr(pd); */ ;
+  /*@ assert \base_addr(p - 5) == \base_addr(pd); */ ;
   long *q = malloc((unsigned long)30 * sizeof(long));
   __e_acsl_store_block((void *)(& q),(size_t)8);
   __e_acsl_full_init((void *)(& q));
@@ -277,49 +509,97 @@ int main(void)
   {
     void *__gen_e_acsl_base_addr_39;
     void *__gen_e_acsl_base_addr_40;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_39 = __e_acsl_base_addr((void *)q);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20,
+                                 "\\base_addr(q)",__gen_e_acsl_base_addr_39);
     __gen_e_acsl_base_addr_40 = __e_acsl_base_addr((void *)qd);
-    __e_acsl_assert(__gen_e_acsl_base_addr_39 == __gen_e_acsl_base_addr_40,1,
-                    "Assertion","main","\\base_addr(q) == \\base_addr(qd)",
-                    "tests/memory/base_addr.c",57);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20,
+                                 "\\base_addr(qd)",__gen_e_acsl_base_addr_40);
+    __gen_e_acsl_assert_data_20.blocking = 1;
+    __gen_e_acsl_assert_data_20.kind = "Assertion";
+    __gen_e_acsl_assert_data_20.pred_txt = "\\base_addr(q) == \\base_addr(qd)";
+    __gen_e_acsl_assert_data_20.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_20.fct = "main";
+    __gen_e_acsl_assert_data_20.line = 57;
+    __e_acsl_assert(__gen_e_acsl_base_addr_39 == __gen_e_acsl_base_addr_40,
+                    & __gen_e_acsl_assert_data_20);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20);
   }
-  /*@ assert \base_addr(q) ≡ \base_addr(qd); */ ;
+  /*@ assert \base_addr(q) == \base_addr(qd); */ ;
   __e_acsl_full_init((void *)(& q));
   q ++;
   {
     void *__gen_e_acsl_base_addr_41;
     void *__gen_e_acsl_base_addr_42;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_41 = __e_acsl_base_addr((void *)q);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_21,
+                                 "\\base_addr(q)",__gen_e_acsl_base_addr_41);
     __gen_e_acsl_base_addr_42 = __e_acsl_base_addr((void *)qd);
-    __e_acsl_assert(__gen_e_acsl_base_addr_41 == __gen_e_acsl_base_addr_42,1,
-                    "Assertion","main","\\base_addr(q) == \\base_addr(qd)",
-                    "tests/memory/base_addr.c",59);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_21,
+                                 "\\base_addr(qd)",__gen_e_acsl_base_addr_42);
+    __gen_e_acsl_assert_data_21.blocking = 1;
+    __gen_e_acsl_assert_data_21.kind = "Assertion";
+    __gen_e_acsl_assert_data_21.pred_txt = "\\base_addr(q) == \\base_addr(qd)";
+    __gen_e_acsl_assert_data_21.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_21.fct = "main";
+    __gen_e_acsl_assert_data_21.line = 59;
+    __e_acsl_assert(__gen_e_acsl_base_addr_41 == __gen_e_acsl_base_addr_42,
+                    & __gen_e_acsl_assert_data_21);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21);
   }
-  /*@ assert \base_addr(q) ≡ \base_addr(qd); */ ;
+  /*@ assert \base_addr(q) == \base_addr(qd); */ ;
   __e_acsl_full_init((void *)(& q));
   q += 2;
   {
     void *__gen_e_acsl_base_addr_43;
     void *__gen_e_acsl_base_addr_44;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_43 = __e_acsl_base_addr((void *)q);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_22,
+                                 "\\base_addr(q)",__gen_e_acsl_base_addr_43);
     __gen_e_acsl_base_addr_44 = __e_acsl_base_addr((void *)qd);
-    __e_acsl_assert(__gen_e_acsl_base_addr_43 == __gen_e_acsl_base_addr_44,1,
-                    "Assertion","main","\\base_addr(q) == \\base_addr(qd)",
-                    "tests/memory/base_addr.c",61);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_22,
+                                 "\\base_addr(qd)",__gen_e_acsl_base_addr_44);
+    __gen_e_acsl_assert_data_22.blocking = 1;
+    __gen_e_acsl_assert_data_22.kind = "Assertion";
+    __gen_e_acsl_assert_data_22.pred_txt = "\\base_addr(q) == \\base_addr(qd)";
+    __gen_e_acsl_assert_data_22.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_22.fct = "main";
+    __gen_e_acsl_assert_data_22.line = 61;
+    __e_acsl_assert(__gen_e_acsl_base_addr_43 == __gen_e_acsl_base_addr_44,
+                    & __gen_e_acsl_assert_data_22);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22);
   }
-  /*@ assert \base_addr(q) ≡ \base_addr(qd); */ ;
+  /*@ assert \base_addr(q) == \base_addr(qd); */ ;
   __e_acsl_full_init((void *)(& q));
   q += 4;
   {
     void *__gen_e_acsl_base_addr_45;
     void *__gen_e_acsl_base_addr_46;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 =
+      {.values = (void *)0};
     __gen_e_acsl_base_addr_45 = __e_acsl_base_addr((void *)q);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_23,
+                                 "\\base_addr(q)",__gen_e_acsl_base_addr_45);
     __gen_e_acsl_base_addr_46 = __e_acsl_base_addr((void *)qd);
-    __e_acsl_assert(__gen_e_acsl_base_addr_45 == __gen_e_acsl_base_addr_46,1,
-                    "Assertion","main","\\base_addr(q) == \\base_addr(qd)",
-                    "tests/memory/base_addr.c",63);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_23,
+                                 "\\base_addr(qd)",__gen_e_acsl_base_addr_46);
+    __gen_e_acsl_assert_data_23.blocking = 1;
+    __gen_e_acsl_assert_data_23.kind = "Assertion";
+    __gen_e_acsl_assert_data_23.pred_txt = "\\base_addr(q) == \\base_addr(qd)";
+    __gen_e_acsl_assert_data_23.file = "tests/memory/base_addr.c";
+    __gen_e_acsl_assert_data_23.fct = "main";
+    __gen_e_acsl_assert_data_23.line = 63;
+    __e_acsl_assert(__gen_e_acsl_base_addr_45 == __gen_e_acsl_base_addr_46,
+                    & __gen_e_acsl_assert_data_23);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23);
   }
-  /*@ assert \base_addr(q) ≡ \base_addr(qd); */ ;
+  /*@ assert \base_addr(q) == \base_addr(qd); */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(& qd));
   __e_acsl_delete_block((void *)(& q));
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_block_length.c b/src/plugins/e-acsl/tests/memory/oracle/gen_block_length.c
index fe71ab122788e51417f97d655b22442bf014b5e4..ae09a502743b9bc87c66c50500d283b54b6d4d82 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_block_length.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_block_length.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -34,40 +35,100 @@ int main(void)
   PA = (int *)(& A);
   {
     unsigned long __gen_e_acsl_block_length;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(int *)A",
+                                 (void *)(A));
     __gen_e_acsl_block_length = __e_acsl_block_length((void *)(A));
-    __e_acsl_assert(__gen_e_acsl_block_length == 16UL,1,"Assertion","main",
-                    "\\block_length((int *)A) == sizeof(A)",
-                    "tests/memory/block_length.c",13);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "\\block_length((int *)A)",0,
+                                   __gen_e_acsl_block_length);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(A)",0,16);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\block_length((int *)A) == sizeof(A)";
+    __gen_e_acsl_assert_data.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 13;
+    __e_acsl_assert(__gen_e_acsl_block_length == 16UL,
+                    & __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert \block_length((int *)A) ≡ sizeof(A); */ ;
+  /*@ assert \block_length((int *)A) == sizeof(A); */ ;
   {
     unsigned long __gen_e_acsl_block_length_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&A[3]",
+                                 (void *)(& A[3]));
     __gen_e_acsl_block_length_2 = __e_acsl_block_length((void *)(& A[3]));
-    __e_acsl_assert(__gen_e_acsl_block_length_2 == 16UL,1,"Assertion","main",
-                    "\\block_length(&A[3]) == sizeof(A)",
-                    "tests/memory/block_length.c",14);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "\\block_length(&A[3])",0,
+                                   __gen_e_acsl_block_length_2);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(A)",0,
+                                 16);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\block_length(&A[3]) == sizeof(A)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 14;
+    __e_acsl_assert(__gen_e_acsl_block_length_2 == 16UL,
+                    & __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert \block_length(&A[3]) ≡ sizeof(A); */ ;
+  /*@ assert \block_length(&A[3]) == sizeof(A); */ ;
   {
     unsigned long __gen_e_acsl_block_length_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"PA",
+                                 (void *)PA);
     __gen_e_acsl_block_length_3 = __e_acsl_block_length((void *)PA);
-    __e_acsl_assert(__gen_e_acsl_block_length_3 == 16UL,1,"Assertion","main",
-                    "\\block_length(PA) == sizeof(A)",
-                    "tests/memory/block_length.c",15);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "\\block_length(PA)",0,
+                                   __gen_e_acsl_block_length_3);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(A)",0,
+                                 16);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\block_length(PA) == sizeof(A)";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 15;
+    __e_acsl_assert(__gen_e_acsl_block_length_3 == 16UL,
+                    & __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert \block_length(PA) ≡ sizeof(A); */ ;
+  /*@ assert \block_length(PA) == sizeof(A); */ ;
   PA ++;
   {
     unsigned long __gen_e_acsl_block_length_4;
     unsigned long __gen_e_acsl_block_length_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"PA",
+                                 (void *)PA);
     __gen_e_acsl_block_length_4 = __e_acsl_block_length((void *)(PA + 1));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "\\block_length(PA + 1)",0,
+                                   __gen_e_acsl_block_length_4);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&A[1]",
+                                 (void *)(& A[1]));
     __gen_e_acsl_block_length_5 = __e_acsl_block_length((void *)(& A[1]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "\\block_length(&A[1])",0,
+                                   __gen_e_acsl_block_length_5);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\block_length(PA + 1) == \\block_length(&A[1])";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 17;
     __e_acsl_assert(__gen_e_acsl_block_length_4 == __gen_e_acsl_block_length_5,
-                    1,"Assertion","main",
-                    "\\block_length(PA + 1) == \\block_length(&A[1])",
-                    "tests/memory/block_length.c",17);
+                    & __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  /*@ assert \block_length(PA + 1) ≡ \block_length(&A[1]); */ ;
+  /*@ assert \block_length(PA + 1) == \block_length(&A[1]); */ ;
   int a[4] = {1, 2, 3, 4};
   __e_acsl_store_block((void *)(a),(size_t)16);
   __e_acsl_full_init((void *)(& a));
@@ -76,41 +137,103 @@ int main(void)
   __e_acsl_full_init((void *)(& pa));
   {
     unsigned long __gen_e_acsl_block_length_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"(int *)a",
+                                 (void *)(a));
     __gen_e_acsl_block_length_6 = __e_acsl_block_length((void *)(a));
-    __e_acsl_assert(__gen_e_acsl_block_length_6 == 16UL,1,"Assertion","main",
-                    "\\block_length((int *)a) == sizeof(a)",
-                    "tests/memory/block_length.c",22);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "\\block_length((int *)a)",0,
+                                   __gen_e_acsl_block_length_6);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"sizeof(a)",0,
+                                 16);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "\\block_length((int *)a) == sizeof(a)";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 22;
+    __e_acsl_assert(__gen_e_acsl_block_length_6 == 16UL,
+                    & __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert \block_length((int *)a) ≡ sizeof(a); */ ;
+  /*@ assert \block_length((int *)a) == sizeof(a); */ ;
   {
     unsigned long __gen_e_acsl_block_length_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&a[3]",
+                                 (void *)(& a[3]));
     __gen_e_acsl_block_length_7 = __e_acsl_block_length((void *)(& a[3]));
-    __e_acsl_assert(__gen_e_acsl_block_length_7 == 16UL,1,"Assertion","main",
-                    "\\block_length(&a[3]) == sizeof(a)",
-                    "tests/memory/block_length.c",23);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "\\block_length(&a[3])",0,
+                                   __gen_e_acsl_block_length_7);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(a)",0,
+                                 16);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "\\block_length(&a[3]) == sizeof(a)";
+    __gen_e_acsl_assert_data_6.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 23;
+    __e_acsl_assert(__gen_e_acsl_block_length_7 == 16UL,
+                    & __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
-  /*@ assert \block_length(&a[3]) ≡ sizeof(a); */ ;
+  /*@ assert \block_length(&a[3]) == sizeof(a); */ ;
   {
     unsigned long __gen_e_acsl_block_length_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"pa",
+                                 (void *)pa);
     __gen_e_acsl_block_length_8 = __e_acsl_block_length((void *)pa);
-    __e_acsl_assert(__gen_e_acsl_block_length_8 == 16UL,1,"Assertion","main",
-                    "\\block_length(pa) == sizeof(a)",
-                    "tests/memory/block_length.c",24);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                   "\\block_length(pa)",0,
+                                   __gen_e_acsl_block_length_8);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(a)",0,
+                                 16);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "\\block_length(pa) == sizeof(a)";
+    __gen_e_acsl_assert_data_7.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 24;
+    __e_acsl_assert(__gen_e_acsl_block_length_8 == 16UL,
+                    & __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
-  /*@ assert \block_length(pa) ≡ sizeof(a); */ ;
+  /*@ assert \block_length(pa) == sizeof(a); */ ;
   __e_acsl_full_init((void *)(& pa));
   pa ++;
   {
     unsigned long __gen_e_acsl_block_length_9;
     unsigned long __gen_e_acsl_block_length_10;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"pa",
+                                 (void *)pa);
     __gen_e_acsl_block_length_9 = __e_acsl_block_length((void *)(pa + 1));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "\\block_length(pa + 1)",0,
+                                   __gen_e_acsl_block_length_9);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&a[1]",
+                                 (void *)(& a[1]));
     __gen_e_acsl_block_length_10 = __e_acsl_block_length((void *)(& a[1]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "\\block_length(&a[1])",0,
+                                   __gen_e_acsl_block_length_10);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "\\block_length(pa + 1) == \\block_length(&a[1])";
+    __gen_e_acsl_assert_data_8.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 26;
     __e_acsl_assert(__gen_e_acsl_block_length_9 == __gen_e_acsl_block_length_10,
-                    1,"Assertion","main",
-                    "\\block_length(pa + 1) == \\block_length(&a[1])",
-                    "tests/memory/block_length.c",26);
+                    & __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
-  /*@ assert \block_length(pa + 1) ≡ \block_length(&a[1]); */ ;
+  /*@ assert \block_length(pa + 1) == \block_length(&a[1]); */ ;
   long l = (long)4;
   __e_acsl_store_block((void *)(& l),(size_t)8);
   __e_acsl_full_init((void *)(& l));
@@ -119,110 +242,260 @@ int main(void)
   __e_acsl_full_init((void *)(& pl));
   {
     unsigned long __gen_e_acsl_block_length_11;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&l",
+                                 (void *)(& l));
     __gen_e_acsl_block_length_11 = __e_acsl_block_length((void *)(& l));
-    __e_acsl_assert(__gen_e_acsl_block_length_11 == 8UL,1,"Assertion","main",
-                    "\\block_length(&l) == sizeof(long)",
-                    "tests/memory/block_length.c",32);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                   "\\block_length(&l)",0,
+                                   __gen_e_acsl_block_length_11);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"sizeof(long)",
+                                 0,8);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "\\block_length(&l) == sizeof(long)";
+    __gen_e_acsl_assert_data_9.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 32;
+    __e_acsl_assert(__gen_e_acsl_block_length_11 == 8UL,
+                    & __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
-  /*@ assert \block_length(&l) ≡ sizeof(long); */ ;
+  /*@ assert \block_length(&l) == sizeof(long); */ ;
   {
     unsigned long __gen_e_acsl_block_length_12;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"pl",
+                                 (void *)pl);
     __gen_e_acsl_block_length_12 = __e_acsl_block_length((void *)pl);
-    __e_acsl_assert(__gen_e_acsl_block_length_12 == 8UL,1,"Assertion","main",
-                    "\\block_length(pl) == sizeof(long)",
-                    "tests/memory/block_length.c",33);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                   "\\block_length(pl)",0,
+                                   __gen_e_acsl_block_length_12);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                 "sizeof(long)",0,8);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "\\block_length(pl) == sizeof(long)";
+    __gen_e_acsl_assert_data_10.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 33;
+    __e_acsl_assert(__gen_e_acsl_block_length_12 == 8UL,
+                    & __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
   }
-  /*@ assert \block_length(pl) ≡ sizeof(long); */ ;
+  /*@ assert \block_length(pl) == sizeof(long); */ ;
   {
     unsigned long __gen_e_acsl_block_length_13;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"pl",
+                                 (void *)pl);
     __gen_e_acsl_block_length_13 = __e_acsl_block_length((void *)(pl + 7));
-    __e_acsl_assert(__gen_e_acsl_block_length_13 == 8UL,1,"Assertion","main",
-                    "\\block_length(pl + 7) == sizeof(long)",
-                    "tests/memory/block_length.c",34);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11,
+                                   "\\block_length(pl + 7)",0,
+                                   __gen_e_acsl_block_length_13);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                 "sizeof(long)",0,8);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "\\block_length(pl + 7) == sizeof(long)";
+    __gen_e_acsl_assert_data_11.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 34;
+    __e_acsl_assert(__gen_e_acsl_block_length_13 == 8UL,
+                    & __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
   }
-  /*@ assert \block_length(pl + 7) ≡ sizeof(long); */ ;
+  /*@ assert \block_length(pl + 7) == sizeof(long); */ ;
   int *pi = (int *)(& l);
   __e_acsl_store_block((void *)(& pi),(size_t)8);
   __e_acsl_full_init((void *)(& pi));
   {
     unsigned long __gen_e_acsl_block_length_14;
     unsigned long __gen_e_acsl_block_length_15;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"pi",
+                                 (void *)pi);
     __gen_e_acsl_block_length_14 = __e_acsl_block_length((void *)pi);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                   "\\block_length(pi)",0,
+                                   __gen_e_acsl_block_length_14);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"&l",
+                                 (void *)(& l));
     __gen_e_acsl_block_length_15 = __e_acsl_block_length((void *)(& l));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                   "\\block_length(&l)",0,
+                                   __gen_e_acsl_block_length_15);
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "\\block_length(pi) == \\block_length(&l)";
+    __gen_e_acsl_assert_data_12.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 36;
     __e_acsl_assert(__gen_e_acsl_block_length_14 == __gen_e_acsl_block_length_15,
-                    1,"Assertion","main",
-                    "\\block_length(pi) == \\block_length(&l)",
-                    "tests/memory/block_length.c",36);
+                    & __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
   }
-  /*@ assert \block_length(pi) ≡ \block_length(&l); */ ;
+  /*@ assert \block_length(pi) == \block_length(&l); */ ;
   __e_acsl_full_init((void *)(& pi));
   pi ++;
   {
     unsigned long __gen_e_acsl_block_length_16;
     unsigned long __gen_e_acsl_block_length_17;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"pi",
+                                 (void *)pi);
     __gen_e_acsl_block_length_16 = __e_acsl_block_length((void *)pi);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13,
+                                   "\\block_length(pi)",0,
+                                   __gen_e_acsl_block_length_16);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"&l",
+                                 (void *)(& l));
     __gen_e_acsl_block_length_17 = __e_acsl_block_length((void *)(& l));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13,
+                                   "\\block_length(&l)",0,
+                                   __gen_e_acsl_block_length_17);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "\\block_length(pi) == \\block_length(&l)";
+    __gen_e_acsl_assert_data_13.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 38;
     __e_acsl_assert(__gen_e_acsl_block_length_16 == __gen_e_acsl_block_length_17,
-                    1,"Assertion","main",
-                    "\\block_length(pi) == \\block_length(&l)",
-                    "tests/memory/block_length.c",38);
+                    & __gen_e_acsl_assert_data_13);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
   }
-  /*@ assert \block_length(pi) ≡ \block_length(&l); */ ;
+  /*@ assert \block_length(pi) == \block_length(&l); */ ;
   size_t size = (unsigned long)12;
   char *p = malloc(size);
   __e_acsl_store_block((void *)(& p),(size_t)8);
   __e_acsl_full_init((void *)(& p));
   {
     unsigned long __gen_e_acsl_block_length_18;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,"p",(void *)p);
     __gen_e_acsl_block_length_18 = __e_acsl_block_length((void *)p);
-    __e_acsl_assert(__gen_e_acsl_block_length_18 == size,1,"Assertion",
-                    "main","\\block_length(p) == size",
-                    "tests/memory/block_length.c",43);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14,
+                                   "\\block_length(p)",0,
+                                   __gen_e_acsl_block_length_18);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14,"size",0,
+                                   size);
+    __gen_e_acsl_assert_data_14.blocking = 1;
+    __gen_e_acsl_assert_data_14.kind = "Assertion";
+    __gen_e_acsl_assert_data_14.pred_txt = "\\block_length(p) == size";
+    __gen_e_acsl_assert_data_14.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_14.fct = "main";
+    __gen_e_acsl_assert_data_14.line = 43;
+    __e_acsl_assert(__gen_e_acsl_block_length_18 == size,
+                    & __gen_e_acsl_assert_data_14);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
   }
-  /*@ assert \block_length(p) ≡ size; */ ;
+  /*@ assert \block_length(p) == size; */ ;
   {
     unsigned long __gen_e_acsl_block_length_19;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"p",(void *)p);
     __gen_e_acsl_block_length_19 = __e_acsl_block_length((void *)(p + 11));
-    __e_acsl_assert(__gen_e_acsl_block_length_19 == size,1,"Assertion",
-                    "main","\\block_length(p + 11) == size",
-                    "tests/memory/block_length.c",44);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15,
+                                   "\\block_length(p + 11)",0,
+                                   __gen_e_acsl_block_length_19);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15,"size",0,
+                                   size);
+    __gen_e_acsl_assert_data_15.blocking = 1;
+    __gen_e_acsl_assert_data_15.kind = "Assertion";
+    __gen_e_acsl_assert_data_15.pred_txt = "\\block_length(p + 11) == size";
+    __gen_e_acsl_assert_data_15.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_15.fct = "main";
+    __gen_e_acsl_assert_data_15.line = 44;
+    __e_acsl_assert(__gen_e_acsl_block_length_19 == size,
+                    & __gen_e_acsl_assert_data_15);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
   }
-  /*@ assert \block_length(p + 11) ≡ size; */ ;
+  /*@ assert \block_length(p + 11) == size; */ ;
   __e_acsl_full_init((void *)(& p));
   p += 5;
   {
     unsigned long __gen_e_acsl_block_length_20;
     unsigned long __gen_e_acsl_block_length_21;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,"p",(void *)p);
     __gen_e_acsl_block_length_20 = __e_acsl_block_length((void *)(p + 5));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_16,
+                                   "\\block_length(p + 5)",0,
+                                   __gen_e_acsl_block_length_20);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,"p",(void *)p);
     __gen_e_acsl_block_length_21 = __e_acsl_block_length((void *)(p - 5));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_16,
+                                   "\\block_length(p - 5)",0,
+                                   __gen_e_acsl_block_length_21);
+    __gen_e_acsl_assert_data_16.blocking = 1;
+    __gen_e_acsl_assert_data_16.kind = "Assertion";
+    __gen_e_acsl_assert_data_16.pred_txt = "\\block_length(p + 5) == \\block_length(p - 5)";
+    __gen_e_acsl_assert_data_16.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_16.fct = "main";
+    __gen_e_acsl_assert_data_16.line = 46;
     __e_acsl_assert(__gen_e_acsl_block_length_20 == __gen_e_acsl_block_length_21,
-                    1,"Assertion","main",
-                    "\\block_length(p + 5) == \\block_length(p - 5)",
-                    "tests/memory/block_length.c",46);
+                    & __gen_e_acsl_assert_data_16);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
   }
-  /*@ assert \block_length(p + 5) ≡ \block_length(p - 5); */ ;
+  /*@ assert \block_length(p + 5) == \block_length(p - 5); */ ;
   size = (unsigned long)30 * sizeof(long);
   long *q = malloc(size);
   __e_acsl_store_block((void *)(& q),(size_t)8);
   __e_acsl_full_init((void *)(& q));
   {
     unsigned long __gen_e_acsl_block_length_22;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,"q",(void *)q);
     __gen_e_acsl_block_length_22 = __e_acsl_block_length((void *)q);
-    __e_acsl_assert(__gen_e_acsl_block_length_22 == size,1,"Assertion",
-                    "main","\\block_length(q) == size",
-                    "tests/memory/block_length.c",52);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17,
+                                   "\\block_length(q)",0,
+                                   __gen_e_acsl_block_length_22);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17,"size",0,
+                                   size);
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "Assertion";
+    __gen_e_acsl_assert_data_17.pred_txt = "\\block_length(q) == size";
+    __gen_e_acsl_assert_data_17.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_17.fct = "main";
+    __gen_e_acsl_assert_data_17.line = 52;
+    __e_acsl_assert(__gen_e_acsl_block_length_22 == size,
+                    & __gen_e_acsl_assert_data_17);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
   }
-  /*@ assert \block_length(q) ≡ size; */ ;
+  /*@ assert \block_length(q) == size; */ ;
   __e_acsl_full_init((void *)(& q));
   q += 4;
   {
     unsigned long __gen_e_acsl_block_length_23;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,"q",(void *)q);
     __gen_e_acsl_block_length_23 = __e_acsl_block_length((void *)q);
-    __e_acsl_assert(__gen_e_acsl_block_length_23 == size,1,"Assertion",
-                    "main","\\block_length(q) == size",
-                    "tests/memory/block_length.c",54);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_18,
+                                   "\\block_length(q)",0,
+                                   __gen_e_acsl_block_length_23);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_18,"size",0,
+                                   size);
+    __gen_e_acsl_assert_data_18.blocking = 1;
+    __gen_e_acsl_assert_data_18.kind = "Assertion";
+    __gen_e_acsl_assert_data_18.pred_txt = "\\block_length(q) == size";
+    __gen_e_acsl_assert_data_18.file = "tests/memory/block_length.c";
+    __gen_e_acsl_assert_data_18.fct = "main";
+    __gen_e_acsl_assert_data_18.line = 54;
+    __e_acsl_assert(__gen_e_acsl_block_length_23 == size,
+                    & __gen_e_acsl_assert_data_18);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18);
   }
-  /*@ assert \block_length(q) ≡ size; */ ;
+  /*@ assert \block_length(q) == size; */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(& q));
   __e_acsl_delete_block((void *)(& p));
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_block_valid.c b/src/plugins/e-acsl/tests/memory/oracle/gen_block_valid.c
index 913c86ce1bf8abdb5232bb263dc45d93acffa884..0ba7cee5c24e4efb6d9cdc1dbad8b3a2989ceb4a 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_block_valid.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_block_valid.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -43,53 +44,119 @@ int main(int argc, char **argv)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                           (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0,
+                                   __gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)",
-                    "tests/memory/block_valid.c",19);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(p)";
+    __gen_e_acsl_assert_data.file = "tests/memory/block_valid.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 19;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(p); */ ;
   {
     int __gen_e_acsl_valid_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(p + 1),sizeof(int),
                                           (void *)p,(void *)(& p));
-    __e_acsl_assert(! __gen_e_acsl_valid_2,1,"Assertion","main",
-                    "!\\valid(p + 1)","tests/memory/block_valid.c",21);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\valid(p + 1)",0,__gen_e_acsl_valid_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(p + 1)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/block_valid.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 21;
+    __e_acsl_assert(! __gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert ¬\valid(p + 1); */ ;
+  /*@ assert !\valid(p + 1); */ ;
   __e_acsl_full_init((void *)(& p));
   p = & B;
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& p),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_valid_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_3 = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                             (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\valid(p)",
+                                   0,__gen_e_acsl_valid_3);
       __gen_e_acsl_and_2 = __gen_e_acsl_valid_3;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","main","\\valid(p)",
-                    "tests/memory/block_valid.c",24);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\valid(p)";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/block_valid.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 24;
+    __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   /*@ assert \valid(p); */ ;
   {
     int __gen_e_acsl_valid_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(p + 1),sizeof(int),
                                           (void *)p,(void *)(& p));
-    __e_acsl_assert(! __gen_e_acsl_valid_4,1,"Assertion","main",
-                    "!\\valid(p + 1)","tests/memory/block_valid.c",26);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\valid(p + 1)",0,__gen_e_acsl_valid_4);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(p + 1)";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/block_valid.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 26;
+    __e_acsl_assert(! __gen_e_acsl_valid_4,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  /*@ assert ¬\valid(p + 1); */ ;
+  /*@ assert !\valid(p + 1); */ ;
   char *pmin = malloc(sizeof(int));
   __e_acsl_store_block((void *)(& pmin),(size_t)8);
   __e_acsl_full_init((void *)(& pmin));
@@ -114,51 +181,125 @@ int main(int argc, char **argv)
   {
     int __gen_e_acsl_initialized_3;
     int __gen_e_acsl_and_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&pmin",
+                                 (void *)(& pmin));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& pmin),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\initialized(&pmin)",0,
+                                 __gen_e_acsl_initialized_3);
     if (__gen_e_acsl_initialized_3) {
       int __gen_e_acsl_valid_5;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"pmin",
+                                   (void *)pmin);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_5 = __e_acsl_valid((void *)pmin,sizeof(char),
                                             (void *)pmin,(void *)(& pmin));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\valid(pmin)",0,__gen_e_acsl_valid_5);
       __gen_e_acsl_and_3 = __gen_e_acsl_valid_5;
     }
     else __gen_e_acsl_and_3 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main","\\valid(pmin)",
-                    "tests/memory/block_valid.c",44);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "\\valid(pmin)";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/block_valid.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 44;
+    __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
   /*@ assert \valid(pmin); */ ;
   {
     int __gen_e_acsl_initialized_4;
     int __gen_e_acsl_and_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&pmax",
+                                 (void *)(& pmax));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& pmax),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "\\initialized(&pmax)",0,
+                                 __gen_e_acsl_initialized_4);
     if (__gen_e_acsl_initialized_4) {
       int __gen_e_acsl_valid_6;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"pmax",
+                                   (void *)pmax);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_6 = __e_acsl_valid((void *)pmax,sizeof(char),
                                             (void *)pmax,(void *)(& pmax));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "\\valid(pmax)",0,__gen_e_acsl_valid_6);
       __gen_e_acsl_and_4 = __gen_e_acsl_valid_6;
     }
     else __gen_e_acsl_and_4 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main","\\valid(pmax)",
-                    "tests/memory/block_valid.c",45);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "\\valid(pmax)";
+    __gen_e_acsl_assert_data_6.file = "tests/memory/block_valid.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 45;
+    __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
   /*@ assert \valid(pmax); */ ;
   {
     int __gen_e_acsl_valid_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"pmin",
+                                 (void *)pmin);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"diff",0,diff);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                   "sizeof(char)",0,sizeof(char));
     __gen_e_acsl_valid_7 = __e_acsl_valid((void *)(pmin + diff),sizeof(char),
                                           (void *)pmin,(void *)(& pmin));
-    __e_acsl_assert(! __gen_e_acsl_valid_7,1,"Assertion","main",
-                    "!\\valid(pmin + diff)","tests/memory/block_valid.c",47);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "\\valid(pmin + diff)",0,
+                                 __gen_e_acsl_valid_7);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "!\\valid(pmin + diff)";
+    __gen_e_acsl_assert_data_7.file = "tests/memory/block_valid.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 47;
+    __e_acsl_assert(! __gen_e_acsl_valid_7,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
-  /*@ assert ¬\valid(pmin + diff); */ ;
+  /*@ assert !\valid(pmin + diff); */ ;
   {
     int __gen_e_acsl_valid_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"pmax",
+                                 (void *)pmax);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"diff",0,diff);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(char)",0,sizeof(char));
     __gen_e_acsl_valid_8 = __e_acsl_valid((void *)(pmax - diff),sizeof(char),
                                           (void *)pmax,(void *)(& pmax));
-    __e_acsl_assert(! __gen_e_acsl_valid_8,1,"Assertion","main",
-                    "!\\valid(pmax - diff)","tests/memory/block_valid.c",49);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                 "\\valid(pmax - diff)",0,
+                                 __gen_e_acsl_valid_8);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "!\\valid(pmax - diff)";
+    __gen_e_acsl_assert_data_8.file = "tests/memory/block_valid.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 49;
+    __e_acsl_assert(! __gen_e_acsl_valid_8,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
-  /*@ assert ¬\valid(pmax - diff); */ ;
+  /*@ assert !\valid(pmax - diff); */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(& pmax));
   __e_acsl_delete_block((void *)(& pmin));
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_bypassed_var.c b/src/plugins/e-acsl/tests/memory/oracle/gen_bypassed_var.c
index 3b0b106b9630d9abf94d2ffc232296da7e47f33d..07b3cd55997b36a37658462e4415982f450a9a81 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_bypassed_var.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_bypassed_var.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -17,10 +17,24 @@ int main(int argc, char const **argv)
     p = & argc;
     {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                   (void *)(& p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_valid = __e_acsl_valid((void *)(& p),sizeof(int *),
                                           (void *)(& p),(void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main","\\valid(&p)",
-                      "tests/memory/bypassed_var.c",13);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&p)",
+                                   0,__gen_e_acsl_valid);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "\\valid(&p)";
+      __gen_e_acsl_assert_data.file = "tests/memory/bypassed_var.c";
+      __gen_e_acsl_assert_data.fct = "main";
+      __gen_e_acsl_assert_data.line = 13;
+      __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
     /*@ assert \valid(&p); */ ;
     __e_acsl_delete_block((void *)(& p));
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_call.c b/src/plugins/e-acsl/tests/memory/oracle/gen_call.c
index 05cebce1b23a476393181cf9c2adfbfd1ce1d460..5e03cfc2654f62da8a36a1b6c2771194bf0bd049 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_call.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_call.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -53,11 +54,24 @@ int *__gen_e_acsl_f(int *x, int *y)
   __retres = f(x,y);
   {
     int __gen_e_acsl_valid;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"\\result",
+                                 (void *)__retres);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)__retres,sizeof(int),
                                         (void *)__retres,
                                         (void *)(& __retres));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Postcondition","f",
-                    "\\valid(\\result)","tests/memory/call.c",7);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\valid(\\result)",0,__gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(\\result)";
+    __gen_e_acsl_assert_data.file = "tests/memory/call.c";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 7;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __e_acsl_delete_block((void *)(& y));
     __e_acsl_delete_block((void *)(& x));
     __e_acsl_delete_block((void *)(& __retres));
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_compound_initializers.c b/src/plugins/e-acsl/tests/memory/oracle/gen_compound_initializers.c
index 35129325096b543be203e72c0de69489c04968fd..5cdb24686a6e28ff99b081ecfff0c694373941a0 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_compound_initializers.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_compound_initializers.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 char *__gen_e_acsl_literal_string_3;
 char *__gen_e_acsl_literal_string;
@@ -87,109 +87,270 @@ int main(int argc, char **argv)
   __e_acsl_globals_init();
   {
     int __gen_e_acsl_valid;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(char **)_A",
+                                 (void *)(_A));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_valid = __e_acsl_valid((void *)(_A),sizeof(char *),
                                         (void *)(_A),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main",
-                    "\\valid((char **)_A)",
-                    "tests/memory/compound_initializers.c",23);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\valid((char **)_A)",0,__gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid((char **)_A)";
+    __gen_e_acsl_assert_data.file = "tests/memory/compound_initializers.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 23;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid((char **)_A); */ ;
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"(char **)_A",
+                                 (void *)(_A));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(_A),
                                                     sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized((char **)_A)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid_read;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"_A[0]",
+                                   (void *)_A[0]);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)_A[0],
                                                     sizeof(char),
                                                     (void *)_A[0],
                                                     (void *)(_A));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\valid_read(_A[0])",0,
+                                   __gen_e_acsl_valid_read);
       __gen_e_acsl_and = __gen_e_acsl_valid_read;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main",
-                    "\\valid_read(_A[0])",
-                    "tests/memory/compound_initializers.c",24);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid_read(_A[0])";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/compound_initializers.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 24;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid_read(_A[0]); */ ;
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&_A[1]",
+                                 (void *)(& _A[1]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& _A[1]),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized(&_A[1])",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_valid_read_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"_A[1]",
+                                   (void *)_A[1]);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)_A[1],
                                                       sizeof(char),
                                                       (void *)_A[1],
                                                       (void *)(& _A[1]));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\valid_read(_A[1])",0,
+                                   __gen_e_acsl_valid_read_2);
       __gen_e_acsl_and_2 = __gen_e_acsl_valid_read_2;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","main",
-                    "\\valid_read(_A[1])",
-                    "tests/memory/compound_initializers.c",25);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\valid_read(_A[1])";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/compound_initializers.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 25;
+    __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   /*@ assert \valid_read(_A[1]); */ ;
   {
     int __gen_e_acsl_valid_read_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"_B",
+                                 (void *)_B);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char)",0,sizeof(char));
     __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)_B,sizeof(char),
                                                     (void *)_B,
                                                     (void *)(& _B));
-    __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"Assertion","main",
-                    "\\valid_read(_B)",
-                    "tests/memory/compound_initializers.c",26);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\valid_read(_B)",0,
+                                 __gen_e_acsl_valid_read_3);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\valid_read(_B)";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/compound_initializers.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 26;
+    __e_acsl_assert(__gen_e_acsl_valid_read_3,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
   /*@ assert \valid_read(_B); */ ;
   {
     int __gen_e_acsl_valid_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&_C",
+                                 (void *)(& _C));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& _C),sizeof(char *),
                                           (void *)(& _C),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","main","\\valid(&_C)",
-                    "tests/memory/compound_initializers.c",27);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\valid(&_C)",
+                                 0,__gen_e_acsl_valid_2);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "\\valid(&_C)";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/compound_initializers.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 27;
+    __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
   /*@ assert \valid(&_C); */ ;
   {
     int __gen_e_acsl_valid_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"(int *)_D",
+                                 (void *)(_D));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_3 = __e_acsl_valid((void *)(_D),sizeof(int),
                                           (void *)(_D),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_3,1,"Assertion","main",
-                    "\\valid((int *)_D)",
-                    "tests/memory/compound_initializers.c",28);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "\\valid((int *)_D)",0,__gen_e_acsl_valid_3);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "\\valid((int *)_D)";
+    __gen_e_acsl_assert_data_6.file = "tests/memory/compound_initializers.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 28;
+    __e_acsl_assert(__gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
   /*@ assert \valid((int *)_D); */ ;
   {
     int __gen_e_acsl_valid_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&_E",
+                                 (void *)(& _E));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(& _E),sizeof(int),
                                           (void *)(& _E),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_4,1,"Assertion","main","\\valid(&_E)",
-                    "tests/memory/compound_initializers.c",29);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"\\valid(&_E)",
+                                 0,__gen_e_acsl_valid_4);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "\\valid(&_E)";
+    __gen_e_acsl_assert_data_7.file = "tests/memory/compound_initializers.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 29;
+    __e_acsl_assert(__gen_e_acsl_valid_4,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
   /*@ assert \valid(&_E); */ ;
   {
     int __gen_e_acsl_valid_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&_F",
+                                 (void *)(& _F));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_5 = __e_acsl_valid((void *)(& _F),sizeof(int),
                                           (void *)(& _F),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_5,1,"Assertion","main","\\valid(&_F)",
-                    "tests/memory/compound_initializers.c",30);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"\\valid(&_F)",
+                                 0,__gen_e_acsl_valid_5);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "\\valid(&_F)";
+    __gen_e_acsl_assert_data_8.file = "tests/memory/compound_initializers.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 30;
+    __e_acsl_assert(__gen_e_acsl_valid_5,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
   /*@ assert \valid(&_F); */ ;
-  __e_acsl_assert(_E == 44,1,"Assertion","main","_E == 44",
-                  "tests/memory/compound_initializers.c",31);
-  /*@ assert _E ≡ 44; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"_E",0,_E);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "_E == 44";
+    __gen_e_acsl_assert_data_9.file = "tests/memory/compound_initializers.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 31;
+    __e_acsl_assert(_E == 44,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
+  }
+  /*@ assert _E == 44; */ ;
   {
     int __gen_e_acsl_valid_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&_G",
+                                 (void *)(& _G));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                   "sizeof(struct ST [2])",0,
+                                   sizeof(struct ST [2]));
     __gen_e_acsl_valid_6 = __e_acsl_valid((void *)(& _G),
                                           sizeof(struct ST [2]),
                                           (void *)(& _G),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_6,1,"Assertion","main","\\valid(&_G)",
-                    "tests/memory/compound_initializers.c",32);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                 "\\valid(&_G)",0,__gen_e_acsl_valid_6);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "\\valid(&_G)";
+    __gen_e_acsl_assert_data_10.file = "tests/memory/compound_initializers.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 32;
+    __e_acsl_assert(__gen_e_acsl_valid_6,& __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
   }
   /*@ assert \valid(&_G); */ ;
-  __e_acsl_assert(_G[0].num == 99,1,"Assertion","main","_G[0].num == 99",
-                  "tests/memory/compound_initializers.c",33);
-  /*@ assert _G[0].num ≡ 99; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"_G[0].num",0,
+                                 _G[0].num);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "_G[0].num == 99";
+    __gen_e_acsl_assert_data_11.file = "tests/memory/compound_initializers.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 33;
+    __e_acsl_assert(_G[0].num == 99,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
+  }
+  /*@ assert _G[0].num == 99; */ ;
   __retres = 0;
   __e_acsl_globals_clean();
   __e_acsl_memory_clean();
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_constructor.c b/src/plugins/e-acsl/tests/memory/oracle/gen_constructor.c
index bbaf5eeb4f80a7ea5ef446e38b84b77330801a5d..e71935e27a5fc4e4b1c753136656b1a7fb438365 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_constructor.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_constructor.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 char *__gen_e_acsl_literal_string_2;
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_ctype_macros.c b/src/plugins/e-acsl/tests/memory/oracle/gen_ctype_macros.c
index 45e92a3f5de25520a5d1439bf732ede4eb8b9164..6a073da7a30b9cdd9c28c8296d513b9c7bac3f3d 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_ctype_macros.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_ctype_macros.c
@@ -1,22 +1,21 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "ctype.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
-/*@ requires c_uchar_or_eof: (0 ≤ c ≤ 255) ∨ c ≡ -1;
+/*@ requires c_uchar_or_eof: (0 <= c <= 255) || c == -1;
     assigns \result;
     assigns \result \from c;
     
     behavior definitely_match:
-      assumes c_upper: 'A' ≤ c ≤ 'Z';
-      ensures nonzero_result: \result < 0 ∨ \result > 0;
+      assumes c_upper: 'A' <= c <= 'Z';
+      ensures nonzero_result: \result < 0 || \result > 0;
     
     behavior definitely_not_match:
-      assumes
-        c_non_upper: c ≡ -1 ∨ (0 ≤ c < 'A') ∨ ('Z' < c ≤ 127);
-      ensures zero_result: \result ≡ 0;
+      assumes c_non_upper: c == -1 || (0 <= c < 'A') || ('Z' < c <= 127);
+      ensures zero_result: \result == 0;
     
     disjoint behaviors definitely_not_match, definitely_match;
  */
@@ -37,17 +36,36 @@ int main(int argc, char const **argv)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&d",
+                                 (void *)(& d));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& d),
                                                     sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&d)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"d",(void *)d);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid = __e_acsl_valid((void *)d,sizeof(char),(void *)d,
                                           (void *)(& d));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(d)",0,
+                                   __gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(d)",
-                    "tests/memory/ctype_macros.c",39);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(d)";
+    __gen_e_acsl_assert_data.file = "tests/memory/ctype_macros.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 39;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(d); */ ;
   __retres = 0;
@@ -57,18 +75,17 @@ int main(int argc, char const **argv)
   return __retres;
 }
 
-/*@ requires c_uchar_or_eof: (0 ≤ c ≤ 255) ∨ c ≡ -1;
+/*@ requires c_uchar_or_eof: (0 <= c <= 255) || c == -1;
     assigns \result;
     assigns \result \from c;
     
     behavior definitely_match:
-      assumes c_upper: 'A' ≤ c ≤ 'Z';
-      ensures nonzero_result: \result < 0 ∨ \result > 0;
+      assumes c_upper: 'A' <= c <= 'Z';
+      ensures nonzero_result: \result < 0 || \result > 0;
     
     behavior definitely_not_match:
-      assumes
-        c_non_upper: c ≡ -1 ∨ (0 ≤ c < 'A') ∨ ('Z' < c ≤ 127);
-      ensures zero_result: \result ≡ 0;
+      assumes c_non_upper: c == -1 || (0 <= c < 'A') || ('Z' < c <= 127);
+      ensures zero_result: \result == 0;
     
     disjoint behaviors definitely_not_match, definitely_match;
  */
@@ -84,12 +101,26 @@ int __gen_e_acsl_isupper(int c)
     int __gen_e_acsl_or_3;
     int __gen_e_acsl_active_bhvrs;
     __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2);
-    if (0 <= c) __gen_e_acsl_and = c <= 255; else __gen_e_acsl_and = 0;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"c",0,c);
+    if (0 <= c) {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"c",0,c);
+      __gen_e_acsl_and = c <= 255;
+    }
+    else __gen_e_acsl_and = 0;
     if (__gen_e_acsl_and) __gen_e_acsl_or = 1;
-    else __gen_e_acsl_or = c == -1;
-    __e_acsl_assert(__gen_e_acsl_or,1,"Precondition","isupper",
-                    "c_uchar_or_eof: (0 <= c <= 255) || c == -1",
-                    "FRAMAC_SHARE/libc/ctype.h",174);
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"c",0,c);
+      __gen_e_acsl_or = c == -1;
+    }
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "c_uchar_or_eof: (0 <= c <= 255) || c == -1";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/ctype.h";
+    __gen_e_acsl_assert_data.fct = "isupper";
+    __gen_e_acsl_assert_data.line = 174;
+    __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     if (65 <= c) __gen_e_acsl_and_2 = c <= 90; else __gen_e_acsl_and_2 = 0;
     __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0,
                                            __gen_e_acsl_and_2);
@@ -109,9 +140,25 @@ int __gen_e_acsl_isupper(int c)
                                            __gen_e_acsl_or_3);
     __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_all_behaviors
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract);
-    __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,1,"Precondition",
-                    "isupper","all behaviors disjoint",
-                    "FRAMAC_SHARE/libc/ctype.h",173);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "number of active behaviors",0,
+                                 __gen_e_acsl_active_bhvrs);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "number of active behaviors",0,
+                                 __gen_e_acsl_active_bhvrs);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Precondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "all behaviors disjoint";
+    __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/ctype.h";
+    __gen_e_acsl_assert_data_3.fct = "isupper";
+    __gen_e_acsl_assert_data_3.line = 173;
+    __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,
+                    & __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   __retres = isupper(c);
   {
@@ -120,20 +167,41 @@ int __gen_e_acsl_isupper(int c)
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0);
     if (__gen_e_acsl_assumes_value) {
       int __gen_e_acsl_or_4;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\result",0,
+                                   __retres);
       if (__retres < 0) __gen_e_acsl_or_4 = 1;
-      else __gen_e_acsl_or_4 = __retres > 0;
-      __e_acsl_assert(__gen_e_acsl_or_4,1,"Postcondition","isupper",
-                      "definitely_match: nonzero_result: \\result < 0 || \\result > 0",
-                      "FRAMAC_SHARE/libc/ctype.h",178);
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\result",
+                                     0,__retres);
+        __gen_e_acsl_or_4 = __retres > 0;
+      }
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Postcondition";
+      __gen_e_acsl_assert_data_4.pred_txt = "definitely_match: nonzero_result: \\result < 0 || \\result > 0";
+      __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/ctype.h";
+      __gen_e_acsl_assert_data_4.fct = "isupper";
+      __gen_e_acsl_assert_data_4.line = 178;
+      __e_acsl_assert(__gen_e_acsl_or_4,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     }
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == 0,1,
-                                                    "Postcondition",
-                                                    "isupper",
-                                                    "definitely_not_match: zero_result: \\result == 0",
-                                                    "FRAMAC_SHARE/libc/ctype.h",
-                                                    181);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Postcondition";
+      __gen_e_acsl_assert_data_5.pred_txt = "definitely_not_match: zero_result: \\result == 0";
+      __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/ctype.h";
+      __gen_e_acsl_assert_data_5.fct = "isupper";
+      __gen_e_acsl_assert_data_5.line = 181;
+      __e_acsl_assert(__retres == 0,& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+    }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     return __retres;
   }
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_decl_in_switch.c b/src/plugins/e-acsl/tests/memory/oracle/gen_decl_in_switch.c
index 9cb1a440568a7e0ca7705ed7a03d799011c98684..241b22f2ab6997de281e49c12583d70c747a795c 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_decl_in_switch.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_decl_in_switch.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -28,22 +28,47 @@ void compound_decl_and_init(int value)
   __e_acsl_full_init((void *)(& a));
   {
     int __gen_e_acsl_valid;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a",
+                                 (void *)(& a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)(& a),sizeof(int),
                                         (void *)(& a),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion",
-                    "compound_decl_and_init","\\valid(&a)",
-                    "tests/memory/decl_in_switch.c",22);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&a)",0,
+                                 __gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(&a)";
+    __gen_e_acsl_assert_data.file = "tests/memory/decl_in_switch.c";
+    __gen_e_acsl_assert_data.fct = "compound_decl_and_init";
+    __gen_e_acsl_assert_data.line = 22;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(&a); */ ;
   switch (value) {
     int b = 2;
     {
       int __gen_e_acsl_valid_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& b),sizeof(int),
                                             (void *)(& b),(void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion",
-                      "compound_decl_and_init","\\valid(&b)",
-                      "tests/memory/decl_in_switch.c",26);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\valid(&b)",0,__gen_e_acsl_valid_2);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Assertion";
+      __gen_e_acsl_assert_data_2.pred_txt = "\\valid(&b)";
+      __gen_e_acsl_assert_data_2.file = "tests/memory/decl_in_switch.c";
+      __gen_e_acsl_assert_data_2.fct = "compound_decl_and_init";
+      __gen_e_acsl_assert_data_2.line = 26;
+      __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
     /*@ assert \valid(&b); */ ;
     case 0: ;
@@ -52,11 +77,24 @@ void compound_decl_and_init(int value)
     __e_acsl_full_init((void *)(& c));
     {
       int __gen_e_acsl_valid_3;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&c",
+                                   (void *)(& c));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_3 = __e_acsl_valid((void *)(& c),sizeof(int),
                                             (void *)(& c),(void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_3,1,"Assertion",
-                      "compound_decl_and_init","\\valid(&c)",
-                      "tests/memory/decl_in_switch.c",30);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\valid(&c)",0,__gen_e_acsl_valid_3);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Assertion";
+      __gen_e_acsl_assert_data_3.pred_txt = "\\valid(&c)";
+      __gen_e_acsl_assert_data_3.file = "tests/memory/decl_in_switch.c";
+      __gen_e_acsl_assert_data_3.fct = "compound_decl_and_init";
+      __gen_e_acsl_assert_data_3.line = 30;
+      __e_acsl_assert(__gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     }
     /*@ assert \valid(&c); */ ;
     __e_acsl_delete_block((void *)(& c));
@@ -68,11 +106,24 @@ void compound_decl_and_init(int value)
     __e_acsl_full_init((void *)(& d));
     {
       int __gen_e_acsl_valid_4;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&d",
+                                   (void *)(& d));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(& d),sizeof(int),
                                             (void *)(& d),(void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_4,1,"Assertion",
-                      "compound_decl_and_init","\\valid(&d)",
-                      "tests/memory/decl_in_switch.c",35);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\valid(&d)",0,__gen_e_acsl_valid_4);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Assertion";
+      __gen_e_acsl_assert_data_4.pred_txt = "\\valid(&d)";
+      __gen_e_acsl_assert_data_4.file = "tests/memory/decl_in_switch.c";
+      __gen_e_acsl_assert_data_4.fct = "compound_decl_and_init";
+      __gen_e_acsl_assert_data_4.line = 35;
+      __e_acsl_assert(__gen_e_acsl_valid_4,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     }
     /*@ assert \valid(&d); */ ;
     __e_acsl_delete_block((void *)(& c));
@@ -93,11 +144,23 @@ void separate_decl_and_init(int value)
   a = 1;
   {
     int __gen_e_acsl_valid;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a",
+                                 (void *)(& a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)(& a),sizeof(int),
                                         (void *)(& a),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion",
-                    "separate_decl_and_init","\\valid(&a)",
-                    "tests/memory/decl_in_switch.c",45);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&a)",0,
+                                 __gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(&a)";
+    __gen_e_acsl_assert_data.file = "tests/memory/decl_in_switch.c";
+    __gen_e_acsl_assert_data.fct = "separate_decl_and_init";
+    __gen_e_acsl_assert_data.line = 45;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(&a); */ ;
   switch (value) {
@@ -109,11 +172,24 @@ void separate_decl_and_init(int value)
     b = 2;
     {
       int __gen_e_acsl_valid_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& b),sizeof(int),
                                             (void *)(& b),(void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion",
-                      "separate_decl_and_init","\\valid(&b)",
-                      "tests/memory/decl_in_switch.c",50);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\valid(&b)",0,__gen_e_acsl_valid_2);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Assertion";
+      __gen_e_acsl_assert_data_2.pred_txt = "\\valid(&b)";
+      __gen_e_acsl_assert_data_2.file = "tests/memory/decl_in_switch.c";
+      __gen_e_acsl_assert_data_2.fct = "separate_decl_and_init";
+      __gen_e_acsl_assert_data_2.line = 50;
+      __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
     /*@ assert \valid(&b); */ ;
     case 0: __e_acsl_store_block_duplicate((void *)(& c),(size_t)4);
@@ -123,11 +199,24 @@ void separate_decl_and_init(int value)
     c = 3;
     {
       int __gen_e_acsl_valid_3;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&c",
+                                   (void *)(& c));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_3 = __e_acsl_valid((void *)(& c),sizeof(int),
                                             (void *)(& c),(void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_3,1,"Assertion",
-                      "separate_decl_and_init","\\valid(&c)",
-                      "tests/memory/decl_in_switch.c",55);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\valid(&c)",0,__gen_e_acsl_valid_3);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Assertion";
+      __gen_e_acsl_assert_data_3.pred_txt = "\\valid(&c)";
+      __gen_e_acsl_assert_data_3.file = "tests/memory/decl_in_switch.c";
+      __gen_e_acsl_assert_data_3.fct = "separate_decl_and_init";
+      __gen_e_acsl_assert_data_3.line = 55;
+      __e_acsl_assert(__gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     }
     /*@ assert \valid(&c); */ ;
     __e_acsl_delete_block((void *)(& c));
@@ -140,11 +229,24 @@ void separate_decl_and_init(int value)
     d = 4;
     {
       int __gen_e_acsl_valid_4;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&d",
+                                   (void *)(& d));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(& d),sizeof(int),
                                             (void *)(& d),(void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_4,1,"Assertion",
-                      "separate_decl_and_init","\\valid(&d)",
-                      "tests/memory/decl_in_switch.c",61);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\valid(&d)",0,__gen_e_acsl_valid_4);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Assertion";
+      __gen_e_acsl_assert_data_4.pred_txt = "\\valid(&d)";
+      __gen_e_acsl_assert_data_4.file = "tests/memory/decl_in_switch.c";
+      __gen_e_acsl_assert_data_4.fct = "separate_decl_and_init";
+      __gen_e_acsl_assert_data_4.line = 61;
+      __e_acsl_assert(__gen_e_acsl_valid_4,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     }
     /*@ assert \valid(&d); */ ;
     __e_acsl_delete_block((void *)(& c));
@@ -167,10 +269,24 @@ void label_in_switch(int value)
     __e_acsl_full_init((void *)(& d));
     {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&d",
+                                   (void *)(& d));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)(& d),sizeof(int),
                                           (void *)(& d),(void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","label_in_switch",
-                      "\\valid(&d)","tests/memory/decl_in_switch.c",74);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&d)",
+                                   0,__gen_e_acsl_valid);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "\\valid(&d)";
+      __gen_e_acsl_assert_data.file = "tests/memory/decl_in_switch.c";
+      __gen_e_acsl_assert_data.fct = "label_in_switch";
+      __gen_e_acsl_assert_data.line = 74;
+      __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
     /*@ assert \valid(&d); */ ;
     L: case 0: __e_acsl_store_block_duplicate((void *)(& d),(size_t)4);
@@ -180,10 +296,24 @@ void label_in_switch(int value)
     __e_acsl_full_init((void *)(& e));
     {
       int __gen_e_acsl_valid_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&e",
+                                   (void *)(& e));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& e),sizeof(int),
                                             (void *)(& e),(void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","label_in_switch",
-                      "\\valid(&e)","tests/memory/decl_in_switch.c",80);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\valid(&e)",0,__gen_e_acsl_valid_2);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Assertion";
+      __gen_e_acsl_assert_data_2.pred_txt = "\\valid(&e)";
+      __gen_e_acsl_assert_data_2.file = "tests/memory/decl_in_switch.c";
+      __gen_e_acsl_assert_data_2.fct = "label_in_switch";
+      __gen_e_acsl_assert_data_2.line = 80;
+      __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
     /*@ assert \valid(&e); */ ;
     __e_acsl_delete_block((void *)(& d));
@@ -197,10 +327,24 @@ void label_in_switch(int value)
     __e_acsl_full_init((void *)(& ff));
     {
       int __gen_e_acsl_valid_3;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&ff",
+                                   (void *)(& ff));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_3 = __e_acsl_valid((void *)(& ff),sizeof(int),
                                             (void *)(& ff),(void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_3,1,"Assertion","label_in_switch",
-                      "\\valid(&ff)","tests/memory/decl_in_switch.c",84);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\valid(&ff)",0,__gen_e_acsl_valid_3);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Assertion";
+      __gen_e_acsl_assert_data_3.pred_txt = "\\valid(&ff)";
+      __gen_e_acsl_assert_data_3.file = "tests/memory/decl_in_switch.c";
+      __gen_e_acsl_assert_data_3.fct = "label_in_switch";
+      __gen_e_acsl_assert_data_3.line = 84;
+      __e_acsl_assert(__gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     }
     /*@ assert \valid(&ff); */ ;
     __e_acsl_delete_block((void *)(& d));
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_early_exit.c b/src/plugins/e-acsl/tests/memory/oracle/gen_early_exit.c
index 123bf12d8a51831f1632b19ef1861568f048c60e..86b4b8cfd0d26e09e64f2950961046ad5b31f424 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_early_exit.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_early_exit.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -18,17 +18,38 @@ int goto_bts(void)
     {
       int __gen_e_acsl_initialized;
       int __gen_e_acsl_and;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                   (void *)(& p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                       sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&p)",0,
+                                   __gen_e_acsl_initialized);
       if (__gen_e_acsl_initialized) {
         int __gen_e_acsl_valid;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",
+                                     (void *)p);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                             (void *)(& p));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",
+                                     0,__gen_e_acsl_valid);
         __gen_e_acsl_and = __gen_e_acsl_valid;
       }
       else __gen_e_acsl_and = 0;
-      __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","goto_bts","\\valid(p)",
-                      "tests/memory/early_exit.c",13);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "\\valid(p)";
+      __gen_e_acsl_assert_data.file = "tests/memory/early_exit.c";
+      __gen_e_acsl_assert_data.fct = "goto_bts";
+      __gen_e_acsl_assert_data.line = 13;
+      __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
     /*@ assert \valid(p); */ ;
     __e_acsl_delete_block((void *)(& a));
@@ -36,22 +57,43 @@ int goto_bts(void)
     __e_acsl_delete_block((void *)(& a));
   }
   L:
-  /*@ assert ¬\valid(p); */
+  /*@ assert !\valid(p); */
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& p),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_valid_2;
-      /*@ assert Eva: dangling_pointer: ¬\dangling(&p); */
+      /*@ assert Eva: dangling_pointer: !\dangling(&p); */
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_2 = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                             (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(p)",
+                                   0,__gen_e_acsl_valid_2);
       __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","goto_bts",
-                    "!\\valid(p)","tests/memory/early_exit.c",18);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(p)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/early_exit.c";
+    __gen_e_acsl_assert_data_2.fct = "goto_bts";
+    __gen_e_acsl_assert_data_2.line = 18;
+    __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   __retres = 0;
   __e_acsl_delete_block((void *)(& p));
@@ -104,50 +146,113 @@ int goto_valid(void)
     {
       int __gen_e_acsl_initialized;
       int __gen_e_acsl_and;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                   (void *)(& p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                       sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&p)",0,
+                                   __gen_e_acsl_initialized);
       if (__gen_e_acsl_initialized) {
         int __gen_e_acsl_valid;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",
+                                     (void *)p);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                             (void *)(& p));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",
+                                     0,__gen_e_acsl_valid);
         __gen_e_acsl_and = __gen_e_acsl_valid;
       }
       else __gen_e_acsl_and = 0;
-      __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","goto_valid",
-                      "\\valid(p)","tests/memory/early_exit.c",46);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "\\valid(p)";
+      __gen_e_acsl_assert_data.file = "tests/memory/early_exit.c";
+      __gen_e_acsl_assert_data.fct = "goto_valid";
+      __gen_e_acsl_assert_data.line = 46;
+      __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
     {
       int __gen_e_acsl_initialized_2;
       int __gen_e_acsl_and_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q",
+                                   (void *)(& q));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\initialized(&q)",0,
+                                   __gen_e_acsl_initialized_2);
       if (__gen_e_acsl_initialized_2) {
         int __gen_e_acsl_valid_2;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q",
+                                     (void *)q);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int),
                                               (void *)q,(void *)(& q));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "\\valid(q)",0,__gen_e_acsl_valid_2);
         __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
       }
       else __gen_e_acsl_and_2 = 0;
-      __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","goto_valid",
-                      "!\\valid(q)","tests/memory/early_exit.c",47);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Assertion";
+      __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(q)";
+      __gen_e_acsl_assert_data_2.file = "tests/memory/early_exit.c";
+      __gen_e_acsl_assert_data_2.fct = "goto_valid";
+      __gen_e_acsl_assert_data_2.line = 47;
+      __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
-    /*@ assert ¬\valid(q); */ ;
+    /*@ assert !\valid(q); */ ;
     {
       int __gen_e_acsl_initialized_3;
       int __gen_e_acsl_and_3;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&r",
+                                   (void *)(& r));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& r),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(&r)",0,
+                                   __gen_e_acsl_initialized_3);
       if (__gen_e_acsl_initialized_3) {
         int __gen_e_acsl_valid_3;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"r",
+                                     (void *)r);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_3 = __e_acsl_valid((void *)r,sizeof(int),
                                               (void *)r,(void *)(& r));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                     "\\valid(r)",0,__gen_e_acsl_valid_3);
         __gen_e_acsl_and_3 = __gen_e_acsl_valid_3;
       }
       else __gen_e_acsl_and_3 = 0;
-      __e_acsl_assert(! __gen_e_acsl_and_3,1,"Assertion","goto_valid",
-                      "!\\valid(r)","tests/memory/early_exit.c",48);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Assertion";
+      __gen_e_acsl_assert_data_3.pred_txt = "!\\valid(r)";
+      __gen_e_acsl_assert_data_3.file = "tests/memory/early_exit.c";
+      __gen_e_acsl_assert_data_3.fct = "goto_valid";
+      __gen_e_acsl_assert_data_3.line = 48;
+      __e_acsl_assert(! __gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     }
-    /*@ assert ¬\valid(r); */ ;
+    /*@ assert !\valid(r); */ ;
     __e_acsl_delete_block((void *)(& a1));
     goto SECOND;
     __e_acsl_full_init((void *)(& q));
@@ -159,54 +264,117 @@ int goto_valid(void)
     __e_acsl_delete_block((void *)(& a1));
   }
   SECOND:
-  /*@ assert ¬\valid(p); */
+  /*@ assert !\valid(p); */
   {
     int __gen_e_acsl_initialized_4;
     int __gen_e_acsl_and_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& p),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized_4);
     if (__gen_e_acsl_initialized_4) {
       int __gen_e_acsl_valid_4;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_4 = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                             (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\valid(p)",
+                                   0,__gen_e_acsl_valid_4);
       __gen_e_acsl_and_4 = __gen_e_acsl_valid_4;
     }
     else __gen_e_acsl_and_4 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_4,1,"Assertion","goto_valid",
-                    "!\\valid(p)","tests/memory/early_exit.c",56);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(p)";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/early_exit.c";
+    __gen_e_acsl_assert_data_4.fct = "goto_valid";
+    __gen_e_acsl_assert_data_4.line = 56;
+    __e_acsl_assert(! __gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
   {
     int __gen_e_acsl_initialized_5;
     int __gen_e_acsl_and_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& q),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\initialized(&q)",0,
+                                 __gen_e_acsl_initialized_5);
     if (__gen_e_acsl_initialized_5) {
       int __gen_e_acsl_valid_5;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_5 = __e_acsl_valid((void *)q,sizeof(int),(void *)q,
                                             (void *)(& q));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\valid(q)",
+                                   0,__gen_e_acsl_valid_5);
       __gen_e_acsl_and_5 = __gen_e_acsl_valid_5;
     }
     else __gen_e_acsl_and_5 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_5,1,"Assertion","goto_valid",
-                    "!\\valid(q)","tests/memory/early_exit.c",57);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(q)";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/early_exit.c";
+    __gen_e_acsl_assert_data_5.fct = "goto_valid";
+    __gen_e_acsl_assert_data_5.line = 57;
+    __e_acsl_assert(! __gen_e_acsl_and_5,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert ¬\valid(q); */ ;
+  /*@ assert !\valid(q); */ ;
   {
     int __gen_e_acsl_initialized_6;
     int __gen_e_acsl_and_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&r",
+                                 (void *)(& r));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& r),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "\\initialized(&r)",0,
+                                 __gen_e_acsl_initialized_6);
     if (__gen_e_acsl_initialized_6) {
       int __gen_e_acsl_valid_6;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"r",
+                                   (void *)r);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_6 = __e_acsl_valid((void *)r,sizeof(int),(void *)r,
                                             (void *)(& r));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"\\valid(r)",
+                                   0,__gen_e_acsl_valid_6);
       __gen_e_acsl_and_6 = __gen_e_acsl_valid_6;
     }
     else __gen_e_acsl_and_6 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_6,1,"Assertion","goto_valid",
-                    "!\\valid(r)","tests/memory/early_exit.c",58);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "!\\valid(r)";
+    __gen_e_acsl_assert_data_6.file = "tests/memory/early_exit.c";
+    __gen_e_acsl_assert_data_6.fct = "goto_valid";
+    __gen_e_acsl_assert_data_6.line = 58;
+    __e_acsl_assert(! __gen_e_acsl_and_6,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
-  /*@ assert ¬\valid(r); */ ;
+  /*@ assert !\valid(r); */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(& r));
   __e_acsl_delete_block((void *)(& q));
@@ -245,49 +413,112 @@ int switch_valid(void)
         {
           int __gen_e_acsl_initialized;
           int __gen_e_acsl_and;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                       (void *)(& p));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                         "sizeof(int *)",0,sizeof(int *));
           __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                           sizeof(int *));
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                       "\\initialized(&p)",0,
+                                       __gen_e_acsl_initialized);
           if (__gen_e_acsl_initialized) {
             int __gen_e_acsl_valid;
+            __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",
+                                         (void *)p);
+            __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                           "sizeof(int)",0,sizeof(int));
             __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),
                                                 (void *)p,(void *)(& p));
+            __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                         "\\valid(p)",0,__gen_e_acsl_valid);
             __gen_e_acsl_and = __gen_e_acsl_valid;
           }
           else __gen_e_acsl_and = 0;
-          __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","switch_valid",
-                          "\\valid(p)","tests/memory/early_exit.c",76);
+          __gen_e_acsl_assert_data.blocking = 1;
+          __gen_e_acsl_assert_data.kind = "Assertion";
+          __gen_e_acsl_assert_data.pred_txt = "\\valid(p)";
+          __gen_e_acsl_assert_data.file = "tests/memory/early_exit.c";
+          __gen_e_acsl_assert_data.fct = "switch_valid";
+          __gen_e_acsl_assert_data.line = 76;
+          __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
         }
         /*@ assert \valid(p); */ ;
         {
           int __gen_e_acsl_initialized_2;
           int __gen_e_acsl_and_2;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q",
+                                       (void *)(& q));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                         "sizeof(int *)",0,sizeof(int *));
           __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q),
                                                             sizeof(int *));
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                       "\\initialized(&q)",0,
+                                       __gen_e_acsl_initialized_2);
           if (__gen_e_acsl_initialized_2) {
             int __gen_e_acsl_valid_2;
+            __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q",
+                                         (void *)q);
+            __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                           "sizeof(int)",0,sizeof(int));
             __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int),
                                                   (void *)q,(void *)(& q));
+            __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                         "\\valid(q)",0,__gen_e_acsl_valid_2);
             __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
           }
           else __gen_e_acsl_and_2 = 0;
-          __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","switch_valid",
-                          "\\valid(q)","tests/memory/early_exit.c",77);
+          __gen_e_acsl_assert_data_2.blocking = 1;
+          __gen_e_acsl_assert_data_2.kind = "Assertion";
+          __gen_e_acsl_assert_data_2.pred_txt = "\\valid(q)";
+          __gen_e_acsl_assert_data_2.file = "tests/memory/early_exit.c";
+          __gen_e_acsl_assert_data_2.fct = "switch_valid";
+          __gen_e_acsl_assert_data_2.line = 77;
+          __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
         }
         /*@ assert \valid(q); */ ;
         {
           int __gen_e_acsl_initialized_3;
           int __gen_e_acsl_and_3;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&s",
+                                       (void *)(& s));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                         "sizeof(int *)",0,sizeof(int *));
           __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& s),
                                                             sizeof(int *));
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                       "\\initialized(&s)",0,
+                                       __gen_e_acsl_initialized_3);
           if (__gen_e_acsl_initialized_3) {
             int __gen_e_acsl_valid_3;
+            __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"s",
+                                         (void *)s);
+            __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                           "sizeof(int)",0,sizeof(int));
             __gen_e_acsl_valid_3 = __e_acsl_valid((void *)s,sizeof(int),
                                                   (void *)s,(void *)(& s));
+            __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                         "\\valid(s)",0,__gen_e_acsl_valid_3);
             __gen_e_acsl_and_3 = __gen_e_acsl_valid_3;
           }
           else __gen_e_acsl_and_3 = 0;
-          __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","switch_valid",
-                          "\\valid(s)","tests/memory/early_exit.c",78);
+          __gen_e_acsl_assert_data_3.blocking = 1;
+          __gen_e_acsl_assert_data_3.kind = "Assertion";
+          __gen_e_acsl_assert_data_3.pred_txt = "\\valid(s)";
+          __gen_e_acsl_assert_data_3.file = "tests/memory/early_exit.c";
+          __gen_e_acsl_assert_data_3.fct = "switch_valid";
+          __gen_e_acsl_assert_data_3.line = 78;
+          __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
         }
         /*@ assert \valid(s); */ ;
         __e_acsl_delete_block((void *)(& a1));
@@ -307,49 +538,112 @@ int switch_valid(void)
   {
     int __gen_e_acsl_initialized_4;
     int __gen_e_acsl_and_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& q),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\initialized(&q)",0,
+                                 __gen_e_acsl_initialized_4);
     if (__gen_e_acsl_initialized_4) {
       int __gen_e_acsl_valid_4;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_4 = __e_acsl_valid((void *)q,sizeof(int),(void *)q,
                                             (void *)(& q));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\valid(q)",
+                                   0,__gen_e_acsl_valid_4);
       __gen_e_acsl_and_4 = __gen_e_acsl_valid_4;
     }
     else __gen_e_acsl_and_4 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_4,1,"Assertion","switch_valid",
-                    "!\\valid(q)","tests/memory/early_exit.c",87);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(q)";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/early_exit.c";
+    __gen_e_acsl_assert_data_4.fct = "switch_valid";
+    __gen_e_acsl_assert_data_4.line = 87;
+    __e_acsl_assert(! __gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  /*@ assert ¬\valid(q); */ ;
+  /*@ assert !\valid(q); */ ;
   {
     int __gen_e_acsl_initialized_5;
     int __gen_e_acsl_and_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& p),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized_5);
     if (__gen_e_acsl_initialized_5) {
       int __gen_e_acsl_valid_5;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_5 = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                             (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\valid(p)",
+                                   0,__gen_e_acsl_valid_5);
       __gen_e_acsl_and_5 = __gen_e_acsl_valid_5;
     }
     else __gen_e_acsl_and_5 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_5,1,"Assertion","switch_valid",
-                    "!\\valid(p)","tests/memory/early_exit.c",88);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(p)";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/early_exit.c";
+    __gen_e_acsl_assert_data_5.fct = "switch_valid";
+    __gen_e_acsl_assert_data_5.line = 88;
+    __e_acsl_assert(! __gen_e_acsl_and_5,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert ¬\valid(p); */ ;
+  /*@ assert !\valid(p); */ ;
   {
     int __gen_e_acsl_initialized_6;
     int __gen_e_acsl_and_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&s",
+                                 (void *)(& s));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& s),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "\\initialized(&s)",0,
+                                 __gen_e_acsl_initialized_6);
     if (__gen_e_acsl_initialized_6) {
       int __gen_e_acsl_valid_6;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"s",
+                                   (void *)s);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_6 = __e_acsl_valid((void *)s,sizeof(int),(void *)s,
                                             (void *)(& s));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"\\valid(s)",
+                                   0,__gen_e_acsl_valid_6);
       __gen_e_acsl_and_6 = __gen_e_acsl_valid_6;
     }
     else __gen_e_acsl_and_6 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","switch_valid",
-                    "\\valid(s)","tests/memory/early_exit.c",89);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "\\valid(s)";
+    __gen_e_acsl_assert_data_6.file = "tests/memory/early_exit.c";
+    __gen_e_acsl_assert_data_6.fct = "switch_valid";
+    __gen_e_acsl_assert_data_6.line = 89;
+    __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
   /*@ assert \valid(s); */ ;
   __retres = 0;
@@ -394,49 +688,114 @@ int while_valid(void)
           {
             int __gen_e_acsl_initialized;
             int __gen_e_acsl_and;
+            __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+              {.values = (void *)0};
+            __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                         (void *)(& p));
+            __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                           "sizeof(int *)",0,sizeof(int *));
             __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                             sizeof(int *));
+            __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                         "\\initialized(&p)",0,
+                                         __gen_e_acsl_initialized);
             if (__gen_e_acsl_initialized) {
               int __gen_e_acsl_valid;
+              __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",
+                                           (void *)p);
+              __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                             "sizeof(int)",0,sizeof(int));
               __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),
                                                   (void *)p,(void *)(& p));
+              __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                           "\\valid(p)",0,__gen_e_acsl_valid);
               __gen_e_acsl_and = __gen_e_acsl_valid;
             }
             else __gen_e_acsl_and = 0;
-            __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","while_valid",
-                            "\\valid(p)","tests/memory/early_exit.c",108);
+            __gen_e_acsl_assert_data.blocking = 1;
+            __gen_e_acsl_assert_data.kind = "Assertion";
+            __gen_e_acsl_assert_data.pred_txt = "\\valid(p)";
+            __gen_e_acsl_assert_data.file = "tests/memory/early_exit.c";
+            __gen_e_acsl_assert_data.fct = "while_valid";
+            __gen_e_acsl_assert_data.line = 108;
+            __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+            __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
           }
           /*@ assert \valid(p); */ ;
           {
             int __gen_e_acsl_initialized_2;
             int __gen_e_acsl_and_2;
+            __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+              {.values = (void *)0};
+            __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q",
+                                         (void *)(& q));
+            __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                           "sizeof(int *)",0,sizeof(int *));
             __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q),
                                                               sizeof(int *));
+            __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                         "\\initialized(&q)",0,
+                                         __gen_e_acsl_initialized_2);
             if (__gen_e_acsl_initialized_2) {
               int __gen_e_acsl_valid_2;
+              __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q",
+                                           (void *)q);
+              __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                             "sizeof(int)",0,sizeof(int));
               __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int),
                                                     (void *)q,(void *)(& q));
+              __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                           "\\valid(q)",0,
+                                           __gen_e_acsl_valid_2);
               __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
             }
             else __gen_e_acsl_and_2 = 0;
-            __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","while_valid",
-                            "\\valid(q)","tests/memory/early_exit.c",109);
+            __gen_e_acsl_assert_data_2.blocking = 1;
+            __gen_e_acsl_assert_data_2.kind = "Assertion";
+            __gen_e_acsl_assert_data_2.pred_txt = "\\valid(q)";
+            __gen_e_acsl_assert_data_2.file = "tests/memory/early_exit.c";
+            __gen_e_acsl_assert_data_2.fct = "while_valid";
+            __gen_e_acsl_assert_data_2.line = 109;
+            __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+            __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
           }
           /*@ assert \valid(q); */ ;
           {
             int __gen_e_acsl_initialized_3;
             int __gen_e_acsl_and_3;
+            __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+              {.values = (void *)0};
+            __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&r",
+                                         (void *)(& r));
+            __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                           "sizeof(int *)",0,sizeof(int *));
             __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& r),
                                                               sizeof(int *));
+            __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                         "\\initialized(&r)",0,
+                                         __gen_e_acsl_initialized_3);
             if (__gen_e_acsl_initialized_3) {
               int __gen_e_acsl_valid_3;
+              __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"r",
+                                           (void *)r);
+              __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                             "sizeof(int)",0,sizeof(int));
               __gen_e_acsl_valid_3 = __e_acsl_valid((void *)r,sizeof(int),
                                                     (void *)r,(void *)(& r));
+              __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                           "\\valid(r)",0,
+                                           __gen_e_acsl_valid_3);
               __gen_e_acsl_and_3 = __gen_e_acsl_valid_3;
             }
             else __gen_e_acsl_and_3 = 0;
-            __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","while_valid",
-                            "\\valid(r)","tests/memory/early_exit.c",110);
+            __gen_e_acsl_assert_data_3.blocking = 1;
+            __gen_e_acsl_assert_data_3.kind = "Assertion";
+            __gen_e_acsl_assert_data_3.pred_txt = "\\valid(r)";
+            __gen_e_acsl_assert_data_3.file = "tests/memory/early_exit.c";
+            __gen_e_acsl_assert_data_3.fct = "while_valid";
+            __gen_e_acsl_assert_data_3.line = 110;
+            __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3);
+            __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
           }
           /*@ assert \valid(r); */ ;
           if (! i) {
@@ -452,49 +811,112 @@ int while_valid(void)
     {
       int __gen_e_acsl_initialized_4;
       int __gen_e_acsl_and_4;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&p",
+                                   (void *)(& p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& p),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\initialized(&p)",0,
+                                   __gen_e_acsl_initialized_4);
       if (__gen_e_acsl_initialized_4) {
         int __gen_e_acsl_valid_4;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"p",
+                                     (void *)p);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_4 = __e_acsl_valid((void *)p,sizeof(int),
                                               (void *)p,(void *)(& p));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                     "\\valid(p)",0,__gen_e_acsl_valid_4);
         __gen_e_acsl_and_4 = __gen_e_acsl_valid_4;
       }
       else __gen_e_acsl_and_4 = 0;
-      __e_acsl_assert(! __gen_e_acsl_and_4,1,"Assertion","while_valid",
-                      "!\\valid(p)","tests/memory/early_exit.c",116);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Assertion";
+      __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(p)";
+      __gen_e_acsl_assert_data_4.file = "tests/memory/early_exit.c";
+      __gen_e_acsl_assert_data_4.fct = "while_valid";
+      __gen_e_acsl_assert_data_4.line = 116;
+      __e_acsl_assert(! __gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     }
-    /*@ assert ¬\valid(p); */ ;
+    /*@ assert !\valid(p); */ ;
     {
       int __gen_e_acsl_initialized_5;
       int __gen_e_acsl_and_5;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&q",
+                                   (void *)(& q));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& q),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\initialized(&q)",0,
+                                   __gen_e_acsl_initialized_5);
       if (__gen_e_acsl_initialized_5) {
         int __gen_e_acsl_valid_5;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"q",
+                                     (void *)q);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_5 = __e_acsl_valid((void *)q,sizeof(int),
                                               (void *)q,(void *)(& q));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                     "\\valid(q)",0,__gen_e_acsl_valid_5);
         __gen_e_acsl_and_5 = __gen_e_acsl_valid_5;
       }
       else __gen_e_acsl_and_5 = 0;
-      __e_acsl_assert(! __gen_e_acsl_and_5,1,"Assertion","while_valid",
-                      "!\\valid(q)","tests/memory/early_exit.c",117);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Assertion";
+      __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(q)";
+      __gen_e_acsl_assert_data_5.file = "tests/memory/early_exit.c";
+      __gen_e_acsl_assert_data_5.fct = "while_valid";
+      __gen_e_acsl_assert_data_5.line = 117;
+      __e_acsl_assert(! __gen_e_acsl_and_5,& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     }
-    /*@ assert ¬\valid(q); */ ;
+    /*@ assert !\valid(q); */ ;
     {
       int __gen_e_acsl_initialized_6;
       int __gen_e_acsl_and_6;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&r",
+                                   (void *)(& r));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& r),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "\\initialized(&r)",0,
+                                   __gen_e_acsl_initialized_6);
       if (__gen_e_acsl_initialized_6) {
         int __gen_e_acsl_valid_6;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"r",
+                                     (void *)r);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_6 = __e_acsl_valid((void *)r,sizeof(int),
                                               (void *)r,(void *)(& r));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                     "\\valid(r)",0,__gen_e_acsl_valid_6);
         __gen_e_acsl_and_6 = __gen_e_acsl_valid_6;
       }
       else __gen_e_acsl_and_6 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","while_valid",
-                      "\\valid(r)","tests/memory/early_exit.c",118);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "Assertion";
+      __gen_e_acsl_assert_data_6.pred_txt = "\\valid(r)";
+      __gen_e_acsl_assert_data_6.file = "tests/memory/early_exit.c";
+      __gen_e_acsl_assert_data_6.fct = "while_valid";
+      __gen_e_acsl_assert_data_6.line = 118;
+      __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     }
     /*@ assert \valid(r); */ ;
     __e_acsl_delete_block((void *)(& a0));
@@ -523,35 +945,77 @@ void continue_valid(void)
       {
         int __gen_e_acsl_initialized;
         int __gen_e_acsl_and;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                     (void *)(& p));
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(int *)",0,sizeof(int *));
         __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                         sizeof(int *));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                     "\\initialized(&p)",0,
+                                     __gen_e_acsl_initialized);
         if (__gen_e_acsl_initialized) {
           int __gen_e_acsl_valid;
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",
+                                       (void *)p);
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),
                                               (void *)p,(void *)(& p));
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                       "\\valid(p)",0,__gen_e_acsl_valid);
           __gen_e_acsl_and = __gen_e_acsl_valid;
         }
         else __gen_e_acsl_and = 0;
-        __e_acsl_assert(! __gen_e_acsl_and,1,"Assertion","continue_valid",
-                        "!\\valid(p)","tests/memory/early_exit.c",130);
+        __gen_e_acsl_assert_data.blocking = 1;
+        __gen_e_acsl_assert_data.kind = "Assertion";
+        __gen_e_acsl_assert_data.pred_txt = "!\\valid(p)";
+        __gen_e_acsl_assert_data.file = "tests/memory/early_exit.c";
+        __gen_e_acsl_assert_data.fct = "continue_valid";
+        __gen_e_acsl_assert_data.line = 130;
+        __e_acsl_assert(! __gen_e_acsl_and,& __gen_e_acsl_assert_data);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
       }
-      /*@ assert ¬\valid(p); */ ;
+      /*@ assert !\valid(p); */ ;
       {
         int __gen_e_acsl_initialized_2;
         int __gen_e_acsl_and_2;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q",
+                                     (void *)(& q));
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                       "sizeof(int *)",0,sizeof(int *));
         __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q),
                                                           sizeof(int *));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "\\initialized(&q)",0,
+                                     __gen_e_acsl_initialized_2);
         if (__gen_e_acsl_initialized_2) {
           int __gen_e_acsl_valid_2;
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q",
+                                       (void *)q);
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int),
                                                 (void *)q,(void *)(& q));
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                       "\\valid(q)",0,__gen_e_acsl_valid_2);
           __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
         }
         else __gen_e_acsl_and_2 = 0;
-        __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","continue_valid",
-                        "!\\valid(q)","tests/memory/early_exit.c",131);
+        __gen_e_acsl_assert_data_2.blocking = 1;
+        __gen_e_acsl_assert_data_2.kind = "Assertion";
+        __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(q)";
+        __gen_e_acsl_assert_data_2.file = "tests/memory/early_exit.c";
+        __gen_e_acsl_assert_data_2.fct = "continue_valid";
+        __gen_e_acsl_assert_data_2.line = 131;
+        __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
       }
-      /*@ assert ¬\valid(q); */ ;
+      /*@ assert !\valid(q); */ ;
       int a1 = 1;
       __e_acsl_store_block((void *)(& a1),(size_t)4);
       __e_acsl_full_init((void *)(& a1));
@@ -560,35 +1024,77 @@ void continue_valid(void)
       {
         int __gen_e_acsl_initialized_3;
         int __gen_e_acsl_and_3;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p",
+                                     (void *)(& p));
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                       "sizeof(int *)",0,sizeof(int *));
         __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& p),
                                                           sizeof(int *));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                     "\\initialized(&p)",0,
+                                     __gen_e_acsl_initialized_3);
         if (__gen_e_acsl_initialized_3) {
           int __gen_e_acsl_valid_3;
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",
+                                       (void *)p);
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_3 = __e_acsl_valid((void *)p,sizeof(int),
                                                 (void *)p,(void *)(& p));
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                       "\\valid(p)",0,__gen_e_acsl_valid_3);
           __gen_e_acsl_and_3 = __gen_e_acsl_valid_3;
         }
         else __gen_e_acsl_and_3 = 0;
-        __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","continue_valid",
-                        "\\valid(p)","tests/memory/early_exit.c",135);
+        __gen_e_acsl_assert_data_3.blocking = 1;
+        __gen_e_acsl_assert_data_3.kind = "Assertion";
+        __gen_e_acsl_assert_data_3.pred_txt = "\\valid(p)";
+        __gen_e_acsl_assert_data_3.file = "tests/memory/early_exit.c";
+        __gen_e_acsl_assert_data_3.fct = "continue_valid";
+        __gen_e_acsl_assert_data_3.line = 135;
+        __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
       }
       /*@ assert \valid(p); */ ;
       {
         int __gen_e_acsl_initialized_4;
         int __gen_e_acsl_and_4;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&q",
+                                     (void *)(& q));
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                       "sizeof(int *)",0,sizeof(int *));
         __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& q),
                                                           sizeof(int *));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                     "\\initialized(&q)",0,
+                                     __gen_e_acsl_initialized_4);
         if (__gen_e_acsl_initialized_4) {
           int __gen_e_acsl_valid_4;
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q",
+                                       (void *)q);
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                         "sizeof(int)",0,sizeof(int));
           __gen_e_acsl_valid_4 = __e_acsl_valid((void *)q,sizeof(int),
                                                 (void *)q,(void *)(& q));
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                       "\\valid(q)",0,__gen_e_acsl_valid_4);
           __gen_e_acsl_and_4 = __gen_e_acsl_valid_4;
         }
         else __gen_e_acsl_and_4 = 0;
-        __e_acsl_assert(! __gen_e_acsl_and_4,1,"Assertion","continue_valid",
-                        "!\\valid(q)","tests/memory/early_exit.c",136);
+        __gen_e_acsl_assert_data_4.blocking = 1;
+        __gen_e_acsl_assert_data_4.kind = "Assertion";
+        __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(q)";
+        __gen_e_acsl_assert_data_4.file = "tests/memory/early_exit.c";
+        __gen_e_acsl_assert_data_4.fct = "continue_valid";
+        __gen_e_acsl_assert_data_4.line = 136;
+        __e_acsl_assert(! __gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
       }
-      /*@ assert ¬\valid(q); */ ;
+      /*@ assert !\valid(q); */ ;
       {
         int a2 = 1;
         __e_acsl_store_block((void *)(& a2),(size_t)4);
@@ -598,33 +1104,75 @@ void continue_valid(void)
         {
           int __gen_e_acsl_initialized_5;
           int __gen_e_acsl_and_5;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&p",
+                                       (void *)(& p));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                         "sizeof(int *)",0,sizeof(int *));
           __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& p),
                                                             sizeof(int *));
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                       "\\initialized(&p)",0,
+                                       __gen_e_acsl_initialized_5);
           if (__gen_e_acsl_initialized_5) {
             int __gen_e_acsl_valid_5;
+            __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"p",
+                                         (void *)p);
+            __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                           "sizeof(int)",0,sizeof(int));
             __gen_e_acsl_valid_5 = __e_acsl_valid((void *)p,sizeof(int),
                                                   (void *)p,(void *)(& p));
+            __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                         "\\valid(p)",0,__gen_e_acsl_valid_5);
             __gen_e_acsl_and_5 = __gen_e_acsl_valid_5;
           }
           else __gen_e_acsl_and_5 = 0;
-          __e_acsl_assert(__gen_e_acsl_and_5,1,"Assertion","continue_valid",
-                          "\\valid(p)","tests/memory/early_exit.c",141);
+          __gen_e_acsl_assert_data_5.blocking = 1;
+          __gen_e_acsl_assert_data_5.kind = "Assertion";
+          __gen_e_acsl_assert_data_5.pred_txt = "\\valid(p)";
+          __gen_e_acsl_assert_data_5.file = "tests/memory/early_exit.c";
+          __gen_e_acsl_assert_data_5.fct = "continue_valid";
+          __gen_e_acsl_assert_data_5.line = 141;
+          __e_acsl_assert(__gen_e_acsl_and_5,& __gen_e_acsl_assert_data_5);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
         }
         /*@ assert \valid(p); */ ;
         {
           int __gen_e_acsl_initialized_6;
           int __gen_e_acsl_and_6;
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&q",
+                                       (void *)(& q));
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                         "sizeof(int *)",0,sizeof(int *));
           __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& q),
                                                             sizeof(int *));
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                       "\\initialized(&q)",0,
+                                       __gen_e_acsl_initialized_6);
           if (__gen_e_acsl_initialized_6) {
             int __gen_e_acsl_valid_6;
+            __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"q",
+                                         (void *)q);
+            __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                           "sizeof(int)",0,sizeof(int));
             __gen_e_acsl_valid_6 = __e_acsl_valid((void *)q,sizeof(int),
                                                   (void *)q,(void *)(& q));
+            __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                         "\\valid(q)",0,__gen_e_acsl_valid_6);
             __gen_e_acsl_and_6 = __gen_e_acsl_valid_6;
           }
           else __gen_e_acsl_and_6 = 0;
-          __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","continue_valid",
-                          "\\valid(q)","tests/memory/early_exit.c",142);
+          __gen_e_acsl_assert_data_6.blocking = 1;
+          __gen_e_acsl_assert_data_6.kind = "Assertion";
+          __gen_e_acsl_assert_data_6.pred_txt = "\\valid(q)";
+          __gen_e_acsl_assert_data_6.file = "tests/memory/early_exit.c";
+          __gen_e_acsl_assert_data_6.fct = "continue_valid";
+          __gen_e_acsl_assert_data_6.line = 142;
+          __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_6);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
         }
         /*@ assert \valid(q); */ ;
         __e_acsl_delete_block((void *)(& a1));
@@ -642,35 +1190,77 @@ void continue_valid(void)
   {
     int __gen_e_acsl_initialized_7;
     int __gen_e_acsl_and_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& p),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized_7);
     if (__gen_e_acsl_initialized_7) {
       int __gen_e_acsl_valid_7;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_7 = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                             (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"\\valid(p)",
+                                   0,__gen_e_acsl_valid_7);
       __gen_e_acsl_and_7 = __gen_e_acsl_valid_7;
     }
     else __gen_e_acsl_and_7 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_7,1,"Assertion","continue_valid",
-                    "!\\valid(p)","tests/memory/early_exit.c",150);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "!\\valid(p)";
+    __gen_e_acsl_assert_data_7.file = "tests/memory/early_exit.c";
+    __gen_e_acsl_assert_data_7.fct = "continue_valid";
+    __gen_e_acsl_assert_data_7.line = 150;
+    __e_acsl_assert(! __gen_e_acsl_and_7,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
-  /*@ assert ¬\valid(p); */ ;
+  /*@ assert !\valid(p); */ ;
   {
     int __gen_e_acsl_initialized_8;
     int __gen_e_acsl_and_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& q),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                 "\\initialized(&q)",0,
+                                 __gen_e_acsl_initialized_8);
     if (__gen_e_acsl_initialized_8) {
       int __gen_e_acsl_valid_8;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_8 = __e_acsl_valid((void *)q,sizeof(int),(void *)q,
                                             (void *)(& q));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"\\valid(q)",
+                                   0,__gen_e_acsl_valid_8);
       __gen_e_acsl_and_8 = __gen_e_acsl_valid_8;
     }
     else __gen_e_acsl_and_8 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_8,1,"Assertion","continue_valid",
-                    "!\\valid(q)","tests/memory/early_exit.c",151);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "!\\valid(q)";
+    __gen_e_acsl_assert_data_8.file = "tests/memory/early_exit.c";
+    __gen_e_acsl_assert_data_8.fct = "continue_valid";
+    __gen_e_acsl_assert_data_8.line = 151;
+    __e_acsl_assert(! __gen_e_acsl_and_8,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
-  /*@ assert ¬\valid(q); */ ;
+  /*@ assert !\valid(q); */ ;
   __e_acsl_delete_block((void *)(& q));
   __e_acsl_delete_block((void *)(& p));
   return;
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_errno.c b/src/plugins/e-acsl/tests/memory/oracle/gen_errno.c
index 650fa1452d15e1a37ac372f27dd49d07e088b049..91ef1c63a321fd58ff1b839b524cef4818afedda 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_errno.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_errno.c
@@ -1,6 +1,7 @@
 /* Generated by Frama-C */
 #include "errno.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -33,17 +34,36 @@ int main(int argc, char const **argv)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                           (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0,
+                                   __gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)",
-                    "tests/memory/errno.c",11);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(p)";
+    __gen_e_acsl_assert_data.file = "tests/memory/errno.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 11;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(p); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_freeable.c b/src/plugins/e-acsl/tests/memory/oracle/gen_freeable.c
index f804ef702e5b85b114de9eb6f80a4028faac9e05..981bbf47beda716221eddaf320c268891500f62b 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_freeable.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_freeable.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -31,58 +32,138 @@ int main(void)
   __e_acsl_store_block((void *)(& p),(size_t)8);
   {
     int __gen_e_acsl_freeable;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     /*@ assert Eva: initialization: \initialized(&p); */
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
     __gen_e_acsl_freeable = __e_acsl_freeable((void *)p);
-    __e_acsl_assert(! __gen_e_acsl_freeable,1,"Assertion","main",
-                    "!\\freeable(p)","tests/memory/freeable.c",14);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\freeable(p)",
+                                 0,__gen_e_acsl_freeable);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "!\\freeable(p)";
+    __gen_e_acsl_assert_data.file = "tests/memory/freeable.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 14;
+    __e_acsl_assert(! __gen_e_acsl_freeable,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert ¬\freeable(p); */ ;
+  /*@ assert !\freeable(p); */ ;
   {
     int __gen_e_acsl_freeable_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
     __gen_e_acsl_freeable_2 = __e_acsl_freeable((void *)0);
-    __e_acsl_assert(! __gen_e_acsl_freeable_2,1,"Assertion","main",
-                    "!\\freeable((void *)0)","tests/memory/freeable.c",15);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\freeable((void *)0)",0,
+                                 __gen_e_acsl_freeable_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "!\\freeable((void *)0)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/freeable.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 15;
+    __e_acsl_assert(! __gen_e_acsl_freeable_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert ¬\freeable((void *)0); */ ;
+  /*@ assert !\freeable((void *)0); */ ;
   __e_acsl_full_init((void *)(& p));
   p = (int *)malloc((unsigned long)4 * sizeof(int));
   {
     int __gen_e_acsl_freeable_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",(void *)p);
     __gen_e_acsl_freeable_3 = __e_acsl_freeable((void *)(p + 1));
-    __e_acsl_assert(! __gen_e_acsl_freeable_3,1,"Assertion","main",
-                    "!\\freeable(p + 1)","tests/memory/freeable.c",17);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\freeable(p + 1)",0,
+                                 __gen_e_acsl_freeable_3);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "!\\freeable(p + 1)";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/freeable.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 17;
+    __e_acsl_assert(! __gen_e_acsl_freeable_3,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert ¬\freeable(p + 1); */ ;
+  /*@ assert !\freeable(p + 1); */ ;
   {
     int __gen_e_acsl_freeable_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"p",(void *)p);
     __gen_e_acsl_freeable_4 = __e_acsl_freeable((void *)p);
-    __e_acsl_assert(__gen_e_acsl_freeable_4,1,"Assertion","main",
-                    "\\freeable(p)","tests/memory/freeable.c",18);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\freeable(p)",0,__gen_e_acsl_freeable_4);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\freeable(p)";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/freeable.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 18;
+    __e_acsl_assert(__gen_e_acsl_freeable_4,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
   /*@ assert \freeable(p); */ ;
   free((void *)p);
   {
     int __gen_e_acsl_freeable_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"p",(void *)p);
     __gen_e_acsl_freeable_5 = __e_acsl_freeable((void *)p);
-    __e_acsl_assert(! __gen_e_acsl_freeable_5,1,"Assertion","main",
-                    "!\\freeable(p)","tests/memory/freeable.c",20);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\freeable(p)",0,__gen_e_acsl_freeable_5);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "!\\freeable(p)";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/freeable.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 20;
+    __e_acsl_assert(! __gen_e_acsl_freeable_5,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert ¬\freeable(p); */ ;
+  /*@ assert !\freeable(p); */ ;
   {
     int __gen_e_acsl_freeable_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,
+                                 "(char *)array",(void *)(array));
     __gen_e_acsl_freeable_6 = __e_acsl_freeable((void *)(array));
-    __e_acsl_assert(! __gen_e_acsl_freeable_6,1,"Assertion","main",
-                    "!\\freeable((char *)array)","tests/memory/freeable.c",
-                    23);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "\\freeable((char *)array)",0,
+                                 __gen_e_acsl_freeable_6);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "!\\freeable((char *)array)";
+    __gen_e_acsl_assert_data_6.file = "tests/memory/freeable.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 23;
+    __e_acsl_assert(! __gen_e_acsl_freeable_6,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
-  /*@ assert ¬\freeable((char *)array); */ ;
+  /*@ assert !\freeable((char *)array); */ ;
   {
     int __gen_e_acsl_freeable_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&array[5]",
+                                 (void *)(& array[5]));
     __gen_e_acsl_freeable_7 = __e_acsl_freeable((void *)(& array[5]));
-    __e_acsl_assert(! __gen_e_acsl_freeable_7,1,"Assertion","main",
-                    "!\\freeable(&array[5])","tests/memory/freeable.c",24);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "\\freeable(&array[5])",0,
+                                 __gen_e_acsl_freeable_7);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "!\\freeable(&array[5])";
+    __gen_e_acsl_assert_data_7.file = "tests/memory/freeable.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 24;
+    __e_acsl_assert(! __gen_e_acsl_freeable_7,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
-  /*@ assert ¬\freeable(&array[5]); */ ;
+  /*@ assert !\freeable(&array[5]); */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(& p));
   __e_acsl_globals_clean();
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_ghost_parameters.c b/src/plugins/e-acsl/tests/memory/oracle/gen_ghost_parameters.c
index ade66b89b69aa12b1cbe00785131ad2555d32414..8750fdf7e2e0f192ef23eb6b78929f045144ad04 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_ghost_parameters.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_ghost_parameters.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -12,12 +12,14 @@ void function(int a, int b, int c, int d)
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int w = 0;
   int x = 1;
   int y = 2;
   int z = 3;
   function(w,x,y,z);
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_goto.c b/src/plugins/e-acsl/tests/memory/oracle/gen_goto.c
index 70c0f2aa925bcdbfadf5d5a0109660312ec9ac9d..8c2bf18d6248c6c0915b00c6f63bb07224fcd8dd 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_goto.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_goto.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -37,9 +37,22 @@ int main(void)
   if (a) goto _LOR;
   {
     int __gen_e_acsl_initialized;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"b",(void *)b);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(char)",
+                                   0,sizeof(char));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)b,sizeof(char));
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main",
-                    "\\initialized(b)","tests/memory/goto.c",17);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(b)",0,
+                                 __gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\initialized(b)";
+    __gen_e_acsl_assert_data.file = "tests/memory/goto.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 17;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \initialized(b); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_hidden_malloc.c b/src/plugins/e-acsl/tests/memory/oracle/gen_hidden_malloc.c
index 12027e7f5b4c03febb957c737441d3a1629edf80..a8a13901088dfb79d1d6d213a1907c7bd2005f26 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_hidden_malloc.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_hidden_malloc.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 char *__gen_e_acsl_literal_string;
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_init.c b/src/plugins/e-acsl/tests/memory/oracle/gen_init.c
index 276d86a0d821796532e160c41d7f467cd822b656..f243b67cd9e9b10c039ea17482dd335bc02f1ea6 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_init.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_init.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -37,21 +37,57 @@ int main(void)
   int *q = & b;
   __e_acsl_store_block((void *)(& q),(size_t)8);
   __e_acsl_full_init((void *)(& q));
-  __e_acsl_assert(1,1,"Assertion","main","\\initialized(&b)",
-                  "tests/memory/init.c",9);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\initialized(&b)";
+    __gen_e_acsl_assert_data.file = "tests/memory/init.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 9;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data);
+  }
   /*@ assert \initialized(&b); */ ;
   {
     int __gen_e_acsl_initialized;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)q,sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main",
-                    "\\initialized(q)","tests/memory/init.c",10);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(q)",0,
+                                 __gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(q)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/init.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 10;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \initialized(q); */ ;
   {
     int __gen_e_acsl_initialized_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)p,sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion","main",
-                    "\\initialized(p)","tests/memory/init.c",11);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized(p)",0,
+                                 __gen_e_acsl_initialized_2);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(p)";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/init.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 11;
+    __e_acsl_assert(__gen_e_acsl_initialized_2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   /*@ assert \initialized(p); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_init_function.c b/src/plugins/e-acsl/tests/memory/oracle/gen_init_function.c
index 0f80a70efb16cce469924cd3c6bd384fcabe2ec0..14edceab56dbb1cdc03502ddb7e0faa9d6dad6d5 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_init_function.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_init_function.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -10,15 +11,40 @@ int main(void)
 {
   int __retres;
   __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
-  __e_acsl_assert(__e_acsl_heap_allocation_size == 0UL,1,"Assertion","main",
-                  "__e_acsl_heap_allocation_size == 0",
-                  "tests/memory/init_function.c",16);
-  /*@ assert __e_acsl_heap_allocation_size ≡ 0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "__e_acsl_heap_allocation_size",0,
+                                   __e_acsl_heap_allocation_size);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "__e_acsl_heap_allocation_size == 0";
+    __gen_e_acsl_assert_data.file = "tests/memory/init_function.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 16;
+    __e_acsl_assert(__e_acsl_heap_allocation_size == 0UL,
+                    & __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert __e_acsl_heap_allocation_size == 0; */ ;
   char *a = malloc((unsigned long)7);
-  __e_acsl_assert(__e_acsl_heap_allocation_size == 7UL,1,"Assertion","main",
-                  "__e_acsl_heap_allocation_size == 7",
-                  "tests/memory/init_function.c",18);
-  /*@ assert __e_acsl_heap_allocation_size ≡ 7; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "__e_acsl_heap_allocation_size",0,
+                                   __e_acsl_heap_allocation_size);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "__e_acsl_heap_allocation_size == 7";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/init_function.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 18;
+    __e_acsl_assert(__e_acsl_heap_allocation_size == 7UL,
+                    & __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+  }
+  /*@ assert __e_acsl_heap_allocation_size == 7; */ ;
   __retres = 0;
   __e_acsl_memory_clean();
   return __retres;
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_initialized.c b/src/plugins/e-acsl/tests/memory/oracle/gen_initialized.c
index ecebc5da9e304428b2b62d79680ba460cdc0e971..86bb7b5cdd831dd5da2fe4b6c9fbc95f0274b508 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_initialized.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_initialized.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -44,24 +45,69 @@ int main(void)
   int *q = & B;
   __e_acsl_store_block((void *)(& q),(size_t)8);
   __e_acsl_full_init((void *)(& q));
-  __e_acsl_assert(1,1,"Assertion","main","\\initialized(&A)",
-                  "tests/memory/initialized.c",16);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\initialized(&A)";
+    __gen_e_acsl_assert_data.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 16;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data);
+  }
   /*@ assert \initialized(&A); */ ;
-  __e_acsl_assert(1,1,"Assertion","main","\\initialized(&B)",
-                  "tests/memory/initialized.c",17);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&B)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 17;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_2);
+  }
   /*@ assert \initialized(&B); */ ;
   {
     int __gen_e_acsl_initialized;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)p,sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main",
-                    "\\initialized(p)","tests/memory/initialized.c",18);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized(p)",0,
+                                 __gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(p)";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 18;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   /*@ assert \initialized(p); */ ;
   {
     int __gen_e_acsl_initialized_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)q,sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion","main",
-                    "\\initialized(q)","tests/memory/initialized.c",19);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\initialized(q)",0,
+                                 __gen_e_acsl_initialized_2);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\initialized(q)";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 19;
+    __e_acsl_assert(__gen_e_acsl_initialized_2,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
   /*@ assert \initialized(q); */ ;
   int a = 0;
@@ -76,266 +122,730 @@ int main(void)
   q = & b;
   {
     int __gen_e_acsl_initialized_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&a",
+                                 (void *)(& a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& a),
                                                       sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized_3,1,"Assertion","main",
-                    "\\initialized(&a)","tests/memory/initialized.c",30);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\initialized(&a)",0,
+                                 __gen_e_acsl_initialized_3);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "\\initialized(&a)";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 30;
+    __e_acsl_assert(__gen_e_acsl_initialized_3,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
   /*@ assert \initialized(&a); */ ;
   {
     int __gen_e_acsl_initialized_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&b",
+                                 (void *)(& b));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& b),
                                                       sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_4,1,"Assertion","main",
-                    "!\\initialized(&b)","tests/memory/initialized.c",31);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "\\initialized(&b)",0,
+                                 __gen_e_acsl_initialized_4);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "!\\initialized(&b)";
+    __gen_e_acsl_assert_data_6.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 31;
+    __e_acsl_assert(! __gen_e_acsl_initialized_4,
+                    & __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
-  /*@ assert ¬\initialized(&b); */ ;
+  /*@ assert !\initialized(&b); */ ;
   {
     int __gen_e_acsl_initialized_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)p,sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized_5,1,"Assertion","main",
-                    "\\initialized(p)","tests/memory/initialized.c",32);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "\\initialized(p)",0,
+                                 __gen_e_acsl_initialized_5);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "\\initialized(p)";
+    __gen_e_acsl_assert_data_7.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 32;
+    __e_acsl_assert(__gen_e_acsl_initialized_5,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
   /*@ assert \initialized(p); */ ;
   {
     int __gen_e_acsl_initialized_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)q,sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_6,1,"Assertion","main",
-                    "!\\initialized(q)","tests/memory/initialized.c",33);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                 "\\initialized(q)",0,
+                                 __gen_e_acsl_initialized_6);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "!\\initialized(q)";
+    __gen_e_acsl_assert_data_8.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 33;
+    __e_acsl_assert(! __gen_e_acsl_initialized_6,
+                    & __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
-  /*@ assert ¬\initialized(q); */ ;
+  /*@ assert !\initialized(q); */ ;
   {
     int __gen_e_acsl_initialized_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&c",
+                                 (void *)(& c));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                   "sizeof(long [2])",0,sizeof(long [2]));
     __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& c),
                                                       sizeof(long [2]));
-    __e_acsl_assert(__gen_e_acsl_initialized_7,1,"Assertion","main",
-                    "\\initialized(&c)","tests/memory/initialized.c",34);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                 "\\initialized(&c)",0,
+                                 __gen_e_acsl_initialized_7);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "\\initialized(&c)";
+    __gen_e_acsl_assert_data_9.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 34;
+    __e_acsl_assert(__gen_e_acsl_initialized_7,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
   /*@ assert \initialized(&c); */ ;
   {
     int __gen_e_acsl_initialized_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&d",
+                                 (void *)(& d));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                   "sizeof(long [2])",0,sizeof(long [2]));
     __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& d),
                                                       sizeof(long [2]));
-    __e_acsl_assert(! __gen_e_acsl_initialized_8,1,"Assertion","main",
-                    "!\\initialized(&d)","tests/memory/initialized.c",35);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                 "\\initialized(&d)",0,
+                                 __gen_e_acsl_initialized_8);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "!\\initialized(&d)";
+    __gen_e_acsl_assert_data_10.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 35;
+    __e_acsl_assert(! __gen_e_acsl_initialized_8,
+                    & __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
   }
-  /*@ assert ¬\initialized(&d); */ ;
+  /*@ assert !\initialized(&d); */ ;
   __e_acsl_full_init((void *)(& b));
   b = 0;
   {
     int __gen_e_acsl_initialized_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)q,sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized_9,1,"Assertion","main",
-                    "\\initialized(q)","tests/memory/initialized.c",39);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                 "\\initialized(q)",0,
+                                 __gen_e_acsl_initialized_9);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "\\initialized(q)";
+    __gen_e_acsl_assert_data_11.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 39;
+    __e_acsl_assert(__gen_e_acsl_initialized_9,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
   }
   /*@ assert \initialized(q); */ ;
   {
     int __gen_e_acsl_initialized_10;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"&b",
+                                 (void *)(& b));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& b),
                                                        sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized_10,1,"Assertion","main",
-                    "\\initialized(&b)","tests/memory/initialized.c",40);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                 "\\initialized(&b)",0,
+                                 __gen_e_acsl_initialized_10);
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "\\initialized(&b)";
+    __gen_e_acsl_assert_data_12.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 40;
+    __e_acsl_assert(__gen_e_acsl_initialized_10,
+                    & __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
   }
   /*@ assert \initialized(&b); */ ;
   __e_acsl_full_init((void *)(& r));
   r = d;
   {
     int __gen_e_acsl_initialized_11;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"(long *)d",
+                                 (void *)(d));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13,
+                                   "sizeof(long)",0,sizeof(long));
     __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(d),
                                                        sizeof(long));
-    __e_acsl_assert(! __gen_e_acsl_initialized_11,1,"Assertion","main",
-                    "!\\initialized((long *)d)","tests/memory/initialized.c",
-                    43);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                 "\\initialized((long *)d)",0,
+                                 __gen_e_acsl_initialized_11);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "!\\initialized((long *)d)";
+    __gen_e_acsl_assert_data_13.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 43;
+    __e_acsl_assert(! __gen_e_acsl_initialized_11,
+                    & __gen_e_acsl_assert_data_13);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
   }
-  /*@ assert ¬\initialized((long *)d); */ ;
+  /*@ assert !\initialized((long *)d); */ ;
   {
     int __gen_e_acsl_initialized_12;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,"&d[1]",
+                                 (void *)(& d[1]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14,
+                                   "sizeof(long)",0,sizeof(long));
     __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& d[1]),
                                                        sizeof(long));
-    __e_acsl_assert(! __gen_e_acsl_initialized_12,1,"Assertion","main",
-                    "!\\initialized(&d[1])","tests/memory/initialized.c",44);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,
+                                 "\\initialized(&d[1])",0,
+                                 __gen_e_acsl_initialized_12);
+    __gen_e_acsl_assert_data_14.blocking = 1;
+    __gen_e_acsl_assert_data_14.kind = "Assertion";
+    __gen_e_acsl_assert_data_14.pred_txt = "!\\initialized(&d[1])";
+    __gen_e_acsl_assert_data_14.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_14.fct = "main";
+    __gen_e_acsl_assert_data_14.line = 44;
+    __e_acsl_assert(! __gen_e_acsl_initialized_12,
+                    & __gen_e_acsl_assert_data_14);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
   }
-  /*@ assert ¬\initialized(&d[1]); */ ;
+  /*@ assert !\initialized(&d[1]); */ ;
   {
     int __gen_e_acsl_initialized_13;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"&d",
+                                 (void *)(& d));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15,
+                                   "sizeof(long [2])",0,sizeof(long [2]));
     __gen_e_acsl_initialized_13 = __e_acsl_initialized((void *)(& d),
                                                        sizeof(long [2]));
-    __e_acsl_assert(! __gen_e_acsl_initialized_13,1,"Assertion","main",
-                    "!\\initialized(&d)","tests/memory/initialized.c",45);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,
+                                 "\\initialized(&d)",0,
+                                 __gen_e_acsl_initialized_13);
+    __gen_e_acsl_assert_data_15.blocking = 1;
+    __gen_e_acsl_assert_data_15.kind = "Assertion";
+    __gen_e_acsl_assert_data_15.pred_txt = "!\\initialized(&d)";
+    __gen_e_acsl_assert_data_15.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_15.fct = "main";
+    __gen_e_acsl_assert_data_15.line = 45;
+    __e_acsl_assert(! __gen_e_acsl_initialized_13,
+                    & __gen_e_acsl_assert_data_15);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
   }
-  /*@ assert ¬\initialized(&d); */ ;
+  /*@ assert !\initialized(&d); */ ;
   {
     int __gen_e_acsl_initialized_14;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,"r",(void *)r);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_16,
+                                   "sizeof(long)",0,sizeof(long));
     __gen_e_acsl_initialized_14 = __e_acsl_initialized((void *)r,
                                                        sizeof(long));
-    __e_acsl_assert(! __gen_e_acsl_initialized_14,1,"Assertion","main",
-                    "!\\initialized(r)","tests/memory/initialized.c",46);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,
+                                 "\\initialized(r)",0,
+                                 __gen_e_acsl_initialized_14);
+    __gen_e_acsl_assert_data_16.blocking = 1;
+    __gen_e_acsl_assert_data_16.kind = "Assertion";
+    __gen_e_acsl_assert_data_16.pred_txt = "!\\initialized(r)";
+    __gen_e_acsl_assert_data_16.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_16.fct = "main";
+    __gen_e_acsl_assert_data_16.line = 46;
+    __e_acsl_assert(! __gen_e_acsl_initialized_14,
+                    & __gen_e_acsl_assert_data_16);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
   }
-  /*@ assert ¬\initialized(r); */ ;
+  /*@ assert !\initialized(r); */ ;
   {
     int __gen_e_acsl_initialized_15;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,"r",(void *)r);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17,
+                                   "sizeof(long)",0,sizeof(long));
     __gen_e_acsl_initialized_15 = __e_acsl_initialized((void *)(r + 1),
                                                        sizeof(long));
-    __e_acsl_assert(! __gen_e_acsl_initialized_15,1,"Assertion","main",
-                    "!\\initialized(r + 1)","tests/memory/initialized.c",47);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,
+                                 "\\initialized(r + 1)",0,
+                                 __gen_e_acsl_initialized_15);
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "Assertion";
+    __gen_e_acsl_assert_data_17.pred_txt = "!\\initialized(r + 1)";
+    __gen_e_acsl_assert_data_17.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_17.fct = "main";
+    __gen_e_acsl_assert_data_17.line = 47;
+    __e_acsl_assert(! __gen_e_acsl_initialized_15,
+                    & __gen_e_acsl_assert_data_17);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
   }
-  /*@ assert ¬\initialized(r + 1); */ ;
+  /*@ assert !\initialized(r + 1); */ ;
   __e_acsl_initialize((void *)(d),sizeof(long));
   d[0] = (long)1;
   {
     int __gen_e_acsl_initialized_16;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,"(long *)d",
+                                 (void *)(d));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_18,
+                                   "sizeof(long)",0,sizeof(long));
     __gen_e_acsl_initialized_16 = __e_acsl_initialized((void *)(d),
                                                        sizeof(long));
-    __e_acsl_assert(__gen_e_acsl_initialized_16,1,"Assertion","main",
-                    "\\initialized((long *)d)","tests/memory/initialized.c",
-                    50);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,
+                                 "\\initialized((long *)d)",0,
+                                 __gen_e_acsl_initialized_16);
+    __gen_e_acsl_assert_data_18.blocking = 1;
+    __gen_e_acsl_assert_data_18.kind = "Assertion";
+    __gen_e_acsl_assert_data_18.pred_txt = "\\initialized((long *)d)";
+    __gen_e_acsl_assert_data_18.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_18.fct = "main";
+    __gen_e_acsl_assert_data_18.line = 50;
+    __e_acsl_assert(__gen_e_acsl_initialized_16,
+                    & __gen_e_acsl_assert_data_18);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18);
   }
   /*@ assert \initialized((long *)d); */ ;
   {
     int __gen_e_acsl_initialized_17;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_19,"&d[1]",
+                                 (void *)(& d[1]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_19,
+                                   "sizeof(long)",0,sizeof(long));
     __gen_e_acsl_initialized_17 = __e_acsl_initialized((void *)(& d[1]),
                                                        sizeof(long));
-    __e_acsl_assert(! __gen_e_acsl_initialized_17,1,"Assertion","main",
-                    "!\\initialized(&d[1])","tests/memory/initialized.c",51);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,
+                                 "\\initialized(&d[1])",0,
+                                 __gen_e_acsl_initialized_17);
+    __gen_e_acsl_assert_data_19.blocking = 1;
+    __gen_e_acsl_assert_data_19.kind = "Assertion";
+    __gen_e_acsl_assert_data_19.pred_txt = "!\\initialized(&d[1])";
+    __gen_e_acsl_assert_data_19.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_19.fct = "main";
+    __gen_e_acsl_assert_data_19.line = 51;
+    __e_acsl_assert(! __gen_e_acsl_initialized_17,
+                    & __gen_e_acsl_assert_data_19);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19);
   }
-  /*@ assert ¬\initialized(&d[1]); */ ;
+  /*@ assert !\initialized(&d[1]); */ ;
   {
     int __gen_e_acsl_initialized_18;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20,"&d",
+                                 (void *)(& d));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_20,
+                                   "sizeof(long [2])",0,sizeof(long [2]));
     __gen_e_acsl_initialized_18 = __e_acsl_initialized((void *)(& d),
                                                        sizeof(long [2]));
-    __e_acsl_assert(! __gen_e_acsl_initialized_18,1,"Assertion","main",
-                    "!\\initialized(&d)","tests/memory/initialized.c",52);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,
+                                 "\\initialized(&d)",0,
+                                 __gen_e_acsl_initialized_18);
+    __gen_e_acsl_assert_data_20.blocking = 1;
+    __gen_e_acsl_assert_data_20.kind = "Assertion";
+    __gen_e_acsl_assert_data_20.pred_txt = "!\\initialized(&d)";
+    __gen_e_acsl_assert_data_20.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_20.fct = "main";
+    __gen_e_acsl_assert_data_20.line = 52;
+    __e_acsl_assert(! __gen_e_acsl_initialized_18,
+                    & __gen_e_acsl_assert_data_20);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20);
   }
-  /*@ assert ¬\initialized(&d); */ ;
+  /*@ assert !\initialized(&d); */ ;
   {
     int __gen_e_acsl_initialized_19;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_21,"r",(void *)r);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_21,
+                                   "sizeof(long)",0,sizeof(long));
     __gen_e_acsl_initialized_19 = __e_acsl_initialized((void *)r,
                                                        sizeof(long));
-    __e_acsl_assert(__gen_e_acsl_initialized_19,1,"Assertion","main",
-                    "\\initialized(r)","tests/memory/initialized.c",53);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21,
+                                 "\\initialized(r)",0,
+                                 __gen_e_acsl_initialized_19);
+    __gen_e_acsl_assert_data_21.blocking = 1;
+    __gen_e_acsl_assert_data_21.kind = "Assertion";
+    __gen_e_acsl_assert_data_21.pred_txt = "\\initialized(r)";
+    __gen_e_acsl_assert_data_21.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_21.fct = "main";
+    __gen_e_acsl_assert_data_21.line = 53;
+    __e_acsl_assert(__gen_e_acsl_initialized_19,
+                    & __gen_e_acsl_assert_data_21);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21);
   }
   /*@ assert \initialized(r); */ ;
   {
     int __gen_e_acsl_initialized_20;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_22,"r",(void *)r);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_22,
+                                   "sizeof(long)",0,sizeof(long));
     __gen_e_acsl_initialized_20 = __e_acsl_initialized((void *)(r + 1),
                                                        sizeof(long));
-    __e_acsl_assert(! __gen_e_acsl_initialized_20,1,"Assertion","main",
-                    "!\\initialized(r + 1)","tests/memory/initialized.c",54);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,
+                                 "\\initialized(r + 1)",0,
+                                 __gen_e_acsl_initialized_20);
+    __gen_e_acsl_assert_data_22.blocking = 1;
+    __gen_e_acsl_assert_data_22.kind = "Assertion";
+    __gen_e_acsl_assert_data_22.pred_txt = "!\\initialized(r + 1)";
+    __gen_e_acsl_assert_data_22.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_22.fct = "main";
+    __gen_e_acsl_assert_data_22.line = 54;
+    __e_acsl_assert(! __gen_e_acsl_initialized_20,
+                    & __gen_e_acsl_assert_data_22);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22);
   }
-  /*@ assert ¬\initialized(r + 1); */ ;
+  /*@ assert !\initialized(r + 1); */ ;
   __e_acsl_initialize((void *)(& d[1]),sizeof(long));
   d[1] = (long)1;
   {
     int __gen_e_acsl_initialized_21;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_23,"(long *)d",
+                                 (void *)(d));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_23,
+                                   "sizeof(long)",0,sizeof(long));
     __gen_e_acsl_initialized_21 = __e_acsl_initialized((void *)(d),
                                                        sizeof(long));
-    __e_acsl_assert(__gen_e_acsl_initialized_21,1,"Assertion","main",
-                    "\\initialized((long *)d)","tests/memory/initialized.c",
-                    57);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,
+                                 "\\initialized((long *)d)",0,
+                                 __gen_e_acsl_initialized_21);
+    __gen_e_acsl_assert_data_23.blocking = 1;
+    __gen_e_acsl_assert_data_23.kind = "Assertion";
+    __gen_e_acsl_assert_data_23.pred_txt = "\\initialized((long *)d)";
+    __gen_e_acsl_assert_data_23.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_23.fct = "main";
+    __gen_e_acsl_assert_data_23.line = 57;
+    __e_acsl_assert(__gen_e_acsl_initialized_21,
+                    & __gen_e_acsl_assert_data_23);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23);
   }
   /*@ assert \initialized((long *)d); */ ;
   {
     int __gen_e_acsl_initialized_22;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_24 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_24,"&d[1]",
+                                 (void *)(& d[1]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_24,
+                                   "sizeof(long)",0,sizeof(long));
     __gen_e_acsl_initialized_22 = __e_acsl_initialized((void *)(& d[1]),
                                                        sizeof(long));
-    __e_acsl_assert(__gen_e_acsl_initialized_22,1,"Assertion","main",
-                    "\\initialized(&d[1])","tests/memory/initialized.c",58);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,
+                                 "\\initialized(&d[1])",0,
+                                 __gen_e_acsl_initialized_22);
+    __gen_e_acsl_assert_data_24.blocking = 1;
+    __gen_e_acsl_assert_data_24.kind = "Assertion";
+    __gen_e_acsl_assert_data_24.pred_txt = "\\initialized(&d[1])";
+    __gen_e_acsl_assert_data_24.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_24.fct = "main";
+    __gen_e_acsl_assert_data_24.line = 58;
+    __e_acsl_assert(__gen_e_acsl_initialized_22,
+                    & __gen_e_acsl_assert_data_24);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_24);
   }
   /*@ assert \initialized(&d[1]); */ ;
   {
     int __gen_e_acsl_initialized_23;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_25 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_25,"&d",
+                                 (void *)(& d));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_25,
+                                   "sizeof(long [2])",0,sizeof(long [2]));
     __gen_e_acsl_initialized_23 = __e_acsl_initialized((void *)(& d),
                                                        sizeof(long [2]));
-    __e_acsl_assert(__gen_e_acsl_initialized_23,1,"Assertion","main",
-                    "\\initialized(&d)","tests/memory/initialized.c",59);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,
+                                 "\\initialized(&d)",0,
+                                 __gen_e_acsl_initialized_23);
+    __gen_e_acsl_assert_data_25.blocking = 1;
+    __gen_e_acsl_assert_data_25.kind = "Assertion";
+    __gen_e_acsl_assert_data_25.pred_txt = "\\initialized(&d)";
+    __gen_e_acsl_assert_data_25.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_25.fct = "main";
+    __gen_e_acsl_assert_data_25.line = 59;
+    __e_acsl_assert(__gen_e_acsl_initialized_23,
+                    & __gen_e_acsl_assert_data_25);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_25);
   }
   /*@ assert \initialized(&d); */ ;
   {
     int __gen_e_acsl_initialized_24;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_26 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_26,"r",(void *)r);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_26,
+                                   "sizeof(long)",0,sizeof(long));
     __gen_e_acsl_initialized_24 = __e_acsl_initialized((void *)r,
                                                        sizeof(long));
-    __e_acsl_assert(__gen_e_acsl_initialized_24,1,"Assertion","main",
-                    "\\initialized(r)","tests/memory/initialized.c",60);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,
+                                 "\\initialized(r)",0,
+                                 __gen_e_acsl_initialized_24);
+    __gen_e_acsl_assert_data_26.blocking = 1;
+    __gen_e_acsl_assert_data_26.kind = "Assertion";
+    __gen_e_acsl_assert_data_26.pred_txt = "\\initialized(r)";
+    __gen_e_acsl_assert_data_26.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_26.fct = "main";
+    __gen_e_acsl_assert_data_26.line = 60;
+    __e_acsl_assert(__gen_e_acsl_initialized_24,
+                    & __gen_e_acsl_assert_data_26);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_26);
   }
   /*@ assert \initialized(r); */ ;
   {
     int __gen_e_acsl_initialized_25;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_27 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_27,"r",(void *)r);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_27,
+                                   "sizeof(long)",0,sizeof(long));
     __gen_e_acsl_initialized_25 = __e_acsl_initialized((void *)(r + 1),
                                                        sizeof(long));
-    __e_acsl_assert(__gen_e_acsl_initialized_25,1,"Assertion","main",
-                    "\\initialized(r + 1)","tests/memory/initialized.c",61);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27,
+                                 "\\initialized(r + 1)",0,
+                                 __gen_e_acsl_initialized_25);
+    __gen_e_acsl_assert_data_27.blocking = 1;
+    __gen_e_acsl_assert_data_27.kind = "Assertion";
+    __gen_e_acsl_assert_data_27.pred_txt = "\\initialized(r + 1)";
+    __gen_e_acsl_assert_data_27.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_27.fct = "main";
+    __gen_e_acsl_assert_data_27.line = 61;
+    __e_acsl_assert(__gen_e_acsl_initialized_25,
+                    & __gen_e_acsl_assert_data_27);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_27);
   }
   /*@ assert \initialized(r + 1); */ ;
   __e_acsl_full_init((void *)(& p));
   p = (int *)malloc(sizeof(int *));
   {
     int __gen_e_acsl_initialized_26;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_28 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_28,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_28,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_26 = __e_acsl_initialized((void *)p,sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_26,1,"Assertion","main",
-                    "!\\initialized(p)","tests/memory/initialized.c",65);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28,
+                                 "\\initialized(p)",0,
+                                 __gen_e_acsl_initialized_26);
+    __gen_e_acsl_assert_data_28.blocking = 1;
+    __gen_e_acsl_assert_data_28.kind = "Assertion";
+    __gen_e_acsl_assert_data_28.pred_txt = "!\\initialized(p)";
+    __gen_e_acsl_assert_data_28.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_28.fct = "main";
+    __gen_e_acsl_assert_data_28.line = 65;
+    __e_acsl_assert(! __gen_e_acsl_initialized_26,
+                    & __gen_e_acsl_assert_data_28);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_28);
   }
-  /*@ assert ¬\initialized(p); */ ;
+  /*@ assert !\initialized(p); */ ;
   __e_acsl_full_init((void *)(& q));
   q = (int *)calloc((unsigned long)1,sizeof(int));
   {
     int __gen_e_acsl_initialized_27;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_29 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_29,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_29,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_27 = __e_acsl_initialized((void *)q,sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized_27,1,"Assertion","main",
-                    "\\initialized(q)","tests/memory/initialized.c",69);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_29,
+                                 "\\initialized(q)",0,
+                                 __gen_e_acsl_initialized_27);
+    __gen_e_acsl_assert_data_29.blocking = 1;
+    __gen_e_acsl_assert_data_29.kind = "Assertion";
+    __gen_e_acsl_assert_data_29.pred_txt = "\\initialized(q)";
+    __gen_e_acsl_assert_data_29.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_29.fct = "main";
+    __gen_e_acsl_assert_data_29.line = 69;
+    __e_acsl_assert(__gen_e_acsl_initialized_27,
+                    & __gen_e_acsl_assert_data_29);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_29);
   }
   /*@ assert \initialized(q); */ ;
   __e_acsl_full_init((void *)(& q));
   q = (int *)realloc((void *)q,(unsigned long)2 * sizeof(int));
   {
     int __gen_e_acsl_initialized_28;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_30 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_30,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_30,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_28 = __e_acsl_initialized((void *)q,sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized_28,1,"Assertion","main",
-                    "\\initialized(q)","tests/memory/initialized.c",74);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_30,
+                                 "\\initialized(q)",0,
+                                 __gen_e_acsl_initialized_28);
+    __gen_e_acsl_assert_data_30.blocking = 1;
+    __gen_e_acsl_assert_data_30.kind = "Assertion";
+    __gen_e_acsl_assert_data_30.pred_txt = "\\initialized(q)";
+    __gen_e_acsl_assert_data_30.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_30.fct = "main";
+    __gen_e_acsl_assert_data_30.line = 74;
+    __e_acsl_assert(__gen_e_acsl_initialized_28,
+                    & __gen_e_acsl_assert_data_30);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_30);
   }
   /*@ assert \initialized(q); */ ;
   __e_acsl_full_init((void *)(& q));
   q ++;
   {
     int __gen_e_acsl_initialized_29;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_31 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_31,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_31,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_29 = __e_acsl_initialized((void *)q,sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_29,1,"Assertion","main",
-                    "!\\initialized(q)","tests/memory/initialized.c",76);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_31,
+                                 "\\initialized(q)",0,
+                                 __gen_e_acsl_initialized_29);
+    __gen_e_acsl_assert_data_31.blocking = 1;
+    __gen_e_acsl_assert_data_31.kind = "Assertion";
+    __gen_e_acsl_assert_data_31.pred_txt = "!\\initialized(q)";
+    __gen_e_acsl_assert_data_31.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_31.fct = "main";
+    __gen_e_acsl_assert_data_31.line = 76;
+    __e_acsl_assert(! __gen_e_acsl_initialized_29,
+                    & __gen_e_acsl_assert_data_31);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_31);
   }
-  /*@ assert ¬\initialized(q); */ ;
+  /*@ assert !\initialized(q); */ ;
   __e_acsl_full_init((void *)(& q));
   q --;
   free((void *)p);
   free((void *)q);
   {
     int __gen_e_acsl_initialized_30;
-    /*@ assert Eva: dangling_pointer: ¬\dangling(&p); */
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_32 =
+      {.values = (void *)0};
+    /*@ assert Eva: dangling_pointer: !\dangling(&p); */
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_32,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_32,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_30 = __e_acsl_initialized((void *)p,sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_30,1,"Assertion","main",
-                    "!\\initialized(p)","tests/memory/initialized.c",84);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_32,
+                                 "\\initialized(p)",0,
+                                 __gen_e_acsl_initialized_30);
+    __gen_e_acsl_assert_data_32.blocking = 1;
+    __gen_e_acsl_assert_data_32.kind = "Assertion";
+    __gen_e_acsl_assert_data_32.pred_txt = "!\\initialized(p)";
+    __gen_e_acsl_assert_data_32.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_32.fct = "main";
+    __gen_e_acsl_assert_data_32.line = 84;
+    __e_acsl_assert(! __gen_e_acsl_initialized_30,
+                    & __gen_e_acsl_assert_data_32);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_32);
   }
-  /*@ assert ¬\initialized(p); */ ;
+  /*@ assert !\initialized(p); */ ;
   {
     int __gen_e_acsl_initialized_31;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_33 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_33,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_33,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_31 = __e_acsl_initialized((void *)q,sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_31,1,"Assertion","main",
-                    "!\\initialized(q)","tests/memory/initialized.c",85);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_33,
+                                 "\\initialized(q)",0,
+                                 __gen_e_acsl_initialized_31);
+    __gen_e_acsl_assert_data_33.blocking = 1;
+    __gen_e_acsl_assert_data_33.kind = "Assertion";
+    __gen_e_acsl_assert_data_33.pred_txt = "!\\initialized(q)";
+    __gen_e_acsl_assert_data_33.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_33.fct = "main";
+    __gen_e_acsl_assert_data_33.line = 85;
+    __e_acsl_assert(! __gen_e_acsl_initialized_31,
+                    & __gen_e_acsl_assert_data_33);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_33);
   }
-  /*@ assert ¬\initialized(q); */ ;
+  /*@ assert !\initialized(q); */ ;
   __e_acsl_full_init((void *)(& q));
   q = (int *)calloc((unsigned long)3,sizeof(int));
   {
     int __gen_e_acsl_size;
     int __gen_e_acsl_if;
     int __gen_e_acsl_initialized_32;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_34 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_34,"q",(void *)q);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_34,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_34,"sizeof(int)",
+                                 0,4);
     __gen_e_acsl_size = 4 * ((2 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_34,"size",0,
+                                 __gen_e_acsl_size);
     if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0;
-    else __gen_e_acsl_if = __gen_e_acsl_size;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_34,"size",0,
+                                   __gen_e_acsl_size);
+      __gen_e_acsl_if = __gen_e_acsl_size;
+    }
     __gen_e_acsl_initialized_32 = __e_acsl_initialized((void *)((char *)q + 
                                                                 4 * 0),
                                                        (size_t)__gen_e_acsl_if);
-    __e_acsl_assert(__gen_e_acsl_initialized_32,1,"Assertion","main",
-                    "\\initialized(q + (0 .. 2))",
-                    "tests/memory/initialized.c",90);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_34,
+                                 "\\initialized(q + (0 .. 2))",0,
+                                 __gen_e_acsl_initialized_32);
+    __gen_e_acsl_assert_data_34.blocking = 1;
+    __gen_e_acsl_assert_data_34.kind = "Assertion";
+    __gen_e_acsl_assert_data_34.pred_txt = "\\initialized(q + (0 .. 2))";
+    __gen_e_acsl_assert_data_34.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_34.fct = "main";
+    __gen_e_acsl_assert_data_34.line = 90;
+    __e_acsl_assert(__gen_e_acsl_initialized_32,
+                    & __gen_e_acsl_assert_data_34);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_34);
   }
   /*@ assert \initialized(q + (0 .. 2)); */ ;
   __e_acsl_full_init((void *)(& q));
@@ -344,41 +854,108 @@ int main(void)
     int __gen_e_acsl_size_2;
     int __gen_e_acsl_if_2;
     int __gen_e_acsl_initialized_33;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_35 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_35,"q",(void *)q);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"sizeof(int)",
+                                 0,4);
     __gen_e_acsl_size_2 = 4 * ((2 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"size",0,
+                                 __gen_e_acsl_size_2);
     if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0;
-    else __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,"size",0,
+                                   __gen_e_acsl_size_2);
+      __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    }
     __gen_e_acsl_initialized_33 = __e_acsl_initialized((void *)((char *)q + 
                                                                 4 * 0),
                                                        (size_t)__gen_e_acsl_if_2);
-    __e_acsl_assert(__gen_e_acsl_initialized_33,1,"Assertion","main",
-                    "\\initialized(q + (0 .. 2))",
-                    "tests/memory/initialized.c",92);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_35,
+                                 "\\initialized(q + (0 .. 2))",0,
+                                 __gen_e_acsl_initialized_33);
+    __gen_e_acsl_assert_data_35.blocking = 1;
+    __gen_e_acsl_assert_data_35.kind = "Assertion";
+    __gen_e_acsl_assert_data_35.pred_txt = "\\initialized(q + (0 .. 2))";
+    __gen_e_acsl_assert_data_35.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_35.fct = "main";
+    __gen_e_acsl_assert_data_35.line = 92;
+    __e_acsl_assert(__gen_e_acsl_initialized_33,
+                    & __gen_e_acsl_assert_data_35);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_35);
   }
   /*@ assert \initialized(q + (0 .. 2)); */ ;
   {
     int __gen_e_acsl_initialized_34;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_36 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_36,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_36,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_34 = __e_acsl_initialized((void *)(q + 3),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_34,1,"Assertion","main",
-                    "!\\initialized(q + 3)","tests/memory/initialized.c",93);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_36,
+                                 "\\initialized(q + 3)",0,
+                                 __gen_e_acsl_initialized_34);
+    __gen_e_acsl_assert_data_36.blocking = 1;
+    __gen_e_acsl_assert_data_36.kind = "Assertion";
+    __gen_e_acsl_assert_data_36.pred_txt = "!\\initialized(q + 3)";
+    __gen_e_acsl_assert_data_36.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_36.fct = "main";
+    __gen_e_acsl_assert_data_36.line = 93;
+    __e_acsl_assert(! __gen_e_acsl_initialized_34,
+                    & __gen_e_acsl_assert_data_36);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_36);
   }
-  /*@ assert ¬\initialized(q + 3); */ ;
+  /*@ assert !\initialized(q + 3); */ ;
   {
     int __gen_e_acsl_initialized_35;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_37 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_37,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_37,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_35 = __e_acsl_initialized((void *)(q + 4),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_35,1,"Assertion","main",
-                    "!\\initialized(q + 4)","tests/memory/initialized.c",94);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_37,
+                                 "\\initialized(q + 4)",0,
+                                 __gen_e_acsl_initialized_35);
+    __gen_e_acsl_assert_data_37.blocking = 1;
+    __gen_e_acsl_assert_data_37.kind = "Assertion";
+    __gen_e_acsl_assert_data_37.pred_txt = "!\\initialized(q + 4)";
+    __gen_e_acsl_assert_data_37.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_37.fct = "main";
+    __gen_e_acsl_assert_data_37.line = 94;
+    __e_acsl_assert(! __gen_e_acsl_initialized_35,
+                    & __gen_e_acsl_assert_data_37);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_37);
   }
-  /*@ assert ¬\initialized(q + 4); */ ;
+  /*@ assert !\initialized(q + 4); */ ;
   {
     int __gen_e_acsl_initialized_36;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_38 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_38,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_38,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_36 = __e_acsl_initialized((void *)(q + 5),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_36,1,"Assertion","main",
-                    "!\\initialized(q + 5)","tests/memory/initialized.c",95);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38,
+                                 "\\initialized(q + 5)",0,
+                                 __gen_e_acsl_initialized_36);
+    __gen_e_acsl_assert_data_38.blocking = 1;
+    __gen_e_acsl_assert_data_38.kind = "Assertion";
+    __gen_e_acsl_assert_data_38.pred_txt = "!\\initialized(q + 5)";
+    __gen_e_acsl_assert_data_38.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_38.fct = "main";
+    __gen_e_acsl_assert_data_38.line = 95;
+    __e_acsl_assert(! __gen_e_acsl_initialized_36,
+                    & __gen_e_acsl_assert_data_38);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_38);
   }
-  /*@ assert ¬\initialized(q + 5); */ ;
+  /*@ assert !\initialized(q + 5); */ ;
   free((void *)q);
   __e_acsl_full_init((void *)(& q));
   q = (int *)calloc((unsigned long)7,sizeof(int));
@@ -386,15 +963,37 @@ int main(void)
     int __gen_e_acsl_size_3;
     int __gen_e_acsl_if_3;
     int __gen_e_acsl_initialized_37;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_39 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_39,"q",(void *)q);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39,"sizeof(int)",
+                                 0,4);
     __gen_e_acsl_size_3 = 4 * ((6 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39,"size",0,
+                                 __gen_e_acsl_size_3);
     if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0;
-    else __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39,"size",0,
+                                   __gen_e_acsl_size_3);
+      __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+    }
     __gen_e_acsl_initialized_37 = __e_acsl_initialized((void *)((char *)q + 
                                                                 4 * 0),
                                                        (size_t)__gen_e_acsl_if_3);
-    __e_acsl_assert(__gen_e_acsl_initialized_37,1,"Assertion","main",
-                    "\\initialized(q + (0 .. 6))",
-                    "tests/memory/initialized.c",98);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39,
+                                 "\\initialized(q + (0 .. 6))",0,
+                                 __gen_e_acsl_initialized_37);
+    __gen_e_acsl_assert_data_39.blocking = 1;
+    __gen_e_acsl_assert_data_39.kind = "Assertion";
+    __gen_e_acsl_assert_data_39.pred_txt = "\\initialized(q + (0 .. 6))";
+    __gen_e_acsl_assert_data_39.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_39.fct = "main";
+    __gen_e_acsl_assert_data_39.line = 98;
+    __e_acsl_assert(__gen_e_acsl_initialized_37,
+                    & __gen_e_acsl_assert_data_39);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_39);
   }
   /*@ assert \initialized(q + (0 .. 6)); */ ;
   __e_acsl_full_init((void *)(& q));
@@ -403,66 +1002,170 @@ int main(void)
     int __gen_e_acsl_size_4;
     int __gen_e_acsl_if_4;
     int __gen_e_acsl_initialized_38;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_40 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_40,"q",(void *)q);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40,"sizeof(int)",
+                                 0,4);
     __gen_e_acsl_size_4 = 4 * ((6 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40,"size",0,
+                                 __gen_e_acsl_size_4);
     if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0;
-    else __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40,"size",0,
+                                   __gen_e_acsl_size_4);
+      __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+    }
     __gen_e_acsl_initialized_38 = __e_acsl_initialized((void *)((char *)q + 
                                                                 4 * 0),
                                                        (size_t)__gen_e_acsl_if_4);
-    __e_acsl_assert(__gen_e_acsl_initialized_38,1,"Assertion","main",
-                    "\\initialized(q + (0 .. 6))",
-                    "tests/memory/initialized.c",100);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40,
+                                 "\\initialized(q + (0 .. 6))",0,
+                                 __gen_e_acsl_initialized_38);
+    __gen_e_acsl_assert_data_40.blocking = 1;
+    __gen_e_acsl_assert_data_40.kind = "Assertion";
+    __gen_e_acsl_assert_data_40.pred_txt = "\\initialized(q + (0 .. 6))";
+    __gen_e_acsl_assert_data_40.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_40.fct = "main";
+    __gen_e_acsl_assert_data_40.line = 100;
+    __e_acsl_assert(__gen_e_acsl_initialized_38,
+                    & __gen_e_acsl_assert_data_40);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_40);
   }
   /*@ assert \initialized(q + (0 .. 6)); */ ;
   {
     int __gen_e_acsl_initialized_39;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_41 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_41,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_41,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_39 = __e_acsl_initialized((void *)(q + 7),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_39,1,"Assertion","main",
-                    "!\\initialized(q + 7)","tests/memory/initialized.c",101);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41,
+                                 "\\initialized(q + 7)",0,
+                                 __gen_e_acsl_initialized_39);
+    __gen_e_acsl_assert_data_41.blocking = 1;
+    __gen_e_acsl_assert_data_41.kind = "Assertion";
+    __gen_e_acsl_assert_data_41.pred_txt = "!\\initialized(q + 7)";
+    __gen_e_acsl_assert_data_41.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_41.fct = "main";
+    __gen_e_acsl_assert_data_41.line = 101;
+    __e_acsl_assert(! __gen_e_acsl_initialized_39,
+                    & __gen_e_acsl_assert_data_41);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_41);
   }
-  /*@ assert ¬\initialized(q + 7); */ ;
+  /*@ assert !\initialized(q + 7); */ ;
   __e_acsl_full_init((void *)(& q));
   q = (int *)realloc((void *)q,(unsigned long)10 * sizeof(int));
   {
     int __gen_e_acsl_size_5;
     int __gen_e_acsl_if_5;
     int __gen_e_acsl_initialized_40;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_42 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_42,"q",(void *)q);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42,"sizeof(int)",
+                                 0,4);
     __gen_e_acsl_size_5 = 4 * ((6 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42,"size",0,
+                                 __gen_e_acsl_size_5);
     if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0;
-    else __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42,"size",0,
+                                   __gen_e_acsl_size_5);
+      __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+    }
     __gen_e_acsl_initialized_40 = __e_acsl_initialized((void *)((char *)q + 
                                                                 4 * 0),
                                                        (size_t)__gen_e_acsl_if_5);
-    __e_acsl_assert(__gen_e_acsl_initialized_40,1,"Assertion","main",
-                    "\\initialized(q + (0 .. 6))",
-                    "tests/memory/initialized.c",103);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42,
+                                 "\\initialized(q + (0 .. 6))",0,
+                                 __gen_e_acsl_initialized_40);
+    __gen_e_acsl_assert_data_42.blocking = 1;
+    __gen_e_acsl_assert_data_42.kind = "Assertion";
+    __gen_e_acsl_assert_data_42.pred_txt = "\\initialized(q + (0 .. 6))";
+    __gen_e_acsl_assert_data_42.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_42.fct = "main";
+    __gen_e_acsl_assert_data_42.line = 103;
+    __e_acsl_assert(__gen_e_acsl_initialized_40,
+                    & __gen_e_acsl_assert_data_42);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_42);
   }
   /*@ assert \initialized(q + (0 .. 6)); */ ;
   {
     int __gen_e_acsl_initialized_41;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_43 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_43,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_43,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_41 = __e_acsl_initialized((void *)(q + 7),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_41,1,"Assertion","main",
-                    "!\\initialized(q + 7)","tests/memory/initialized.c",104);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_43,
+                                 "\\initialized(q + 7)",0,
+                                 __gen_e_acsl_initialized_41);
+    __gen_e_acsl_assert_data_43.blocking = 1;
+    __gen_e_acsl_assert_data_43.kind = "Assertion";
+    __gen_e_acsl_assert_data_43.pred_txt = "!\\initialized(q + 7)";
+    __gen_e_acsl_assert_data_43.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_43.fct = "main";
+    __gen_e_acsl_assert_data_43.line = 104;
+    __e_acsl_assert(! __gen_e_acsl_initialized_41,
+                    & __gen_e_acsl_assert_data_43);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_43);
   }
-  /*@ assert ¬\initialized(q + 7); */ ;
+  /*@ assert !\initialized(q + 7); */ ;
   {
     int __gen_e_acsl_initialized_42;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_44 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_44,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_44,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_42 = __e_acsl_initialized((void *)(q + 8),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_42,1,"Assertion","main",
-                    "!\\initialized(q + 8)","tests/memory/initialized.c",105);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44,
+                                 "\\initialized(q + 8)",0,
+                                 __gen_e_acsl_initialized_42);
+    __gen_e_acsl_assert_data_44.blocking = 1;
+    __gen_e_acsl_assert_data_44.kind = "Assertion";
+    __gen_e_acsl_assert_data_44.pred_txt = "!\\initialized(q + 8)";
+    __gen_e_acsl_assert_data_44.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_44.fct = "main";
+    __gen_e_acsl_assert_data_44.line = 105;
+    __e_acsl_assert(! __gen_e_acsl_initialized_42,
+                    & __gen_e_acsl_assert_data_44);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_44);
   }
-  /*@ assert ¬\initialized(q + 8); */ ;
+  /*@ assert !\initialized(q + 8); */ ;
   {
     int __gen_e_acsl_initialized_43;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_45 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_45,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_45,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_43 = __e_acsl_initialized((void *)(q + 9),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_43,1,"Assertion","main",
-                    "!\\initialized(q + 9)","tests/memory/initialized.c",106);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_45,
+                                 "\\initialized(q + 9)",0,
+                                 __gen_e_acsl_initialized_43);
+    __gen_e_acsl_assert_data_45.blocking = 1;
+    __gen_e_acsl_assert_data_45.kind = "Assertion";
+    __gen_e_acsl_assert_data_45.pred_txt = "!\\initialized(q + 9)";
+    __gen_e_acsl_assert_data_45.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_45.fct = "main";
+    __gen_e_acsl_assert_data_45.line = 106;
+    __e_acsl_assert(! __gen_e_acsl_initialized_43,
+                    & __gen_e_acsl_assert_data_45);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_45);
   }
-  /*@ assert ¬\initialized(q + 9); */ ;
+  /*@ assert !\initialized(q + 9); */ ;
   free((void *)q);
   __e_acsl_full_init((void *)(& q));
   q = (int *)calloc((unsigned long)2,sizeof(int));
@@ -470,15 +1173,37 @@ int main(void)
     int __gen_e_acsl_size_6;
     int __gen_e_acsl_if_6;
     int __gen_e_acsl_initialized_44;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_46 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_46,"q",(void *)q);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46,"sizeof(int)",
+                                 0,4);
     __gen_e_acsl_size_6 = 4 * ((1 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46,"size",0,
+                                 __gen_e_acsl_size_6);
     if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0;
-    else __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46,"size",0,
+                                   __gen_e_acsl_size_6);
+      __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+    }
     __gen_e_acsl_initialized_44 = __e_acsl_initialized((void *)((char *)q + 
                                                                 4 * 0),
                                                        (size_t)__gen_e_acsl_if_6);
-    __e_acsl_assert(__gen_e_acsl_initialized_44,1,"Assertion","main",
-                    "\\initialized(q + (0 .. 1))",
-                    "tests/memory/initialized.c",109);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46,
+                                 "\\initialized(q + (0 .. 1))",0,
+                                 __gen_e_acsl_initialized_44);
+    __gen_e_acsl_assert_data_46.blocking = 1;
+    __gen_e_acsl_assert_data_46.kind = "Assertion";
+    __gen_e_acsl_assert_data_46.pred_txt = "\\initialized(q + (0 .. 1))";
+    __gen_e_acsl_assert_data_46.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_46.fct = "main";
+    __gen_e_acsl_assert_data_46.line = 109;
+    __e_acsl_assert(__gen_e_acsl_initialized_44,
+                    & __gen_e_acsl_assert_data_46);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_46);
   }
   /*@ assert \initialized(q + (0 .. 1)); */ ;
   __e_acsl_full_init((void *)(& q));
@@ -487,33 +1212,85 @@ int main(void)
     int __gen_e_acsl_size_7;
     int __gen_e_acsl_if_7;
     int __gen_e_acsl_initialized_45;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_47 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_47,"q",(void *)q);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_47,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_47,"sizeof(int)",
+                                 0,4);
     __gen_e_acsl_size_7 = 4 * ((1 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_47,"size",0,
+                                 __gen_e_acsl_size_7);
     if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0;
-    else __gen_e_acsl_if_7 = __gen_e_acsl_size_7;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_47,"size",0,
+                                   __gen_e_acsl_size_7);
+      __gen_e_acsl_if_7 = __gen_e_acsl_size_7;
+    }
     __gen_e_acsl_initialized_45 = __e_acsl_initialized((void *)((char *)q + 
                                                                 4 * 0),
                                                        (size_t)__gen_e_acsl_if_7);
-    __e_acsl_assert(__gen_e_acsl_initialized_45,1,"Assertion","main",
-                    "\\initialized(q + (0 .. 1))",
-                    "tests/memory/initialized.c",111);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_47,
+                                 "\\initialized(q + (0 .. 1))",0,
+                                 __gen_e_acsl_initialized_45);
+    __gen_e_acsl_assert_data_47.blocking = 1;
+    __gen_e_acsl_assert_data_47.kind = "Assertion";
+    __gen_e_acsl_assert_data_47.pred_txt = "\\initialized(q + (0 .. 1))";
+    __gen_e_acsl_assert_data_47.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_47.fct = "main";
+    __gen_e_acsl_assert_data_47.line = 111;
+    __e_acsl_assert(__gen_e_acsl_initialized_45,
+                    & __gen_e_acsl_assert_data_47);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_47);
   }
   /*@ assert \initialized(q + (0 .. 1)); */ ;
   {
     int __gen_e_acsl_initialized_46;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_48 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_48,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_48,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_46 = __e_acsl_initialized((void *)(q + 2),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_46,1,"Assertion","main",
-                    "!\\initialized(q + 2)","tests/memory/initialized.c",112);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_48,
+                                 "\\initialized(q + 2)",0,
+                                 __gen_e_acsl_initialized_46);
+    __gen_e_acsl_assert_data_48.blocking = 1;
+    __gen_e_acsl_assert_data_48.kind = "Assertion";
+    __gen_e_acsl_assert_data_48.pred_txt = "!\\initialized(q + 2)";
+    __gen_e_acsl_assert_data_48.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_48.fct = "main";
+    __gen_e_acsl_assert_data_48.line = 112;
+    __e_acsl_assert(! __gen_e_acsl_initialized_46,
+                    & __gen_e_acsl_assert_data_48);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_48);
   }
-  /*@ assert ¬\initialized(q + 2); */ ;
+  /*@ assert !\initialized(q + 2); */ ;
   {
     int __gen_e_acsl_initialized_47;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_49 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_49,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_49,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_47 = __e_acsl_initialized((void *)(q + 3),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_47,1,"Assertion","main",
-                    "!\\initialized(q + 3)","tests/memory/initialized.c",113);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_49,
+                                 "\\initialized(q + 3)",0,
+                                 __gen_e_acsl_initialized_47);
+    __gen_e_acsl_assert_data_49.blocking = 1;
+    __gen_e_acsl_assert_data_49.kind = "Assertion";
+    __gen_e_acsl_assert_data_49.pred_txt = "!\\initialized(q + 3)";
+    __gen_e_acsl_assert_data_49.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_49.fct = "main";
+    __gen_e_acsl_assert_data_49.line = 113;
+    __e_acsl_assert(! __gen_e_acsl_initialized_47,
+                    & __gen_e_acsl_assert_data_49);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_49);
   }
-  /*@ assert ¬\initialized(q + 3); */ ;
+  /*@ assert !\initialized(q + 3); */ ;
   free((void *)q);
   __e_acsl_full_init((void *)(& q));
   q = (int *)calloc((unsigned long)6,sizeof(int));
@@ -521,15 +1298,37 @@ int main(void)
     int __gen_e_acsl_size_8;
     int __gen_e_acsl_if_8;
     int __gen_e_acsl_initialized_48;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_50 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_50,"q",(void *)q);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"sizeof(int)",
+                                 0,4);
     __gen_e_acsl_size_8 = 4 * ((5 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"size",0,
+                                 __gen_e_acsl_size_8);
     if (__gen_e_acsl_size_8 <= 0) __gen_e_acsl_if_8 = 0;
-    else __gen_e_acsl_if_8 = __gen_e_acsl_size_8;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"size",0,
+                                   __gen_e_acsl_size_8);
+      __gen_e_acsl_if_8 = __gen_e_acsl_size_8;
+    }
     __gen_e_acsl_initialized_48 = __e_acsl_initialized((void *)((char *)q + 
                                                                 4 * 0),
                                                        (size_t)__gen_e_acsl_if_8);
-    __e_acsl_assert(__gen_e_acsl_initialized_48,1,"Assertion","main",
-                    "\\initialized(q + (0 .. 5))",
-                    "tests/memory/initialized.c",116);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,
+                                 "\\initialized(q + (0 .. 5))",0,
+                                 __gen_e_acsl_initialized_48);
+    __gen_e_acsl_assert_data_50.blocking = 1;
+    __gen_e_acsl_assert_data_50.kind = "Assertion";
+    __gen_e_acsl_assert_data_50.pred_txt = "\\initialized(q + (0 .. 5))";
+    __gen_e_acsl_assert_data_50.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_50.fct = "main";
+    __gen_e_acsl_assert_data_50.line = 116;
+    __e_acsl_assert(__gen_e_acsl_initialized_48,
+                    & __gen_e_acsl_assert_data_50);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_50);
   }
   /*@ assert \initialized(q + (0 .. 5)); */ ;
   __e_acsl_full_init((void *)(& q));
@@ -538,15 +1337,37 @@ int main(void)
     int __gen_e_acsl_size_9;
     int __gen_e_acsl_if_9;
     int __gen_e_acsl_initialized_49;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_51 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_51,"q",(void *)q);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51,"sizeof(int)",
+                                 0,4);
     __gen_e_acsl_size_9 = 4 * ((2 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51,"size",0,
+                                 __gen_e_acsl_size_9);
     if (__gen_e_acsl_size_9 <= 0) __gen_e_acsl_if_9 = 0;
-    else __gen_e_acsl_if_9 = __gen_e_acsl_size_9;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51,"size",0,
+                                   __gen_e_acsl_size_9);
+      __gen_e_acsl_if_9 = __gen_e_acsl_size_9;
+    }
     __gen_e_acsl_initialized_49 = __e_acsl_initialized((void *)((char *)q + 
                                                                 4 * 0),
                                                        (size_t)__gen_e_acsl_if_9);
-    __e_acsl_assert(__gen_e_acsl_initialized_49,1,"Assertion","main",
-                    "\\initialized(q + (0 .. 2))",
-                    "tests/memory/initialized.c",118);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51,
+                                 "\\initialized(q + (0 .. 2))",0,
+                                 __gen_e_acsl_initialized_49);
+    __gen_e_acsl_assert_data_51.blocking = 1;
+    __gen_e_acsl_assert_data_51.kind = "Assertion";
+    __gen_e_acsl_assert_data_51.pred_txt = "\\initialized(q + (0 .. 2))";
+    __gen_e_acsl_assert_data_51.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_51.fct = "main";
+    __gen_e_acsl_assert_data_51.line = 118;
+    __e_acsl_assert(__gen_e_acsl_initialized_49,
+                    & __gen_e_acsl_assert_data_51);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_51);
   }
   /*@ assert \initialized(q + (0 .. 2)); */ ;
   free((void *)q);
@@ -554,78 +1375,213 @@ int main(void)
   q = (int *)malloc((unsigned long)6 * sizeof(int));
   {
     int __gen_e_acsl_initialized_50;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_52 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_52,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_52,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_50 = __e_acsl_initialized((void *)(q + 0),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_50,1,"Assertion","main",
-                    "!\\initialized(q + 0)","tests/memory/initialized.c",121);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_52,
+                                 "\\initialized(q + 0)",0,
+                                 __gen_e_acsl_initialized_50);
+    __gen_e_acsl_assert_data_52.blocking = 1;
+    __gen_e_acsl_assert_data_52.kind = "Assertion";
+    __gen_e_acsl_assert_data_52.pred_txt = "!\\initialized(q + 0)";
+    __gen_e_acsl_assert_data_52.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_52.fct = "main";
+    __gen_e_acsl_assert_data_52.line = 121;
+    __e_acsl_assert(! __gen_e_acsl_initialized_50,
+                    & __gen_e_acsl_assert_data_52);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_52);
   }
-  /*@ assert ¬\initialized(q + 0); */ ;
+  /*@ assert !\initialized(q + 0); */ ;
   {
     int __gen_e_acsl_initialized_51;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_53 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_53,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_53,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_51 = __e_acsl_initialized((void *)(q + 1),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_51,1,"Assertion","main",
-                    "!\\initialized(q + 1)","tests/memory/initialized.c",122);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53,
+                                 "\\initialized(q + 1)",0,
+                                 __gen_e_acsl_initialized_51);
+    __gen_e_acsl_assert_data_53.blocking = 1;
+    __gen_e_acsl_assert_data_53.kind = "Assertion";
+    __gen_e_acsl_assert_data_53.pred_txt = "!\\initialized(q + 1)";
+    __gen_e_acsl_assert_data_53.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_53.fct = "main";
+    __gen_e_acsl_assert_data_53.line = 122;
+    __e_acsl_assert(! __gen_e_acsl_initialized_51,
+                    & __gen_e_acsl_assert_data_53);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_53);
   }
-  /*@ assert ¬\initialized(q + 1); */ ;
+  /*@ assert !\initialized(q + 1); */ ;
   {
     int __gen_e_acsl_initialized_52;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_54 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_54,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_54,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_52 = __e_acsl_initialized((void *)(q + 2),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_52,1,"Assertion","main",
-                    "!\\initialized(q + 2)","tests/memory/initialized.c",123);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_54,
+                                 "\\initialized(q + 2)",0,
+                                 __gen_e_acsl_initialized_52);
+    __gen_e_acsl_assert_data_54.blocking = 1;
+    __gen_e_acsl_assert_data_54.kind = "Assertion";
+    __gen_e_acsl_assert_data_54.pred_txt = "!\\initialized(q + 2)";
+    __gen_e_acsl_assert_data_54.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_54.fct = "main";
+    __gen_e_acsl_assert_data_54.line = 123;
+    __e_acsl_assert(! __gen_e_acsl_initialized_52,
+                    & __gen_e_acsl_assert_data_54);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_54);
   }
-  /*@ assert ¬\initialized(q + 2); */ ;
+  /*@ assert !\initialized(q + 2); */ ;
   {
     int __gen_e_acsl_initialized_53;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_55 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_55,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_55,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_53 = __e_acsl_initialized((void *)(q + 3),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_53,1,"Assertion","main",
-                    "!\\initialized(q + 3)","tests/memory/initialized.c",124);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_55,
+                                 "\\initialized(q + 3)",0,
+                                 __gen_e_acsl_initialized_53);
+    __gen_e_acsl_assert_data_55.blocking = 1;
+    __gen_e_acsl_assert_data_55.kind = "Assertion";
+    __gen_e_acsl_assert_data_55.pred_txt = "!\\initialized(q + 3)";
+    __gen_e_acsl_assert_data_55.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_55.fct = "main";
+    __gen_e_acsl_assert_data_55.line = 124;
+    __e_acsl_assert(! __gen_e_acsl_initialized_53,
+                    & __gen_e_acsl_assert_data_55);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_55);
   }
-  /*@ assert ¬\initialized(q + 3); */ ;
+  /*@ assert !\initialized(q + 3); */ ;
   {
     int __gen_e_acsl_initialized_54;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_56 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_56,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_56,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_54 = __e_acsl_initialized((void *)(q + 4),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_54,1,"Assertion","main",
-                    "!\\initialized(q + 4)","tests/memory/initialized.c",125);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56,
+                                 "\\initialized(q + 4)",0,
+                                 __gen_e_acsl_initialized_54);
+    __gen_e_acsl_assert_data_56.blocking = 1;
+    __gen_e_acsl_assert_data_56.kind = "Assertion";
+    __gen_e_acsl_assert_data_56.pred_txt = "!\\initialized(q + 4)";
+    __gen_e_acsl_assert_data_56.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_56.fct = "main";
+    __gen_e_acsl_assert_data_56.line = 125;
+    __e_acsl_assert(! __gen_e_acsl_initialized_54,
+                    & __gen_e_acsl_assert_data_56);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_56);
   }
-  /*@ assert ¬\initialized(q + 4); */ ;
+  /*@ assert !\initialized(q + 4); */ ;
   {
     int __gen_e_acsl_initialized_55;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_57 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_57,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_57,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_55 = __e_acsl_initialized((void *)(q + 5),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_55,1,"Assertion","main",
-                    "!\\initialized(q + 5)","tests/memory/initialized.c",126);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_57,
+                                 "\\initialized(q + 5)",0,
+                                 __gen_e_acsl_initialized_55);
+    __gen_e_acsl_assert_data_57.blocking = 1;
+    __gen_e_acsl_assert_data_57.kind = "Assertion";
+    __gen_e_acsl_assert_data_57.pred_txt = "!\\initialized(q + 5)";
+    __gen_e_acsl_assert_data_57.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_57.fct = "main";
+    __gen_e_acsl_assert_data_57.line = 126;
+    __e_acsl_assert(! __gen_e_acsl_initialized_55,
+                    & __gen_e_acsl_assert_data_57);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_57);
   }
-  /*@ assert ¬\initialized(q + 5); */ ;
+  /*@ assert !\initialized(q + 5); */ ;
   __e_acsl_full_init((void *)(& q));
   q = (int *)realloc((void *)q,(unsigned long)3 * sizeof(int));
   {
     int __gen_e_acsl_initialized_56;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_58 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_58,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_58,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_56 = __e_acsl_initialized((void *)(q + 0),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_56,1,"Assertion","main",
-                    "!\\initialized(q + 0)","tests/memory/initialized.c",128);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_58,
+                                 "\\initialized(q + 0)",0,
+                                 __gen_e_acsl_initialized_56);
+    __gen_e_acsl_assert_data_58.blocking = 1;
+    __gen_e_acsl_assert_data_58.kind = "Assertion";
+    __gen_e_acsl_assert_data_58.pred_txt = "!\\initialized(q + 0)";
+    __gen_e_acsl_assert_data_58.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_58.fct = "main";
+    __gen_e_acsl_assert_data_58.line = 128;
+    __e_acsl_assert(! __gen_e_acsl_initialized_56,
+                    & __gen_e_acsl_assert_data_58);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_58);
   }
-  /*@ assert ¬\initialized(q + 0); */ ;
+  /*@ assert !\initialized(q + 0); */ ;
   {
     int __gen_e_acsl_initialized_57;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_59 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_59,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_59,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_57 = __e_acsl_initialized((void *)(q + 1),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_57,1,"Assertion","main",
-                    "!\\initialized(q + 1)","tests/memory/initialized.c",129);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_59,
+                                 "\\initialized(q + 1)",0,
+                                 __gen_e_acsl_initialized_57);
+    __gen_e_acsl_assert_data_59.blocking = 1;
+    __gen_e_acsl_assert_data_59.kind = "Assertion";
+    __gen_e_acsl_assert_data_59.pred_txt = "!\\initialized(q + 1)";
+    __gen_e_acsl_assert_data_59.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_59.fct = "main";
+    __gen_e_acsl_assert_data_59.line = 129;
+    __e_acsl_assert(! __gen_e_acsl_initialized_57,
+                    & __gen_e_acsl_assert_data_59);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_59);
   }
-  /*@ assert ¬\initialized(q + 1); */ ;
+  /*@ assert !\initialized(q + 1); */ ;
   {
     int __gen_e_acsl_initialized_58;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_60 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_60,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_60,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_58 = __e_acsl_initialized((void *)(q + 2),
                                                        sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_58,1,"Assertion","main",
-                    "!\\initialized(q + 2)","tests/memory/initialized.c",130);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_60,
+                                 "\\initialized(q + 2)",0,
+                                 __gen_e_acsl_initialized_58);
+    __gen_e_acsl_assert_data_60.blocking = 1;
+    __gen_e_acsl_assert_data_60.kind = "Assertion";
+    __gen_e_acsl_assert_data_60.pred_txt = "!\\initialized(q + 2)";
+    __gen_e_acsl_assert_data_60.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_60.fct = "main";
+    __gen_e_acsl_assert_data_60.line = 130;
+    __e_acsl_assert(! __gen_e_acsl_initialized_58,
+                    & __gen_e_acsl_assert_data_60);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_60);
   }
-  /*@ assert ¬\initialized(q + 2); */ ;
+  /*@ assert !\initialized(q + 2); */ ;
   free((void *)q);
   __e_acsl_full_init((void *)(& q));
   q = (int *)(& q - 1024 * 5);
@@ -633,20 +1589,50 @@ int main(void)
   q = (int *)128;
   {
     int __gen_e_acsl_initialized_59;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_61 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_61,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_61,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_59 = __e_acsl_initialized((void *)q,sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_59,1,"Assertion","main",
-                    "!\\initialized(q)","tests/memory/initialized.c",139);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_61,
+                                 "\\initialized(q)",0,
+                                 __gen_e_acsl_initialized_59);
+    __gen_e_acsl_assert_data_61.blocking = 1;
+    __gen_e_acsl_assert_data_61.kind = "Assertion";
+    __gen_e_acsl_assert_data_61.pred_txt = "!\\initialized(q)";
+    __gen_e_acsl_assert_data_61.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_61.fct = "main";
+    __gen_e_acsl_assert_data_61.line = 139;
+    __e_acsl_assert(! __gen_e_acsl_initialized_59,
+                    & __gen_e_acsl_assert_data_61);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_61);
   }
-  /*@ assert ¬\initialized(q); */ ;
+  /*@ assert !\initialized(q); */ ;
   __e_acsl_full_init((void *)(& p));
   p = (int *)0;
   {
     int __gen_e_acsl_initialized_60;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_62 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_62,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_62,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_60 = __e_acsl_initialized((void *)p,sizeof(int));
-    __e_acsl_assert(! __gen_e_acsl_initialized_60,1,"Assertion","main",
-                    "!\\initialized(p)","tests/memory/initialized.c",142);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_62,
+                                 "\\initialized(p)",0,
+                                 __gen_e_acsl_initialized_60);
+    __gen_e_acsl_assert_data_62.blocking = 1;
+    __gen_e_acsl_assert_data_62.kind = "Assertion";
+    __gen_e_acsl_assert_data_62.pred_txt = "!\\initialized(p)";
+    __gen_e_acsl_assert_data_62.file = "tests/memory/initialized.c";
+    __gen_e_acsl_assert_data_62.fct = "main";
+    __gen_e_acsl_assert_data_62.line = 142;
+    __e_acsl_assert(! __gen_e_acsl_initialized_60,
+                    & __gen_e_acsl_assert_data_62);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_62);
   }
-  /*@ assert ¬\initialized(p); */ ;
+  /*@ assert !\initialized(p); */ ;
   int size = 100;
   char *partsc = malloc((unsigned long)size * sizeof(char));
   char *partsi = malloc((unsigned long)size * sizeof(int));
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_literal_string.c b/src/plugins/e-acsl/tests/memory/oracle/gen_literal_string.c
index 6162260111829a4c53f7ab287aeb99ef1ed8f4c9..2b8c57520a6f1bfa9e2eec9f1e7ae1a21180f5c4 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_literal_string.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_literal_string.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 char *__gen_e_acsl_literal_string_6;
 char *__gen_e_acsl_literal_string_5;
@@ -18,16 +18,36 @@ void f(void)
 {
   {
     int __gen_e_acsl_valid_read;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_char(& __gen_e_acsl_assert_data,"*(T + G)",0,
+                                  *(T + G));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"T",(void *)T);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"G",0,G);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char)",0,sizeof(char));
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(T + G),
                                                   sizeof(char),(void *)T,
                                                   (void *)(& T));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","f",
-                    "mem_access: \\valid_read(T + G)",
-                    "tests/memory/literal_string.i",11);
-    __e_acsl_assert((int)*(T + G) == 98,1,"Assertion","f",
-                    "*(T + G) == \'b\'","tests/memory/literal_string.i",11);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(T + G)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/literal_string.i";
+    __gen_e_acsl_assert_data_2.fct = "f";
+    __gen_e_acsl_assert_data_2.line = 11;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "*(T + G) == \'b\'";
+    __gen_e_acsl_assert_data.file = "tests/memory/literal_string.i";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 11;
+    __e_acsl_assert((int)*(T + G) == 98,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert *(T + G) ≡ 'b'; */ ;
+  /*@ assert *(T + G) == 'b'; */ ;
   G ++;
   return;
 }
@@ -105,48 +125,118 @@ int main(void)
   __e_acsl_full_init((void *)(& SS));
   {
     int __gen_e_acsl_valid_read;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_char(& __gen_e_acsl_assert_data,"*(S + G2)",0,
+                                  *(S + G2));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"S",(void *)S);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"G2",0,G2);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char)",0,sizeof(char));
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(S + G2),
                                                   sizeof(char),(void *)S,
                                                   (void *)(& S));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main",
-                    "mem_access: \\valid_read(S + G2)",
-                    "tests/memory/literal_string.i",25);
-    __e_acsl_assert((int)*(S + G2) == 111,1,"Assertion","main",
-                    "*(S + G2) == \'o\'","tests/memory/literal_string.i",25);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(S + G2)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/literal_string.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 25;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "*(S + G2) == \'o\'";
+    __gen_e_acsl_assert_data.file = "tests/memory/literal_string.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 25;
+    __e_acsl_assert((int)*(S + G2) == 111,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert *(S + G2) ≡ 'o'; */ ;
+  /*@ assert *(S + G2) == 'o'; */ ;
   {
     int __gen_e_acsl_initialized;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"S",(void *)S);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(char)",0,sizeof(char));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)S,sizeof(char));
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main",
-                    "\\initialized(S)","tests/memory/literal_string.i",26);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized(S)",0,
+                                 __gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(S)";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/literal_string.i";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 26;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   /*@ assert \initialized(S); */ ;
   {
     int __gen_e_acsl_valid_read_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"S2",
+                                 (void *)S2);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char)",0,sizeof(char));
     __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)S2,sizeof(char),
                                                     (void *)S2,
                                                     (void *)(& S2));
-    __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"Assertion","main",
-                    "\\valid_read(S2)","tests/memory/literal_string.i",27);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\valid_read(S2)",0,
+                                 __gen_e_acsl_valid_read_2);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\valid_read(S2)";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/literal_string.i";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 27;
+    __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
   /*@ assert \valid_read(S2); */ ;
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&SS",
+                                 (void *)(& SS));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& SS),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\initialized(&SS)",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"SS",
+                                   (void *)SS);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid = __e_acsl_valid((void *)SS,sizeof(char),(void *)SS,
                                           (void *)(& SS));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\valid(SS)",0,__gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(! __gen_e_acsl_and,1,"Assertion","main","!\\valid(SS)",
-                    "tests/memory/literal_string.i",28);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(SS)";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/literal_string.i";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 28;
+    __e_acsl_assert(! __gen_e_acsl_and,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert ¬\valid(SS); */ ;
+  /*@ assert !\valid(SS); */ ;
   f();
   s_str ++;
   l_str ++;
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_local_goto.c b/src/plugins/e-acsl/tests/memory/oracle/gen_local_goto.c
index f97ada7719a74ec02de07195c48e725a2a1dd268..32d7fc1b5f869d725b12a3452111ad97f0040ef6 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_local_goto.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_local_goto.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 char *__gen_e_acsl_literal_string_2;
 char *__gen_e_acsl_literal_string_3;
@@ -54,10 +55,24 @@ int main(int argc, char const **argv)
     a = 1;
     {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a",
+                                   (void *)(& a));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)(& a),sizeof(int),
                                           (void *)(& a),(void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main","\\valid(&a)",
-                      "tests/memory/local_goto.c",23);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&a)",
+                                   0,__gen_e_acsl_valid);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "\\valid(&a)";
+      __gen_e_acsl_assert_data.file = "tests/memory/local_goto.c";
+      __gen_e_acsl_assert_data.fct = "main";
+      __gen_e_acsl_assert_data.line = 23;
+      __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
     /*@ assert \valid(&a); */ ;
     if (t == 2) {
@@ -72,10 +87,24 @@ int main(int argc, char const **argv)
     __e_acsl_full_init((void *)(& b));
     {
       int __gen_e_acsl_valid_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& b),sizeof(int),
                                             (void *)(& b),(void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","main",
-                      "\\valid(&b)","tests/memory/local_goto.c",34);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\valid(&b)",0,__gen_e_acsl_valid_2);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Assertion";
+      __gen_e_acsl_assert_data_2.pred_txt = "\\valid(&b)";
+      __gen_e_acsl_assert_data_2.file = "tests/memory/local_goto.c";
+      __gen_e_acsl_assert_data_2.fct = "main";
+      __gen_e_acsl_assert_data_2.line = 34;
+      __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
     /*@ assert \valid(&b); */ ;
     printf(__gen_e_acsl_literal_string_2,t,
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_local_init.c b/src/plugins/e-acsl/tests/memory/oracle/gen_local_init.c
index 0eb3cefd4a8d80047a7020844f4ddd8d4ed066ef..e4fcabd2ea5912c918a6765eb6b26604a116c0d2 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_local_init.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_local_init.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_local_var.c b/src/plugins/e-acsl/tests/memory/oracle/gen_local_var.c
index c28e90044db2844a13012bd4948d0e7c90d57b17..d376379553f1eb17dcf8425f5657ceb8776b4fbf 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_local_var.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_local_var.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -18,17 +19,39 @@ struct list *add(struct list *l, int i)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&new",
+                                 (void *)(& new));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(struct list *)",0,
+                                   sizeof(struct list *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& new),
                                                     sizeof(struct list *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&new)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"new",
+                                   (void *)new);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(struct list)",0,
+                                     sizeof(struct list));
       __gen_e_acsl_valid = __e_acsl_valid((void *)new,sizeof(struct list),
                                           (void *)new,(void *)(& new));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(new)",
+                                   0,__gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","add","\\valid(new)",
-                    "tests/memory/local_var.c",15);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(new)";
+    __gen_e_acsl_assert_data.file = "tests/memory/local_var.c";
+    __gen_e_acsl_assert_data.fct = "add";
+    __gen_e_acsl_assert_data.line = 15;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(new); */ ;
   __e_acsl_initialize((void *)(& new->element),sizeof(int));
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_mainargs.c b/src/plugins/e-acsl/tests/memory/oracle/gen_mainargs.c
index 61c8808202551d230a623137e95c4c4d451bbc86..7f6eb9e282d9672202c8078789279102117b24b9 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_mainargs.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_mainargs.c
@@ -1,11 +1,12 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "string.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 /*@ requires valid_string_s: valid_read_string(s);
-    ensures acsl_c_equiv: \result ≡ strlen(\old(s));
+    ensures acsl_c_equiv: \result == strlen(\old(s));
     assigns \result;
     assigns \result \from (indirect: *(s + (0 ..)));
  */
@@ -23,6 +24,7 @@ int __gen_e_acsl_main(int argc, char **argv)
     int __gen_e_acsl_forall;
     long __gen_e_acsl_k;
     __e_acsl_store_block((void *)(& argv),(size_t)8);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
     __gen_e_acsl_forall = 1;
     __gen_e_acsl_k = 0;
     while (1) {
@@ -41,69 +43,152 @@ int __gen_e_acsl_main(int argc, char **argv)
       __gen_e_acsl_k ++;
     }
     e_acsl_end_loop1: ;
-    __e_acsl_assert(__gen_e_acsl_forall,1,"Assertion","main",
-                    "\\forall int k; 0 <= k <= argc ==> \\valid(argv + k)",
-                    "tests/memory/mainargs.c",12);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\forall int k; 0 <= k <= argc ==> \\valid(argv + k)",
+                                 0,__gen_e_acsl_forall);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\forall int k; 0 <= k <= argc ==> \\valid(argv + k)";
+    __gen_e_acsl_assert_data.file = "tests/memory/mainargs.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 12;
+    __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert ∀ int k; 0 ≤ k ≤ argc ⇒ \valid(argv + k); */ ;
+  /*@ assert \forall int k; 0 <= k <= argc ==> \valid(argv + k); */ ;
   {
     unsigned long __gen_e_acsl_block_length;
     __e_acsl_mpz_t __gen_e_acsl_block_length_2;
     __e_acsl_mpz_t __gen_e_acsl_;
     int __gen_e_acsl_eq;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"argv",
+                                 (void *)argv);
     __gen_e_acsl_block_length = __e_acsl_block_length((void *)argv);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "\\block_length(argv)",0,
+                                   __gen_e_acsl_block_length);
     __gmpz_init_set_ui(__gen_e_acsl_block_length_2,__gen_e_acsl_block_length);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"argc",0,argc);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "sizeof(char *)",0,8);
     __gmpz_init_set_si(__gen_e_acsl_,(argc + 1L) * 8);
     __gen_e_acsl_eq = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_block_length_2),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl_));
-    __e_acsl_assert(__gen_e_acsl_eq == 0,1,"Assertion","main",
-                    "\\block_length(argv) == (argc + 1) * sizeof(char *)",
-                    "tests/memory/mainargs.c",13);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\block_length(argv) == (argc + 1) * sizeof(char *)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/mainargs.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 13;
+    __e_acsl_assert(__gen_e_acsl_eq == 0,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     __gmpz_clear(__gen_e_acsl_block_length_2);
     __gmpz_clear(__gen_e_acsl_);
   }
-  /*@ assert \block_length(argv) ≡ (argc + 1) * sizeof(char *); */ ;
+  /*@ assert \block_length(argv) == (argc + 1) * sizeof(char *); */ ;
   {
     int __gen_e_acsl_valid_read;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    /*@ assert Eva: mem_access: \valid_read(argv + argc); */
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                 "*(argv + argc)",(void *)*(argv + argc));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"argv",
+                                 (void *)argv);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"argc",0,argc);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(argv + argc),
                                                   sizeof(char *),
                                                   (void *)argv,
                                                   (void *)(& argv));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main",
-                    "mem_access: \\valid_read(argv + argc)",
-                    "tests/memory/mainargs.c",15);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "RTE";
+    __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read(argv + argc)";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/mainargs.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 15;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "*(argv + argc) == \\null";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/mainargs.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 15;
     /*@ assert Eva: mem_access: \valid_read(argv + argc); */
-    __e_acsl_assert(*(argv + argc) == (char *)0,1,"Assertion","main",
-                    "*(argv + argc) == \\null","tests/memory/mainargs.c",15);
+    __e_acsl_assert(*(argv + argc) == (char *)0,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert *(argv + argc) ≡ \null; */ ;
+  /*@ assert *(argv + argc) == \null; */ ;
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"argv",
+                                 (void *)argv);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"argc",0,argc);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(argv + argc),
                                                     sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\initialized(argv + argc)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid_read_2;
       int __gen_e_acsl_valid_2;
+      /*@ assert Eva: mem_access: \valid_read(argv + argc); */
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,
+                                   "*(argv + argc)",(void *)*(argv + argc));
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"argv",
+                                   (void *)argv);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"argc",0,
+                                   argc);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(argv + argc),
                                                       sizeof(char *),
                                                       (void *)argv,
                                                       (void *)(& argv));
-      __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","main",
-                      "mem_access: \\valid_read(argv + argc)",
-                      "tests/memory/mainargs.c",16);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "RTE";
+      __gen_e_acsl_assert_data_6.pred_txt = "mem_access: \\valid_read(argv + argc)";
+      __gen_e_acsl_assert_data_6.file = "tests/memory/mainargs.c";
+      __gen_e_acsl_assert_data_6.fct = "main";
+      __gen_e_acsl_assert_data_6.line = 16;
+      __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(char)",0,sizeof(char));
       /*@ assert Eva: mem_access: \valid_read(argv + argc); */
       __gen_e_acsl_valid_2 = __e_acsl_valid((void *)*(argv + argc),
                                             sizeof(char),
                                             (void *)*(argv + argc),
                                             (void *)(argv + argc));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\valid(*(argv + argc))",0,
+                                   __gen_e_acsl_valid_2);
       __gen_e_acsl_and = __gen_e_acsl_valid_2;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(! __gen_e_acsl_and,1,"Assertion","main",
-                    "!\\valid(*(argv + argc))","tests/memory/mainargs.c",16);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(*(argv + argc))";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/mainargs.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 16;
+    __e_acsl_assert(! __gen_e_acsl_and,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert ¬\valid(*(argv + argc)); */ ;
+  /*@ assert !\valid(*(argv + argc)); */ ;
   i = 0;
   while (i < argc) {
     {
@@ -113,32 +198,70 @@ int __gen_e_acsl_main(int argc, char **argv)
       {
         int __gen_e_acsl_initialized_2;
         int __gen_e_acsl_and_2;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"argv",
+                                     (void *)argv);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"i",0,i);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                       "sizeof(char *)",0,sizeof(char *));
         __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(argv + i),
                                                           sizeof(char *));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                     "\\initialized(argv + i)",0,
+                                     __gen_e_acsl_initialized_2);
         if (__gen_e_acsl_initialized_2) {
           int __gen_e_acsl_valid_read_3;
           int __gen_e_acsl_valid_3;
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,
+                                       "*(argv + i)",(void *)*(argv + i));
+          __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+            {.values = (void *)0};
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"argv",
+                                       (void *)argv);
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"i",0,i);
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                         "sizeof(char *)",0,sizeof(char *));
           __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(argv + i),
                                                           sizeof(char *),
                                                           (void *)argv,
                                                           (void *)(& argv));
-          __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","main",
-                          "mem_access: \\valid_read(argv + i)",
-                          "tests/memory/mainargs.c",19);
+          __gen_e_acsl_assert_data_8.blocking = 1;
+          __gen_e_acsl_assert_data_8.kind = "RTE";
+          __gen_e_acsl_assert_data_8.pred_txt = "mem_access: \\valid_read(argv + i)";
+          __gen_e_acsl_assert_data_8.file = "tests/memory/mainargs.c";
+          __gen_e_acsl_assert_data_8.fct = "main";
+          __gen_e_acsl_assert_data_8.line = 19;
+          __e_acsl_assert(__gen_e_acsl_valid_read_3,
+                          & __gen_e_acsl_assert_data_8);
+          __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                         "sizeof(char)",0,sizeof(char));
           __gen_e_acsl_valid_3 = __e_acsl_valid((void *)*(argv + i),
                                                 sizeof(char),
                                                 (void *)*(argv + i),
                                                 (void *)(argv + i));
+          __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                       "\\valid(*(argv + i))",0,
+                                       __gen_e_acsl_valid_3);
           __gen_e_acsl_and_2 = __gen_e_acsl_valid_3;
         }
         else __gen_e_acsl_and_2 = 0;
-        __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","main",
-                        "\\valid(*(argv + i))","tests/memory/mainargs.c",19);
+        __gen_e_acsl_assert_data_7.blocking = 1;
+        __gen_e_acsl_assert_data_7.kind = "Assertion";
+        __gen_e_acsl_assert_data_7.pred_txt = "\\valid(*(argv + i))";
+        __gen_e_acsl_assert_data_7.file = "tests/memory/mainargs.c";
+        __gen_e_acsl_assert_data_7.fct = "main";
+        __gen_e_acsl_assert_data_7.line = 19;
+        __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_7);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
       }
       /*@ assert \valid(*(argv + i)); */ ;
       {
         int __gen_e_acsl_forall_2;
         long __gen_e_acsl_k_2;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+          {.values = (void *)0};
         __gen_e_acsl_forall_2 = 1;
         __gen_e_acsl_k_2 = 0;
         while (1) {
@@ -146,14 +269,28 @@ int __gen_e_acsl_main(int argc, char **argv)
           {
             int __gen_e_acsl_valid_read_4;
             int __gen_e_acsl_valid_4;
+            __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+              {.values = (void *)0};
+            __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,
+                                         "argv",(void *)argv);
+            __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"i",0,
+                                         i);
+            __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                           "sizeof(char *)",0,sizeof(char *));
             __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(
                                                             argv + i),
                                                             sizeof(char *),
                                                             (void *)argv,
                                                             (void *)(& argv));
-            __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","main",
-                            "mem_access: \\valid_read(argv + i)",
-                            "tests/memory/mainargs.c",20);
+            __gen_e_acsl_assert_data_10.blocking = 1;
+            __gen_e_acsl_assert_data_10.kind = "RTE";
+            __gen_e_acsl_assert_data_10.pred_txt = "mem_access: \\valid_read(argv + i)";
+            __gen_e_acsl_assert_data_10.file = "tests/memory/mainargs.c";
+            __gen_e_acsl_assert_data_10.fct = "main";
+            __gen_e_acsl_assert_data_10.line = 20;
+            __e_acsl_assert(__gen_e_acsl_valid_read_4,
+                            & __gen_e_acsl_assert_data_10);
+            __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
             __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(*(argv + i) + __gen_e_acsl_k_2),
                                                   sizeof(char),
                                                   (void *)*(argv + i),
@@ -167,11 +304,20 @@ int __gen_e_acsl_main(int argc, char **argv)
           __gen_e_acsl_k_2 ++;
         }
         e_acsl_end_loop2: ;
-        __e_acsl_assert(__gen_e_acsl_forall_2,1,"Assertion","main",
-                        "\\forall int k; 0 <= k <= len ==> \\valid(*(argv + i) + k)",
-                        "tests/memory/mainargs.c",20);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                     "\\forall int k; 0 <= k <= len ==> \\valid(*(argv + i) + k)",
+                                     0,__gen_e_acsl_forall_2);
+        __gen_e_acsl_assert_data_9.blocking = 1;
+        __gen_e_acsl_assert_data_9.kind = "Assertion";
+        __gen_e_acsl_assert_data_9.pred_txt = "\\forall int k; 0 <= k <= len ==> \\valid(*(argv + i) + k)";
+        __gen_e_acsl_assert_data_9.file = "tests/memory/mainargs.c";
+        __gen_e_acsl_assert_data_9.fct = "main";
+        __gen_e_acsl_assert_data_9.line = 20;
+        __e_acsl_assert(__gen_e_acsl_forall_2,& __gen_e_acsl_assert_data_9);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
       }
-      /*@ assert ∀ int k; 0 ≤ k ≤ len ⇒ \valid(*(argv + i) + k); */ ;
+      /*@ assert \forall int k; 0 <= k <= len ==> \valid(*(argv + i) + k); */
+      ;
     }
     i ++;
   }
@@ -189,14 +335,41 @@ int main(int argc, char **argv)
   {
     int __gen_e_acsl_valid;
     int __gen_e_acsl_valid_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&argc",
+                                 (void *)(& argc));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)(& argc),sizeof(int),
                                         (void *)(& argc),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","main",
-                    "\\valid(&argc)","tests/memory/mainargs.c",7);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&argc)",
+                                 0,__gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(&argc)";
+    __gen_e_acsl_assert_data.file = "tests/memory/mainargs.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 7;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&argv",
+                                 (void *)(& argv));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char **)",0,sizeof(char **));
     __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(& argv),sizeof(char **),
                                           (void *)(& argv),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_2,1,"Precondition","main",
-                    "\\valid(&argv)","tests/memory/mainargs.c",8);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\valid(&argv)",0,__gen_e_acsl_valid_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Precondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(&argv)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/mainargs.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 8;
+    __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   __retres = __gen_e_acsl_main(argc,argv);
   __e_acsl_delete_block((void *)(& argv));
@@ -205,7 +378,7 @@ int main(int argc, char **argv)
 }
 
 /*@ requires valid_string_s: valid_read_string(s);
-    ensures acsl_c_equiv: \result ≡ strlen(\old(s));
+    ensures acsl_c_equiv: \result == strlen(\old(s));
     assigns \result;
     assigns \result \from (indirect: *(s + (0 ..)));
  */
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_memalign.c b/src/plugins/e-acsl/tests/memory/oracle/gen_memalign.c
index 2f9c48d8a945ad526d97dbb871b9689e4d534d93..5f7af3b7bba37ab7bd1cd38fed9282c60850b7ea 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_memalign.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_memalign.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -7,8 +8,8 @@ extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 /*@ requires valid_memptr: \valid(memptr);
     requires
       alignment_is_a_suitable_power_of_two:
-        alignment ≥ sizeof(void *) ∧
-        ((size_t)alignment & ((size_t)alignment - 1)) ≡ 0;
+        alignment >= sizeof(void *) &&
+        ((size_t)alignment & ((size_t)alignment - 1)) == 0;
     assigns __fc_heap_status, \result;
     assigns __fc_heap_status
       \from (indirect: alignment), size, __fc_heap_status;
@@ -20,7 +21,7 @@ extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
     behavior allocation:
       assumes can_allocate: is_allocable(size);
       ensures allocation: \fresh{Old, Here}(*\old(memptr),\old(size));
-      ensures result_zero: \result ≡ 0;
+      ensures result_zero: \result == 0;
       assigns __fc_heap_status, \result;
       assigns __fc_heap_status
         \from (indirect: alignment), size, __fc_heap_status;
@@ -29,8 +30,8 @@ extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
               (indirect: __fc_heap_status);
     
     behavior no_allocation:
-      assumes cannot_allocate: ¬is_allocable(size);
-      ensures result_non_zero: \result < 0 ∨ \result > 0;
+      assumes cannot_allocate: !is_allocable(size);
+      ensures result_non_zero: \result < 0 || \result > 0;
       assigns \result;
       assigns \result \from (indirect: alignment);
       allocates \nothing;
@@ -66,118 +67,291 @@ int main(int argc, char const **argv)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                     sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(char),(void *)p,
                                           (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0,
+                                   __gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)",
-                    "tests/memory/memalign.c",15);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(p)";
+    __gen_e_acsl_assert_data.file = "tests/memory/memalign.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 15;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(p); */ ;
   {
     unsigned long __gen_e_acsl_block_length;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",(void *)p);
     __gen_e_acsl_block_length = __e_acsl_block_length((void *)p);
-    __e_acsl_assert(__gen_e_acsl_block_length == 15UL,1,"Assertion","main",
-                    "\\block_length(p) == 15","tests/memory/memalign.c",16);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "\\block_length(p)",0,
+                                   __gen_e_acsl_block_length);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\block_length(p) == 15";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/memalign.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 16;
+    __e_acsl_assert(__gen_e_acsl_block_length == 15UL,
+                    & __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert \block_length(p) ≡ 15; */ ;
+  /*@ assert \block_length(p) == 15; */ ;
   {
     int __gen_e_acsl_freeable;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",(void *)p);
     __gen_e_acsl_freeable = __e_acsl_freeable((void *)p);
-    __e_acsl_assert(__gen_e_acsl_freeable,1,"Assertion","main",
-                    "\\freeable(p)","tests/memory/memalign.c",17);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\freeable(p)",0,__gen_e_acsl_freeable);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\freeable(p)";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/memalign.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 17;
+    __e_acsl_assert(__gen_e_acsl_freeable,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   /*@ assert \freeable(p); */ ;
   free((void *)p);
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& p),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_valid_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_2 = __e_acsl_valid((void *)p,sizeof(char),(void *)p,
                                             (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\valid(p)",
+                                   0,__gen_e_acsl_valid_2);
       __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main","!\\valid(p)",
-                    "tests/memory/memalign.c",19);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(p)";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/memalign.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 19;
+    __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  /*@ assert ¬\valid(p); */ ;
+  /*@ assert !\valid(p); */ ;
   __e_acsl_full_init((void *)(& a));
   a = (char *)aligned_alloc((unsigned long)256,(unsigned long)12);
-  __e_acsl_assert(a == (char *)0,1,"Assertion","main","a == \\null",
-                  "tests/memory/memalign.c",23);
-  /*@ assert a ≡ \null; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"a",(void *)a);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "a == \\null";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/memalign.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 23;
+    __e_acsl_assert(a == (char *)0,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+  }
+  /*@ assert a == \null; */ ;
   __e_acsl_full_init((void *)(& a));
   a = (char *)aligned_alloc((unsigned long)255,(unsigned long)512);
-  __e_acsl_assert(a == (char *)0,1,"Assertion","main","a == \\null",
-                  "tests/memory/memalign.c",26);
-  /*@ assert a ≡ \null; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"a",(void *)a);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "a == \\null";
+    __gen_e_acsl_assert_data_6.file = "tests/memory/memalign.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 26;
+    __e_acsl_assert(a == (char *)0,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+  }
+  /*@ assert a == \null; */ ;
   __e_acsl_full_init((void *)(& a));
   a = (char *)aligned_alloc((unsigned long)0,(unsigned long)512);
-  __e_acsl_assert(a == (char *)0,1,"Assertion","main","a == \\null",
-                  "tests/memory/memalign.c",29);
-  /*@ assert a ≡ \null; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"a",(void *)a);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "a == \\null";
+    __gen_e_acsl_assert_data_7.file = "tests/memory/memalign.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 29;
+    __e_acsl_assert(a == (char *)0,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+  }
+  /*@ assert a == \null; */ ;
   __e_acsl_full_init((void *)(& a));
   a = (char *)aligned_alloc((unsigned long)256,(unsigned long)512);
-  __e_acsl_assert(a != (char *)0,1,"Assertion","main","a != \\null",
-                  "tests/memory/memalign.c",32);
-  /*@ assert a ≢ \null; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"a",(void *)a);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "a != \\null";
+    __gen_e_acsl_assert_data_8.file = "tests/memory/memalign.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 32;
+    __e_acsl_assert(a != (char *)0,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+  }
+  /*@ assert a != \null; */ ;
   {
     int __gen_e_acsl_initialized_3;
     int __gen_e_acsl_and_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&a",
+                                 (void *)(& a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& a),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                 "\\initialized(&a)",0,
+                                 __gen_e_acsl_initialized_3);
     if (__gen_e_acsl_initialized_3) {
       int __gen_e_acsl_valid_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"a",
+                                   (void *)a);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_3 = __e_acsl_valid((void *)a,sizeof(char),(void *)a,
                                             (void *)(& a));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"\\valid(a)",
+                                   0,__gen_e_acsl_valid_3);
       __gen_e_acsl_and_3 = __gen_e_acsl_valid_3;
     }
     else __gen_e_acsl_and_3 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main","\\valid(a)",
-                    "tests/memory/memalign.c",33);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "\\valid(a)";
+    __gen_e_acsl_assert_data_9.file = "tests/memory/memalign.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 33;
+    __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
   /*@ assert \valid(a); */ ;
   {
     unsigned long __gen_e_acsl_block_length_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"a",(void *)a);
     __gen_e_acsl_block_length_2 = __e_acsl_block_length((void *)a);
-    __e_acsl_assert(__gen_e_acsl_block_length_2 == 512UL,1,"Assertion",
-                    "main","\\block_length(a) == 512",
-                    "tests/memory/memalign.c",34);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                   "\\block_length(a)",0,
+                                   __gen_e_acsl_block_length_2);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "\\block_length(a) == 512";
+    __gen_e_acsl_assert_data_10.file = "tests/memory/memalign.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 34;
+    __e_acsl_assert(__gen_e_acsl_block_length_2 == 512UL,
+                    & __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
   }
-  /*@ assert \block_length(a) ≡ 512; */ ;
+  /*@ assert \block_length(a) == 512; */ ;
   {
     int __gen_e_acsl_freeable_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"a",(void *)a);
     __gen_e_acsl_freeable_2 = __e_acsl_freeable((void *)a);
-    __e_acsl_assert(__gen_e_acsl_freeable_2,1,"Assertion","main",
-                    "\\freeable(a)","tests/memory/memalign.c",35);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                 "\\freeable(a)",0,__gen_e_acsl_freeable_2);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "\\freeable(a)";
+    __gen_e_acsl_assert_data_11.file = "tests/memory/memalign.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 35;
+    __e_acsl_assert(__gen_e_acsl_freeable_2,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
   }
   /*@ assert \freeable(a); */ ;
   free((void *)a);
   {
     int __gen_e_acsl_initialized_4;
     int __gen_e_acsl_and_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"&a",
+                                 (void *)(& a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& a),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                 "\\initialized(&a)",0,
+                                 __gen_e_acsl_initialized_4);
     if (__gen_e_acsl_initialized_4) {
       int __gen_e_acsl_valid_4;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"a",
+                                   (void *)a);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_4 = __e_acsl_valid((void *)a,sizeof(char),(void *)a,
                                             (void *)(& a));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                   "\\valid(a)",0,__gen_e_acsl_valid_4);
       __gen_e_acsl_and_4 = __gen_e_acsl_valid_4;
     }
     else __gen_e_acsl_and_4 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_4,1,"Assertion","main","!\\valid(a)",
-                    "tests/memory/memalign.c",38);
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "!\\valid(a)";
+    __gen_e_acsl_assert_data_12.file = "tests/memory/memalign.c";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 38;
+    __e_acsl_assert(! __gen_e_acsl_and_4,& __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
   }
-  /*@ assert ¬\valid(a); */ ;
+  /*@ assert !\valid(a); */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(& a));
   __e_acsl_delete_block((void *)(& p));
@@ -189,8 +363,8 @@ int main(int argc, char const **argv)
 /*@ requires valid_memptr: \valid(memptr);
     requires
       alignment_is_a_suitable_power_of_two:
-        alignment ≥ sizeof(void *) ∧
-        ((size_t)alignment & ((size_t)alignment - 1)) ≡ 0;
+        alignment >= sizeof(void *) &&
+        ((size_t)alignment & ((size_t)alignment - 1)) == 0;
     assigns __fc_heap_status, \result;
     assigns __fc_heap_status
       \from (indirect: alignment), size, __fc_heap_status;
@@ -202,7 +376,7 @@ int main(int argc, char const **argv)
     behavior allocation:
       assumes can_allocate: is_allocable(size);
       ensures allocation: \fresh{Old, Here}(*\old(memptr),\old(size));
-      ensures result_zero: \result ≡ 0;
+      ensures result_zero: \result == 0;
       assigns __fc_heap_status, \result;
       assigns __fc_heap_status
         \from (indirect: alignment), size, __fc_heap_status;
@@ -211,8 +385,8 @@ int main(int argc, char const **argv)
               (indirect: __fc_heap_status);
     
     behavior no_allocation:
-      assumes cannot_allocate: ¬is_allocable(size);
-      ensures result_non_zero: \result < 0 ∨ \result > 0;
+      assumes cannot_allocate: !is_allocable(size);
+      ensures result_non_zero: \result < 0 || \result > 0;
       assigns \result;
       assigns \result \from (indirect: alignment);
       allocates \nothing;
@@ -229,18 +403,40 @@ int __gen_e_acsl_posix_memalign(void **memptr, size_t alignment, size_t size)
     int __gen_e_acsl_and;
     __e_acsl_store_block((void *)(& memptr),(size_t)8);
     __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"memptr",
+                                 (void *)memptr);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(void *)",0,sizeof(void *));
     __gen_e_acsl_valid = __e_acsl_valid((void *)memptr,sizeof(void *),
                                         (void *)memptr,(void *)(& memptr));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","posix_memalign",
-                    "valid_memptr: \\valid(memptr)",
-                    "FRAMAC_SHARE/libc/stdlib.h",666);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\valid(memptr)",0,__gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "valid_memptr: \\valid(memptr)";
+    __gen_e_acsl_assert_data.file = "FRAMAC_SHARE/libc/stdlib.h";
+    __gen_e_acsl_assert_data.fct = "posix_memalign";
+    __gen_e_acsl_assert_data.line = 666;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,"alignment",
+                                   0,alignment);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "sizeof(void *)",0,8);
     if (alignment >= 8UL) {
       __e_acsl_mpz_t __gen_e_acsl_;
       __e_acsl_mpz_t __gen_e_acsl__2;
       __e_acsl_mpz_t __gen_e_acsl_sub;
       __e_acsl_mpz_t __gen_e_acsl_band;
       unsigned long __gen_e_acsl__3;
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "alignment",0,alignment);
       __gmpz_init_set_ui(__gen_e_acsl_,alignment);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "alignment",0,alignment);
       __gmpz_init_set_si(__gen_e_acsl__2,1L);
       __gmpz_init(__gen_e_acsl_sub);
       __gmpz_sub(__gen_e_acsl_sub,
@@ -258,30 +454,56 @@ int __gen_e_acsl_posix_memalign(void **memptr, size_t alignment, size_t size)
       __gmpz_clear(__gen_e_acsl_band);
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Precondition","posix_memalign",
-                    "alignment_is_a_suitable_power_of_two:\n  alignment >= sizeof(void *) &&\n  ((size_t)alignment & ((size_t)alignment - 1)) == 0",
-                    "FRAMAC_SHARE/libc/stdlib.h",668);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Precondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "alignment_is_a_suitable_power_of_two:\n  alignment >= sizeof(void *) &&\n  ((size_t)alignment & ((size_t)alignment - 1)) == 0";
+    __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/stdlib.h";
+    __gen_e_acsl_assert_data_2.fct = "posix_memalign";
+    __gen_e_acsl_assert_data_2.line = 668;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   __retres = posix_memalign(memptr,alignment,size);
   {
     int __gen_e_acsl_assumes_value;
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == 0,1,
-                                                    "Postcondition",
-                                                    "posix_memalign",
-                                                    "allocation: result_zero: \\result == 0",
-                                                    "FRAMAC_SHARE/libc/stdlib.h",
-                                                    680);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\result",0,
+                                   __retres);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Postcondition";
+      __gen_e_acsl_assert_data_4.pred_txt = "allocation: result_zero: \\result == 0";
+      __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/stdlib.h";
+      __gen_e_acsl_assert_data_4.fct = "posix_memalign";
+      __gen_e_acsl_assert_data_4.line = 680;
+      __e_acsl_assert(__retres == 0,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    }
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
     if (__gen_e_acsl_assumes_value) {
       int __gen_e_acsl_or;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\result",0,
+                                   __retres);
       if (__retres < 0) __gen_e_acsl_or = 1;
-      else __gen_e_acsl_or = __retres > 0;
-      __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","posix_memalign",
-                      "no_allocation: result_non_zero: \\result < 0 || \\result > 0",
-                      "FRAMAC_SHARE/libc/stdlib.h",685);
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\result",
+                                     0,__retres);
+        __gen_e_acsl_or = __retres > 0;
+      }
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Postcondition";
+      __gen_e_acsl_assert_data_5.pred_txt = "no_allocation: result_non_zero: \\result < 0 || \\result > 0";
+      __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/stdlib.h";
+      __gen_e_acsl_assert_data_5.fct = "posix_memalign";
+      __gen_e_acsl_assert_data_5.line = 685;
+      __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     __e_acsl_delete_block((void *)(& memptr));
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_memsize.c b/src/plugins/e-acsl/tests/memory/oracle/gen_memsize.c
index df3a77b8d7a83dbe3650e8f9cfe3704ad8bdd2c5..629f702f9c0518be631e935f67614cf143bc1f79 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_memsize.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_memsize.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -11,76 +12,264 @@ int main(int argc, char **argv)
   int __retres;
   __e_acsl_memory_init(& argc,& argv,(size_t)8);
   char *a = malloc((unsigned long)7);
-  __e_acsl_assert(__e_acsl_heap_allocation_size == 7UL,1,"Assertion","main",
-                  "__e_acsl_heap_allocation_size == 7",
-                  "tests/memory/memsize.c",15);
-  /*@ assert __e_acsl_heap_allocation_size ≡ 7; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "__e_acsl_heap_allocation_size",0,
+                                   __e_acsl_heap_allocation_size);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "__e_acsl_heap_allocation_size == 7";
+    __gen_e_acsl_assert_data.file = "tests/memory/memsize.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 15;
+    __e_acsl_assert(__e_acsl_heap_allocation_size == 7UL,
+                    & __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert __e_acsl_heap_allocation_size == 7; */ ;
   char *b = malloc((unsigned long)14);
-  __e_acsl_assert(__e_acsl_heap_allocation_size == 21UL,1,"Assertion","main",
-                  "__e_acsl_heap_allocation_size == 21",
-                  "tests/memory/memsize.c",17);
-  /*@ assert __e_acsl_heap_allocation_size ≡ 21; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "__e_acsl_heap_allocation_size",0,
+                                   __e_acsl_heap_allocation_size);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "__e_acsl_heap_allocation_size == 21";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/memsize.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 17;
+    __e_acsl_assert(__e_acsl_heap_allocation_size == 21UL,
+                    & __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+  }
+  /*@ assert __e_acsl_heap_allocation_size == 21; */ ;
   free((void *)a);
-  __e_acsl_assert(__e_acsl_heap_allocation_size == 14UL,1,"Assertion","main",
-                  "__e_acsl_heap_allocation_size == 14",
-                  "tests/memory/memsize.c",21);
-  /*@ assert __e_acsl_heap_allocation_size ≡ 14; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "__e_acsl_heap_allocation_size",0,
+                                   __e_acsl_heap_allocation_size);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "__e_acsl_heap_allocation_size == 14";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/memsize.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 21;
+    __e_acsl_assert(__e_acsl_heap_allocation_size == 14UL,
+                    & __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+  }
+  /*@ assert __e_acsl_heap_allocation_size == 14; */ ;
   a = (char *)0;
   free((void *)a);
-  __e_acsl_assert(__e_acsl_heap_allocation_size == 14UL,1,"Assertion","main",
-                  "__e_acsl_heap_allocation_size == 14",
-                  "tests/memory/memsize.c",26);
-  /*@ assert __e_acsl_heap_allocation_size ≡ 14; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "__e_acsl_heap_allocation_size",0,
+                                   __e_acsl_heap_allocation_size);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "__e_acsl_heap_allocation_size == 14";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/memsize.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 26;
+    __e_acsl_assert(__e_acsl_heap_allocation_size == 14UL,
+                    & __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+  }
+  /*@ assert __e_acsl_heap_allocation_size == 14; */ ;
   b = (char *)realloc((void *)b,(unsigned long)9);
-  __e_acsl_assert(__e_acsl_heap_allocation_size == 9UL,1,"Assertion","main",
-                  "__e_acsl_heap_allocation_size == 9",
-                  "tests/memory/memsize.c",30);
-  /*@ assert __e_acsl_heap_allocation_size ≡ 9; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "__e_acsl_heap_allocation_size",0,
+                                   __e_acsl_heap_allocation_size);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "__e_acsl_heap_allocation_size == 9";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/memsize.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 30;
+    __e_acsl_assert(__e_acsl_heap_allocation_size == 9UL,
+                    & __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+  }
+  /*@ assert __e_acsl_heap_allocation_size == 9; */ ;
   b = (char *)realloc((void *)b,(unsigned long)18);
-  __e_acsl_assert(__e_acsl_heap_allocation_size == 18UL,1,"Assertion","main",
-                  "__e_acsl_heap_allocation_size == 18",
-                  "tests/memory/memsize.c",34);
-  /*@ assert __e_acsl_heap_allocation_size ≡ 18; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "__e_acsl_heap_allocation_size",0,
+                                   __e_acsl_heap_allocation_size);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "__e_acsl_heap_allocation_size == 18";
+    __gen_e_acsl_assert_data_6.file = "tests/memory/memsize.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 34;
+    __e_acsl_assert(__e_acsl_heap_allocation_size == 18UL,
+                    & __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+  }
+  /*@ assert __e_acsl_heap_allocation_size == 18; */ ;
   b = (char *)realloc((void *)b,(unsigned long)0);
   b = (char *)0;
-  __e_acsl_assert(__e_acsl_heap_allocation_size == 0UL,1,"Assertion","main",
-                  "__e_acsl_heap_allocation_size == 0",
-                  "tests/memory/memsize.c",39);
-  /*@ assert __e_acsl_heap_allocation_size ≡ 0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                   "__e_acsl_heap_allocation_size",0,
+                                   __e_acsl_heap_allocation_size);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "__e_acsl_heap_allocation_size == 0";
+    __gen_e_acsl_assert_data_7.file = "tests/memory/memsize.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 39;
+    __e_acsl_assert(__e_acsl_heap_allocation_size == 0UL,
+                    & __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+  }
+  /*@ assert __e_acsl_heap_allocation_size == 0; */ ;
   b = (char *)realloc((void *)b,(unsigned long)8);
-  __e_acsl_assert(__e_acsl_heap_allocation_size == 8UL,1,"Assertion","main",
-                  "__e_acsl_heap_allocation_size == 8",
-                  "tests/memory/memsize.c",43);
-  /*@ assert __e_acsl_heap_allocation_size ≡ 8; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "__e_acsl_heap_allocation_size",0,
+                                   __e_acsl_heap_allocation_size);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "__e_acsl_heap_allocation_size == 8";
+    __gen_e_acsl_assert_data_8.file = "tests/memory/memsize.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 43;
+    __e_acsl_assert(__e_acsl_heap_allocation_size == 8UL,
+                    & __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+  }
+  /*@ assert __e_acsl_heap_allocation_size == 8; */ ;
   b = (char *)realloc((void *)0,(unsigned long)8);
-  __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,1,"Assertion","main",
-                  "__e_acsl_heap_allocation_size == 16",
-                  "tests/memory/memsize.c",47);
-  /*@ assert __e_acsl_heap_allocation_size ≡ 16; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                   "__e_acsl_heap_allocation_size",0,
+                                   __e_acsl_heap_allocation_size);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "__e_acsl_heap_allocation_size == 16";
+    __gen_e_acsl_assert_data_9.file = "tests/memory/memsize.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 47;
+    __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,
+                    & __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
+  }
+  /*@ assert __e_acsl_heap_allocation_size == 16; */ ;
   b = (char *)realloc((void *)0,18446744073709551615UL);
-  __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,1,"Assertion","main",
-                  "__e_acsl_heap_allocation_size == 16",
-                  "tests/memory/memsize.c",51);
-  /*@ assert __e_acsl_heap_allocation_size ≡ 16; */ ;
-  __e_acsl_assert(b == (char *)0,1,"Assertion","main","b == (char *)0",
-                  "tests/memory/memsize.c",52);
-  /*@ assert b ≡ (char *)0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                   "__e_acsl_heap_allocation_size",0,
+                                   __e_acsl_heap_allocation_size);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "__e_acsl_heap_allocation_size == 16";
+    __gen_e_acsl_assert_data_10.file = "tests/memory/memsize.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 51;
+    __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,
+                    & __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
+  }
+  /*@ assert __e_acsl_heap_allocation_size == 16; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"b",(void *)b);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "b == (char *)0";
+    __gen_e_acsl_assert_data_11.file = "tests/memory/memsize.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 52;
+    __e_acsl_assert(b == (char *)0,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
+  }
+  /*@ assert b == (char *)0; */ ;
   b = (char *)calloc(18446744073709551615UL,18446744073709551615UL);
-  __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,1,"Assertion","main",
-                  "__e_acsl_heap_allocation_size == 16",
-                  "tests/memory/memsize.c",56);
-  /*@ assert __e_acsl_heap_allocation_size ≡ 16; */ ;
-  __e_acsl_assert(b == (char *)0,1,"Assertion","main","b == (char *)0",
-                  "tests/memory/memsize.c",57);
-  /*@ assert b ≡ (char *)0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                   "__e_acsl_heap_allocation_size",0,
+                                   __e_acsl_heap_allocation_size);
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "__e_acsl_heap_allocation_size == 16";
+    __gen_e_acsl_assert_data_12.file = "tests/memory/memsize.c";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 56;
+    __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,
+                    & __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
+  }
+  /*@ assert __e_acsl_heap_allocation_size == 16; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"b",(void *)b);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "b == (char *)0";
+    __gen_e_acsl_assert_data_13.file = "tests/memory/memsize.c";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 57;
+    __e_acsl_assert(b == (char *)0,& __gen_e_acsl_assert_data_13);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
+  }
+  /*@ assert b == (char *)0; */ ;
   b = (char *)malloc(18446744073709551615UL);
-  __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,1,"Assertion","main",
-                  "__e_acsl_heap_allocation_size == 16",
-                  "tests/memory/memsize.c",61);
-  /*@ assert __e_acsl_heap_allocation_size ≡ 16; */ ;
-  __e_acsl_assert(b == (char *)0,1,"Assertion","main","b == (char *)0",
-                  "tests/memory/memsize.c",62);
-  /*@ assert b ≡ (char *)0; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14,
+                                   "__e_acsl_heap_allocation_size",0,
+                                   __e_acsl_heap_allocation_size);
+    __gen_e_acsl_assert_data_14.blocking = 1;
+    __gen_e_acsl_assert_data_14.kind = "Assertion";
+    __gen_e_acsl_assert_data_14.pred_txt = "__e_acsl_heap_allocation_size == 16";
+    __gen_e_acsl_assert_data_14.file = "tests/memory/memsize.c";
+    __gen_e_acsl_assert_data_14.fct = "main";
+    __gen_e_acsl_assert_data_14.line = 61;
+    __e_acsl_assert(__e_acsl_heap_allocation_size == 16UL,
+                    & __gen_e_acsl_assert_data_14);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
+  }
+  /*@ assert __e_acsl_heap_allocation_size == 16; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"b",(void *)b);
+    __gen_e_acsl_assert_data_15.blocking = 1;
+    __gen_e_acsl_assert_data_15.kind = "Assertion";
+    __gen_e_acsl_assert_data_15.pred_txt = "b == (char *)0";
+    __gen_e_acsl_assert_data_15.file = "tests/memory/memsize.c";
+    __gen_e_acsl_assert_data_15.fct = "main";
+    __gen_e_acsl_assert_data_15.line = 62;
+    __e_acsl_assert(b == (char *)0,& __gen_e_acsl_assert_data_15);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
+  }
+  /*@ assert b == (char *)0; */ ;
   __retres = 0;
   __e_acsl_memory_clean();
   return __retres;
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_null.c b/src/plugins/e-acsl/tests/memory/oracle/gen_null.c
index 375f0da012931441d10f4a33032c16acccb5d7a7..5dae464f751b6e999f5e629e4f4a5c1ee343680b 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_null.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_null.c
@@ -1,16 +1,26 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
-  __e_acsl_assert((void *)0 == (void *)0,1,"Assertion","main",
-                  "\\null == (void *)0","tests/memory/null.i",6);
-  /*@ assert \null ≡ (void *)0; */ ;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\null == (void *)0";
+    __gen_e_acsl_assert_data.file = "tests/memory/null.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 6;
+    __e_acsl_assert((void *)0 == (void *)0,& __gen_e_acsl_assert_data);
+  }
+  /*@ assert \null == (void *)0; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_offset.c b/src/plugins/e-acsl/tests/memory/oracle/gen_offset.c
index b6b52a83efa197495cd28c47be378cd2ca9ef3cf..417fcdd7fc368b0f300b53dd25309a6dfe16c73c 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_offset.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_offset.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -34,57 +35,149 @@ int main(void)
   PA = (int *)(& A);
   {
     unsigned long __gen_e_acsl_offset;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(int *)A",
+                                 (void *)(A));
     __gen_e_acsl_offset = __e_acsl_offset((void *)(A));
-    __e_acsl_assert(__gen_e_acsl_offset == 0UL,1,"Assertion","main",
-                    "\\offset((int *)A) == 0","tests/memory/offset.c",13);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "\\offset((int *)A)",0,
+                                   __gen_e_acsl_offset);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\offset((int *)A) == 0";
+    __gen_e_acsl_assert_data.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 13;
+    __e_acsl_assert(__gen_e_acsl_offset == 0UL,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert \offset((int *)A) ≡ 0; */ ;
+  /*@ assert \offset((int *)A) == 0; */ ;
   {
     unsigned long __gen_e_acsl_offset_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&A[3]",
+                                 (void *)(& A[3]));
     __gen_e_acsl_offset_2 = __e_acsl_offset((void *)(& A[3]));
-    __e_acsl_assert(__gen_e_acsl_offset_2 == 12UL,1,"Assertion","main",
-                    "\\offset(&A[3]) == 12","tests/memory/offset.c",14);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "\\offset(&A[3])",0,__gen_e_acsl_offset_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\offset(&A[3]) == 12";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 14;
+    __e_acsl_assert(__gen_e_acsl_offset_2 == 12UL,
+                    & __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert \offset(&A[3]) ≡ 12; */ ;
+  /*@ assert \offset(&A[3]) == 12; */ ;
   {
     unsigned long __gen_e_acsl_offset_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"PA",
+                                 (void *)PA);
     __gen_e_acsl_offset_3 = __e_acsl_offset((void *)PA);
-    __e_acsl_assert(__gen_e_acsl_offset_3 == 0UL,1,"Assertion","main",
-                    "\\offset(PA) == 0","tests/memory/offset.c",15);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "\\offset(PA)",0,__gen_e_acsl_offset_3);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\offset(PA) == 0";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 15;
+    __e_acsl_assert(__gen_e_acsl_offset_3 == 0UL,
+                    & __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert \offset(PA) ≡ 0; */ ;
+  /*@ assert \offset(PA) == 0; */ ;
   PA ++;
   {
     unsigned long __gen_e_acsl_offset_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"PA",
+                                 (void *)PA);
     __gen_e_acsl_offset_4 = __e_acsl_offset((void *)(PA + 1));
-    __e_acsl_assert(__gen_e_acsl_offset_4 == 8UL,1,"Assertion","main",
-                    "\\offset(PA + 1) == 8","tests/memory/offset.c",17);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "\\offset(PA + 1)",0,
+                                   __gen_e_acsl_offset_4);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\offset(PA + 1) == 8";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 17;
+    __e_acsl_assert(__gen_e_acsl_offset_4 == 8UL,
+                    & __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  /*@ assert \offset(PA + 1) ≡ 8; */ ;
+  /*@ assert \offset(PA + 1) == 8; */ ;
   int a[4] = {1, 2, 3, 4};
   __e_acsl_store_block((void *)(a),(size_t)16);
   __e_acsl_full_init((void *)(& a));
   {
     unsigned long __gen_e_acsl_offset_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"(int *)a",
+                                 (void *)(a));
     __gen_e_acsl_offset_5 = __e_acsl_offset((void *)(a));
-    __e_acsl_assert(__gen_e_acsl_offset_5 == 0UL,1,"Assertion","main",
-                    "\\offset((int *)a) == 0","tests/memory/offset.c",21);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "\\offset((int *)a)",0,
+                                   __gen_e_acsl_offset_5);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "\\offset((int *)a) == 0";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 21;
+    __e_acsl_assert(__gen_e_acsl_offset_5 == 0UL,
+                    & __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert \offset((int *)a) ≡ 0; */ ;
+  /*@ assert \offset((int *)a) == 0; */ ;
   {
     unsigned long __gen_e_acsl_offset_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&a[1]",
+                                 (void *)(& a[1]));
     __gen_e_acsl_offset_6 = __e_acsl_offset((void *)(& a[1]));
-    __e_acsl_assert(__gen_e_acsl_offset_6 == 4UL,1,"Assertion","main",
-                    "\\offset(&a[1]) == 4","tests/memory/offset.c",22);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "\\offset(&a[1])",0,__gen_e_acsl_offset_6);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "\\offset(&a[1]) == 4";
+    __gen_e_acsl_assert_data_6.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 22;
+    __e_acsl_assert(__gen_e_acsl_offset_6 == 4UL,
+                    & __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
-  /*@ assert \offset(&a[1]) ≡ 4; */ ;
+  /*@ assert \offset(&a[1]) == 4; */ ;
   {
     unsigned long __gen_e_acsl_offset_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&a[3]",
+                                 (void *)(& a[3]));
     __gen_e_acsl_offset_7 = __e_acsl_offset((void *)(& a[3]));
-    __e_acsl_assert(__gen_e_acsl_offset_7 == 12UL,1,"Assertion","main",
-                    "\\offset(&a[3]) == 12","tests/memory/offset.c",23);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                   "\\offset(&a[3])",0,__gen_e_acsl_offset_7);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "\\offset(&a[3]) == 12";
+    __gen_e_acsl_assert_data_7.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 23;
+    __e_acsl_assert(__gen_e_acsl_offset_7 == 12UL,
+                    & __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
-  /*@ assert \offset(&a[3]) ≡ 12; */ ;
+  /*@ assert \offset(&a[3]) == 12; */ ;
   long l = (long)4;
   __e_acsl_store_block((void *)(& l),(size_t)8);
   __e_acsl_full_init((void *)(& l));
@@ -93,130 +186,326 @@ int main(void)
   __e_acsl_full_init((void *)(& pl));
   {
     unsigned long __gen_e_acsl_offset_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&l",
+                                 (void *)(& l));
     __gen_e_acsl_offset_8 = __e_acsl_offset((void *)(& l));
-    __e_acsl_assert(__gen_e_acsl_offset_8 == 0UL,1,"Assertion","main",
-                    "\\offset(&l) == 0","tests/memory/offset.c",28);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "\\offset(&l)",0,__gen_e_acsl_offset_8);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "\\offset(&l) == 0";
+    __gen_e_acsl_assert_data_8.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 28;
+    __e_acsl_assert(__gen_e_acsl_offset_8 == 0UL,
+                    & __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
-  /*@ assert \offset(&l) ≡ 0; */ ;
+  /*@ assert \offset(&l) == 0; */ ;
   {
     unsigned long __gen_e_acsl_offset_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"pl",
+                                 (void *)pl);
     __gen_e_acsl_offset_9 = __e_acsl_offset((void *)pl);
-    __e_acsl_assert(__gen_e_acsl_offset_9 == 0UL,1,"Assertion","main",
-                    "\\offset(pl) == 0","tests/memory/offset.c",29);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                   "\\offset(pl)",0,__gen_e_acsl_offset_9);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "\\offset(pl) == 0";
+    __gen_e_acsl_assert_data_9.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 29;
+    __e_acsl_assert(__gen_e_acsl_offset_9 == 0UL,
+                    & __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
-  /*@ assert \offset(pl) ≡ 0; */ ;
+  /*@ assert \offset(pl) == 0; */ ;
   {
     unsigned long __gen_e_acsl_offset_10;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"pl",
+                                 (void *)pl);
     __gen_e_acsl_offset_10 = __e_acsl_offset((void *)(pl + 1));
-    __e_acsl_assert(__gen_e_acsl_offset_10 == 1UL,1,"Assertion","main",
-                    "\\offset(pl + 1) == 1","tests/memory/offset.c",30);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                   "\\offset(pl + 1)",0,
+                                   __gen_e_acsl_offset_10);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "\\offset(pl + 1) == 1";
+    __gen_e_acsl_assert_data_10.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 30;
+    __e_acsl_assert(__gen_e_acsl_offset_10 == 1UL,
+                    & __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
   }
-  /*@ assert \offset(pl + 1) ≡ 1; */ ;
+  /*@ assert \offset(pl + 1) == 1; */ ;
   {
     unsigned long __gen_e_acsl_offset_11;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"pl",
+                                 (void *)pl);
     __gen_e_acsl_offset_11 = __e_acsl_offset((void *)(pl + 7));
-    __e_acsl_assert(__gen_e_acsl_offset_11 == 7UL,1,"Assertion","main",
-                    "\\offset(pl + 7) == 7","tests/memory/offset.c",31);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11,
+                                   "\\offset(pl + 7)",0,
+                                   __gen_e_acsl_offset_11);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "\\offset(pl + 7) == 7";
+    __gen_e_acsl_assert_data_11.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 31;
+    __e_acsl_assert(__gen_e_acsl_offset_11 == 7UL,
+                    & __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
   }
-  /*@ assert \offset(pl + 7) ≡ 7; */ ;
+  /*@ assert \offset(pl + 7) == 7; */ ;
   int *pi = (int *)(& l);
   __e_acsl_store_block((void *)(& pi),(size_t)8);
   __e_acsl_full_init((void *)(& pi));
   {
     unsigned long __gen_e_acsl_offset_12;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"pi",
+                                 (void *)pi);
     __gen_e_acsl_offset_12 = __e_acsl_offset((void *)pi);
-    __e_acsl_assert(__gen_e_acsl_offset_12 == 0UL,1,"Assertion","main",
-                    "\\offset(pi) == 0","tests/memory/offset.c",33);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                   "\\offset(pi)",0,__gen_e_acsl_offset_12);
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "\\offset(pi) == 0";
+    __gen_e_acsl_assert_data_12.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 33;
+    __e_acsl_assert(__gen_e_acsl_offset_12 == 0UL,
+                    & __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
   }
-  /*@ assert \offset(pi) ≡ 0; */ ;
+  /*@ assert \offset(pi) == 0; */ ;
   __e_acsl_full_init((void *)(& pi));
   pi ++;
   {
     unsigned long __gen_e_acsl_offset_13;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"pi",
+                                 (void *)pi);
     __gen_e_acsl_offset_13 = __e_acsl_offset((void *)pi);
-    __e_acsl_assert(__gen_e_acsl_offset_13 == 4UL,1,"Assertion","main",
-                    "\\offset(pi) == 4","tests/memory/offset.c",35);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13,
+                                   "\\offset(pi)",0,__gen_e_acsl_offset_13);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "\\offset(pi) == 4";
+    __gen_e_acsl_assert_data_13.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 35;
+    __e_acsl_assert(__gen_e_acsl_offset_13 == 4UL,
+                    & __gen_e_acsl_assert_data_13);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
   }
-  /*@ assert \offset(pi) ≡ 4; */ ;
+  /*@ assert \offset(pi) == 4; */ ;
   char *p = malloc((unsigned long)12);
   __e_acsl_store_block((void *)(& p),(size_t)8);
   __e_acsl_full_init((void *)(& p));
   {
     unsigned long __gen_e_acsl_offset_14;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,"p",(void *)p);
     __gen_e_acsl_offset_14 = __e_acsl_offset((void *)p);
-    __e_acsl_assert(__gen_e_acsl_offset_14 == 0UL,1,"Assertion","main",
-                    "\\offset(p) == 0","tests/memory/offset.c",39);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14,
+                                   "\\offset(p)",0,__gen_e_acsl_offset_14);
+    __gen_e_acsl_assert_data_14.blocking = 1;
+    __gen_e_acsl_assert_data_14.kind = "Assertion";
+    __gen_e_acsl_assert_data_14.pred_txt = "\\offset(p) == 0";
+    __gen_e_acsl_assert_data_14.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_14.fct = "main";
+    __gen_e_acsl_assert_data_14.line = 39;
+    __e_acsl_assert(__gen_e_acsl_offset_14 == 0UL,
+                    & __gen_e_acsl_assert_data_14);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
   }
-  /*@ assert \offset(p) ≡ 0; */ ;
+  /*@ assert \offset(p) == 0; */ ;
   {
     unsigned long __gen_e_acsl_offset_15;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"p",(void *)p);
     __gen_e_acsl_offset_15 = __e_acsl_offset((void *)(p + 1));
-    __e_acsl_assert(__gen_e_acsl_offset_15 == 1UL,1,"Assertion","main",
-                    "\\offset(p + 1) == 1","tests/memory/offset.c",40);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15,
+                                   "\\offset(p + 1)",0,
+                                   __gen_e_acsl_offset_15);
+    __gen_e_acsl_assert_data_15.blocking = 1;
+    __gen_e_acsl_assert_data_15.kind = "Assertion";
+    __gen_e_acsl_assert_data_15.pred_txt = "\\offset(p + 1) == 1";
+    __gen_e_acsl_assert_data_15.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_15.fct = "main";
+    __gen_e_acsl_assert_data_15.line = 40;
+    __e_acsl_assert(__gen_e_acsl_offset_15 == 1UL,
+                    & __gen_e_acsl_assert_data_15);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
   }
-  /*@ assert \offset(p + 1) ≡ 1; */ ;
+  /*@ assert \offset(p + 1) == 1; */ ;
   {
     unsigned long __gen_e_acsl_offset_16;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,"p",(void *)p);
     __gen_e_acsl_offset_16 = __e_acsl_offset((void *)(p + 11));
-    __e_acsl_assert(__gen_e_acsl_offset_16 == 11UL,1,"Assertion","main",
-                    "\\offset(p + 11) == 11","tests/memory/offset.c",41);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_16,
+                                   "\\offset(p + 11)",0,
+                                   __gen_e_acsl_offset_16);
+    __gen_e_acsl_assert_data_16.blocking = 1;
+    __gen_e_acsl_assert_data_16.kind = "Assertion";
+    __gen_e_acsl_assert_data_16.pred_txt = "\\offset(p + 11) == 11";
+    __gen_e_acsl_assert_data_16.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_16.fct = "main";
+    __gen_e_acsl_assert_data_16.line = 41;
+    __e_acsl_assert(__gen_e_acsl_offset_16 == 11UL,
+                    & __gen_e_acsl_assert_data_16);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
   }
-  /*@ assert \offset(p + 11) ≡ 11; */ ;
+  /*@ assert \offset(p + 11) == 11; */ ;
   __e_acsl_full_init((void *)(& p));
   p += 5;
   {
     unsigned long __gen_e_acsl_offset_17;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,"p",(void *)p);
     __gen_e_acsl_offset_17 = __e_acsl_offset((void *)(p + 5));
-    __e_acsl_assert(__gen_e_acsl_offset_17 == 10UL,1,"Assertion","main",
-                    "\\offset(p + 5) == 10","tests/memory/offset.c",43);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17,
+                                   "\\offset(p + 5)",0,
+                                   __gen_e_acsl_offset_17);
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "Assertion";
+    __gen_e_acsl_assert_data_17.pred_txt = "\\offset(p + 5) == 10";
+    __gen_e_acsl_assert_data_17.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_17.fct = "main";
+    __gen_e_acsl_assert_data_17.line = 43;
+    __e_acsl_assert(__gen_e_acsl_offset_17 == 10UL,
+                    & __gen_e_acsl_assert_data_17);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
   }
-  /*@ assert \offset(p + 5) ≡ 10; */ ;
+  /*@ assert \offset(p + 5) == 10; */ ;
   {
     unsigned long __gen_e_acsl_offset_18;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,"p",(void *)p);
     __gen_e_acsl_offset_18 = __e_acsl_offset((void *)(p - 5));
-    __e_acsl_assert(__gen_e_acsl_offset_18 == 0UL,1,"Assertion","main",
-                    "\\offset(p - 5) == 0","tests/memory/offset.c",44);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_18,
+                                   "\\offset(p - 5)",0,
+                                   __gen_e_acsl_offset_18);
+    __gen_e_acsl_assert_data_18.blocking = 1;
+    __gen_e_acsl_assert_data_18.kind = "Assertion";
+    __gen_e_acsl_assert_data_18.pred_txt = "\\offset(p - 5) == 0";
+    __gen_e_acsl_assert_data_18.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_18.fct = "main";
+    __gen_e_acsl_assert_data_18.line = 44;
+    __e_acsl_assert(__gen_e_acsl_offset_18 == 0UL,
+                    & __gen_e_acsl_assert_data_18);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18);
   }
-  /*@ assert \offset(p - 5) ≡ 0; */ ;
+  /*@ assert \offset(p - 5) == 0; */ ;
   long *q = malloc((unsigned long)30 * sizeof(long));
   __e_acsl_store_block((void *)(& q),(size_t)8);
   __e_acsl_full_init((void *)(& q));
   {
     unsigned long __gen_e_acsl_offset_19;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_19,"q",(void *)q);
     __gen_e_acsl_offset_19 = __e_acsl_offset((void *)q);
-    __e_acsl_assert(__gen_e_acsl_offset_19 == 0UL,1,"Assertion","main",
-                    "\\offset(q) == 0","tests/memory/offset.c",49);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_19,
+                                   "\\offset(q)",0,__gen_e_acsl_offset_19);
+    __gen_e_acsl_assert_data_19.blocking = 1;
+    __gen_e_acsl_assert_data_19.kind = "Assertion";
+    __gen_e_acsl_assert_data_19.pred_txt = "\\offset(q) == 0";
+    __gen_e_acsl_assert_data_19.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_19.fct = "main";
+    __gen_e_acsl_assert_data_19.line = 49;
+    __e_acsl_assert(__gen_e_acsl_offset_19 == 0UL,
+                    & __gen_e_acsl_assert_data_19);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19);
   }
-  /*@ assert \offset(q) ≡ 0; */ ;
+  /*@ assert \offset(q) == 0; */ ;
   __e_acsl_full_init((void *)(& q));
   q ++;
   {
     unsigned long __gen_e_acsl_offset_20;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20,"q",(void *)q);
     __gen_e_acsl_offset_20 = __e_acsl_offset((void *)q);
-    __e_acsl_assert(__gen_e_acsl_offset_20 == 8UL,1,"Assertion","main",
-                    "\\offset(q) == sizeof(long)","tests/memory/offset.c",51);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_20,
+                                   "\\offset(q)",0,__gen_e_acsl_offset_20);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,
+                                 "sizeof(long)",0,8);
+    __gen_e_acsl_assert_data_20.blocking = 1;
+    __gen_e_acsl_assert_data_20.kind = "Assertion";
+    __gen_e_acsl_assert_data_20.pred_txt = "\\offset(q) == sizeof(long)";
+    __gen_e_acsl_assert_data_20.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_20.fct = "main";
+    __gen_e_acsl_assert_data_20.line = 51;
+    __e_acsl_assert(__gen_e_acsl_offset_20 == 8UL,
+                    & __gen_e_acsl_assert_data_20);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20);
   }
-  /*@ assert \offset(q) ≡ sizeof(long); */ ;
+  /*@ assert \offset(q) == sizeof(long); */ ;
   __e_acsl_full_init((void *)(& q));
   q += 2;
   {
     unsigned long __gen_e_acsl_offset_21;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_21,"q",(void *)q);
     __gen_e_acsl_offset_21 = __e_acsl_offset((void *)q);
-    __e_acsl_assert(__gen_e_acsl_offset_21 == 24UL,1,"Assertion","main",
-                    "\\offset(q) == sizeof(long) * 3",
-                    "tests/memory/offset.c",53);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_21,
+                                   "\\offset(q)",0,__gen_e_acsl_offset_21);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_21,
+                                 "sizeof(long)",0,8);
+    __gen_e_acsl_assert_data_21.blocking = 1;
+    __gen_e_acsl_assert_data_21.kind = "Assertion";
+    __gen_e_acsl_assert_data_21.pred_txt = "\\offset(q) == sizeof(long) * 3";
+    __gen_e_acsl_assert_data_21.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_21.fct = "main";
+    __gen_e_acsl_assert_data_21.line = 53;
+    __e_acsl_assert(__gen_e_acsl_offset_21 == 24UL,
+                    & __gen_e_acsl_assert_data_21);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21);
   }
-  /*@ assert \offset(q) ≡ sizeof(long) * 3; */ ;
+  /*@ assert \offset(q) == sizeof(long) * 3; */ ;
   __e_acsl_full_init((void *)(& q));
   q += 4;
   {
     unsigned long __gen_e_acsl_offset_22;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_22,"q",(void *)q);
     __gen_e_acsl_offset_22 = __e_acsl_offset((void *)q);
-    __e_acsl_assert(__gen_e_acsl_offset_22 == 56UL,1,"Assertion","main",
-                    "\\offset(q) == sizeof(long) * 7",
-                    "tests/memory/offset.c",55);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_22,
+                                   "\\offset(q)",0,__gen_e_acsl_offset_22);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,
+                                 "sizeof(long)",0,8);
+    __gen_e_acsl_assert_data_22.blocking = 1;
+    __gen_e_acsl_assert_data_22.kind = "Assertion";
+    __gen_e_acsl_assert_data_22.pred_txt = "\\offset(q) == sizeof(long) * 7";
+    __gen_e_acsl_assert_data_22.file = "tests/memory/offset.c";
+    __gen_e_acsl_assert_data_22.fct = "main";
+    __gen_e_acsl_assert_data_22.line = 55;
+    __e_acsl_assert(__gen_e_acsl_offset_22 == 56UL,
+                    & __gen_e_acsl_assert_data_22);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22);
   }
-  /*@ assert \offset(q) ≡ sizeof(long) * 7; */ ;
+  /*@ assert \offset(q) == sizeof(long) * 7; */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(& q));
   __e_acsl_delete_block((void *)(& p));
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_other_constants.c b/src/plugins/e-acsl/tests/memory/oracle/gen_other_constants.c
index 7de63880550589245145a85f4f5185e7d4e9deb2..80d21f1d8ca584d36c04d3da69241ded8b09aa93 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_other_constants.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_other_constants.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -11,13 +11,32 @@ enum bool {
 int main(void)
 {
   int __retres;
-  __e_acsl_assert(1,1,"Assertion","main","\'c\' == \'c\'",
-                  "tests/memory/other_constants.i",10);
-  /*@ assert 'c' ≡ 'c'; */ ;
-  __e_acsl_assert(1,1,"Assertion","main","false != true",
-                  "tests/memory/other_constants.i",11);
-  /*@ assert false ≢ true; */ ;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\'c\' == \'c\'";
+    __gen_e_acsl_assert_data.file = "tests/memory/other_constants.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 10;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data);
+  }
+  /*@ assert 'c' == 'c'; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "false != true";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/other_constants.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 11;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_2);
+  }
+  /*@ assert false != true; */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_ptr.c b/src/plugins/e-acsl/tests/memory/oracle/gen_ptr.c
index 3aadcd229f8b1c88013602b610b59b8b75255ca8..33837fcacb31caf7188c02f2d3f573143a5f1ee9 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_ptr.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_ptr.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -20,63 +20,207 @@ int main(void)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"*p",0,*p);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                     sizeof(int *));
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid_read;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)p,sizeof(int),
                                                     (void *)p,(void *)(& p));
       __gen_e_acsl_and = __gen_e_acsl_valid_read;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"RTE","main",
-                    "mem_access: \\valid_read(p)","tests/memory/ptr.i",12);
-    __e_acsl_assert(*p == 1,1,"Assertion","main","*p == 1",
-                    "tests/memory/ptr.i",12);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(p)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/ptr.i";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 12;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "*p == 1";
+    __gen_e_acsl_assert_data.file = "tests/memory/ptr.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 12;
+    __e_acsl_assert(*p == 1,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert *p ≡ 1; */ ;
-  __e_acsl_assert(t[0] == 2,1,"Assertion","main","t[0] == 2",
-                  "tests/memory/ptr.i",13);
-  /*@ assert t[0] ≡ 2; */ ;
-  __e_acsl_assert(t[2] == 4,1,"Assertion","main","t[2] == 4",
-                  "tests/memory/ptr.i",14);
-  /*@ assert t[2] ≡ 4; */ ;
-  __e_acsl_assert(t[2] == 4,1,"Assertion","main",
-                  "t[(2 * sizeof(int)) / sizeof((int)0x0)] == 4",
-                  "tests/memory/ptr.i",15);
-  /*@ assert t[(2 * sizeof(int)) / sizeof((int)0x0)] ≡ 4; */ ;
+  /*@ assert *p == 1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"t[0]",0,t[0]);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "t[0] == 2";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/ptr.i";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 13;
+    __e_acsl_assert(t[0] == 2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+  }
+  /*@ assert t[0] == 2; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"t[2]",0,t[2]);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "t[2] == 4";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/ptr.i";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 14;
+    __e_acsl_assert(t[2] == 4,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+  }
+  /*@ assert t[2] == 4; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "t[(2 * sizeof(int)) / sizeof((int)0x0)]",0,
+                                 t[(2 * 4) / 4]);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "t[(2 * sizeof(int)) / sizeof((int)0x0)] == 4";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/ptr.i";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 15;
+    __e_acsl_assert(t[2] == 4,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+  }
+  /*@ assert t[(2 * sizeof(int)) / sizeof((int)0x0)] == 4; */ ;
   {
     int i = 0;
     while (i < 2) {
-      __e_acsl_assert(i < 3,1,"RTE","main","index_bound: i < 3",
-                      "tests/memory/ptr.i",18);
-      __e_acsl_assert(0 <= i,1,"RTE","main","index_bound: 0 <= i",
-                      "tests/memory/ptr.i",18);
-      __e_acsl_assert((long)t[i] == i + 2L,1,"Assertion","main",
-                      "t[i] == i + 2","tests/memory/ptr.i",18);
-      /*@ assert t[i] ≡ i + 2; */ ;
-      __e_acsl_assert(2L - i < 3L,1,"RTE","main",
-                      "index_bound: (long)(2 - i) < 3","tests/memory/ptr.i",
-                      19);
-      __e_acsl_assert(0L <= 2L - i,1,"RTE","main",
-                      "index_bound: 0 <= (long)(2 - i)","tests/memory/ptr.i",
-                      19);
-      __e_acsl_assert((long)t[2L - i] == 4L - i,1,"Assertion","main",
-                      "t[2 - i] == 4 - i","tests/memory/ptr.i",19);
-      /*@ assert t[2 - i] ≡ 4 - i; */ ;
+      {
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"t[i]",0,
+                                     t[i]);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"i",0,i);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"i",0,i);
+        __gen_e_acsl_assert_data_7.blocking = 1;
+        __gen_e_acsl_assert_data_7.kind = "RTE";
+        __gen_e_acsl_assert_data_7.pred_txt = "index_bound: i < 3";
+        __gen_e_acsl_assert_data_7.file = "tests/memory/ptr.i";
+        __gen_e_acsl_assert_data_7.fct = "main";
+        __gen_e_acsl_assert_data_7.line = 18;
+        __e_acsl_assert(i < 3,& __gen_e_acsl_assert_data_7);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"i",0,i);
+        __gen_e_acsl_assert_data_8.blocking = 1;
+        __gen_e_acsl_assert_data_8.kind = "RTE";
+        __gen_e_acsl_assert_data_8.pred_txt = "index_bound: 0 <= i";
+        __gen_e_acsl_assert_data_8.file = "tests/memory/ptr.i";
+        __gen_e_acsl_assert_data_8.fct = "main";
+        __gen_e_acsl_assert_data_8.line = 18;
+        __e_acsl_assert(0 <= i,& __gen_e_acsl_assert_data_8);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+        __gen_e_acsl_assert_data_6.blocking = 1;
+        __gen_e_acsl_assert_data_6.kind = "Assertion";
+        __gen_e_acsl_assert_data_6.pred_txt = "t[i] == i + 2";
+        __gen_e_acsl_assert_data_6.file = "tests/memory/ptr.i";
+        __gen_e_acsl_assert_data_6.fct = "main";
+        __gen_e_acsl_assert_data_6.line = 18;
+        __e_acsl_assert((long)t[i] == i + 2L,& __gen_e_acsl_assert_data_6);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+      }
+      /*@ assert t[i] == i + 2; */ ;
+      {
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"t[2 - i]",
+                                     0,t[2L - i]);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"i",0,i);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"i",0,i);
+        __gen_e_acsl_assert_data_10.blocking = 1;
+        __gen_e_acsl_assert_data_10.kind = "RTE";
+        __gen_e_acsl_assert_data_10.pred_txt = "index_bound: (long)(2 - i) < 3";
+        __gen_e_acsl_assert_data_10.file = "tests/memory/ptr.i";
+        __gen_e_acsl_assert_data_10.fct = "main";
+        __gen_e_acsl_assert_data_10.line = 19;
+        __e_acsl_assert(2L - i < 3L,& __gen_e_acsl_assert_data_10);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"i",0,i);
+        __gen_e_acsl_assert_data_11.blocking = 1;
+        __gen_e_acsl_assert_data_11.kind = "RTE";
+        __gen_e_acsl_assert_data_11.pred_txt = "index_bound: 0 <= (long)(2 - i)";
+        __gen_e_acsl_assert_data_11.file = "tests/memory/ptr.i";
+        __gen_e_acsl_assert_data_11.fct = "main";
+        __gen_e_acsl_assert_data_11.line = 19;
+        __e_acsl_assert(0L <= 2L - i,& __gen_e_acsl_assert_data_11);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
+        __gen_e_acsl_assert_data_9.blocking = 1;
+        __gen_e_acsl_assert_data_9.kind = "Assertion";
+        __gen_e_acsl_assert_data_9.pred_txt = "t[2 - i] == 4 - i";
+        __gen_e_acsl_assert_data_9.file = "tests/memory/ptr.i";
+        __gen_e_acsl_assert_data_9.fct = "main";
+        __gen_e_acsl_assert_data_9.line = 19;
+        __e_acsl_assert((long)t[2L - i] == 4L - i,
+                        & __gen_e_acsl_assert_data_9);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
+      }
+      /*@ assert t[2 - i] == 4 - i; */ ;
       {
         int __gen_e_acsl_valid_read_2;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                     "*(&t[2] - i)",0,*(& t[2] - i));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"i",0,i);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"&t[2]",
+                                     (void *)(& t[2]));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"i",0,i);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(& t[2] - i),
                                                         sizeof(int),
                                                         (void *)(t),
                                                         (void *)0);
-        __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","main",
-                        "mem_access: \\valid_read(&t[2] - i)",
-                        "tests/memory/ptr.i",20);
-        __e_acsl_assert((long)*(& t[2] - i) == 4L - i,1,"Assertion","main",
-                        "*(&t[2] - i) == 4 - i","tests/memory/ptr.i",20);
+        __gen_e_acsl_assert_data_13.blocking = 1;
+        __gen_e_acsl_assert_data_13.kind = "RTE";
+        __gen_e_acsl_assert_data_13.pred_txt = "mem_access: \\valid_read(&t[2] - i)";
+        __gen_e_acsl_assert_data_13.file = "tests/memory/ptr.i";
+        __gen_e_acsl_assert_data_13.fct = "main";
+        __gen_e_acsl_assert_data_13.line = 20;
+        __e_acsl_assert(__gen_e_acsl_valid_read_2,
+                        & __gen_e_acsl_assert_data_13);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
+        __gen_e_acsl_assert_data_12.blocking = 1;
+        __gen_e_acsl_assert_data_12.kind = "Assertion";
+        __gen_e_acsl_assert_data_12.pred_txt = "*(&t[2] - i) == 4 - i";
+        __gen_e_acsl_assert_data_12.file = "tests/memory/ptr.i";
+        __gen_e_acsl_assert_data_12.fct = "main";
+        __gen_e_acsl_assert_data_12.line = 20;
+        __e_acsl_assert((long)*(& t[2] - i) == 4L - i,
+                        & __gen_e_acsl_assert_data_12);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
       }
-      /*@ assert *(&t[2] - i) ≡ 4 - i; */ ;
+      /*@ assert *(&t[2] - i) == 4 - i; */ ;
       i ++;
     }
   }
@@ -87,35 +231,81 @@ int main(void)
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"*p",0,*p);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& p),
                                                       sizeof(int *));
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_valid_read_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)p,sizeof(int),
                                                       (void *)p,
                                                       (void *)(& p));
       __gen_e_acsl_and_2 = __gen_e_acsl_valid_read_3;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_2,1,"RTE","main",
-                    "mem_access: \\valid_read(p)","tests/memory/ptr.i",26);
-    __e_acsl_assert(*p == 5,1,"Assertion","main","*p == 5",
-                    "tests/memory/ptr.i",26);
+    __gen_e_acsl_assert_data_15.blocking = 1;
+    __gen_e_acsl_assert_data_15.kind = "RTE";
+    __gen_e_acsl_assert_data_15.pred_txt = "mem_access: \\valid_read(p)";
+    __gen_e_acsl_assert_data_15.file = "tests/memory/ptr.i";
+    __gen_e_acsl_assert_data_15.fct = "main";
+    __gen_e_acsl_assert_data_15.line = 26;
+    __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_15);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
+    __gen_e_acsl_assert_data_14.blocking = 1;
+    __gen_e_acsl_assert_data_14.kind = "Assertion";
+    __gen_e_acsl_assert_data_14.pred_txt = "*p == 5";
+    __gen_e_acsl_assert_data_14.file = "tests/memory/ptr.i";
+    __gen_e_acsl_assert_data_14.fct = "main";
+    __gen_e_acsl_assert_data_14.line = 26;
+    __e_acsl_assert(*p == 5,& __gen_e_acsl_assert_data_14);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
   }
-  /*@ assert *p ≡ 5; */ ;
+  /*@ assert *p == 5; */ ;
   int k = -1;
   {
     int __gen_e_acsl_valid_read_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"*(p + k)",0,
+                                 *(p + k));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,"p",(void *)p);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"k",0,k);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(p + k),
                                                     sizeof(int),(void *)p,
                                                     (void *)(& p));
-    __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","main",
-                    "mem_access: \\valid_read(p + k)","tests/memory/ptr.i",
-                    28);
-    __e_acsl_assert(*(p + k) == 3,1,"Assertion","main","*(p + k) == 3",
-                    "tests/memory/ptr.i",28);
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "RTE";
+    __gen_e_acsl_assert_data_17.pred_txt = "mem_access: \\valid_read(p + k)";
+    __gen_e_acsl_assert_data_17.file = "tests/memory/ptr.i";
+    __gen_e_acsl_assert_data_17.fct = "main";
+    __gen_e_acsl_assert_data_17.line = 28;
+    __e_acsl_assert(__gen_e_acsl_valid_read_4,& __gen_e_acsl_assert_data_17);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
+    __gen_e_acsl_assert_data_16.blocking = 1;
+    __gen_e_acsl_assert_data_16.kind = "Assertion";
+    __gen_e_acsl_assert_data_16.pred_txt = "*(p + k) == 3";
+    __gen_e_acsl_assert_data_16.file = "tests/memory/ptr.i";
+    __gen_e_acsl_assert_data_16.fct = "main";
+    __gen_e_acsl_assert_data_16.line = 28;
+    __e_acsl_assert(*(p + k) == 3,& __gen_e_acsl_assert_data_16);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
   }
-  /*@ assert *(p + k) ≡ 3; */ ;
+  /*@ assert *(p + k) == 3; */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(& p));
   __e_acsl_delete_block((void *)(t));
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_ptr_init.c b/src/plugins/e-acsl/tests/memory/oracle/gen_ptr_init.c
index 20fe5e2aa706b69157afcddc19cad5cedbf77c10..2215dc6a5c27095d9c0802ea9ee4920536756086 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_ptr_init.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_ptr_init.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -14,9 +15,17 @@ void f(void)
 
 void g(int *C, int *D)
 {
-  __e_acsl_store_block((void *)(& C),(size_t)8);
-  __e_acsl_assert(1,1,"Assertion","g","\\initialized(&C)",
-                  "tests/memory/ptr_init.c",16);
+  {
+    __e_acsl_store_block((void *)(& C),(size_t)8);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\initialized(&C)";
+    __gen_e_acsl_assert_data.file = "tests/memory/ptr_init.c";
+    __gen_e_acsl_assert_data.fct = "g";
+    __gen_e_acsl_assert_data.line = 16;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data);
+  }
   /*@ assert \initialized(&C); */ ;
   __e_acsl_delete_block((void *)(& C));
   return;
@@ -57,15 +66,38 @@ int main(void)
   __e_acsl_full_init((void *)(& x));
   x = y;
   f();
-  __e_acsl_assert(1,1,"Assertion","main","\\initialized(&A)",
-                  "tests/memory/ptr_init.c",25);
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\initialized(&A)";
+    __gen_e_acsl_assert_data.file = "tests/memory/ptr_init.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 25;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data);
+  }
   /*@ assert \initialized(&A); */ ;
   {
     int __gen_e_acsl_initialized;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&x",
+                                 (void *)(& x));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& x),
                                                     sizeof(int *));
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main",
-                    "\\initialized(&x)","tests/memory/ptr_init.c",26);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&x)",0,
+                                 __gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&x)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/ptr_init.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 26;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \initialized(&x); */ ;
   g(x,y);
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_ranges_in_builtins.c b/src/plugins/e-acsl/tests/memory/oracle/gen_ranges_in_builtins.c
index 044b08b27b4463f0fc2398a233064e949ad5a7b8..8918efa1bdbc171df36cf0f64518a69ca84d97d1 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_ranges_in_builtins.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_ranges_in_builtins.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -9,7 +10,7 @@ struct S {
    float *b ;
    float *c ;
 };
-/*@ requires ¬\valid(s + (3 .. n + 1000)); */
+/*@ requires !\valid(s + (3 .. n + 1000)); */
 void __gen_e_acsl_f(char *s, long n);
 
 void f(char *s, long n)
@@ -18,7 +19,7 @@ void f(char *s, long n)
 }
 
 /*@ requires \valid(ptr + (0 .. size - 1));
-    ensures ¬\valid(\old(ptr) + (0 .. \old(size) + 1));
+    ensures !\valid(\old(ptr) + (0 .. \old(size) + 1));
  */
 void __gen_e_acsl_g(long *ptr, size_t size);
 
@@ -54,15 +55,35 @@ int main(void)
     int __gen_e_acsl_size;
     int __gen_e_acsl_if;
     int __gen_e_acsl_valid;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"a",(void *)a);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(int)",0,
+                                 4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(int)",0,
+                                 4);
     __gen_e_acsl_size = 4 * ((4 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0,
+                                 __gen_e_acsl_size);
     if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0;
-    else __gen_e_acsl_if = __gen_e_acsl_size;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"size",0,
+                                   __gen_e_acsl_size);
+      __gen_e_acsl_if = __gen_e_acsl_size;
+    }
     __gen_e_acsl_valid = __e_acsl_valid((void *)((char *)a + 4 * 0),
                                         (size_t)__gen_e_acsl_if,(void *)a,
                                         (void *)(& a));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main",
-                    "\\valid(a + (0 .. 4))",
-                    "tests/memory/ranges_in_builtins.c",24);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\valid(a + (0 .. 4))",0,
+                                 __gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(a + (0 .. 4))";
+    __gen_e_acsl_assert_data.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 24;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(a + (0 .. 4)); */ ;
   int j = 2;
@@ -70,32 +91,75 @@ int main(void)
     long __gen_e_acsl_size_2;
     long __gen_e_acsl_if_2;
     int __gen_e_acsl_valid_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"a",(void *)a);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"j",0,j);
     __gen_e_acsl_size_2 = 4L * (((7L + j) - 4L) + 1L);
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_2,"size",0,
+                                  __gen_e_acsl_size_2);
     if (__gen_e_acsl_size_2 <= 0L) __gen_e_acsl_if_2 = 0L;
-    else __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    else {
+      __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_2,"size",0,
+                                    __gen_e_acsl_size_2);
+      __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    }
     __gen_e_acsl_valid_2 = __e_acsl_valid((void *)((char *)a + 4 * 4),
                                           (size_t)__gen_e_acsl_if_2,
                                           (void *)a,(void *)(& a));
-    __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","main",
-                    "\\valid(a + (4 .. 7 + j))",
-                    "tests/memory/ranges_in_builtins.c",26);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\valid(a + (4 .. 7 + j))",0,
+                                 __gen_e_acsl_valid_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(a + (4 .. 7 + j))";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 26;
+    __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid(a + (4 .. 7 + j)); */ ;
   {
     int __gen_e_acsl_size_3;
     int __gen_e_acsl_if_3;
     int __gen_e_acsl_valid_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"a",(void *)a);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(int)",
+                                 0,4);
     __gen_e_acsl_size_3 = 4 * ((11 - 10) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0,
+                                 __gen_e_acsl_size_3);
     if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0;
-    else __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"size",0,
+                                   __gen_e_acsl_size_3);
+      __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+    }
     __gen_e_acsl_valid_3 = __e_acsl_valid((void *)((char *)a + 4 * 10),
                                           (size_t)__gen_e_acsl_if_3,
                                           (void *)a,(void *)(& a));
-    __e_acsl_assert(! __gen_e_acsl_valid_3,1,"Assertion","main",
-                    "!\\valid(a + (10 .. 11))",
-                    "tests/memory/ranges_in_builtins.c",27);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\valid(a + (10 .. 11))",0,
+                                 __gen_e_acsl_valid_3);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "!\\valid(a + (10 .. 11))";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 27;
+    __e_acsl_assert(! __gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert ¬\valid(a + (10 .. 11)); */ ;
+  /*@ assert !\valid(a + (10 .. 11)); */ ;
   free((void *)a);
   __e_acsl_full_init((void *)(& b));
   b = (char *)malloc((unsigned long)10 * sizeof(char));
@@ -103,32 +167,74 @@ int main(void)
     int __gen_e_acsl_size_4;
     int __gen_e_acsl_if_4;
     int __gen_e_acsl_valid_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"b",(void *)b);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)",
+                                 0,1);
     __gen_e_acsl_size_4 = 1 * ((9 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0,
+                                 __gen_e_acsl_size_4);
     if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0;
-    else __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"size",0,
+                                   __gen_e_acsl_size_4);
+      __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+    }
     __gen_e_acsl_valid_4 = __e_acsl_valid((void *)(b + 1 * 0),
                                           (size_t)__gen_e_acsl_if_4,
                                           (void *)b,(void *)(& b));
-    __e_acsl_assert(__gen_e_acsl_valid_4,1,"Assertion","main",
-                    "\\valid(b + (0 .. 9))",
-                    "tests/memory/ranges_in_builtins.c",32);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\valid(b + (0 .. 9))",0,
+                                 __gen_e_acsl_valid_4);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\valid(b + (0 .. 9))";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 32;
+    __e_acsl_assert(__gen_e_acsl_valid_4,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
   /*@ assert \valid(b + (0 .. 9)); */ ;
   {
     int __gen_e_acsl_size_5;
     int __gen_e_acsl_if_5;
     int __gen_e_acsl_valid_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"b",(void *)b);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"sizeof(char)",
+                                 0,1);
     __gen_e_acsl_size_5 = 1 * ((15 - 10) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0,
+                                 __gen_e_acsl_size_5);
     if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0;
-    else __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"size",0,
+                                   __gen_e_acsl_size_5);
+      __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+    }
     __gen_e_acsl_valid_5 = __e_acsl_valid((void *)(b + 1 * 10),
                                           (size_t)__gen_e_acsl_if_5,
                                           (void *)b,(void *)(& b));
-    __e_acsl_assert(! __gen_e_acsl_valid_5,1,"Assertion","main",
-                    "!\\valid(b + (10 .. 15))",
-                    "tests/memory/ranges_in_builtins.c",33);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\valid(b + (10 .. 15))",0,
+                                 __gen_e_acsl_valid_5);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(b + (10 .. 15))";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 33;
+    __e_acsl_assert(! __gen_e_acsl_valid_5,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert ¬\valid(b + (10 .. 15)); */ ;
+  /*@ assert !\valid(b + (10 .. 15)); */ ;
   long t[3] = {7l, 8l, 9l};
   __e_acsl_store_block((void *)(t),(size_t)24);
   __e_acsl_full_init((void *)(& t));
@@ -136,32 +242,76 @@ int main(void)
     int __gen_e_acsl_size_6;
     int __gen_e_acsl_if_6;
     int __gen_e_acsl_valid_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"(long *)t",
+                                 (void *)(t));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(long)",
+                                 0,8);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"sizeof(long)",
+                                 0,8);
     __gen_e_acsl_size_6 = 8 * ((2 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0,
+                                 __gen_e_acsl_size_6);
     if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0;
-    else __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"size",0,
+                                   __gen_e_acsl_size_6);
+      __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+    }
     __gen_e_acsl_valid_6 = __e_acsl_valid((void *)((char *)(t) + 8 * 0),
                                           (size_t)__gen_e_acsl_if_6,
                                           (void *)(t),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_6,1,"Assertion","main",
-                    "\\valid(&t[0 .. 2])",
-                    "tests/memory/ranges_in_builtins.c",36);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "\\valid(&t[0 .. 2])",0,
+                                 __gen_e_acsl_valid_6);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "\\valid(&t[0 .. 2])";
+    __gen_e_acsl_assert_data_6.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 36;
+    __e_acsl_assert(__gen_e_acsl_valid_6,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
   /*@ assert \valid(&t[0 .. 2]); */ ;
   {
     int __gen_e_acsl_size_7;
     int __gen_e_acsl_if_7;
     int __gen_e_acsl_valid_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"(long *)t",
+                                 (void *)(t));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(long)",
+                                 0,8);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"sizeof(long)",
+                                 0,8);
     __gen_e_acsl_size_7 = 8 * ((5 - 3) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"size",0,
+                                 __gen_e_acsl_size_7);
     if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0;
-    else __gen_e_acsl_if_7 = __gen_e_acsl_size_7;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"size",0,
+                                   __gen_e_acsl_size_7);
+      __gen_e_acsl_if_7 = __gen_e_acsl_size_7;
+    }
     __gen_e_acsl_valid_7 = __e_acsl_valid((void *)((char *)(t) + 8 * 3),
                                           (size_t)__gen_e_acsl_if_7,
                                           (void *)(t),(void *)0);
-    __e_acsl_assert(! __gen_e_acsl_valid_7,1,"Assertion","main",
-                    "!\\valid(&t[3 .. 5])",
-                    "tests/memory/ranges_in_builtins.c",37);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "\\valid(&t[3 .. 5])",0,
+                                 __gen_e_acsl_valid_7);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "!\\valid(&t[3 .. 5])";
+    __gen_e_acsl_assert_data_7.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 37;
+    __e_acsl_assert(! __gen_e_acsl_valid_7,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
-  /*@ assert ¬\valid(&t[3 .. 5]); */ ;
+  /*@ assert !\valid(&t[3 .. 5]); */ ;
   __gen_e_acsl_g(t,(unsigned long)3);
   __e_acsl_initialize((void *)(t2),sizeof(double));
   t2[0] = 0.5;
@@ -171,51 +321,120 @@ int main(void)
     int __gen_e_acsl_size_8;
     int __gen_e_acsl_if_8;
     int __gen_e_acsl_initialized;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"(double *)t2",
+                                 (void *)(t2));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                 "sizeof(double)",0,8);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                 "sizeof(double)",0,8);
     __gen_e_acsl_size_8 = 8 * ((1 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0,
+                                 __gen_e_acsl_size_8);
     if (__gen_e_acsl_size_8 <= 0) __gen_e_acsl_if_8 = 0;
-    else __gen_e_acsl_if_8 = __gen_e_acsl_size_8;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"size",0,
+                                   __gen_e_acsl_size_8);
+      __gen_e_acsl_if_8 = __gen_e_acsl_size_8;
+    }
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)((char *)(t2) + 
                                                              8 * 0),
                                                     (size_t)__gen_e_acsl_if_8);
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main",
-                    "\\initialized(&t2[0 .. 1])",
-                    "tests/memory/ranges_in_builtins.c",43);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                 "\\initialized(&t2[0 .. 1])",0,
+                                 __gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "\\initialized(&t2[0 .. 1])";
+    __gen_e_acsl_assert_data_8.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 43;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
   /*@ assert \initialized(&t2[0 .. 1]); */ ;
   {
     int __gen_e_acsl_size_9;
     int __gen_e_acsl_if_9;
     int __gen_e_acsl_initialized_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"(double *)t2",
+                                 (void *)(t2));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                 "sizeof(double)",0,8);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                 "sizeof(double)",0,8);
     __gen_e_acsl_size_9 = 8 * ((3 - 2) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0,
+                                 __gen_e_acsl_size_9);
     if (__gen_e_acsl_size_9 <= 0) __gen_e_acsl_if_9 = 0;
-    else __gen_e_acsl_if_9 = __gen_e_acsl_size_9;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"size",0,
+                                   __gen_e_acsl_size_9);
+      __gen_e_acsl_if_9 = __gen_e_acsl_size_9;
+    }
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)((char *)(t2) + 
                                                                8 * 2),
                                                       (size_t)__gen_e_acsl_if_9);
-    __e_acsl_assert(! __gen_e_acsl_initialized_2,1,"Assertion","main",
-                    "!\\initialized(&t2[2 .. 3])",
-                    "tests/memory/ranges_in_builtins.c",44);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                 "\\initialized(&t2[2 .. 3])",0,
+                                 __gen_e_acsl_initialized_2);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "!\\initialized(&t2[2 .. 3])";
+    __gen_e_acsl_assert_data_9.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 44;
+    __e_acsl_assert(! __gen_e_acsl_initialized_2,
+                    & __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
-  /*@ assert ¬\initialized(&t2[2 .. 3]); */ ;
+  /*@ assert !\initialized(&t2[2 .. 3]); */ ;
   {
     int __gen_e_acsl_size_10;
     int __gen_e_acsl_if_10;
     int __gen_e_acsl_initialized_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"b",(void *)b);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                 "sizeof(char)",0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                 "sizeof(char)",0,1);
     __gen_e_acsl_size_10 = 1 * ((9 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0,
+                                 __gen_e_acsl_size_10);
     if (__gen_e_acsl_size_10 <= 0) __gen_e_acsl_if_10 = 0;
-    else __gen_e_acsl_if_10 = __gen_e_acsl_size_10;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0,
+                                   __gen_e_acsl_size_10);
+      __gen_e_acsl_if_10 = __gen_e_acsl_size_10;
+    }
     __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(b + 1 * 0),
                                                       (size_t)__gen_e_acsl_if_10);
-    __e_acsl_assert(! __gen_e_acsl_initialized_3,1,"Assertion","main",
-                    "!\\initialized(b + (0 .. 9))",
-                    "tests/memory/ranges_in_builtins.c",46);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                 "\\initialized(b + (0 .. 9))",0,
+                                 __gen_e_acsl_initialized_3);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "!\\initialized(b + (0 .. 9))";
+    __gen_e_acsl_assert_data_10.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 46;
+    __e_acsl_assert(! __gen_e_acsl_initialized_3,
+                    & __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
   }
-  /*@ assert ¬\initialized(b + (0 .. 9)); */ ;
+  /*@ assert !\initialized(b + (0 .. 9)); */ ;
   free((void *)b);
   int n = 2;
   {
     int __gen_e_acsl_forall;
     int __gen_e_acsl_range_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
     __gen_e_acsl_forall = 1;
     __gen_e_acsl_range_2 = 0;
     while (1) {
@@ -249,31 +468,66 @@ int main(void)
       __gen_e_acsl_range_2 ++;
     }
     e_acsl_end_loop2: ;
-    __e_acsl_assert(! __gen_e_acsl_forall,1,"Assertion","main",
-                    "!\\initialized(&t3[n - 1 .. n + 2][1][0 .. 1])",
-                    "tests/memory/ranges_in_builtins.c",51);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                 "\\forall integer range_2;\n  0 <= range_2 <= 1 ==>\n  (\\forall integer range;\n     n - 1 <= range <= n + 2 ==> \\initialized(&t3[range][1][range_2]))",
+                                 0,__gen_e_acsl_forall);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                 "\\initialized(&t3[n - 1 .. n + 2][1][0 .. 1])",
+                                 0,__gen_e_acsl_forall);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "!\\initialized(&t3[n - 1 .. n + 2][1][0 .. 1])";
+    __gen_e_acsl_assert_data_11.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 51;
+    __e_acsl_assert(! __gen_e_acsl_forall,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
   }
-  /*@ assert ¬\initialized(&t3[n - 1 .. n + 2][1][0 .. 1]); */ ;
+  /*@ assert !\initialized(&t3[n - 1 .. n + 2][1][0 .. 1]); */ ;
   {
     int __gen_e_acsl_size_11;
     int __gen_e_acsl_if_11;
     int __gen_e_acsl_valid_read;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,
+                                 "&t3[6][1][0]",(void *)(& t3[6][1][0]));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                 "sizeof(float)",0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                 "sizeof(float)",0,4);
     __gen_e_acsl_size_11 = 4 * ((10 - 2) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"size",0,
+                                 __gen_e_acsl_size_11);
     if (__gen_e_acsl_size_11 <= 0) __gen_e_acsl_if_11 = 0;
-    else __gen_e_acsl_if_11 = __gen_e_acsl_size_11;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"size",0,
+                                   __gen_e_acsl_size_11);
+      __gen_e_acsl_if_11 = __gen_e_acsl_size_11;
+    }
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)((char *)(& t3[6][1][0]) + 
                                                            4 * 2),
                                                   (size_t)__gen_e_acsl_if_11,
                                                   (void *)(& t3[0][0][0]),
                                                   (void *)0);
-    __e_acsl_assert(! __gen_e_acsl_valid_read,1,"Assertion","main",
-                    "!\\valid_read(&t3[6][1][0] + (2 .. 10))",
-                    "tests/memory/ranges_in_builtins.c",53);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                 "\\valid_read(&t3[6][1][0] + (2 .. 10))",0,
+                                 __gen_e_acsl_valid_read);
+    __gen_e_acsl_assert_data_12.blocking = 1;
+    __gen_e_acsl_assert_data_12.kind = "Assertion";
+    __gen_e_acsl_assert_data_12.pred_txt = "!\\valid_read(&t3[6][1][0] + (2 .. 10))";
+    __gen_e_acsl_assert_data_12.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_12.fct = "main";
+    __gen_e_acsl_assert_data_12.line = 53;
+    __e_acsl_assert(! __gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_12);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
   }
-  /*@ assert ¬\valid_read(&t3[6][1][0] + (2 .. 10)); */ ;
+  /*@ assert !\valid_read(&t3[6][1][0] + (2 .. 10)); */ ;
   {
     int __gen_e_acsl_forall_3;
     long __gen_e_acsl_range_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
     __gen_e_acsl_forall_3 = 1;
     __gen_e_acsl_range_3 = n - 1L;
     while (1) {
@@ -293,15 +547,28 @@ int main(void)
       __gen_e_acsl_range_3 ++;
     }
     e_acsl_end_loop3: ;
-    __e_acsl_assert(__gen_e_acsl_forall_3,1,"Assertion","main",
-                    "\\valid_read(&t3[n - 1 .. n + 2][1])",
-                    "tests/memory/ranges_in_builtins.c",54);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                 "\\forall integer range_3;\n  n - 1 <= range_3 <= n + 2 ==> \\valid_read(&t3[range_3][1])",
+                                 0,__gen_e_acsl_forall_3);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                 "\\valid_read(&t3[n - 1 .. n + 2][1])",0,
+                                 __gen_e_acsl_forall_3);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "\\valid_read(&t3[n - 1 .. n + 2][1])";
+    __gen_e_acsl_assert_data_13.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 54;
+    __e_acsl_assert(__gen_e_acsl_forall_3,& __gen_e_acsl_assert_data_13);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
   }
   /*@ assert \valid_read(&t3[n - 1 .. n + 2][1]); */ ;
   {
     int __gen_e_acsl_x;
     int __gen_e_acsl_forall_4;
     int __gen_e_acsl_range_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
     __gen_e_acsl_x = 5;
     __gen_e_acsl_forall_4 = 1;
     __gen_e_acsl_range_4 = 0;
@@ -322,9 +589,20 @@ int main(void)
       __gen_e_acsl_range_4 ++;
     }
     e_acsl_end_loop4: ;
-    __e_acsl_assert(__gen_e_acsl_forall_4,1,"Assertion","main",
-                    "\\let x = 5; \\valid(&t4[4][0 .. x][2])",
-                    "tests/memory/ranges_in_builtins.c",57);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,
+                                 "\\forall integer range_4; 0 <= range_4 <= x ==> \\valid(&t4[4][range_4][2])",
+                                 0,__gen_e_acsl_forall_4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,
+                                 "\\valid(&t4[4][0 .. x][2])",0,
+                                 __gen_e_acsl_forall_4);
+    __gen_e_acsl_assert_data_14.blocking = 1;
+    __gen_e_acsl_assert_data_14.kind = "Assertion";
+    __gen_e_acsl_assert_data_14.pred_txt = "\\let x = 5; \\valid(&t4[4][0 .. x][2])";
+    __gen_e_acsl_assert_data_14.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_14.fct = "main";
+    __gen_e_acsl_assert_data_14.line = 57;
+    __e_acsl_assert(__gen_e_acsl_forall_4,& __gen_e_acsl_assert_data_14);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
   }
   /*@ assert \let x = 5; \valid(&t4[4][0 .. x][2]); */ ;
   __e_acsl_initialize((void *)(& s.a[0]),sizeof(int));
@@ -335,33 +613,78 @@ int main(void)
     int __gen_e_acsl_size_12;
     int __gen_e_acsl_if_12;
     int __gen_e_acsl_initialized_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"&s.a[0]",
+                                 (void *)(& s.a[0]));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"sizeof(int)",
+                                 0,4);
     __gen_e_acsl_size_12 = 4 * ((1 - 1) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"size",0,
+                                 __gen_e_acsl_size_12);
     if (__gen_e_acsl_size_12 <= 0) __gen_e_acsl_if_12 = 0;
-    else __gen_e_acsl_if_12 = __gen_e_acsl_size_12;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"size",0,
+                                   __gen_e_acsl_size_12);
+      __gen_e_acsl_if_12 = __gen_e_acsl_size_12;
+    }
     __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)((char *)(& s.a[0]) + 
                                                                4 * 1),
                                                       (size_t)__gen_e_acsl_if_12);
-    __e_acsl_assert(__gen_e_acsl_initialized_5,1,"Assertion","main",
-                    "\\initialized(&s.a[0] + (1 .. 1))",
-                    "tests/memory/ranges_in_builtins.c",62);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,
+                                 "\\initialized(&s.a[0] + (1 .. 1))",0,
+                                 __gen_e_acsl_initialized_5);
+    __gen_e_acsl_assert_data_15.blocking = 1;
+    __gen_e_acsl_assert_data_15.kind = "Assertion";
+    __gen_e_acsl_assert_data_15.pred_txt = "\\initialized(&s.a[0] + (1 .. 1))";
+    __gen_e_acsl_assert_data_15.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_15.fct = "main";
+    __gen_e_acsl_assert_data_15.line = 62;
+    __e_acsl_assert(__gen_e_acsl_initialized_5,& __gen_e_acsl_assert_data_15);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
   }
   /*@ assert \initialized(&s.a[0] + (1 .. 1)); */ ;
   {
     int __gen_e_acsl_size_13;
     int __gen_e_acsl_if_13;
     int __gen_e_acsl_initialized_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+      {.values = (void *)0};
+    /*@ assert Eva: initialization: \initialized(&s.b); */
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,"s.b",
+                                 (void *)s.b);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,
+                                 "sizeof(float)",0,4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,
+                                 "sizeof(float)",0,4);
     __gen_e_acsl_size_13 = 4 * ((1 - 0) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0,
+                                 __gen_e_acsl_size_13);
     if (__gen_e_acsl_size_13 <= 0) __gen_e_acsl_if_13 = 0;
-    else __gen_e_acsl_if_13 = __gen_e_acsl_size_13;
-    /*@ assert Eva: initialization: \initialized(&s.b); */
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0,
+                                   __gen_e_acsl_size_13);
+      __gen_e_acsl_if_13 = __gen_e_acsl_size_13;
+    }
     __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)((char *)s.b + 
                                                                4 * 0),
                                                       (size_t)__gen_e_acsl_if_13);
-    __e_acsl_assert(! __gen_e_acsl_initialized_6,1,"Assertion","main",
-                    "!\\initialized(s.b + (0 .. 1))",
-                    "tests/memory/ranges_in_builtins.c",63);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,
+                                 "\\initialized(s.b + (0 .. 1))",0,
+                                 __gen_e_acsl_initialized_6);
+    __gen_e_acsl_assert_data_16.blocking = 1;
+    __gen_e_acsl_assert_data_16.kind = "Assertion";
+    __gen_e_acsl_assert_data_16.pred_txt = "!\\initialized(s.b + (0 .. 1))";
+    __gen_e_acsl_assert_data_16.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_16.fct = "main";
+    __gen_e_acsl_assert_data_16.line = 63;
+    __e_acsl_assert(! __gen_e_acsl_initialized_6,
+                    & __gen_e_acsl_assert_data_16);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
   }
-  /*@ assert ¬\initialized(s.b + (0 .. 1)); */ ;
+  /*@ assert !\initialized(s.b + (0 .. 1)); */ ;
   int size1 = 5;
   int size2 = 9;
   __e_acsl_full_init((void *)(& multi_dynamic));
@@ -378,24 +701,58 @@ int main(void)
     int __gen_e_acsl_size_14;
     int __gen_e_acsl_if_14;
     int __gen_e_acsl_valid_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,
+                                 "*(multi_dynamic + 4)",
+                                 (void *)*(multi_dynamic + 4));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"sizeof(int)",
+                                 0,4);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,
+                                 "multi_dynamic",(void *)multi_dynamic);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_18,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(multi_dynamic + 4),
                                                     sizeof(int *),
                                                     (void *)multi_dynamic,
                                                     (void *)(& multi_dynamic));
-    __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","main",
-                    "mem_access: \\valid_read(multi_dynamic + 4)",
-                    "tests/memory/ranges_in_builtins.c",72);
+    __gen_e_acsl_assert_data_18.blocking = 1;
+    __gen_e_acsl_assert_data_18.kind = "RTE";
+    __gen_e_acsl_assert_data_18.pred_txt = "mem_access: \\valid_read(multi_dynamic + 4)";
+    __gen_e_acsl_assert_data_18.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_18.fct = "main";
+    __gen_e_acsl_assert_data_18.line = 72;
+    __e_acsl_assert(__gen_e_acsl_valid_read_3,& __gen_e_acsl_assert_data_18);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"sizeof(int)",
+                                 0,4);
     __gen_e_acsl_size_14 = 4 * ((7 - 1) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"size",0,
+                                 __gen_e_acsl_size_14);
     if (__gen_e_acsl_size_14 <= 0) __gen_e_acsl_if_14 = 0;
-    else __gen_e_acsl_if_14 = __gen_e_acsl_size_14;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"size",0,
+                                   __gen_e_acsl_size_14);
+      __gen_e_acsl_if_14 = __gen_e_acsl_size_14;
+    }
     __gen_e_acsl_valid_9 = __e_acsl_valid((void *)((char *)*(multi_dynamic + 4) + 
                                                    4 * 1),
                                           (size_t)__gen_e_acsl_if_14,
                                           (void *)*(multi_dynamic + 4),
                                           (void *)(multi_dynamic + 4));
-    __e_acsl_assert(__gen_e_acsl_valid_9,1,"Assertion","main",
-                    "\\valid(*(multi_dynamic + 4) + (1 .. 7))",
-                    "tests/memory/ranges_in_builtins.c",72);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,
+                                 "\\valid(*(multi_dynamic + 4) + (1 .. 7))",
+                                 0,__gen_e_acsl_valid_9);
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "Assertion";
+    __gen_e_acsl_assert_data_17.pred_txt = "\\valid(*(multi_dynamic + 4) + (1 .. 7))";
+    __gen_e_acsl_assert_data_17.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_17.fct = "main";
+    __gen_e_acsl_assert_data_17.line = 72;
+    __e_acsl_assert(__gen_e_acsl_valid_9,& __gen_e_acsl_assert_data_17);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
   }
   /*@ assert \valid(*(multi_dynamic + 4) + (1 .. 7)); */ ;
   /*@ assert \valid(*(multi_dynamic + (2 .. 4)) + (1 .. 7)); */ ;
@@ -416,15 +773,37 @@ int main(void)
     int __gen_e_acsl_size_15;
     int __gen_e_acsl_if_15;
     int __gen_e_acsl_valid_10;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20,"(char *)t5",
+                                 (void *)(t5));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,
+                                 "sizeof(char)",0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,
+                                 "sizeof(char)",0,1);
     __gen_e_acsl_size_15 = 1 * ((3 - 2) + 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,"size",0,
+                                 __gen_e_acsl_size_15);
     if (__gen_e_acsl_size_15 <= 0) __gen_e_acsl_if_15 = 0;
-    else __gen_e_acsl_if_15 = __gen_e_acsl_size_15;
+    else {
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,"size",0,
+                                   __gen_e_acsl_size_15);
+      __gen_e_acsl_if_15 = __gen_e_acsl_size_15;
+    }
     __gen_e_acsl_valid_10 = __e_acsl_valid((void *)(t5 + 1 * 2),
                                            (size_t)__gen_e_acsl_if_15,
                                            (void *)(t5),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_10,1,"Assertion","main",
-                    "\\valid(&t5[2 .. 3])",
-                    "tests/memory/ranges_in_builtins.c",84);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,
+                                 "\\valid(&t5[2 .. 3])",0,
+                                 __gen_e_acsl_valid_10);
+    __gen_e_acsl_assert_data_20.blocking = 1;
+    __gen_e_acsl_assert_data_20.kind = "Assertion";
+    __gen_e_acsl_assert_data_20.pred_txt = "\\valid(&t5[2 .. 3])";
+    __gen_e_acsl_assert_data_20.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_20.fct = "main";
+    __gen_e_acsl_assert_data_20.line = 84;
+    __e_acsl_assert(__gen_e_acsl_valid_10,& __gen_e_acsl_assert_data_20);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20);
   }
   /*@ assert \valid(&t5[2 .. 3]); */ ;
   __retres = 0;
@@ -443,7 +822,7 @@ int main(void)
 }
 
 /*@ requires \valid(ptr + (0 .. size - 1));
-    ensures ¬\valid(\old(ptr) + (0 .. \old(size) + 1));
+    ensures !\valid(\old(ptr) + (0 .. \old(size) + 1));
  */
 void __gen_e_acsl_g(long *ptr, size_t size)
 {
@@ -466,7 +845,15 @@ void __gen_e_acsl_g(long *ptr, size_t size)
     unsigned long __gen_e_acsl_size_3;
     int __gen_e_acsl_valid;
     __e_acsl_store_block((void *)(& ptr),(size_t)8);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"ptr",
+                                 (void *)ptr);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(long)",0,
+                                 8);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(long)",0,
+                                 8);
     __gmpz_init_set_si(__gen_e_acsl_sizeof,8L);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"size",0,size);
     __gmpz_init_set_ui(__gen_e_acsl_size_2,size);
     __gmpz_init_set_si(__gen_e_acsl_,1L);
     __gmpz_init(__gen_e_acsl_sub);
@@ -488,6 +875,8 @@ void __gen_e_acsl_g(long *ptr, size_t size)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gmpz_init_set(__gen_e_acsl_size,
                     (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul));
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
     __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
     if (__gen_e_acsl_le <= 0) {
@@ -497,21 +886,46 @@ void __gen_e_acsl_g(long *ptr, size_t size)
                       (__e_acsl_mpz_struct const *)(__gen_e_acsl__3));
       __gmpz_clear(__gen_e_acsl__3);
     }
-    else __gmpz_init_set(__gen_e_acsl_if,
-                         (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
+    else {
+      __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0,
+                                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
+      __gmpz_init_set(__gen_e_acsl_if,
+                      (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
+    }
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2,
+                                 "__gen_e_acsl_if",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_if));
     __gmpz_init_set_ui(__gen_e_acsl__4,18446744073709551615UL);
     __gen_e_acsl_le_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
-    __e_acsl_assert(__gen_e_acsl_le_2 <= 0,1,"RTE","g",
-                    "offset_lesser_or_eq_than_SIZE_MAX:\n  (\\let size = sizeof(long) * (((size - 1) - 0) + 1); size <= 0? 0: size) <=\n  18446744073709551615",
-                    "tests/memory/ranges_in_builtins.c",8);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,
+                                 "__gen_e_acsl_if",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_if));
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "offset_lesser_or_eq_than_SIZE_MAX:\n  (\\let size = sizeof(long) * (((size - 1) - 0) + 1); size <= 0? 0: size) <=\n  18446744073709551615";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_2.fct = "g";
+    __gen_e_acsl_assert_data_2.line = 8;
+    __e_acsl_assert(__gen_e_acsl_le_2 <= 0,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     __gen_e_acsl_size_3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if));
     __gen_e_acsl_valid = __e_acsl_valid((void *)((char *)ptr + 8 * 0),
                                         __gen_e_acsl_size_3,(void *)ptr,
                                         (void *)(& ptr));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","g",
-                    "\\valid(ptr + (0 .. size - 1))",
-                    "tests/memory/ranges_in_builtins.c",8);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\valid(ptr + (0 .. size - 1))",0,
+                                 __gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(ptr + (0 .. size - 1))";
+    __gen_e_acsl_assert_data.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data.fct = "g";
+    __gen_e_acsl_assert_data.line = 8;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __gmpz_clear(__gen_e_acsl_size);
     __gmpz_clear(__gen_e_acsl_sizeof);
     __gmpz_clear(__gen_e_acsl_size_2);
@@ -548,7 +962,18 @@ void __gen_e_acsl_g(long *ptr, size_t size)
     int __gen_e_acsl_le_4;
     unsigned long __gen_e_acsl_size_6;
     int __gen_e_acsl_valid_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"\\old(ptr)",
+                                 (void *)__gen_e_acsl_at);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(long)",
+                                 0,8);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(long)",
+                                 0,8);
     __gmpz_init_set_si(__gen_e_acsl_sizeof_2,8L);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_3,"\\old(size)",
+                                 0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_at_2));
     __gmpz_init_set_si(__gen_e_acsl__5,1L);
     __gmpz_init(__gen_e_acsl_add_2);
     __gmpz_add(__gen_e_acsl_add_2,
@@ -569,6 +994,8 @@ void __gen_e_acsl_g(long *ptr, size_t size)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_3));
     __gmpz_init_set(__gen_e_acsl_size_4,
                     (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul_2));
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_3,"size",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_4));
     __gen_e_acsl_le_3 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size_4),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__6));
     if (__gen_e_acsl_le_3 <= 0) {
@@ -578,23 +1005,48 @@ void __gen_e_acsl_g(long *ptr, size_t size)
                       (__e_acsl_mpz_struct const *)(__gen_e_acsl__7));
       __gmpz_clear(__gen_e_acsl__7);
     }
-    else __gmpz_init_set(__gen_e_acsl_if_2,
-                         (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_4));
+    else {
+      __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_3,"size",0,
+                                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_4));
+      __gmpz_init_set(__gen_e_acsl_if_2,
+                      (__e_acsl_mpz_struct const *)(__gen_e_acsl_size_4));
+    }
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_4,
+                                 "__gen_e_acsl_if_2",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2));
     __gmpz_init_set_ui(__gen_e_acsl__8,18446744073709551615UL);
     __gen_e_acsl_le_4 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__8));
-    __e_acsl_assert(__gen_e_acsl_le_4 <= 0,1,"RTE","g",
-                    "offset_lesser_or_eq_than_SIZE_MAX:\n  (\\let size = sizeof(long) * (((\\old(size) + 1) - 0) + 1);\n   size <= 0? 0: size)\n  <= 18446744073709551615",
-                    "tests/memory/ranges_in_builtins.c",9);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_3,
+                                 "__gen_e_acsl_if_2",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2));
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "RTE";
+    __gen_e_acsl_assert_data_4.pred_txt = "offset_lesser_or_eq_than_SIZE_MAX:\n  (\\let size = sizeof(long) * (((\\old(size) + 1) - 0) + 1);\n   size <= 0? 0: size)\n  <= 18446744073709551615";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_4.fct = "g";
+    __gen_e_acsl_assert_data_4.line = 9;
+    __e_acsl_assert(__gen_e_acsl_le_4 <= 0,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     __gen_e_acsl_size_6 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if_2));
     __gen_e_acsl_valid_2 = __e_acsl_valid((void *)((char *)__gen_e_acsl_at + 
                                                    8 * 0),
                                           __gen_e_acsl_size_6,
                                           (void *)__gen_e_acsl_at,
                                           (void *)(& __gen_e_acsl_at));
-    __e_acsl_assert(! __gen_e_acsl_valid_2,1,"Postcondition","g",
-                    "!\\valid(\\old(ptr) + (0 .. \\old(size) + 1))",
-                    "tests/memory/ranges_in_builtins.c",9);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\valid(\\old(ptr) + (0 .. \\old(size) + 1))",
+                                 0,__gen_e_acsl_valid_2);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Postcondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "!\\valid(\\old(ptr) + (0 .. \\old(size) + 1))";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_3.fct = "g";
+    __gen_e_acsl_assert_data_3.line = 9;
+    __e_acsl_assert(! __gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __e_acsl_delete_block((void *)(& ptr));
     __gmpz_clear(__gen_e_acsl_size_4);
     __gmpz_clear(__gen_e_acsl_sizeof_2);
@@ -611,7 +1063,7 @@ void __gen_e_acsl_g(long *ptr, size_t size)
   }
 }
 
-/*@ requires ¬\valid(s + (3 .. n + 1000)); */
+/*@ requires !\valid(s + (3 .. n + 1000)); */
 void __gen_e_acsl_f(char *s, long n)
 {
   {
@@ -633,7 +1085,14 @@ void __gen_e_acsl_f(char *s, long n)
     unsigned long __gen_e_acsl_size_2;
     int __gen_e_acsl_valid;
     __e_acsl_store_block((void *)(& s),(size_t)8);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"s",(void *)s);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0,
+                                 1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(char)",0,
+                                 1);
     __gmpz_init_set_si(__gen_e_acsl_sizeof,1L);
+    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data,"n",0,n);
     __gmpz_init_set_si(__gen_e_acsl_n,n);
     __gmpz_init_set_si(__gen_e_acsl_,1000L);
     __gmpz_init(__gen_e_acsl_add);
@@ -656,6 +1115,8 @@ void __gen_e_acsl_f(char *s, long n)
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_add_2));
     __gmpz_init_set(__gen_e_acsl_size,
                     (__e_acsl_mpz_struct const *)(__gen_e_acsl_mul));
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
     __gmpz_init_set_si(__gen_e_acsl__4,0L);
     __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_size),
                                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
@@ -666,21 +1127,46 @@ void __gen_e_acsl_f(char *s, long n)
                       (__e_acsl_mpz_struct const *)(__gen_e_acsl__5));
       __gmpz_clear(__gen_e_acsl__5);
     }
-    else __gmpz_init_set(__gen_e_acsl_if,
-                         (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
+    else {
+      __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,"size",0,
+                                   (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
+      __gmpz_init_set(__gen_e_acsl_if,
+                      (__e_acsl_mpz_struct const *)(__gen_e_acsl_size));
+    }
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data_2,
+                                 "__gen_e_acsl_if",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_if));
     __gmpz_init_set_ui(__gen_e_acsl__6,18446744073709551615UL);
     __gen_e_acsl_le_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_if),
                                    (__e_acsl_mpz_struct const *)(__gen_e_acsl__6));
-    __e_acsl_assert(__gen_e_acsl_le_2 <= 0,1,"RTE","f",
-                    "offset_lesser_or_eq_than_SIZE_MAX:\n  (\\let size = sizeof(char) * (((n + 1000) - 3) + 1); size <= 0? 0: size) <=\n  18446744073709551615",
-                    "tests/memory/ranges_in_builtins.c",6);
+    __e_acsl_assert_register_mpz(& __gen_e_acsl_assert_data,
+                                 "__gen_e_acsl_if",0,
+                                 (__e_acsl_mpz_struct const *)(__gen_e_acsl_if));
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "offset_lesser_or_eq_than_SIZE_MAX:\n  (\\let size = sizeof(char) * (((n + 1000) - 3) + 1); size <= 0? 0: size) <=\n  18446744073709551615";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data_2.fct = "f";
+    __gen_e_acsl_assert_data_2.line = 6;
+    __e_acsl_assert(__gen_e_acsl_le_2 <= 0,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     __gen_e_acsl_size_2 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_if));
     __gen_e_acsl_valid = __e_acsl_valid((void *)(s + 1 * 3),
                                         __gen_e_acsl_size_2,(void *)s,
                                         (void *)(& s));
-    __e_acsl_assert(! __gen_e_acsl_valid,1,"Precondition","f",
-                    "!\\valid(s + (3 .. n + 1000))",
-                    "tests/memory/ranges_in_builtins.c",6);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\valid(s + (3 .. n + 1000))",0,
+                                 __gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "!\\valid(s + (3 .. n + 1000))";
+    __gen_e_acsl_assert_data.file = "tests/memory/ranges_in_builtins.c";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 6;
+    __e_acsl_assert(! __gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     __gmpz_clear(__gen_e_acsl_size);
     __gmpz_clear(__gen_e_acsl_sizeof);
     __gmpz_clear(__gen_e_acsl_n);
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_separated.c b/src/plugins/e-acsl/tests/memory/oracle/gen_separated.c
index d1ab26cc2eb68711e15231c8fd9dab0201e112c5..6ebe0a31aadb63676121017081494f3d2259292e 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_separated.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_separated.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -29,32 +30,87 @@ int main(void)
       int __gen_e_acsl_valid_read_2;
       int __gen_e_acsl_valid_read_3;
       int __gen_e_acsl_separated;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&a",
+                                   (void *)(& a));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(& a),
                                                     sizeof(int),
                                                     (void *)(& a),(void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main",
-                      "separated_guard: \\valid_read(&a)",
-                      "tests/memory/separated.c",14);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "RTE";
+      __gen_e_acsl_assert_data_2.pred_txt = "separated_guard: \\valid_read(&a)";
+      __gen_e_acsl_assert_data_2.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_2.fct = "main";
+      __gen_e_acsl_assert_data_2.line = 14;
+      __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(& b),
                                                       sizeof(int),
                                                       (void *)(& b),
                                                       (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","main",
-                      "separated_guard: \\valid_read(&b)",
-                      "tests/memory/separated.c",14);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "RTE";
+      __gen_e_acsl_assert_data_3.pred_txt = "separated_guard: \\valid_read(&b)";
+      __gen_e_acsl_assert_data_3.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_3.fct = "main";
+      __gen_e_acsl_assert_data_3.line = 14;
+      __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&c",
+                                   (void *)(& c));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)(& c),
                                                       sizeof(int),
                                                       (void *)(& c),
                                                       (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_3,1,"RTE","main",
-                      "separated_guard: \\valid_read(&c)",
-                      "tests/memory/separated.c",14);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "RTE";
+      __gen_e_acsl_assert_data_4.pred_txt = "separated_guard: \\valid_read(&c)";
+      __gen_e_acsl_assert_data_4.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_4.fct = "main";
+      __gen_e_acsl_assert_data_4.line = 14;
+      __e_acsl_assert(__gen_e_acsl_valid_read_3,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a",
+                                   (void *)(& a));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&c",
+                                   (void *)(& c));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_separated = __e_acsl_separated((size_t)3,& a,sizeof(int),
                                                   & b,sizeof(int),& c,
                                                   sizeof(int));
-      __e_acsl_assert(__gen_e_acsl_separated,1,"Assertion","main",
-                      "\\separated(&a, &b, &c)","tests/memory/separated.c",
-                      14);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\separated(&a, &b, &c)",0,
+                                   __gen_e_acsl_separated);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "\\separated(&a, &b, &c)";
+      __gen_e_acsl_assert_data.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data.fct = "main";
+      __gen_e_acsl_assert_data.line = 14;
+      __e_acsl_assert(__gen_e_acsl_separated,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
     /*@ assert \separated(&a, &b, &c); */ ;
     {
@@ -64,31 +120,76 @@ int main(void)
       int __gen_e_acsl_initialized;
       int __gen_e_acsl_and;
       int __gen_e_acsl_separated_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&a",
+                                   (void *)(& a));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(& a),
                                                       sizeof(int),
                                                       (void *)(& a),
                                                       (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","main",
-                      "separated_guard: \\valid_read(&a)",
-                      "tests/memory/separated.c",15);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "RTE";
+      __gen_e_acsl_assert_data_6.pred_txt = "separated_guard: \\valid_read(&a)";
+      __gen_e_acsl_assert_data_6.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_6.fct = "main";
+      __gen_e_acsl_assert_data_6.line = 15;
+      __e_acsl_assert(__gen_e_acsl_valid_read_4,& __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)(& b),
                                                       sizeof(int),
                                                       (void *)(& b),
                                                       (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_5,1,"RTE","main",
-                      "separated_guard: \\valid_read(&b)",
-                      "tests/memory/separated.c",15);
+      __gen_e_acsl_assert_data_7.blocking = 1;
+      __gen_e_acsl_assert_data_7.kind = "RTE";
+      __gen_e_acsl_assert_data_7.pred_txt = "separated_guard: \\valid_read(&b)";
+      __gen_e_acsl_assert_data_7.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_7.fct = "main";
+      __gen_e_acsl_assert_data_7.line = 15;
+      __e_acsl_assert(__gen_e_acsl_valid_read_5,& __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&c",
+                                   (void *)(& c));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)(& c),
                                                       sizeof(int),
                                                       (void *)(& c),
                                                       (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_6,1,"RTE","main",
-                      "separated_guard: \\valid_read(&c)",
-                      "tests/memory/separated.c",15);
+      __gen_e_acsl_assert_data_8.blocking = 1;
+      __gen_e_acsl_assert_data_8.kind = "RTE";
+      __gen_e_acsl_assert_data_8.pred_txt = "separated_guard: \\valid_read(&c)";
+      __gen_e_acsl_assert_data_8.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_8.fct = "main";
+      __gen_e_acsl_assert_data_8.line = 15;
+      __e_acsl_assert(__gen_e_acsl_valid_read_6,& __gen_e_acsl_assert_data_8);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&d",
+                                   (void *)(& d));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& d),
                                                       sizeof(int *));
       if (__gen_e_acsl_initialized) {
         int __gen_e_acsl_valid_read_7;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"d",
+                                     (void *)d);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_read_7 = __e_acsl_valid_read((void *)d,
                                                         sizeof(int),
                                                         (void *)d,
@@ -96,19 +197,49 @@ int main(void)
         __gen_e_acsl_and = __gen_e_acsl_valid_read_7;
       }
       else __gen_e_acsl_and = 0;
-      __e_acsl_assert(__gen_e_acsl_and,1,"RTE","main",
-                      "separated_guard: \\valid_read(d)",
-                      "tests/memory/separated.c",15);
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "RTE";
+      __gen_e_acsl_assert_data_9.pred_txt = "separated_guard: \\valid_read(d)";
+      __gen_e_acsl_assert_data_9.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_9.fct = "main";
+      __gen_e_acsl_assert_data_9.line = 15;
+      __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_9);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&a",
+                                   (void *)(& a));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int)",0,sizeof(int));
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int)",0,sizeof(int));
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&c",
+                                   (void *)(& c));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int)",0,sizeof(int));
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"d",
+                                   (void *)d);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_separated_2 = __e_acsl_separated((size_t)4,& a,
                                                     sizeof(int),& b,
                                                     sizeof(int),& c,
                                                     sizeof(int),d,
                                                     sizeof(int));
-      __e_acsl_assert(! __gen_e_acsl_separated_2,1,"Assertion","main",
-                      "!\\separated(&a, &b, &c, d)",
-                      "tests/memory/separated.c",15);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\separated(&a, &b, &c, d)",0,
+                                   __gen_e_acsl_separated_2);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Assertion";
+      __gen_e_acsl_assert_data_5.pred_txt = "!\\separated(&a, &b, &c, d)";
+      __gen_e_acsl_assert_data_5.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_5.fct = "main";
+      __gen_e_acsl_assert_data_5.line = 15;
+      __e_acsl_assert(! __gen_e_acsl_separated_2,
+                      & __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     }
-    /*@ assert ¬\separated(&a, &b, &c, d); */ ;
+    /*@ assert !\separated(&a, &b, &c, d); */ ;
     __e_acsl_delete_block((void *)(& d));
     __e_acsl_delete_block((void *)(& c));
     __e_acsl_delete_block((void *)(& b));
@@ -130,42 +261,116 @@ int main(void)
       int __gen_e_acsl_size_4;
       int __gen_e_acsl_if_4;
       int __gen_e_acsl_separated_3;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size = 8 * ((9 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0,
+                                   __gen_e_acsl_size);
       if (__gen_e_acsl_size <= 0) __gen_e_acsl_if = 0;
-      else __gen_e_acsl_if = __gen_e_acsl_size;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,"size",0,
+                                     __gen_e_acsl_size);
+        __gen_e_acsl_if = __gen_e_acsl_size;
+      }
       __gen_e_acsl_valid_read_8 = __e_acsl_valid_read((void *)((char *)(array) + 
                                                                8 * 0),
                                                       (size_t)__gen_e_acsl_if,
                                                       (void *)(array),
                                                       (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_8,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array[0 .. 9])",
-                      "tests/memory/separated.c",21);
+      __gen_e_acsl_assert_data_11.blocking = 1;
+      __gen_e_acsl_assert_data_11.kind = "RTE";
+      __gen_e_acsl_assert_data_11.pred_txt = "separated_guard: \\valid_read(&array[0 .. 9])";
+      __gen_e_acsl_assert_data_11.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_11.fct = "main";
+      __gen_e_acsl_assert_data_11.line = 21;
+      __e_acsl_assert(__gen_e_acsl_valid_read_8,
+                      & __gen_e_acsl_assert_data_11);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_2 = 8 * ((19 - 10) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"size",0,
+                                   __gen_e_acsl_size_2);
       if (__gen_e_acsl_size_2 <= 0) __gen_e_acsl_if_2 = 0;
-      else __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,"size",0,
+                                     __gen_e_acsl_size_2);
+        __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+      }
       __gen_e_acsl_valid_read_9 = __e_acsl_valid_read((void *)((char *)(array) + 
                                                                8 * 10),
                                                       (size_t)__gen_e_acsl_if_2,
                                                       (void *)(array),
                                                       (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_9,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array[10 .. 19])",
-                      "tests/memory/separated.c",21);
+      __gen_e_acsl_assert_data_12.blocking = 1;
+      __gen_e_acsl_assert_data_12.kind = "RTE";
+      __gen_e_acsl_assert_data_12.pred_txt = "separated_guard: \\valid_read(&array[10 .. 19])";
+      __gen_e_acsl_assert_data_12.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_12.fct = "main";
+      __gen_e_acsl_assert_data_12.line = 21;
+      __e_acsl_assert(__gen_e_acsl_valid_read_9,
+                      & __gen_e_acsl_assert_data_12);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_3 = 8 * ((9 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0,
+                                   __gen_e_acsl_size_3);
       if (__gen_e_acsl_size_3 <= 0) __gen_e_acsl_if_3 = 0;
-      else __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0,
+                                     __gen_e_acsl_size_3);
+        __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+      }
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_4 = 8 * ((19 - 10) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0,
+                                   __gen_e_acsl_size_4);
       if (__gen_e_acsl_size_4 <= 0) __gen_e_acsl_if_4 = 0;
-      else __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"size",0,
+                                     __gen_e_acsl_size_4);
+        __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+      }
       __gen_e_acsl_separated_3 = __e_acsl_separated((size_t)2,
                                                     (char *)(array) + 8 * 0,
                                                     __gen_e_acsl_if_3,
                                                     (char *)(array) + 8 * 10,
                                                     __gen_e_acsl_if_4);
-      __e_acsl_assert(__gen_e_acsl_separated_3,1,"Assertion","main",
-                      "\\separated(&array[0 .. 9], &array[10 .. 19])",
-                      "tests/memory/separated.c",21);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "\\separated(&array[0 .. 9], &array[10 .. 19])",
+                                   0,__gen_e_acsl_separated_3);
+      __gen_e_acsl_assert_data_10.blocking = 1;
+      __gen_e_acsl_assert_data_10.kind = "Assertion";
+      __gen_e_acsl_assert_data_10.pred_txt = "\\separated(&array[0 .. 9], &array[10 .. 19])";
+      __gen_e_acsl_assert_data_10.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_10.fct = "main";
+      __gen_e_acsl_assert_data_10.line = 21;
+      __e_acsl_assert(__gen_e_acsl_separated_3,& __gen_e_acsl_assert_data_10);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
     }
     /*@ assert \separated(&array[0 .. 9], &array[10 .. 19]); */ ;
     {
@@ -180,44 +385,119 @@ int main(void)
       int __gen_e_acsl_size_8;
       int __gen_e_acsl_if_8;
       int __gen_e_acsl_separated_4;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_5 = 8 * ((10 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"size",0,
+                                   __gen_e_acsl_size_5);
       if (__gen_e_acsl_size_5 <= 0) __gen_e_acsl_if_5 = 0;
-      else __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"size",0,
+                                     __gen_e_acsl_size_5);
+        __gen_e_acsl_if_5 = __gen_e_acsl_size_5;
+      }
       __gen_e_acsl_valid_read_10 = __e_acsl_valid_read((void *)((char *)(array) + 
                                                                 8 * 0),
                                                        (size_t)__gen_e_acsl_if_5,
                                                        (void *)(array),
                                                        (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_10,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array[0 .. 10])",
-                      "tests/memory/separated.c",22);
+      __gen_e_acsl_assert_data_14.blocking = 1;
+      __gen_e_acsl_assert_data_14.kind = "RTE";
+      __gen_e_acsl_assert_data_14.pred_txt = "separated_guard: \\valid_read(&array[0 .. 10])";
+      __gen_e_acsl_assert_data_14.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_14.fct = "main";
+      __gen_e_acsl_assert_data_14.line = 22;
+      __e_acsl_assert(__gen_e_acsl_valid_read_10,
+                      & __gen_e_acsl_assert_data_14);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_6 = 8 * ((15 - 5) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"size",0,
+                                   __gen_e_acsl_size_6);
       if (__gen_e_acsl_size_6 <= 0) __gen_e_acsl_if_6 = 0;
-      else __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,"size",0,
+                                     __gen_e_acsl_size_6);
+        __gen_e_acsl_if_6 = __gen_e_acsl_size_6;
+      }
       __gen_e_acsl_valid_read_11 = __e_acsl_valid_read((void *)((char *)(array) + 
                                                                 8 * 5),
                                                        (size_t)__gen_e_acsl_if_6,
                                                        (void *)(array),
                                                        (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_11,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array[5 .. 15])",
-                      "tests/memory/separated.c",22);
+      __gen_e_acsl_assert_data_15.blocking = 1;
+      __gen_e_acsl_assert_data_15.kind = "RTE";
+      __gen_e_acsl_assert_data_15.pred_txt = "separated_guard: \\valid_read(&array[5 .. 15])";
+      __gen_e_acsl_assert_data_15.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_15.fct = "main";
+      __gen_e_acsl_assert_data_15.line = 22;
+      __e_acsl_assert(__gen_e_acsl_valid_read_11,
+                      & __gen_e_acsl_assert_data_15);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_7 = 8 * ((10 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0,
+                                   __gen_e_acsl_size_7);
       if (__gen_e_acsl_size_7 <= 0) __gen_e_acsl_if_7 = 0;
-      else __gen_e_acsl_if_7 = __gen_e_acsl_size_7;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0,
+                                     __gen_e_acsl_size_7);
+        __gen_e_acsl_if_7 = __gen_e_acsl_size_7;
+      }
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_8 = 8 * ((15 - 5) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0,
+                                   __gen_e_acsl_size_8);
       if (__gen_e_acsl_size_8 <= 0) __gen_e_acsl_if_8 = 0;
-      else __gen_e_acsl_if_8 = __gen_e_acsl_size_8;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"size",0,
+                                     __gen_e_acsl_size_8);
+        __gen_e_acsl_if_8 = __gen_e_acsl_size_8;
+      }
       __gen_e_acsl_separated_4 = __e_acsl_separated((size_t)2,
                                                     (char *)(array) + 8 * 0,
                                                     __gen_e_acsl_if_7,
                                                     (char *)(array) + 8 * 5,
                                                     __gen_e_acsl_if_8);
-      __e_acsl_assert(! __gen_e_acsl_separated_4,1,"Assertion","main",
-                      "!\\separated(&array[0 .. 10], &array[5 .. 15])",
-                      "tests/memory/separated.c",22);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                   "\\separated(&array[0 .. 10], &array[5 .. 15])",
+                                   0,__gen_e_acsl_separated_4);
+      __gen_e_acsl_assert_data_13.blocking = 1;
+      __gen_e_acsl_assert_data_13.kind = "Assertion";
+      __gen_e_acsl_assert_data_13.pred_txt = "!\\separated(&array[0 .. 10], &array[5 .. 15])";
+      __gen_e_acsl_assert_data_13.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_13.fct = "main";
+      __gen_e_acsl_assert_data_13.line = 22;
+      __e_acsl_assert(! __gen_e_acsl_separated_4,
+                      & __gen_e_acsl_assert_data_13);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
     }
-    /*@ assert ¬\separated(&array[0 .. 10], &array[5 .. 15]); */ ;
+    /*@ assert !\separated(&array[0 .. 10], &array[5 .. 15]); */ ;
     {
       int __gen_e_acsl_size_9;
       int __gen_e_acsl_if_9;
@@ -230,69 +510,186 @@ int main(void)
       int __gen_e_acsl_size_12;
       int __gen_e_acsl_if_12;
       int __gen_e_acsl_separated_5;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_9 = 8 * ((19 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"size",0,
+                                   __gen_e_acsl_size_9);
       if (__gen_e_acsl_size_9 <= 0) __gen_e_acsl_if_9 = 0;
-      else __gen_e_acsl_if_9 = __gen_e_acsl_size_9;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,"size",0,
+                                     __gen_e_acsl_size_9);
+        __gen_e_acsl_if_9 = __gen_e_acsl_size_9;
+      }
       __gen_e_acsl_valid_read_12 = __e_acsl_valid_read((void *)((char *)(array) + 
                                                                 8 * 0),
                                                        (size_t)__gen_e_acsl_if_9,
                                                        (void *)(array),
                                                        (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_12,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array[0 .. 19])",
-                      "tests/memory/separated.c",23);
+      __gen_e_acsl_assert_data_17.blocking = 1;
+      __gen_e_acsl_assert_data_17.kind = "RTE";
+      __gen_e_acsl_assert_data_17.pred_txt = "separated_guard: \\valid_read(&array[0 .. 19])";
+      __gen_e_acsl_assert_data_17.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_17.fct = "main";
+      __gen_e_acsl_assert_data_17.line = 23;
+      __e_acsl_assert(__gen_e_acsl_valid_read_12,
+                      & __gen_e_acsl_assert_data_17);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_10 = 8 * ((15 - 5) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"size",0,
+                                   __gen_e_acsl_size_10);
       if (__gen_e_acsl_size_10 <= 0) __gen_e_acsl_if_10 = 0;
-      else __gen_e_acsl_if_10 = __gen_e_acsl_size_10;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_18,"size",0,
+                                     __gen_e_acsl_size_10);
+        __gen_e_acsl_if_10 = __gen_e_acsl_size_10;
+      }
       __gen_e_acsl_valid_read_13 = __e_acsl_valid_read((void *)((char *)(array) + 
                                                                 8 * 5),
                                                        (size_t)__gen_e_acsl_if_10,
                                                        (void *)(array),
                                                        (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_13,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array[5 .. 15])",
-                      "tests/memory/separated.c",23);
+      __gen_e_acsl_assert_data_18.blocking = 1;
+      __gen_e_acsl_assert_data_18.kind = "RTE";
+      __gen_e_acsl_assert_data_18.pred_txt = "separated_guard: \\valid_read(&array[5 .. 15])";
+      __gen_e_acsl_assert_data_18.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_18.fct = "main";
+      __gen_e_acsl_assert_data_18.line = 23;
+      __e_acsl_assert(__gen_e_acsl_valid_read_13,
+                      & __gen_e_acsl_assert_data_18);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_11 = 8 * ((19 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0,
+                                   __gen_e_acsl_size_11);
       if (__gen_e_acsl_size_11 <= 0) __gen_e_acsl_if_11 = 0;
-      else __gen_e_acsl_if_11 = __gen_e_acsl_size_11;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0,
+                                     __gen_e_acsl_size_11);
+        __gen_e_acsl_if_11 = __gen_e_acsl_size_11;
+      }
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_12 = 8 * ((15 - 5) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0,
+                                   __gen_e_acsl_size_12);
       if (__gen_e_acsl_size_12 <= 0) __gen_e_acsl_if_12 = 0;
-      else __gen_e_acsl_if_12 = __gen_e_acsl_size_12;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,"size",0,
+                                     __gen_e_acsl_size_12);
+        __gen_e_acsl_if_12 = __gen_e_acsl_size_12;
+      }
       __gen_e_acsl_separated_5 = __e_acsl_separated((size_t)2,
                                                     (char *)(array) + 8 * 0,
                                                     __gen_e_acsl_if_11,
                                                     (char *)(array) + 8 * 5,
                                                     __gen_e_acsl_if_12);
-      __e_acsl_assert(! __gen_e_acsl_separated_5,1,"Assertion","main",
-                      "!\\separated(&array[0 .. 19], &array[5 .. 15])",
-                      "tests/memory/separated.c",23);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_16,
+                                   "\\separated(&array[0 .. 19], &array[5 .. 15])",
+                                   0,__gen_e_acsl_separated_5);
+      __gen_e_acsl_assert_data_16.blocking = 1;
+      __gen_e_acsl_assert_data_16.kind = "Assertion";
+      __gen_e_acsl_assert_data_16.pred_txt = "!\\separated(&array[0 .. 19], &array[5 .. 15])";
+      __gen_e_acsl_assert_data_16.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_16.fct = "main";
+      __gen_e_acsl_assert_data_16.line = 23;
+      __e_acsl_assert(! __gen_e_acsl_separated_5,
+                      & __gen_e_acsl_assert_data_16);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
     }
-    /*@ assert ¬\separated(&array[0 .. 19], &array[5 .. 15]); */ ;
+    /*@ assert !\separated(&array[0 .. 19], &array[5 .. 15]); */ ;
     {
       int __gen_e_acsl_valid_read_14;
       int __gen_e_acsl_valid_read_15;
       int __gen_e_acsl_separated_6;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_20,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_20,
+                                     "sizeof(double)",0,sizeof(double));
       __gen_e_acsl_valid_read_14 = __e_acsl_valid_read((void *)(array),
                                                        sizeof(double),
                                                        (void *)(array),
                                                        (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_14,1,"RTE","main",
-                      "separated_guard: \\valid_read((double *)array)",
-                      "tests/memory/separated.c",24);
+      __gen_e_acsl_assert_data_20.blocking = 1;
+      __gen_e_acsl_assert_data_20.kind = "RTE";
+      __gen_e_acsl_assert_data_20.pred_txt = "separated_guard: \\valid_read((double *)array)";
+      __gen_e_acsl_assert_data_20.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_20.fct = "main";
+      __gen_e_acsl_assert_data_20.line = 24;
+      __e_acsl_assert(__gen_e_acsl_valid_read_14,
+                      & __gen_e_acsl_assert_data_20);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_21,"&array[1]",
+                                   (void *)(& array[1]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_21,
+                                     "sizeof(double)",0,sizeof(double));
       __gen_e_acsl_valid_read_15 = __e_acsl_valid_read((void *)(& array[1]),
                                                        sizeof(double),
                                                        (void *)(array),
                                                        (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_15,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array[1])",
-                      "tests/memory/separated.c",24);
+      __gen_e_acsl_assert_data_21.blocking = 1;
+      __gen_e_acsl_assert_data_21.kind = "RTE";
+      __gen_e_acsl_assert_data_21.pred_txt = "separated_guard: \\valid_read(&array[1])";
+      __gen_e_acsl_assert_data_21.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_21.fct = "main";
+      __gen_e_acsl_assert_data_21.line = 24;
+      __e_acsl_assert(__gen_e_acsl_valid_read_15,
+                      & __gen_e_acsl_assert_data_21);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_19,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_19,
+                                     "sizeof(double)",0,sizeof(double));
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_19,"&array[1]",
+                                   (void *)(& array[1]));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_19,
+                                     "sizeof(double)",0,sizeof(double));
       __gen_e_acsl_separated_6 = __e_acsl_separated((size_t)2,array,
                                                     sizeof(double),
                                                     & array[1],
                                                     sizeof(double));
-      __e_acsl_assert(__gen_e_acsl_separated_6,1,"Assertion","main",
-                      "\\separated((double *)array, &array[1])",
-                      "tests/memory/separated.c",24);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,
+                                   "\\separated((double *)array, &array[1])",
+                                   0,__gen_e_acsl_separated_6);
+      __gen_e_acsl_assert_data_19.blocking = 1;
+      __gen_e_acsl_assert_data_19.kind = "Assertion";
+      __gen_e_acsl_assert_data_19.pred_txt = "\\separated((double *)array, &array[1])";
+      __gen_e_acsl_assert_data_19.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_19.fct = "main";
+      __gen_e_acsl_assert_data_19.line = 24;
+      __e_acsl_assert(__gen_e_acsl_separated_6,& __gen_e_acsl_assert_data_19);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19);
     }
     /*@ assert \separated((double *)array, &array[1]); */ ;
     {
@@ -307,44 +704,119 @@ int main(void)
       int __gen_e_acsl_size_16;
       int __gen_e_acsl_if_16;
       int __gen_e_acsl_separated_7;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_23,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_13 = 8 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"size",0,
+                                   __gen_e_acsl_size_13);
       if (__gen_e_acsl_size_13 <= 0) __gen_e_acsl_if_13 = 0;
-      else __gen_e_acsl_if_13 = __gen_e_acsl_size_13;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"size",0,
+                                     __gen_e_acsl_size_13);
+        __gen_e_acsl_if_13 = __gen_e_acsl_size_13;
+      }
       __gen_e_acsl_valid_read_16 = __e_acsl_valid_read((void *)((char *)(array) + 
                                                                 8 * 0),
                                                        (size_t)__gen_e_acsl_if_13,
                                                        (void *)(array),
                                                        (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_16,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array[0 .. 1])",
-                      "tests/memory/separated.c",25);
+      __gen_e_acsl_assert_data_23.blocking = 1;
+      __gen_e_acsl_assert_data_23.kind = "RTE";
+      __gen_e_acsl_assert_data_23.pred_txt = "separated_guard: \\valid_read(&array[0 .. 1])";
+      __gen_e_acsl_assert_data_23.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_23.fct = "main";
+      __gen_e_acsl_assert_data_23.line = 25;
+      __e_acsl_assert(__gen_e_acsl_valid_read_16,
+                      & __gen_e_acsl_assert_data_23);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_24 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_24,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_14 = 8 * ((2 - 1) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,"size",0,
+                                   __gen_e_acsl_size_14);
       if (__gen_e_acsl_size_14 <= 0) __gen_e_acsl_if_14 = 0;
-      else __gen_e_acsl_if_14 = __gen_e_acsl_size_14;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_24,"size",0,
+                                     __gen_e_acsl_size_14);
+        __gen_e_acsl_if_14 = __gen_e_acsl_size_14;
+      }
       __gen_e_acsl_valid_read_17 = __e_acsl_valid_read((void *)((char *)(array) + 
                                                                 8 * 1),
                                                        (size_t)__gen_e_acsl_if_14,
                                                        (void *)(array),
                                                        (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_17,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array[1 .. 2])",
-                      "tests/memory/separated.c",25);
+      __gen_e_acsl_assert_data_24.blocking = 1;
+      __gen_e_acsl_assert_data_24.kind = "RTE";
+      __gen_e_acsl_assert_data_24.pred_txt = "separated_guard: \\valid_read(&array[1 .. 2])";
+      __gen_e_acsl_assert_data_24.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_24.fct = "main";
+      __gen_e_acsl_assert_data_24.line = 25;
+      __e_acsl_assert(__gen_e_acsl_valid_read_17,
+                      & __gen_e_acsl_assert_data_24);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_24);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_22,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_15 = 8 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,"size",0,
+                                   __gen_e_acsl_size_15);
       if (__gen_e_acsl_size_15 <= 0) __gen_e_acsl_if_15 = 0;
-      else __gen_e_acsl_if_15 = __gen_e_acsl_size_15;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,"size",0,
+                                     __gen_e_acsl_size_15);
+        __gen_e_acsl_if_15 = __gen_e_acsl_size_15;
+      }
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_22,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_16 = 8 * ((2 - 1) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,"size",0,
+                                   __gen_e_acsl_size_16);
       if (__gen_e_acsl_size_16 <= 0) __gen_e_acsl_if_16 = 0;
-      else __gen_e_acsl_if_16 = __gen_e_acsl_size_16;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,"size",0,
+                                     __gen_e_acsl_size_16);
+        __gen_e_acsl_if_16 = __gen_e_acsl_size_16;
+      }
       __gen_e_acsl_separated_7 = __e_acsl_separated((size_t)2,
                                                     (char *)(array) + 8 * 0,
                                                     __gen_e_acsl_if_15,
                                                     (char *)(array) + 8 * 1,
                                                     __gen_e_acsl_if_16);
-      __e_acsl_assert(! __gen_e_acsl_separated_7,1,"Assertion","main",
-                      "!\\separated(&array[0 .. 1], &array[1 .. 2])",
-                      "tests/memory/separated.c",25);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,
+                                   "\\separated(&array[0 .. 1], &array[1 .. 2])",
+                                   0,__gen_e_acsl_separated_7);
+      __gen_e_acsl_assert_data_22.blocking = 1;
+      __gen_e_acsl_assert_data_22.kind = "Assertion";
+      __gen_e_acsl_assert_data_22.pred_txt = "!\\separated(&array[0 .. 1], &array[1 .. 2])";
+      __gen_e_acsl_assert_data_22.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_22.fct = "main";
+      __gen_e_acsl_assert_data_22.line = 25;
+      __e_acsl_assert(! __gen_e_acsl_separated_7,
+                      & __gen_e_acsl_assert_data_22);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22);
     }
-    /*@ assert ¬\separated(&array[0 .. 1], &array[1 .. 2]); */ ;
+    /*@ assert !\separated(&array[0 .. 1], &array[1 .. 2]); */ ;
     {
       int __gen_e_acsl_size_17;
       int __gen_e_acsl_if_17;
@@ -357,42 +829,116 @@ int main(void)
       int __gen_e_acsl_size_20;
       int __gen_e_acsl_if_20;
       int __gen_e_acsl_separated_8;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_25 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_26 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_26,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_17 = 8 * ((5 - 15) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,"size",0,
+                                   __gen_e_acsl_size_17);
       if (__gen_e_acsl_size_17 <= 0) __gen_e_acsl_if_17 = 0;
-      else __gen_e_acsl_if_17 = __gen_e_acsl_size_17;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_26,"size",0,
+                                     __gen_e_acsl_size_17);
+        __gen_e_acsl_if_17 = __gen_e_acsl_size_17;
+      }
       __gen_e_acsl_valid_read_18 = __e_acsl_valid_read((void *)((char *)(array) + 
                                                                 8 * 15),
                                                        (size_t)__gen_e_acsl_if_17,
                                                        (void *)(array),
                                                        (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_18,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array[15 .. 5])",
-                      "tests/memory/separated.c",26);
+      __gen_e_acsl_assert_data_26.blocking = 1;
+      __gen_e_acsl_assert_data_26.kind = "RTE";
+      __gen_e_acsl_assert_data_26.pred_txt = "separated_guard: \\valid_read(&array[15 .. 5])";
+      __gen_e_acsl_assert_data_26.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_26.fct = "main";
+      __gen_e_acsl_assert_data_26.line = 26;
+      __e_acsl_assert(__gen_e_acsl_valid_read_18,
+                      & __gen_e_acsl_assert_data_26);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_26);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_27 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_27,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_18 = 8 * ((19 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27,"size",0,
+                                   __gen_e_acsl_size_18);
       if (__gen_e_acsl_size_18 <= 0) __gen_e_acsl_if_18 = 0;
-      else __gen_e_acsl_if_18 = __gen_e_acsl_size_18;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_27,"size",0,
+                                     __gen_e_acsl_size_18);
+        __gen_e_acsl_if_18 = __gen_e_acsl_size_18;
+      }
       __gen_e_acsl_valid_read_19 = __e_acsl_valid_read((void *)((char *)(array) + 
                                                                 8 * 0),
                                                        (size_t)__gen_e_acsl_if_18,
                                                        (void *)(array),
                                                        (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_19,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array[0 .. 19])",
-                      "tests/memory/separated.c",26);
+      __gen_e_acsl_assert_data_27.blocking = 1;
+      __gen_e_acsl_assert_data_27.kind = "RTE";
+      __gen_e_acsl_assert_data_27.pred_txt = "separated_guard: \\valid_read(&array[0 .. 19])";
+      __gen_e_acsl_assert_data_27.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_27.fct = "main";
+      __gen_e_acsl_assert_data_27.line = 26;
+      __e_acsl_assert(__gen_e_acsl_valid_read_19,
+                      & __gen_e_acsl_assert_data_27);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_27);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_25,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_19 = 8 * ((5 - 15) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"size",0,
+                                   __gen_e_acsl_size_19);
       if (__gen_e_acsl_size_19 <= 0) __gen_e_acsl_if_19 = 0;
-      else __gen_e_acsl_if_19 = __gen_e_acsl_size_19;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"size",0,
+                                     __gen_e_acsl_size_19);
+        __gen_e_acsl_if_19 = __gen_e_acsl_size_19;
+      }
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_25,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_20 = 8 * ((19 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"size",0,
+                                   __gen_e_acsl_size_20);
       if (__gen_e_acsl_size_20 <= 0) __gen_e_acsl_if_20 = 0;
-      else __gen_e_acsl_if_20 = __gen_e_acsl_size_20;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,"size",0,
+                                     __gen_e_acsl_size_20);
+        __gen_e_acsl_if_20 = __gen_e_acsl_size_20;
+      }
       __gen_e_acsl_separated_8 = __e_acsl_separated((size_t)2,
                                                     (char *)(array) + 8 * 15,
                                                     __gen_e_acsl_if_19,
                                                     (char *)(array) + 8 * 0,
                                                     __gen_e_acsl_if_20);
-      __e_acsl_assert(__gen_e_acsl_separated_8,1,"Assertion","main",
-                      "\\separated(&array[15 .. 5], &array[0 .. 19])",
-                      "tests/memory/separated.c",26);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_25,
+                                   "\\separated(&array[15 .. 5], &array[0 .. 19])",
+                                   0,__gen_e_acsl_separated_8);
+      __gen_e_acsl_assert_data_25.blocking = 1;
+      __gen_e_acsl_assert_data_25.kind = "Assertion";
+      __gen_e_acsl_assert_data_25.pred_txt = "\\separated(&array[15 .. 5], &array[0 .. 19])";
+      __gen_e_acsl_assert_data_25.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_25.fct = "main";
+      __gen_e_acsl_assert_data_25.line = 26;
+      __e_acsl_assert(__gen_e_acsl_separated_8,& __gen_e_acsl_assert_data_25);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_25);
     }
     /*@ assert \separated(&array[15 .. 5], &array[0 .. 19]); */ ;
     {
@@ -407,42 +953,116 @@ int main(void)
       int __gen_e_acsl_size_24;
       int __gen_e_acsl_if_24;
       int __gen_e_acsl_separated_9;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_28 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_29 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_29,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_29,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_29,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_21 = 8 * ((-3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_29,"size",0,
+                                   __gen_e_acsl_size_21);
       if (__gen_e_acsl_size_21 <= 0) __gen_e_acsl_if_21 = 0;
-      else __gen_e_acsl_if_21 = __gen_e_acsl_size_21;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_29,"size",0,
+                                     __gen_e_acsl_size_21);
+        __gen_e_acsl_if_21 = __gen_e_acsl_size_21;
+      }
       __gen_e_acsl_valid_read_20 = __e_acsl_valid_read((void *)((char *)(array) + 
                                                                 8 * 0),
                                                        (size_t)__gen_e_acsl_if_21,
                                                        (void *)(array),
                                                        (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_20,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array[0 .. -3])",
-                      "tests/memory/separated.c",27);
+      __gen_e_acsl_assert_data_29.blocking = 1;
+      __gen_e_acsl_assert_data_29.kind = "RTE";
+      __gen_e_acsl_assert_data_29.pred_txt = "separated_guard: \\valid_read(&array[0 .. -3])";
+      __gen_e_acsl_assert_data_29.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_29.fct = "main";
+      __gen_e_acsl_assert_data_29.line = 27;
+      __e_acsl_assert(__gen_e_acsl_valid_read_20,
+                      & __gen_e_acsl_assert_data_29);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_29);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_30 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_30,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_30,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_30,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_22 = 8 * ((19 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_30,"size",0,
+                                   __gen_e_acsl_size_22);
       if (__gen_e_acsl_size_22 <= 0) __gen_e_acsl_if_22 = 0;
-      else __gen_e_acsl_if_22 = __gen_e_acsl_size_22;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_30,"size",0,
+                                     __gen_e_acsl_size_22);
+        __gen_e_acsl_if_22 = __gen_e_acsl_size_22;
+      }
       __gen_e_acsl_valid_read_21 = __e_acsl_valid_read((void *)((char *)(array) + 
                                                                 8 * 0),
                                                        (size_t)__gen_e_acsl_if_22,
                                                        (void *)(array),
                                                        (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read_21,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array[0 .. 19])",
-                      "tests/memory/separated.c",27);
+      __gen_e_acsl_assert_data_30.blocking = 1;
+      __gen_e_acsl_assert_data_30.kind = "RTE";
+      __gen_e_acsl_assert_data_30.pred_txt = "separated_guard: \\valid_read(&array[0 .. 19])";
+      __gen_e_acsl_assert_data_30.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_30.fct = "main";
+      __gen_e_acsl_assert_data_30.line = 27;
+      __e_acsl_assert(__gen_e_acsl_valid_read_21,
+                      & __gen_e_acsl_assert_data_30);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_30);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_28,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_23 = 8 * ((-3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28,"size",0,
+                                   __gen_e_acsl_size_23);
       if (__gen_e_acsl_size_23 <= 0) __gen_e_acsl_if_23 = 0;
-      else __gen_e_acsl_if_23 = __gen_e_acsl_size_23;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28,"size",0,
+                                     __gen_e_acsl_size_23);
+        __gen_e_acsl_if_23 = __gen_e_acsl_size_23;
+      }
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_28,
+                                   "(double *)array",(void *)(array));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_24 = 8 * ((19 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28,"size",0,
+                                   __gen_e_acsl_size_24);
       if (__gen_e_acsl_size_24 <= 0) __gen_e_acsl_if_24 = 0;
-      else __gen_e_acsl_if_24 = __gen_e_acsl_size_24;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28,"size",0,
+                                     __gen_e_acsl_size_24);
+        __gen_e_acsl_if_24 = __gen_e_acsl_size_24;
+      }
       __gen_e_acsl_separated_9 = __e_acsl_separated((size_t)2,
                                                     (char *)(array) + 8 * 0,
                                                     __gen_e_acsl_if_23,
                                                     (char *)(array) + 8 * 0,
                                                     __gen_e_acsl_if_24);
-      __e_acsl_assert(__gen_e_acsl_separated_9,1,"Assertion","main",
-                      "\\separated(&array[0 .. -3], &array[0 .. 19])",
-                      "tests/memory/separated.c",27);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_28,
+                                   "\\separated(&array[0 .. -3], &array[0 .. 19])",
+                                   0,__gen_e_acsl_separated_9);
+      __gen_e_acsl_assert_data_28.blocking = 1;
+      __gen_e_acsl_assert_data_28.kind = "Assertion";
+      __gen_e_acsl_assert_data_28.pred_txt = "\\separated(&array[0 .. -3], &array[0 .. 19])";
+      __gen_e_acsl_assert_data_28.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_28.fct = "main";
+      __gen_e_acsl_assert_data_28.line = 27;
+      __e_acsl_assert(__gen_e_acsl_separated_9,& __gen_e_acsl_assert_data_28);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_28);
     }
     /*@ assert \separated(&array[0 .. -3], &array[0 .. 19]); */ ;
     __e_acsl_delete_block((void *)(array));
@@ -463,10 +1083,22 @@ int main(void)
       int __gen_e_acsl_initialized_3;
       int __gen_e_acsl_and_3;
       int __gen_e_acsl_separated_10;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_31 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_32 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_32,"&a_0",
+                                   (void *)(& a_0));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_32,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& a_0),
                                                         sizeof(int *));
       if (__gen_e_acsl_initialized_2) {
         int __gen_e_acsl_valid_read_22;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_32,"a_0",
+                                     (void *)a_0);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_32,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_read_22 = __e_acsl_valid_read((void *)a_0,
                                                          sizeof(int),
                                                          (void *)a_0,
@@ -474,13 +1106,28 @@ int main(void)
         __gen_e_acsl_and_2 = __gen_e_acsl_valid_read_22;
       }
       else __gen_e_acsl_and_2 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_2,1,"RTE","main",
-                      "separated_guard: \\valid_read(a_0)",
-                      "tests/memory/separated.c",36);
+      __gen_e_acsl_assert_data_32.blocking = 1;
+      __gen_e_acsl_assert_data_32.kind = "RTE";
+      __gen_e_acsl_assert_data_32.pred_txt = "separated_guard: \\valid_read(a_0)";
+      __gen_e_acsl_assert_data_32.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_32.fct = "main";
+      __gen_e_acsl_assert_data_32.line = 36;
+      __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_32);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_32);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_33 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_33,"&b_0",
+                                   (void *)(& b_0));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_33,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& b_0),
                                                         sizeof(int *));
       if (__gen_e_acsl_initialized_3) {
         int __gen_e_acsl_valid_read_23;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_33,"b_0",
+                                     (void *)b_0);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_33,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_read_23 = __e_acsl_valid_read((void *)b_0,
                                                          sizeof(int),
                                                          (void *)b_0,
@@ -488,14 +1135,37 @@ int main(void)
         __gen_e_acsl_and_3 = __gen_e_acsl_valid_read_23;
       }
       else __gen_e_acsl_and_3 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_3,1,"RTE","main",
-                      "separated_guard: \\valid_read(b_0)",
-                      "tests/memory/separated.c",36);
+      __gen_e_acsl_assert_data_33.blocking = 1;
+      __gen_e_acsl_assert_data_33.kind = "RTE";
+      __gen_e_acsl_assert_data_33.pred_txt = "separated_guard: \\valid_read(b_0)";
+      __gen_e_acsl_assert_data_33.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_33.fct = "main";
+      __gen_e_acsl_assert_data_33.line = 36;
+      __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_33);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_33);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_31,"a_0",
+                                   (void *)a_0);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_31,
+                                     "sizeof(int)",0,sizeof(int));
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_31,"b_0",
+                                   (void *)b_0);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_31,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_separated_10 = __e_acsl_separated((size_t)2,a_0,
                                                      sizeof(int),b_0,
                                                      sizeof(int));
-      __e_acsl_assert(__gen_e_acsl_separated_10,1,"Assertion","main",
-                      "\\separated(a_0, b_0)","tests/memory/separated.c",36);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_31,
+                                   "\\separated(a_0, b_0)",0,
+                                   __gen_e_acsl_separated_10);
+      __gen_e_acsl_assert_data_31.blocking = 1;
+      __gen_e_acsl_assert_data_31.kind = "Assertion";
+      __gen_e_acsl_assert_data_31.pred_txt = "\\separated(a_0, b_0)";
+      __gen_e_acsl_assert_data_31.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_31.fct = "main";
+      __gen_e_acsl_assert_data_31.line = 36;
+      __e_acsl_assert(__gen_e_acsl_separated_10,
+                      & __gen_e_acsl_assert_data_31);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_31);
     }
     /*@ assert \separated(a_0, b_0); */ ;
     {
@@ -506,10 +1176,22 @@ int main(void)
       int __gen_e_acsl_initialized_6;
       int __gen_e_acsl_and_6;
       int __gen_e_acsl_separated_11;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_34 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_35 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_35,"&a_0",
+                                   (void *)(& a_0));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_35,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& a_0),
                                                         sizeof(int *));
       if (__gen_e_acsl_initialized_4) {
         int __gen_e_acsl_valid_read_24;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_35,"a_0",
+                                     (void *)a_0);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_35,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_read_24 = __e_acsl_valid_read((void *)a_0,
                                                          sizeof(int),
                                                          (void *)a_0,
@@ -517,13 +1199,28 @@ int main(void)
         __gen_e_acsl_and_4 = __gen_e_acsl_valid_read_24;
       }
       else __gen_e_acsl_and_4 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_4,1,"RTE","main",
-                      "separated_guard: \\valid_read(a_0)",
-                      "tests/memory/separated.c",37);
+      __gen_e_acsl_assert_data_35.blocking = 1;
+      __gen_e_acsl_assert_data_35.kind = "RTE";
+      __gen_e_acsl_assert_data_35.pred_txt = "separated_guard: \\valid_read(a_0)";
+      __gen_e_acsl_assert_data_35.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_35.fct = "main";
+      __gen_e_acsl_assert_data_35.line = 37;
+      __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_35);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_35);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_36 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_36,"&b_0",
+                                   (void *)(& b_0));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_36,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& b_0),
                                                         sizeof(int *));
       if (__gen_e_acsl_initialized_5) {
         int __gen_e_acsl_valid_read_25;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_36,"b_0",
+                                     (void *)b_0);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_36,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_read_25 = __e_acsl_valid_read((void *)b_0,
                                                          sizeof(int),
                                                          (void *)b_0,
@@ -531,13 +1228,28 @@ int main(void)
         __gen_e_acsl_and_5 = __gen_e_acsl_valid_read_25;
       }
       else __gen_e_acsl_and_5 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_5,1,"RTE","main",
-                      "separated_guard: \\valid_read(b_0)",
-                      "tests/memory/separated.c",37);
+      __gen_e_acsl_assert_data_36.blocking = 1;
+      __gen_e_acsl_assert_data_36.kind = "RTE";
+      __gen_e_acsl_assert_data_36.pred_txt = "separated_guard: \\valid_read(b_0)";
+      __gen_e_acsl_assert_data_36.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_36.fct = "main";
+      __gen_e_acsl_assert_data_36.line = 37;
+      __e_acsl_assert(__gen_e_acsl_and_5,& __gen_e_acsl_assert_data_36);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_36);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_37 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_37,"&c_0",
+                                   (void *)(& c_0));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_37,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& c_0),
                                                         sizeof(int *));
       if (__gen_e_acsl_initialized_6) {
         int __gen_e_acsl_valid_read_26;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_37,"c_0",
+                                     (void *)c_0);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_37,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_read_26 = __e_acsl_valid_read((void *)c_0,
                                                          sizeof(int),
                                                          (void *)c_0,
@@ -545,18 +1257,44 @@ int main(void)
         __gen_e_acsl_and_6 = __gen_e_acsl_valid_read_26;
       }
       else __gen_e_acsl_and_6 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_6,1,"RTE","main",
-                      "separated_guard: \\valid_read(c_0)",
-                      "tests/memory/separated.c",37);
+      __gen_e_acsl_assert_data_37.blocking = 1;
+      __gen_e_acsl_assert_data_37.kind = "RTE";
+      __gen_e_acsl_assert_data_37.pred_txt = "separated_guard: \\valid_read(c_0)";
+      __gen_e_acsl_assert_data_37.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_37.fct = "main";
+      __gen_e_acsl_assert_data_37.line = 37;
+      __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_37);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_37);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_34,"a_0",
+                                   (void *)a_0);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_34,
+                                     "sizeof(int)",0,sizeof(int));
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_34,"b_0",
+                                   (void *)b_0);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_34,
+                                     "sizeof(int)",0,sizeof(int));
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_34,"c_0",
+                                   (void *)c_0);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_34,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_separated_11 = __e_acsl_separated((size_t)3,a_0,
                                                      sizeof(int),b_0,
                                                      sizeof(int),c_0,
                                                      sizeof(int));
-      __e_acsl_assert(! __gen_e_acsl_separated_11,1,"Assertion","main",
-                      "!\\separated(a_0, b_0, c_0)",
-                      "tests/memory/separated.c",37);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_34,
+                                   "\\separated(a_0, b_0, c_0)",0,
+                                   __gen_e_acsl_separated_11);
+      __gen_e_acsl_assert_data_34.blocking = 1;
+      __gen_e_acsl_assert_data_34.kind = "Assertion";
+      __gen_e_acsl_assert_data_34.pred_txt = "!\\separated(a_0, b_0, c_0)";
+      __gen_e_acsl_assert_data_34.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_34.fct = "main";
+      __gen_e_acsl_assert_data_34.line = 37;
+      __e_acsl_assert(! __gen_e_acsl_separated_11,
+                      & __gen_e_acsl_assert_data_34);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_34);
     }
-    /*@ assert ¬\separated(a_0, b_0, c_0); */ ;
+    /*@ assert !\separated(a_0, b_0, c_0); */ ;
     free((void *)a_0);
     free((void *)b_0);
     __e_acsl_delete_block((void *)(& c_0));
@@ -579,42 +1317,117 @@ int main(void)
       int __gen_e_acsl_size_28;
       int __gen_e_acsl_if_28;
       int __gen_e_acsl_separated_12;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_38 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_39 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_39,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_25 = 8 * ((9 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39,"size",0,
+                                   __gen_e_acsl_size_25);
       if (__gen_e_acsl_size_25 <= 0) __gen_e_acsl_if_25 = 0;
-      else __gen_e_acsl_if_25 = __gen_e_acsl_size_25;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_39,"size",0,
+                                     __gen_e_acsl_size_25);
+        __gen_e_acsl_if_25 = __gen_e_acsl_size_25;
+      }
       __gen_e_acsl_valid_read_27 = __e_acsl_valid_read((void *)((char *)array_0 + 
                                                                 8 * 0),
                                                        (size_t)__gen_e_acsl_if_25,
                                                        (void *)array_0,
                                                        (void *)(& array_0));
-      __e_acsl_assert(__gen_e_acsl_valid_read_27,1,"RTE","main",
-                      "separated_guard: \\valid_read(array_0 + (0 .. 9))",
-                      "tests/memory/separated.c",46);
+      __gen_e_acsl_assert_data_39.blocking = 1;
+      __gen_e_acsl_assert_data_39.kind = "RTE";
+      __gen_e_acsl_assert_data_39.pred_txt = "separated_guard: \\valid_read(array_0 + (0 .. 9))";
+      __gen_e_acsl_assert_data_39.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_39.fct = "main";
+      __gen_e_acsl_assert_data_39.line = 46;
+      __e_acsl_assert(__gen_e_acsl_valid_read_27,
+                      & __gen_e_acsl_assert_data_39);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_39);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_40 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_40,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_26 = 8 * ((19 - 10) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40,"size",0,
+                                   __gen_e_acsl_size_26);
       if (__gen_e_acsl_size_26 <= 0) __gen_e_acsl_if_26 = 0;
-      else __gen_e_acsl_if_26 = __gen_e_acsl_size_26;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_40,"size",0,
+                                     __gen_e_acsl_size_26);
+        __gen_e_acsl_if_26 = __gen_e_acsl_size_26;
+      }
       __gen_e_acsl_valid_read_28 = __e_acsl_valid_read((void *)((char *)array_0 + 
                                                                 8 * 10),
                                                        (size_t)__gen_e_acsl_if_26,
                                                        (void *)array_0,
                                                        (void *)(& array_0));
-      __e_acsl_assert(__gen_e_acsl_valid_read_28,1,"RTE","main",
-                      "separated_guard: \\valid_read(array_0 + (10 .. 19))",
-                      "tests/memory/separated.c",46);
+      __gen_e_acsl_assert_data_40.blocking = 1;
+      __gen_e_acsl_assert_data_40.kind = "RTE";
+      __gen_e_acsl_assert_data_40.pred_txt = "separated_guard: \\valid_read(array_0 + (10 .. 19))";
+      __gen_e_acsl_assert_data_40.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_40.fct = "main";
+      __gen_e_acsl_assert_data_40.line = 46;
+      __e_acsl_assert(__gen_e_acsl_valid_read_28,
+                      & __gen_e_acsl_assert_data_40);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_40);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_38,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_27 = 8 * ((9 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38,"size",0,
+                                   __gen_e_acsl_size_27);
       if (__gen_e_acsl_size_27 <= 0) __gen_e_acsl_if_27 = 0;
-      else __gen_e_acsl_if_27 = __gen_e_acsl_size_27;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38,"size",0,
+                                     __gen_e_acsl_size_27);
+        __gen_e_acsl_if_27 = __gen_e_acsl_size_27;
+      }
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_38,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_28 = 8 * ((19 - 10) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38,"size",0,
+                                   __gen_e_acsl_size_28);
       if (__gen_e_acsl_size_28 <= 0) __gen_e_acsl_if_28 = 0;
-      else __gen_e_acsl_if_28 = __gen_e_acsl_size_28;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38,"size",0,
+                                     __gen_e_acsl_size_28);
+        __gen_e_acsl_if_28 = __gen_e_acsl_size_28;
+      }
       __gen_e_acsl_separated_12 = __e_acsl_separated((size_t)2,
                                                      (char *)array_0 + 8 * 0,
                                                      __gen_e_acsl_if_27,
                                                      (char *)array_0 + 8 * 10,
                                                      __gen_e_acsl_if_28);
-      __e_acsl_assert(__gen_e_acsl_separated_12,1,"Assertion","main",
-                      "\\separated(array_0 + (0 .. 9), array_0 + (10 .. 19))",
-                      "tests/memory/separated.c",46);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_38,
+                                   "\\separated(array_0 + (0 .. 9), array_0 + (10 .. 19))",
+                                   0,__gen_e_acsl_separated_12);
+      __gen_e_acsl_assert_data_38.blocking = 1;
+      __gen_e_acsl_assert_data_38.kind = "Assertion";
+      __gen_e_acsl_assert_data_38.pred_txt = "\\separated(array_0 + (0 .. 9), array_0 + (10 .. 19))";
+      __gen_e_acsl_assert_data_38.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_38.fct = "main";
+      __gen_e_acsl_assert_data_38.line = 46;
+      __e_acsl_assert(__gen_e_acsl_separated_12,
+                      & __gen_e_acsl_assert_data_38);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_38);
     }
     /*@ assert \separated(array_0 + (0 .. 9), array_0 + (10 .. 19)); */ ;
     {
@@ -629,44 +1442,119 @@ int main(void)
       int __gen_e_acsl_size_32;
       int __gen_e_acsl_if_32;
       int __gen_e_acsl_separated_13;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_41 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_42 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_42,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_29 = 8 * ((10 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42,"size",0,
+                                   __gen_e_acsl_size_29);
       if (__gen_e_acsl_size_29 <= 0) __gen_e_acsl_if_29 = 0;
-      else __gen_e_acsl_if_29 = __gen_e_acsl_size_29;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_42,"size",0,
+                                     __gen_e_acsl_size_29);
+        __gen_e_acsl_if_29 = __gen_e_acsl_size_29;
+      }
       __gen_e_acsl_valid_read_29 = __e_acsl_valid_read((void *)((char *)array_0 + 
                                                                 8 * 0),
                                                        (size_t)__gen_e_acsl_if_29,
                                                        (void *)array_0,
                                                        (void *)(& array_0));
-      __e_acsl_assert(__gen_e_acsl_valid_read_29,1,"RTE","main",
-                      "separated_guard: \\valid_read(array_0 + (0 .. 10))",
-                      "tests/memory/separated.c",47);
+      __gen_e_acsl_assert_data_42.blocking = 1;
+      __gen_e_acsl_assert_data_42.kind = "RTE";
+      __gen_e_acsl_assert_data_42.pred_txt = "separated_guard: \\valid_read(array_0 + (0 .. 10))";
+      __gen_e_acsl_assert_data_42.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_42.fct = "main";
+      __gen_e_acsl_assert_data_42.line = 47;
+      __e_acsl_assert(__gen_e_acsl_valid_read_29,
+                      & __gen_e_acsl_assert_data_42);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_42);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_43 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_43,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_43,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_43,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_30 = 8 * ((15 - 5) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_43,"size",0,
+                                   __gen_e_acsl_size_30);
       if (__gen_e_acsl_size_30 <= 0) __gen_e_acsl_if_30 = 0;
-      else __gen_e_acsl_if_30 = __gen_e_acsl_size_30;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_43,"size",0,
+                                     __gen_e_acsl_size_30);
+        __gen_e_acsl_if_30 = __gen_e_acsl_size_30;
+      }
       __gen_e_acsl_valid_read_30 = __e_acsl_valid_read((void *)((char *)array_0 + 
                                                                 8 * 5),
                                                        (size_t)__gen_e_acsl_if_30,
                                                        (void *)array_0,
                                                        (void *)(& array_0));
-      __e_acsl_assert(__gen_e_acsl_valid_read_30,1,"RTE","main",
-                      "separated_guard: \\valid_read(array_0 + (5 .. 15))",
-                      "tests/memory/separated.c",47);
+      __gen_e_acsl_assert_data_43.blocking = 1;
+      __gen_e_acsl_assert_data_43.kind = "RTE";
+      __gen_e_acsl_assert_data_43.pred_txt = "separated_guard: \\valid_read(array_0 + (5 .. 15))";
+      __gen_e_acsl_assert_data_43.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_43.fct = "main";
+      __gen_e_acsl_assert_data_43.line = 47;
+      __e_acsl_assert(__gen_e_acsl_valid_read_30,
+                      & __gen_e_acsl_assert_data_43);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_43);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_41,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_31 = 8 * ((10 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41,"size",0,
+                                   __gen_e_acsl_size_31);
       if (__gen_e_acsl_size_31 <= 0) __gen_e_acsl_if_31 = 0;
-      else __gen_e_acsl_if_31 = __gen_e_acsl_size_31;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41,"size",0,
+                                     __gen_e_acsl_size_31);
+        __gen_e_acsl_if_31 = __gen_e_acsl_size_31;
+      }
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_41,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_32 = 8 * ((15 - 5) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41,"size",0,
+                                   __gen_e_acsl_size_32);
       if (__gen_e_acsl_size_32 <= 0) __gen_e_acsl_if_32 = 0;
-      else __gen_e_acsl_if_32 = __gen_e_acsl_size_32;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41,"size",0,
+                                     __gen_e_acsl_size_32);
+        __gen_e_acsl_if_32 = __gen_e_acsl_size_32;
+      }
       __gen_e_acsl_separated_13 = __e_acsl_separated((size_t)2,
                                                      (char *)array_0 + 8 * 0,
                                                      __gen_e_acsl_if_31,
                                                      (char *)array_0 + 8 * 5,
                                                      __gen_e_acsl_if_32);
-      __e_acsl_assert(! __gen_e_acsl_separated_13,1,"Assertion","main",
-                      "!\\separated(array_0 + (0 .. 10), array_0 + (5 .. 15))",
-                      "tests/memory/separated.c",47);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_41,
+                                   "\\separated(array_0 + (0 .. 10), array_0 + (5 .. 15))",
+                                   0,__gen_e_acsl_separated_13);
+      __gen_e_acsl_assert_data_41.blocking = 1;
+      __gen_e_acsl_assert_data_41.kind = "Assertion";
+      __gen_e_acsl_assert_data_41.pred_txt = "!\\separated(array_0 + (0 .. 10), array_0 + (5 .. 15))";
+      __gen_e_acsl_assert_data_41.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_41.fct = "main";
+      __gen_e_acsl_assert_data_41.line = 47;
+      __e_acsl_assert(! __gen_e_acsl_separated_13,
+                      & __gen_e_acsl_assert_data_41);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_41);
     }
-    /*@ assert ¬\separated(array_0 + (0 .. 10), array_0 + (5 .. 15)); */ ;
+    /*@ assert !\separated(array_0 + (0 .. 10), array_0 + (5 .. 15)); */ ;
     {
       int __gen_e_acsl_size_33;
       int __gen_e_acsl_if_33;
@@ -679,69 +1567,187 @@ int main(void)
       int __gen_e_acsl_size_36;
       int __gen_e_acsl_if_36;
       int __gen_e_acsl_separated_14;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_44 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_45 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_45,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_45,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_45,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_33 = 8 * ((19 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_45,"size",0,
+                                   __gen_e_acsl_size_33);
       if (__gen_e_acsl_size_33 <= 0) __gen_e_acsl_if_33 = 0;
-      else __gen_e_acsl_if_33 = __gen_e_acsl_size_33;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_45,"size",0,
+                                     __gen_e_acsl_size_33);
+        __gen_e_acsl_if_33 = __gen_e_acsl_size_33;
+      }
       __gen_e_acsl_valid_read_31 = __e_acsl_valid_read((void *)((char *)array_0 + 
                                                                 8 * 0),
                                                        (size_t)__gen_e_acsl_if_33,
                                                        (void *)array_0,
                                                        (void *)(& array_0));
-      __e_acsl_assert(__gen_e_acsl_valid_read_31,1,"RTE","main",
-                      "separated_guard: \\valid_read(array_0 + (0 .. 19))",
-                      "tests/memory/separated.c",48);
+      __gen_e_acsl_assert_data_45.blocking = 1;
+      __gen_e_acsl_assert_data_45.kind = "RTE";
+      __gen_e_acsl_assert_data_45.pred_txt = "separated_guard: \\valid_read(array_0 + (0 .. 19))";
+      __gen_e_acsl_assert_data_45.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_45.fct = "main";
+      __gen_e_acsl_assert_data_45.line = 48;
+      __e_acsl_assert(__gen_e_acsl_valid_read_31,
+                      & __gen_e_acsl_assert_data_45);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_45);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_46 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_46,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_34 = 8 * ((15 - 5) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46,"size",0,
+                                   __gen_e_acsl_size_34);
       if (__gen_e_acsl_size_34 <= 0) __gen_e_acsl_if_34 = 0;
-      else __gen_e_acsl_if_34 = __gen_e_acsl_size_34;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_46,"size",0,
+                                     __gen_e_acsl_size_34);
+        __gen_e_acsl_if_34 = __gen_e_acsl_size_34;
+      }
       __gen_e_acsl_valid_read_32 = __e_acsl_valid_read((void *)((char *)array_0 + 
                                                                 8 * 5),
                                                        (size_t)__gen_e_acsl_if_34,
                                                        (void *)array_0,
                                                        (void *)(& array_0));
-      __e_acsl_assert(__gen_e_acsl_valid_read_32,1,"RTE","main",
-                      "separated_guard: \\valid_read(array_0 + (5 .. 15))",
-                      "tests/memory/separated.c",48);
+      __gen_e_acsl_assert_data_46.blocking = 1;
+      __gen_e_acsl_assert_data_46.kind = "RTE";
+      __gen_e_acsl_assert_data_46.pred_txt = "separated_guard: \\valid_read(array_0 + (5 .. 15))";
+      __gen_e_acsl_assert_data_46.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_46.fct = "main";
+      __gen_e_acsl_assert_data_46.line = 48;
+      __e_acsl_assert(__gen_e_acsl_valid_read_32,
+                      & __gen_e_acsl_assert_data_46);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_46);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_44,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_35 = 8 * ((19 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44,"size",0,
+                                   __gen_e_acsl_size_35);
       if (__gen_e_acsl_size_35 <= 0) __gen_e_acsl_if_35 = 0;
-      else __gen_e_acsl_if_35 = __gen_e_acsl_size_35;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44,"size",0,
+                                     __gen_e_acsl_size_35);
+        __gen_e_acsl_if_35 = __gen_e_acsl_size_35;
+      }
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_44,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_36 = 8 * ((15 - 5) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44,"size",0,
+                                   __gen_e_acsl_size_36);
       if (__gen_e_acsl_size_36 <= 0) __gen_e_acsl_if_36 = 0;
-      else __gen_e_acsl_if_36 = __gen_e_acsl_size_36;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44,"size",0,
+                                     __gen_e_acsl_size_36);
+        __gen_e_acsl_if_36 = __gen_e_acsl_size_36;
+      }
       __gen_e_acsl_separated_14 = __e_acsl_separated((size_t)2,
                                                      (char *)array_0 + 8 * 0,
                                                      __gen_e_acsl_if_35,
                                                      (char *)array_0 + 8 * 5,
                                                      __gen_e_acsl_if_36);
-      __e_acsl_assert(! __gen_e_acsl_separated_14,1,"Assertion","main",
-                      "!\\separated(array_0 + (0 .. 19), array_0 + (5 .. 15))",
-                      "tests/memory/separated.c",48);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_44,
+                                   "\\separated(array_0 + (0 .. 19), array_0 + (5 .. 15))",
+                                   0,__gen_e_acsl_separated_14);
+      __gen_e_acsl_assert_data_44.blocking = 1;
+      __gen_e_acsl_assert_data_44.kind = "Assertion";
+      __gen_e_acsl_assert_data_44.pred_txt = "!\\separated(array_0 + (0 .. 19), array_0 + (5 .. 15))";
+      __gen_e_acsl_assert_data_44.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_44.fct = "main";
+      __gen_e_acsl_assert_data_44.line = 48;
+      __e_acsl_assert(! __gen_e_acsl_separated_14,
+                      & __gen_e_acsl_assert_data_44);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_44);
     }
-    /*@ assert ¬\separated(array_0 + (0 .. 19), array_0 + (5 .. 15)); */ ;
+    /*@ assert !\separated(array_0 + (0 .. 19), array_0 + (5 .. 15)); */ ;
     {
       int __gen_e_acsl_valid_read_33;
       int __gen_e_acsl_valid_read_34;
       int __gen_e_acsl_separated_15;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_47 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_48 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_48,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_48,
+                                     "sizeof(double)",0,sizeof(double));
       __gen_e_acsl_valid_read_33 = __e_acsl_valid_read((void *)(array_0 + 0),
                                                        sizeof(double),
                                                        (void *)array_0,
                                                        (void *)(& array_0));
-      __e_acsl_assert(__gen_e_acsl_valid_read_33,1,"RTE","main",
-                      "separated_guard: \\valid_read(array_0 + 0)",
-                      "tests/memory/separated.c",49);
+      __gen_e_acsl_assert_data_48.blocking = 1;
+      __gen_e_acsl_assert_data_48.kind = "RTE";
+      __gen_e_acsl_assert_data_48.pred_txt = "separated_guard: \\valid_read(array_0 + 0)";
+      __gen_e_acsl_assert_data_48.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_48.fct = "main";
+      __gen_e_acsl_assert_data_48.line = 49;
+      __e_acsl_assert(__gen_e_acsl_valid_read_33,
+                      & __gen_e_acsl_assert_data_48);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_48);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_49 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_49,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_49,
+                                     "sizeof(double)",0,sizeof(double));
       __gen_e_acsl_valid_read_34 = __e_acsl_valid_read((void *)(array_0 + 1),
                                                        sizeof(double),
                                                        (void *)array_0,
                                                        (void *)(& array_0));
-      __e_acsl_assert(__gen_e_acsl_valid_read_34,1,"RTE","main",
-                      "separated_guard: \\valid_read(array_0 + 1)",
-                      "tests/memory/separated.c",49);
+      __gen_e_acsl_assert_data_49.blocking = 1;
+      __gen_e_acsl_assert_data_49.kind = "RTE";
+      __gen_e_acsl_assert_data_49.pred_txt = "separated_guard: \\valid_read(array_0 + 1)";
+      __gen_e_acsl_assert_data_49.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_49.fct = "main";
+      __gen_e_acsl_assert_data_49.line = 49;
+      __e_acsl_assert(__gen_e_acsl_valid_read_34,
+                      & __gen_e_acsl_assert_data_49);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_49);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_47,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_47,
+                                     "sizeof(double)",0,sizeof(double));
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_47,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_47,
+                                     "sizeof(double)",0,sizeof(double));
       __gen_e_acsl_separated_15 = __e_acsl_separated((size_t)2,array_0 + 0,
                                                      sizeof(double),
                                                      array_0 + 1,
                                                      sizeof(double));
-      __e_acsl_assert(__gen_e_acsl_separated_15,1,"Assertion","main",
-                      "\\separated(array_0 + 0, array_0 + 1)",
-                      "tests/memory/separated.c",49);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_47,
+                                   "\\separated(array_0 + 0, array_0 + 1)",0,
+                                   __gen_e_acsl_separated_15);
+      __gen_e_acsl_assert_data_47.blocking = 1;
+      __gen_e_acsl_assert_data_47.kind = "Assertion";
+      __gen_e_acsl_assert_data_47.pred_txt = "\\separated(array_0 + 0, array_0 + 1)";
+      __gen_e_acsl_assert_data_47.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_47.fct = "main";
+      __gen_e_acsl_assert_data_47.line = 49;
+      __e_acsl_assert(__gen_e_acsl_separated_15,
+                      & __gen_e_acsl_assert_data_47);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_47);
     }
     /*@ assert \separated(array_0 + 0, array_0 + 1); */ ;
     {
@@ -756,44 +1762,119 @@ int main(void)
       int __gen_e_acsl_size_40;
       int __gen_e_acsl_if_40;
       int __gen_e_acsl_separated_16;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_50 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_51 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_51,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_37 = 8 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51,"size",0,
+                                   __gen_e_acsl_size_37);
       if (__gen_e_acsl_size_37 <= 0) __gen_e_acsl_if_37 = 0;
-      else __gen_e_acsl_if_37 = __gen_e_acsl_size_37;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_51,"size",0,
+                                     __gen_e_acsl_size_37);
+        __gen_e_acsl_if_37 = __gen_e_acsl_size_37;
+      }
       __gen_e_acsl_valid_read_35 = __e_acsl_valid_read((void *)((char *)array_0 + 
                                                                 8 * 0),
                                                        (size_t)__gen_e_acsl_if_37,
                                                        (void *)array_0,
                                                        (void *)(& array_0));
-      __e_acsl_assert(__gen_e_acsl_valid_read_35,1,"RTE","main",
-                      "separated_guard: \\valid_read(array_0 + (0 .. 1))",
-                      "tests/memory/separated.c",50);
+      __gen_e_acsl_assert_data_51.blocking = 1;
+      __gen_e_acsl_assert_data_51.kind = "RTE";
+      __gen_e_acsl_assert_data_51.pred_txt = "separated_guard: \\valid_read(array_0 + (0 .. 1))";
+      __gen_e_acsl_assert_data_51.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_51.fct = "main";
+      __gen_e_acsl_assert_data_51.line = 50;
+      __e_acsl_assert(__gen_e_acsl_valid_read_35,
+                      & __gen_e_acsl_assert_data_51);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_51);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_52 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_52,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_52,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_52,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_38 = 8 * ((2 - 1) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_52,"size",0,
+                                   __gen_e_acsl_size_38);
       if (__gen_e_acsl_size_38 <= 0) __gen_e_acsl_if_38 = 0;
-      else __gen_e_acsl_if_38 = __gen_e_acsl_size_38;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_52,"size",0,
+                                     __gen_e_acsl_size_38);
+        __gen_e_acsl_if_38 = __gen_e_acsl_size_38;
+      }
       __gen_e_acsl_valid_read_36 = __e_acsl_valid_read((void *)((char *)array_0 + 
                                                                 8 * 1),
                                                        (size_t)__gen_e_acsl_if_38,
                                                        (void *)array_0,
                                                        (void *)(& array_0));
-      __e_acsl_assert(__gen_e_acsl_valid_read_36,1,"RTE","main",
-                      "separated_guard: \\valid_read(array_0 + (1 .. 2))",
-                      "tests/memory/separated.c",50);
+      __gen_e_acsl_assert_data_52.blocking = 1;
+      __gen_e_acsl_assert_data_52.kind = "RTE";
+      __gen_e_acsl_assert_data_52.pred_txt = "separated_guard: \\valid_read(array_0 + (1 .. 2))";
+      __gen_e_acsl_assert_data_52.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_52.fct = "main";
+      __gen_e_acsl_assert_data_52.line = 50;
+      __e_acsl_assert(__gen_e_acsl_valid_read_36,
+                      & __gen_e_acsl_assert_data_52);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_52);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_50,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_39 = 8 * ((1 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"size",0,
+                                   __gen_e_acsl_size_39);
       if (__gen_e_acsl_size_39 <= 0) __gen_e_acsl_if_39 = 0;
-      else __gen_e_acsl_if_39 = __gen_e_acsl_size_39;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"size",0,
+                                     __gen_e_acsl_size_39);
+        __gen_e_acsl_if_39 = __gen_e_acsl_size_39;
+      }
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_50,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_40 = 8 * ((2 - 1) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"size",0,
+                                   __gen_e_acsl_size_40);
       if (__gen_e_acsl_size_40 <= 0) __gen_e_acsl_if_40 = 0;
-      else __gen_e_acsl_if_40 = __gen_e_acsl_size_40;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,"size",0,
+                                     __gen_e_acsl_size_40);
+        __gen_e_acsl_if_40 = __gen_e_acsl_size_40;
+      }
       __gen_e_acsl_separated_16 = __e_acsl_separated((size_t)2,
                                                      (char *)array_0 + 8 * 0,
                                                      __gen_e_acsl_if_39,
                                                      (char *)array_0 + 8 * 1,
                                                      __gen_e_acsl_if_40);
-      __e_acsl_assert(! __gen_e_acsl_separated_16,1,"Assertion","main",
-                      "!\\separated(array_0 + (0 .. 1), array_0 + (1 .. 2))",
-                      "tests/memory/separated.c",50);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_50,
+                                   "\\separated(array_0 + (0 .. 1), array_0 + (1 .. 2))",
+                                   0,__gen_e_acsl_separated_16);
+      __gen_e_acsl_assert_data_50.blocking = 1;
+      __gen_e_acsl_assert_data_50.kind = "Assertion";
+      __gen_e_acsl_assert_data_50.pred_txt = "!\\separated(array_0 + (0 .. 1), array_0 + (1 .. 2))";
+      __gen_e_acsl_assert_data_50.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_50.fct = "main";
+      __gen_e_acsl_assert_data_50.line = 50;
+      __e_acsl_assert(! __gen_e_acsl_separated_16,
+                      & __gen_e_acsl_assert_data_50);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_50);
     }
-    /*@ assert ¬\separated(array_0 + (0 .. 1), array_0 + (1 .. 2)); */ ;
+    /*@ assert !\separated(array_0 + (0 .. 1), array_0 + (1 .. 2)); */ ;
     {
       int __gen_e_acsl_size_41;
       int __gen_e_acsl_if_41;
@@ -806,42 +1887,117 @@ int main(void)
       int __gen_e_acsl_size_44;
       int __gen_e_acsl_if_44;
       int __gen_e_acsl_separated_17;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_53 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_54 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_54,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_54,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_54,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_41 = 8 * ((5 - 15) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_54,"size",0,
+                                   __gen_e_acsl_size_41);
       if (__gen_e_acsl_size_41 <= 0) __gen_e_acsl_if_41 = 0;
-      else __gen_e_acsl_if_41 = __gen_e_acsl_size_41;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_54,"size",0,
+                                     __gen_e_acsl_size_41);
+        __gen_e_acsl_if_41 = __gen_e_acsl_size_41;
+      }
       __gen_e_acsl_valid_read_37 = __e_acsl_valid_read((void *)((char *)array_0 + 
                                                                 8 * 15),
                                                        (size_t)__gen_e_acsl_if_41,
                                                        (void *)array_0,
                                                        (void *)(& array_0));
-      __e_acsl_assert(__gen_e_acsl_valid_read_37,1,"RTE","main",
-                      "separated_guard: \\valid_read(array_0 + (15 .. 5))",
-                      "tests/memory/separated.c",51);
+      __gen_e_acsl_assert_data_54.blocking = 1;
+      __gen_e_acsl_assert_data_54.kind = "RTE";
+      __gen_e_acsl_assert_data_54.pred_txt = "separated_guard: \\valid_read(array_0 + (15 .. 5))";
+      __gen_e_acsl_assert_data_54.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_54.fct = "main";
+      __gen_e_acsl_assert_data_54.line = 51;
+      __e_acsl_assert(__gen_e_acsl_valid_read_37,
+                      & __gen_e_acsl_assert_data_54);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_54);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_55 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_55,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_55,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_55,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_42 = 8 * ((19 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_55,"size",0,
+                                   __gen_e_acsl_size_42);
       if (__gen_e_acsl_size_42 <= 0) __gen_e_acsl_if_42 = 0;
-      else __gen_e_acsl_if_42 = __gen_e_acsl_size_42;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_55,"size",0,
+                                     __gen_e_acsl_size_42);
+        __gen_e_acsl_if_42 = __gen_e_acsl_size_42;
+      }
       __gen_e_acsl_valid_read_38 = __e_acsl_valid_read((void *)((char *)array_0 + 
                                                                 8 * 0),
                                                        (size_t)__gen_e_acsl_if_42,
                                                        (void *)array_0,
                                                        (void *)(& array_0));
-      __e_acsl_assert(__gen_e_acsl_valid_read_38,1,"RTE","main",
-                      "separated_guard: \\valid_read(array_0 + (0 .. 19))",
-                      "tests/memory/separated.c",51);
+      __gen_e_acsl_assert_data_55.blocking = 1;
+      __gen_e_acsl_assert_data_55.kind = "RTE";
+      __gen_e_acsl_assert_data_55.pred_txt = "separated_guard: \\valid_read(array_0 + (0 .. 19))";
+      __gen_e_acsl_assert_data_55.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_55.fct = "main";
+      __gen_e_acsl_assert_data_55.line = 51;
+      __e_acsl_assert(__gen_e_acsl_valid_read_38,
+                      & __gen_e_acsl_assert_data_55);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_55);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_53,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_43 = 8 * ((5 - 15) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53,"size",0,
+                                   __gen_e_acsl_size_43);
       if (__gen_e_acsl_size_43 <= 0) __gen_e_acsl_if_43 = 0;
-      else __gen_e_acsl_if_43 = __gen_e_acsl_size_43;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53,"size",0,
+                                     __gen_e_acsl_size_43);
+        __gen_e_acsl_if_43 = __gen_e_acsl_size_43;
+      }
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_53,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_44 = 8 * ((19 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53,"size",0,
+                                   __gen_e_acsl_size_44);
       if (__gen_e_acsl_size_44 <= 0) __gen_e_acsl_if_44 = 0;
-      else __gen_e_acsl_if_44 = __gen_e_acsl_size_44;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53,"size",0,
+                                     __gen_e_acsl_size_44);
+        __gen_e_acsl_if_44 = __gen_e_acsl_size_44;
+      }
       __gen_e_acsl_separated_17 = __e_acsl_separated((size_t)2,
                                                      (char *)array_0 + 8 * 15,
                                                      __gen_e_acsl_if_43,
                                                      (char *)array_0 + 8 * 0,
                                                      __gen_e_acsl_if_44);
-      __e_acsl_assert(__gen_e_acsl_separated_17,1,"Assertion","main",
-                      "\\separated(array_0 + (15 .. 5), array_0 + (0 .. 19))",
-                      "tests/memory/separated.c",51);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_53,
+                                   "\\separated(array_0 + (15 .. 5), array_0 + (0 .. 19))",
+                                   0,__gen_e_acsl_separated_17);
+      __gen_e_acsl_assert_data_53.blocking = 1;
+      __gen_e_acsl_assert_data_53.kind = "Assertion";
+      __gen_e_acsl_assert_data_53.pred_txt = "\\separated(array_0 + (15 .. 5), array_0 + (0 .. 19))";
+      __gen_e_acsl_assert_data_53.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_53.fct = "main";
+      __gen_e_acsl_assert_data_53.line = 51;
+      __e_acsl_assert(__gen_e_acsl_separated_17,
+                      & __gen_e_acsl_assert_data_53);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_53);
     }
     /*@ assert \separated(array_0 + (15 .. 5), array_0 + (0 .. 19)); */ ;
     {
@@ -856,42 +2012,117 @@ int main(void)
       int __gen_e_acsl_size_48;
       int __gen_e_acsl_if_48;
       int __gen_e_acsl_separated_18;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_56 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_57 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_57,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_57,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_57,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_45 = 8 * ((-3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_57,"size",0,
+                                   __gen_e_acsl_size_45);
       if (__gen_e_acsl_size_45 <= 0) __gen_e_acsl_if_45 = 0;
-      else __gen_e_acsl_if_45 = __gen_e_acsl_size_45;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_57,"size",0,
+                                     __gen_e_acsl_size_45);
+        __gen_e_acsl_if_45 = __gen_e_acsl_size_45;
+      }
       __gen_e_acsl_valid_read_39 = __e_acsl_valid_read((void *)((char *)array_0 + 
                                                                 8 * 0),
                                                        (size_t)__gen_e_acsl_if_45,
                                                        (void *)array_0,
                                                        (void *)(& array_0));
-      __e_acsl_assert(__gen_e_acsl_valid_read_39,1,"RTE","main",
-                      "separated_guard: \\valid_read(array_0 + (0 .. -3))",
-                      "tests/memory/separated.c",52);
+      __gen_e_acsl_assert_data_57.blocking = 1;
+      __gen_e_acsl_assert_data_57.kind = "RTE";
+      __gen_e_acsl_assert_data_57.pred_txt = "separated_guard: \\valid_read(array_0 + (0 .. -3))";
+      __gen_e_acsl_assert_data_57.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_57.fct = "main";
+      __gen_e_acsl_assert_data_57.line = 52;
+      __e_acsl_assert(__gen_e_acsl_valid_read_39,
+                      & __gen_e_acsl_assert_data_57);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_57);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_58 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_58,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_58,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_58,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_46 = 8 * ((19 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_58,"size",0,
+                                   __gen_e_acsl_size_46);
       if (__gen_e_acsl_size_46 <= 0) __gen_e_acsl_if_46 = 0;
-      else __gen_e_acsl_if_46 = __gen_e_acsl_size_46;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_58,"size",0,
+                                     __gen_e_acsl_size_46);
+        __gen_e_acsl_if_46 = __gen_e_acsl_size_46;
+      }
       __gen_e_acsl_valid_read_40 = __e_acsl_valid_read((void *)((char *)array_0 + 
                                                                 8 * 0),
                                                        (size_t)__gen_e_acsl_if_46,
                                                        (void *)array_0,
                                                        (void *)(& array_0));
-      __e_acsl_assert(__gen_e_acsl_valid_read_40,1,"RTE","main",
-                      "separated_guard: \\valid_read(array_0 + (0 .. 19))",
-                      "tests/memory/separated.c",52);
+      __gen_e_acsl_assert_data_58.blocking = 1;
+      __gen_e_acsl_assert_data_58.kind = "RTE";
+      __gen_e_acsl_assert_data_58.pred_txt = "separated_guard: \\valid_read(array_0 + (0 .. 19))";
+      __gen_e_acsl_assert_data_58.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_58.fct = "main";
+      __gen_e_acsl_assert_data_58.line = 52;
+      __e_acsl_assert(__gen_e_acsl_valid_read_40,
+                      & __gen_e_acsl_assert_data_58);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_58);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_56,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_47 = 8 * ((-3 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56,"size",0,
+                                   __gen_e_acsl_size_47);
       if (__gen_e_acsl_size_47 <= 0) __gen_e_acsl_if_47 = 0;
-      else __gen_e_acsl_if_47 = __gen_e_acsl_size_47;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56,"size",0,
+                                     __gen_e_acsl_size_47);
+        __gen_e_acsl_if_47 = __gen_e_acsl_size_47;
+      }
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_56,"array_0",
+                                   (void *)array_0);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56,
+                                   "sizeof(double)",0,8);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56,
+                                   "sizeof(double)",0,8);
       __gen_e_acsl_size_48 = 8 * ((19 - 0) + 1);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56,"size",0,
+                                   __gen_e_acsl_size_48);
       if (__gen_e_acsl_size_48 <= 0) __gen_e_acsl_if_48 = 0;
-      else __gen_e_acsl_if_48 = __gen_e_acsl_size_48;
+      else {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56,"size",0,
+                                     __gen_e_acsl_size_48);
+        __gen_e_acsl_if_48 = __gen_e_acsl_size_48;
+      }
       __gen_e_acsl_separated_18 = __e_acsl_separated((size_t)2,
                                                      (char *)array_0 + 8 * 0,
                                                      __gen_e_acsl_if_47,
                                                      (char *)array_0 + 8 * 0,
                                                      __gen_e_acsl_if_48);
-      __e_acsl_assert(__gen_e_acsl_separated_18,1,"Assertion","main",
-                      "\\separated(array_0 + (0 .. -3), array_0 + (0 .. 19))",
-                      "tests/memory/separated.c",52);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_56,
+                                   "\\separated(array_0 + (0 .. -3), array_0 + (0 .. 19))",
+                                   0,__gen_e_acsl_separated_18);
+      __gen_e_acsl_assert_data_56.blocking = 1;
+      __gen_e_acsl_assert_data_56.kind = "Assertion";
+      __gen_e_acsl_assert_data_56.pred_txt = "\\separated(array_0 + (0 .. -3), array_0 + (0 .. 19))";
+      __gen_e_acsl_assert_data_56.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_56.fct = "main";
+      __gen_e_acsl_assert_data_56.line = 52;
+      __e_acsl_assert(__gen_e_acsl_separated_18,
+                      & __gen_e_acsl_assert_data_56);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_56);
     }
     /*@ assert \separated(array_0 + (0 .. -3), array_0 + (0 .. 19)); */ ;
     free((void *)array_0);
@@ -910,6 +2141,10 @@ int main(void)
       int __gen_e_acsl_range_3;
       int __gen_e_acsl_forall_4;
       int __gen_e_acsl_range_4;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_59 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_60 =
+        {.values = (void *)0};
       __gen_e_acsl_forall = 1;
       __gen_e_acsl_range = 0;
       while (1) {
@@ -929,9 +2164,15 @@ int main(void)
         __gen_e_acsl_range ++;
       }
       e_acsl_end_loop1: ;
-      __e_acsl_assert(__gen_e_acsl_forall,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array_1[0][0 .. 2][0])",
-                      "tests/memory/separated.c",60);
+      __gen_e_acsl_assert_data_60.blocking = 1;
+      __gen_e_acsl_assert_data_60.kind = "RTE";
+      __gen_e_acsl_assert_data_60.pred_txt = "separated_guard: \\valid_read(&array_1[0][0 .. 2][0])";
+      __gen_e_acsl_assert_data_60.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_60.fct = "main";
+      __gen_e_acsl_assert_data_60.line = 60;
+      __e_acsl_assert(__gen_e_acsl_forall,& __gen_e_acsl_assert_data_60);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_61 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_2 = 1;
       __gen_e_acsl_range_2 = 3;
       while (1) {
@@ -951,9 +2192,15 @@ int main(void)
         __gen_e_acsl_range_2 ++;
       }
       e_acsl_end_loop2: ;
-      __e_acsl_assert(__gen_e_acsl_forall_2,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array_1[0][3 .. 5][0])",
-                      "tests/memory/separated.c",60);
+      __gen_e_acsl_assert_data_61.blocking = 1;
+      __gen_e_acsl_assert_data_61.kind = "RTE";
+      __gen_e_acsl_assert_data_61.pred_txt = "separated_guard: \\valid_read(&array_1[0][3 .. 5][0])";
+      __gen_e_acsl_assert_data_61.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_61.fct = "main";
+      __gen_e_acsl_assert_data_61.line = 60;
+      __e_acsl_assert(__gen_e_acsl_forall_2,& __gen_e_acsl_assert_data_61);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_62 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_3 = 1;
       __gen_e_acsl_range_3 = 6;
       while (1) {
@@ -973,9 +2220,13 @@ int main(void)
         __gen_e_acsl_range_3 ++;
       }
       e_acsl_end_loop3: ;
-      __e_acsl_assert(__gen_e_acsl_forall_3,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array_1[0][6 .. 9][0])",
-                      "tests/memory/separated.c",60);
+      __gen_e_acsl_assert_data_62.blocking = 1;
+      __gen_e_acsl_assert_data_62.kind = "RTE";
+      __gen_e_acsl_assert_data_62.pred_txt = "separated_guard: \\valid_read(&array_1[0][6 .. 9][0])";
+      __gen_e_acsl_assert_data_62.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_62.fct = "main";
+      __gen_e_acsl_assert_data_62.line = 60;
+      __e_acsl_assert(__gen_e_acsl_forall_3,& __gen_e_acsl_assert_data_62);
       __gen_e_acsl_forall_4 = 1;
       __gen_e_acsl_range_4 = 6;
       while (1) {
@@ -999,27 +2250,69 @@ int main(void)
                   int __gen_e_acsl_valid_read_45;
                   int __gen_e_acsl_valid_read_46;
                   int __gen_e_acsl_separated_19;
+                  __e_acsl_assert_data_t __gen_e_acsl_assert_data_63 =
+                    {.values = (void *)0};
+                  __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_63,
+                                               "&array_1[0][range_6][0]",
+                                               (void *)(& array_1[0][__gen_e_acsl_range_6][0]));
+                  __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_63,
+                                                 "sizeof(double)",0,
+                                                 sizeof(double));
                   __gen_e_acsl_valid_read_44 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range_6][0]),
                                                                    sizeof(double),
                                                                    (void *)(& array_1[0][0][0]),
                                                                    (void *)0);
-                  __e_acsl_assert(__gen_e_acsl_valid_read_44,1,"RTE","main",
-                                  "separated_guard: \\valid_read(&array_1[0][range_6][0])",
-                                  "tests/memory/separated.c",60);
+                  __gen_e_acsl_assert_data_63.blocking = 1;
+                  __gen_e_acsl_assert_data_63.kind = "RTE";
+                  __gen_e_acsl_assert_data_63.pred_txt = "separated_guard: \\valid_read(&array_1[0][range_6][0])";
+                  __gen_e_acsl_assert_data_63.file = "tests/memory/separated.c";
+                  __gen_e_acsl_assert_data_63.fct = "main";
+                  __gen_e_acsl_assert_data_63.line = 60;
+                  __e_acsl_assert(__gen_e_acsl_valid_read_44,
+                                  & __gen_e_acsl_assert_data_63);
+                  __e_acsl_assert_clean(& __gen_e_acsl_assert_data_63);
+                  __e_acsl_assert_data_t __gen_e_acsl_assert_data_64 =
+                    {.values = (void *)0};
+                  __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_64,
+                                               "&array_1[0][range_5][0]",
+                                               (void *)(& array_1[0][__gen_e_acsl_range_5][0]));
+                  __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_64,
+                                                 "sizeof(double)",0,
+                                                 sizeof(double));
                   __gen_e_acsl_valid_read_45 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range_5][0]),
                                                                    sizeof(double),
                                                                    (void *)(& array_1[0][0][0]),
                                                                    (void *)0);
-                  __e_acsl_assert(__gen_e_acsl_valid_read_45,1,"RTE","main",
-                                  "separated_guard: \\valid_read(&array_1[0][range_5][0])",
-                                  "tests/memory/separated.c",60);
+                  __gen_e_acsl_assert_data_64.blocking = 1;
+                  __gen_e_acsl_assert_data_64.kind = "RTE";
+                  __gen_e_acsl_assert_data_64.pred_txt = "separated_guard: \\valid_read(&array_1[0][range_5][0])";
+                  __gen_e_acsl_assert_data_64.file = "tests/memory/separated.c";
+                  __gen_e_acsl_assert_data_64.fct = "main";
+                  __gen_e_acsl_assert_data_64.line = 60;
+                  __e_acsl_assert(__gen_e_acsl_valid_read_45,
+                                  & __gen_e_acsl_assert_data_64);
+                  __e_acsl_assert_clean(& __gen_e_acsl_assert_data_64);
+                  __e_acsl_assert_data_t __gen_e_acsl_assert_data_65 =
+                    {.values = (void *)0};
+                  __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_65,
+                                               "&array_1[0][range_4][0]",
+                                               (void *)(& array_1[0][__gen_e_acsl_range_4][0]));
+                  __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_65,
+                                                 "sizeof(double)",0,
+                                                 sizeof(double));
                   __gen_e_acsl_valid_read_46 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range_4][0]),
                                                                    sizeof(double),
                                                                    (void *)(& array_1[0][0][0]),
                                                                    (void *)0);
-                  __e_acsl_assert(__gen_e_acsl_valid_read_46,1,"RTE","main",
-                                  "separated_guard: \\valid_read(&array_1[0][range_4][0])",
-                                  "tests/memory/separated.c",60);
+                  __gen_e_acsl_assert_data_65.blocking = 1;
+                  __gen_e_acsl_assert_data_65.kind = "RTE";
+                  __gen_e_acsl_assert_data_65.pred_txt = "separated_guard: \\valid_read(&array_1[0][range_4][0])";
+                  __gen_e_acsl_assert_data_65.file = "tests/memory/separated.c";
+                  __gen_e_acsl_assert_data_65.fct = "main";
+                  __gen_e_acsl_assert_data_65.line = 60;
+                  __e_acsl_assert(__gen_e_acsl_valid_read_46,
+                                  & __gen_e_acsl_assert_data_65);
+                  __e_acsl_assert_clean(& __gen_e_acsl_assert_data_65);
                   __gen_e_acsl_separated_19 = __e_acsl_separated((size_t)3,
                                                                  & array_1[0][__gen_e_acsl_range_6][0],
                                                                  sizeof(double),
@@ -1054,9 +2347,20 @@ int main(void)
         __gen_e_acsl_range_4 ++;
       }
       e_acsl_end_loop6: ;
-      __e_acsl_assert(__gen_e_acsl_forall_4,1,"Assertion","main",
-                      "\\separated(\n  &array_1[0][0 .. 2][0], &array_1[0][3 .. 5][0], &array_1[0][6 .. 9][0]\n  )",
-                      "tests/memory/separated.c",60);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_59,
+                                   "\\forall integer range_4;\n  6 <= range_4 <= 9 ==>\n  (\\forall integer range_5;\n     3 <= range_5 <= 5 ==>\n     (\\forall integer range_6;\n        0 <= range_6 <= 2 ==>\n        \\separated(\n          &array_1[0][range_6][0], &array_1[0][range_5][0],\n          &array_1[0][range_4][0]\n          )))",
+                                   0,__gen_e_acsl_forall_4);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_59,
+                                   "\\separated(\n  &array_1[0][0 .. 2][0], &array_1[0][3 .. 5][0], &array_1[0][6 .. 9][0]\n  )",
+                                   0,__gen_e_acsl_forall_4);
+      __gen_e_acsl_assert_data_59.blocking = 1;
+      __gen_e_acsl_assert_data_59.kind = "Assertion";
+      __gen_e_acsl_assert_data_59.pred_txt = "\\separated(\n  &array_1[0][0 .. 2][0], &array_1[0][3 .. 5][0], &array_1[0][6 .. 9][0]\n  )";
+      __gen_e_acsl_assert_data_59.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_59.fct = "main";
+      __gen_e_acsl_assert_data_59.line = 60;
+      __e_acsl_assert(__gen_e_acsl_forall_4,& __gen_e_acsl_assert_data_59);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_59);
     }
     /*@
     assert
@@ -1074,6 +2378,10 @@ int main(void)
       int __gen_e_acsl_range_9;
       int __gen_e_acsl_forall_10;
       int __gen_e_acsl_range_10;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_66 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_67 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_7 = 1;
       __gen_e_acsl_range_7 = 0;
       while (1) {
@@ -1093,9 +2401,15 @@ int main(void)
         __gen_e_acsl_range_7 ++;
       }
       e_acsl_end_loop7: ;
-      __e_acsl_assert(__gen_e_acsl_forall_7,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array_1[0][0 .. 2][0])",
-                      "tests/memory/separated.c",61);
+      __gen_e_acsl_assert_data_67.blocking = 1;
+      __gen_e_acsl_assert_data_67.kind = "RTE";
+      __gen_e_acsl_assert_data_67.pred_txt = "separated_guard: \\valid_read(&array_1[0][0 .. 2][0])";
+      __gen_e_acsl_assert_data_67.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_67.fct = "main";
+      __gen_e_acsl_assert_data_67.line = 61;
+      __e_acsl_assert(__gen_e_acsl_forall_7,& __gen_e_acsl_assert_data_67);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_68 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_8 = 1;
       __gen_e_acsl_range_8 = 0;
       while (1) {
@@ -1115,9 +2429,15 @@ int main(void)
         __gen_e_acsl_range_8 ++;
       }
       e_acsl_end_loop8: ;
-      __e_acsl_assert(__gen_e_acsl_forall_8,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array_1[1][0 .. 2][0])",
-                      "tests/memory/separated.c",61);
+      __gen_e_acsl_assert_data_68.blocking = 1;
+      __gen_e_acsl_assert_data_68.kind = "RTE";
+      __gen_e_acsl_assert_data_68.pred_txt = "separated_guard: \\valid_read(&array_1[1][0 .. 2][0])";
+      __gen_e_acsl_assert_data_68.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_68.fct = "main";
+      __gen_e_acsl_assert_data_68.line = 61;
+      __e_acsl_assert(__gen_e_acsl_forall_8,& __gen_e_acsl_assert_data_68);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_69 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_9 = 1;
       __gen_e_acsl_range_9 = 0;
       while (1) {
@@ -1137,9 +2457,13 @@ int main(void)
         __gen_e_acsl_range_9 ++;
       }
       e_acsl_end_loop9: ;
-      __e_acsl_assert(__gen_e_acsl_forall_9,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array_1[2][0 .. 2][0])",
-                      "tests/memory/separated.c",61);
+      __gen_e_acsl_assert_data_69.blocking = 1;
+      __gen_e_acsl_assert_data_69.kind = "RTE";
+      __gen_e_acsl_assert_data_69.pred_txt = "separated_guard: \\valid_read(&array_1[2][0 .. 2][0])";
+      __gen_e_acsl_assert_data_69.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_69.fct = "main";
+      __gen_e_acsl_assert_data_69.line = 61;
+      __e_acsl_assert(__gen_e_acsl_forall_9,& __gen_e_acsl_assert_data_69);
       __gen_e_acsl_forall_10 = 1;
       __gen_e_acsl_range_10 = 0;
       while (1) {
@@ -1163,27 +2487,69 @@ int main(void)
                   int __gen_e_acsl_valid_read_51;
                   int __gen_e_acsl_valid_read_52;
                   int __gen_e_acsl_separated_20;
+                  __e_acsl_assert_data_t __gen_e_acsl_assert_data_70 =
+                    {.values = (void *)0};
+                  __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_70,
+                                               "&array_1[0][range_12][0]",
+                                               (void *)(& array_1[0][__gen_e_acsl_range_12][0]));
+                  __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_70,
+                                                 "sizeof(double)",0,
+                                                 sizeof(double));
                   __gen_e_acsl_valid_read_50 = __e_acsl_valid_read((void *)(& array_1[0][__gen_e_acsl_range_12][0]),
                                                                    sizeof(double),
                                                                    (void *)(& array_1[0][0][0]),
                                                                    (void *)0);
-                  __e_acsl_assert(__gen_e_acsl_valid_read_50,1,"RTE","main",
-                                  "separated_guard: \\valid_read(&array_1[0][range_12][0])",
-                                  "tests/memory/separated.c",61);
+                  __gen_e_acsl_assert_data_70.blocking = 1;
+                  __gen_e_acsl_assert_data_70.kind = "RTE";
+                  __gen_e_acsl_assert_data_70.pred_txt = "separated_guard: \\valid_read(&array_1[0][range_12][0])";
+                  __gen_e_acsl_assert_data_70.file = "tests/memory/separated.c";
+                  __gen_e_acsl_assert_data_70.fct = "main";
+                  __gen_e_acsl_assert_data_70.line = 61;
+                  __e_acsl_assert(__gen_e_acsl_valid_read_50,
+                                  & __gen_e_acsl_assert_data_70);
+                  __e_acsl_assert_clean(& __gen_e_acsl_assert_data_70);
+                  __e_acsl_assert_data_t __gen_e_acsl_assert_data_71 =
+                    {.values = (void *)0};
+                  __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_71,
+                                               "&array_1[1][range_11][0]",
+                                               (void *)(& array_1[1][__gen_e_acsl_range_11][0]));
+                  __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_71,
+                                                 "sizeof(double)",0,
+                                                 sizeof(double));
                   __gen_e_acsl_valid_read_51 = __e_acsl_valid_read((void *)(& array_1[1][__gen_e_acsl_range_11][0]),
                                                                    sizeof(double),
                                                                    (void *)(& array_1[0][0][0]),
                                                                    (void *)0);
-                  __e_acsl_assert(__gen_e_acsl_valid_read_51,1,"RTE","main",
-                                  "separated_guard: \\valid_read(&array_1[1][range_11][0])",
-                                  "tests/memory/separated.c",61);
+                  __gen_e_acsl_assert_data_71.blocking = 1;
+                  __gen_e_acsl_assert_data_71.kind = "RTE";
+                  __gen_e_acsl_assert_data_71.pred_txt = "separated_guard: \\valid_read(&array_1[1][range_11][0])";
+                  __gen_e_acsl_assert_data_71.file = "tests/memory/separated.c";
+                  __gen_e_acsl_assert_data_71.fct = "main";
+                  __gen_e_acsl_assert_data_71.line = 61;
+                  __e_acsl_assert(__gen_e_acsl_valid_read_51,
+                                  & __gen_e_acsl_assert_data_71);
+                  __e_acsl_assert_clean(& __gen_e_acsl_assert_data_71);
+                  __e_acsl_assert_data_t __gen_e_acsl_assert_data_72 =
+                    {.values = (void *)0};
+                  __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_72,
+                                               "&array_1[2][range_10][0]",
+                                               (void *)(& array_1[2][__gen_e_acsl_range_10][0]));
+                  __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_72,
+                                                 "sizeof(double)",0,
+                                                 sizeof(double));
                   __gen_e_acsl_valid_read_52 = __e_acsl_valid_read((void *)(& array_1[2][__gen_e_acsl_range_10][0]),
                                                                    sizeof(double),
                                                                    (void *)(& array_1[0][0][0]),
                                                                    (void *)0);
-                  __e_acsl_assert(__gen_e_acsl_valid_read_52,1,"RTE","main",
-                                  "separated_guard: \\valid_read(&array_1[2][range_10][0])",
-                                  "tests/memory/separated.c",61);
+                  __gen_e_acsl_assert_data_72.blocking = 1;
+                  __gen_e_acsl_assert_data_72.kind = "RTE";
+                  __gen_e_acsl_assert_data_72.pred_txt = "separated_guard: \\valid_read(&array_1[2][range_10][0])";
+                  __gen_e_acsl_assert_data_72.file = "tests/memory/separated.c";
+                  __gen_e_acsl_assert_data_72.fct = "main";
+                  __gen_e_acsl_assert_data_72.line = 61;
+                  __e_acsl_assert(__gen_e_acsl_valid_read_52,
+                                  & __gen_e_acsl_assert_data_72);
+                  __e_acsl_assert_clean(& __gen_e_acsl_assert_data_72);
                   __gen_e_acsl_separated_20 = __e_acsl_separated((size_t)3,
                                                                  & array_1[0][__gen_e_acsl_range_12][0],
                                                                  sizeof(double),
@@ -1218,9 +2584,20 @@ int main(void)
         __gen_e_acsl_range_10 ++;
       }
       e_acsl_end_loop12: ;
-      __e_acsl_assert(__gen_e_acsl_forall_10,1,"Assertion","main",
-                      "\\separated(\n  &array_1[0][0 .. 2][0], &array_1[1][0 .. 2][0], &array_1[2][0 .. 2][0]\n  )",
-                      "tests/memory/separated.c",61);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_66,
+                                   "\\forall integer range_10;\n  0 <= range_10 <= 2 ==>\n  (\\forall integer range_11;\n     0 <= range_11 <= 2 ==>\n     (\\forall integer range_12;\n        0 <= range_12 <= 2 ==>\n        \\separated(\n          &array_1[0][range_12][0], &array_1[1][range_11][0],\n          &array_1[2][range_10][0]\n          )))",
+                                   0,__gen_e_acsl_forall_10);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_66,
+                                   "\\separated(\n  &array_1[0][0 .. 2][0], &array_1[1][0 .. 2][0], &array_1[2][0 .. 2][0]\n  )",
+                                   0,__gen_e_acsl_forall_10);
+      __gen_e_acsl_assert_data_66.blocking = 1;
+      __gen_e_acsl_assert_data_66.kind = "Assertion";
+      __gen_e_acsl_assert_data_66.pred_txt = "\\separated(\n  &array_1[0][0 .. 2][0], &array_1[1][0 .. 2][0], &array_1[2][0 .. 2][0]\n  )";
+      __gen_e_acsl_assert_data_66.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_66.fct = "main";
+      __gen_e_acsl_assert_data_66.line = 61;
+      __e_acsl_assert(__gen_e_acsl_forall_10,& __gen_e_acsl_assert_data_66);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_66);
     }
     /*@
     assert
@@ -1236,6 +2613,10 @@ int main(void)
       int __gen_e_acsl_range_16;
       int __gen_e_acsl_forall_17;
       int __gen_e_acsl_range_18;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_73 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_74 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_13 = 1;
       __gen_e_acsl_range_14 = 0;
       while (1) {
@@ -1271,9 +2652,15 @@ int main(void)
         __gen_e_acsl_range_14 ++;
       }
       e_acsl_end_loop14: ;
-      __e_acsl_assert(__gen_e_acsl_forall_13,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array_1[0 .. 2][0 .. 2][0])",
-                      "tests/memory/separated.c",62);
+      __gen_e_acsl_assert_data_74.blocking = 1;
+      __gen_e_acsl_assert_data_74.kind = "RTE";
+      __gen_e_acsl_assert_data_74.pred_txt = "separated_guard: \\valid_read(&array_1[0 .. 2][0 .. 2][0])";
+      __gen_e_acsl_assert_data_74.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_74.fct = "main";
+      __gen_e_acsl_assert_data_74.line = 62;
+      __e_acsl_assert(__gen_e_acsl_forall_13,& __gen_e_acsl_assert_data_74);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_75 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_15 = 1;
       __gen_e_acsl_range_16 = 3;
       while (1) {
@@ -1309,9 +2696,13 @@ int main(void)
         __gen_e_acsl_range_16 ++;
       }
       e_acsl_end_loop16: ;
-      __e_acsl_assert(__gen_e_acsl_forall_15,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array_1[0 .. 2][3 .. 5][0])",
-                      "tests/memory/separated.c",62);
+      __gen_e_acsl_assert_data_75.blocking = 1;
+      __gen_e_acsl_assert_data_75.kind = "RTE";
+      __gen_e_acsl_assert_data_75.pred_txt = "separated_guard: \\valid_read(&array_1[0 .. 2][3 .. 5][0])";
+      __gen_e_acsl_assert_data_75.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_75.fct = "main";
+      __gen_e_acsl_assert_data_75.line = 62;
+      __e_acsl_assert(__gen_e_acsl_forall_15,& __gen_e_acsl_assert_data_75);
       __gen_e_acsl_forall_17 = 1;
       __gen_e_acsl_range_18 = 3;
       while (1) {
@@ -1341,20 +2732,46 @@ int main(void)
                       int __gen_e_acsl_valid_read_55;
                       int __gen_e_acsl_valid_read_56;
                       int __gen_e_acsl_separated_21;
+                      __e_acsl_assert_data_t __gen_e_acsl_assert_data_76 =
+                        {.values = (void *)0};
+                      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_76,
+                                                   "&array_1[range_19][range_20][0]",
+                                                   (void *)(& array_1[__gen_e_acsl_range_19][__gen_e_acsl_range_20][0]));
+                      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_76,
+                                                     "sizeof(double)",0,
+                                                     sizeof(double));
                       __gen_e_acsl_valid_read_55 = __e_acsl_valid_read
                       ((void *)(& array_1[__gen_e_acsl_range_19][__gen_e_acsl_range_20][0]),
                        sizeof(double),(void *)(& array_1[0][0][0]),(void *)0);
-                      __e_acsl_assert(__gen_e_acsl_valid_read_55,1,"RTE",
-                                      "main",
-                                      "separated_guard: \\valid_read(&array_1[range_19][range_20][0])",
-                                      "tests/memory/separated.c",62);
+                      __gen_e_acsl_assert_data_76.blocking = 1;
+                      __gen_e_acsl_assert_data_76.kind = "RTE";
+                      __gen_e_acsl_assert_data_76.pred_txt = "separated_guard: \\valid_read(&array_1[range_19][range_20][0])";
+                      __gen_e_acsl_assert_data_76.file = "tests/memory/separated.c";
+                      __gen_e_acsl_assert_data_76.fct = "main";
+                      __gen_e_acsl_assert_data_76.line = 62;
+                      __e_acsl_assert(__gen_e_acsl_valid_read_55,
+                                      & __gen_e_acsl_assert_data_76);
+                      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_76);
+                      __e_acsl_assert_data_t __gen_e_acsl_assert_data_77 =
+                        {.values = (void *)0};
+                      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_77,
+                                                   "&array_1[range_17][range_18][0]",
+                                                   (void *)(& array_1[__gen_e_acsl_range_17][__gen_e_acsl_range_18][0]));
+                      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_77,
+                                                     "sizeof(double)",0,
+                                                     sizeof(double));
                       __gen_e_acsl_valid_read_56 = __e_acsl_valid_read
                       ((void *)(& array_1[__gen_e_acsl_range_17][__gen_e_acsl_range_18][0]),
                        sizeof(double),(void *)(& array_1[0][0][0]),(void *)0);
-                      __e_acsl_assert(__gen_e_acsl_valid_read_56,1,"RTE",
-                                      "main",
-                                      "separated_guard: \\valid_read(&array_1[range_17][range_18][0])",
-                                      "tests/memory/separated.c",62);
+                      __gen_e_acsl_assert_data_77.blocking = 1;
+                      __gen_e_acsl_assert_data_77.kind = "RTE";
+                      __gen_e_acsl_assert_data_77.pred_txt = "separated_guard: \\valid_read(&array_1[range_17][range_18][0])";
+                      __gen_e_acsl_assert_data_77.file = "tests/memory/separated.c";
+                      __gen_e_acsl_assert_data_77.fct = "main";
+                      __gen_e_acsl_assert_data_77.line = 62;
+                      __e_acsl_assert(__gen_e_acsl_valid_read_56,
+                                      & __gen_e_acsl_assert_data_77);
+                      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_77);
                       __gen_e_acsl_separated_21 = __e_acsl_separated((size_t)2,
                                                                     & array_1[__gen_e_acsl_range_19][__gen_e_acsl_range_20][0],
                                                                     sizeof(double),
@@ -1396,9 +2813,20 @@ int main(void)
         __gen_e_acsl_range_18 ++;
       }
       e_acsl_end_loop20: ;
-      __e_acsl_assert(__gen_e_acsl_forall_17,1,"Assertion","main",
-                      "\\separated(&array_1[0 .. 2][0 .. 2][0], &array_1[0 .. 2][3 .. 5][0])",
-                      "tests/memory/separated.c",62);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_73,
+                                   "\\forall integer range_18;\n  3 <= range_18 <= 5 ==>\n  (\\forall integer range_17;\n     0 <= range_17 <= 2 ==>\n     (\\forall integer range_20;\n        0 <= range_20 <= 2 ==>\n        (\\forall integer range_19;\n           0 <= range_19 <= 2 ==>\n           \\separated(\n             &array_1[range_19][range_20][0], &array_1[range_17][range_18][0]\n             ))))",
+                                   0,__gen_e_acsl_forall_17);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_73,
+                                   "\\separated(&array_1[0 .. 2][0 .. 2][0], &array_1[0 .. 2][3 .. 5][0])",
+                                   0,__gen_e_acsl_forall_17);
+      __gen_e_acsl_assert_data_73.blocking = 1;
+      __gen_e_acsl_assert_data_73.kind = "Assertion";
+      __gen_e_acsl_assert_data_73.pred_txt = "\\separated(&array_1[0 .. 2][0 .. 2][0], &array_1[0 .. 2][3 .. 5][0])";
+      __gen_e_acsl_assert_data_73.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_73.fct = "main";
+      __gen_e_acsl_assert_data_73.line = 62;
+      __e_acsl_assert(__gen_e_acsl_forall_17,& __gen_e_acsl_assert_data_73);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_73);
     }
     /*@
     assert
@@ -1411,6 +2839,10 @@ int main(void)
       int __gen_e_acsl_range_24;
       int __gen_e_acsl_forall_25;
       int __gen_e_acsl_range_26;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_78 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_79 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_21 = 1;
       __gen_e_acsl_range_22 = 0;
       while (1) {
@@ -1446,9 +2878,15 @@ int main(void)
         __gen_e_acsl_range_22 ++;
       }
       e_acsl_end_loop22: ;
-      __e_acsl_assert(__gen_e_acsl_forall_21,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array_1[0 .. 3][0 .. 2][0])",
-                      "tests/memory/separated.c",63);
+      __gen_e_acsl_assert_data_79.blocking = 1;
+      __gen_e_acsl_assert_data_79.kind = "RTE";
+      __gen_e_acsl_assert_data_79.pred_txt = "separated_guard: \\valid_read(&array_1[0 .. 3][0 .. 2][0])";
+      __gen_e_acsl_assert_data_79.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_79.fct = "main";
+      __gen_e_acsl_assert_data_79.line = 63;
+      __e_acsl_assert(__gen_e_acsl_forall_21,& __gen_e_acsl_assert_data_79);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_80 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_23 = 1;
       __gen_e_acsl_range_24 = 0;
       while (1) {
@@ -1484,9 +2922,13 @@ int main(void)
         __gen_e_acsl_range_24 ++;
       }
       e_acsl_end_loop24: ;
-      __e_acsl_assert(__gen_e_acsl_forall_23,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array_1[3 .. 5][0 .. 2][0])",
-                      "tests/memory/separated.c",63);
+      __gen_e_acsl_assert_data_80.blocking = 1;
+      __gen_e_acsl_assert_data_80.kind = "RTE";
+      __gen_e_acsl_assert_data_80.pred_txt = "separated_guard: \\valid_read(&array_1[3 .. 5][0 .. 2][0])";
+      __gen_e_acsl_assert_data_80.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_80.fct = "main";
+      __gen_e_acsl_assert_data_80.line = 63;
+      __e_acsl_assert(__gen_e_acsl_forall_23,& __gen_e_acsl_assert_data_80);
       __gen_e_acsl_forall_25 = 1;
       __gen_e_acsl_range_26 = 0;
       while (1) {
@@ -1516,20 +2958,46 @@ int main(void)
                       int __gen_e_acsl_valid_read_59;
                       int __gen_e_acsl_valid_read_60;
                       int __gen_e_acsl_separated_22;
+                      __e_acsl_assert_data_t __gen_e_acsl_assert_data_81 =
+                        {.values = (void *)0};
+                      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_81,
+                                                   "&array_1[range_27][range_28][0]",
+                                                   (void *)(& array_1[__gen_e_acsl_range_27][__gen_e_acsl_range_28][0]));
+                      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_81,
+                                                     "sizeof(double)",0,
+                                                     sizeof(double));
                       __gen_e_acsl_valid_read_59 = __e_acsl_valid_read
                       ((void *)(& array_1[__gen_e_acsl_range_27][__gen_e_acsl_range_28][0]),
                        sizeof(double),(void *)(& array_1[0][0][0]),(void *)0);
-                      __e_acsl_assert(__gen_e_acsl_valid_read_59,1,"RTE",
-                                      "main",
-                                      "separated_guard: \\valid_read(&array_1[range_27][range_28][0])",
-                                      "tests/memory/separated.c",63);
+                      __gen_e_acsl_assert_data_81.blocking = 1;
+                      __gen_e_acsl_assert_data_81.kind = "RTE";
+                      __gen_e_acsl_assert_data_81.pred_txt = "separated_guard: \\valid_read(&array_1[range_27][range_28][0])";
+                      __gen_e_acsl_assert_data_81.file = "tests/memory/separated.c";
+                      __gen_e_acsl_assert_data_81.fct = "main";
+                      __gen_e_acsl_assert_data_81.line = 63;
+                      __e_acsl_assert(__gen_e_acsl_valid_read_59,
+                                      & __gen_e_acsl_assert_data_81);
+                      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_81);
+                      __e_acsl_assert_data_t __gen_e_acsl_assert_data_82 =
+                        {.values = (void *)0};
+                      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_82,
+                                                   "&array_1[range_25][range_26][0]",
+                                                   (void *)(& array_1[__gen_e_acsl_range_25][__gen_e_acsl_range_26][0]));
+                      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_82,
+                                                     "sizeof(double)",0,
+                                                     sizeof(double));
                       __gen_e_acsl_valid_read_60 = __e_acsl_valid_read
                       ((void *)(& array_1[__gen_e_acsl_range_25][__gen_e_acsl_range_26][0]),
                        sizeof(double),(void *)(& array_1[0][0][0]),(void *)0);
-                      __e_acsl_assert(__gen_e_acsl_valid_read_60,1,"RTE",
-                                      "main",
-                                      "separated_guard: \\valid_read(&array_1[range_25][range_26][0])",
-                                      "tests/memory/separated.c",63);
+                      __gen_e_acsl_assert_data_82.blocking = 1;
+                      __gen_e_acsl_assert_data_82.kind = "RTE";
+                      __gen_e_acsl_assert_data_82.pred_txt = "separated_guard: \\valid_read(&array_1[range_25][range_26][0])";
+                      __gen_e_acsl_assert_data_82.file = "tests/memory/separated.c";
+                      __gen_e_acsl_assert_data_82.fct = "main";
+                      __gen_e_acsl_assert_data_82.line = 63;
+                      __e_acsl_assert(__gen_e_acsl_valid_read_60,
+                                      & __gen_e_acsl_assert_data_82);
+                      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_82);
                       __gen_e_acsl_separated_22 = __e_acsl_separated((size_t)2,
                                                                     & array_1[__gen_e_acsl_range_27][__gen_e_acsl_range_28][0],
                                                                     sizeof(double),
@@ -1571,23 +3039,43 @@ int main(void)
         __gen_e_acsl_range_26 ++;
       }
       e_acsl_end_loop28: ;
-      __e_acsl_assert(! __gen_e_acsl_forall_25,1,"Assertion","main",
-                      "!\\separated(&array_1[0 .. 3][0 .. 2][0], &array_1[3 .. 5][0 .. 2][0])",
-                      "tests/memory/separated.c",63);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_78,
+                                   "\\forall integer range_26;\n  0 <= range_26 <= 2 ==>\n  (\\forall integer range_25;\n     3 <= range_25 <= 5 ==>\n     (\\forall integer range_28;\n        0 <= range_28 <= 2 ==>\n        (\\forall integer range_27;\n           0 <= range_27 <= 3 ==>\n           \\separated(\n             &array_1[range_27][range_28][0], &array_1[range_25][range_26][0]\n             ))))",
+                                   0,__gen_e_acsl_forall_25);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_78,
+                                   "\\separated(&array_1[0 .. 3][0 .. 2][0], &array_1[3 .. 5][0 .. 2][0])",
+                                   0,__gen_e_acsl_forall_25);
+      __gen_e_acsl_assert_data_78.blocking = 1;
+      __gen_e_acsl_assert_data_78.kind = "Assertion";
+      __gen_e_acsl_assert_data_78.pred_txt = "!\\separated(&array_1[0 .. 3][0 .. 2][0], &array_1[3 .. 5][0 .. 2][0])";
+      __gen_e_acsl_assert_data_78.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_78.fct = "main";
+      __gen_e_acsl_assert_data_78.line = 63;
+      __e_acsl_assert(! __gen_e_acsl_forall_25,& __gen_e_acsl_assert_data_78);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_78);
     }
     /*@
     assert
-    ¬\separated(&array_1[0 .. 3][0 .. 2][0], &array_1[3 .. 5][0 .. 2][0]);
-     */
+    !\separated(&array_1[0 .. 3][0 .. 2][0], &array_1[3 .. 5][0 .. 2][0]); */
     ;
     {
       int __gen_e_acsl_forall_29;
       int __gen_e_acsl_range_32;
       int __gen_e_acsl_forall_31;
       int __gen_e_acsl_range_34;
-      __e_acsl_assert(1,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array_1[0 .. 3][2 .. 0][0])",
-                      "tests/memory/separated.c",64);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_83 =
+        {.values = (void *)0};
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_84 =
+        {.values = (void *)0};
+      __gen_e_acsl_assert_data_84.blocking = 1;
+      __gen_e_acsl_assert_data_84.kind = "RTE";
+      __gen_e_acsl_assert_data_84.pred_txt = "separated_guard: \\valid_read(&array_1[0 .. 3][2 .. 0][0])";
+      __gen_e_acsl_assert_data_84.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_84.fct = "main";
+      __gen_e_acsl_assert_data_84.line = 64;
+      __e_acsl_assert(1,& __gen_e_acsl_assert_data_84);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_85 =
+        {.values = (void *)0};
       __gen_e_acsl_forall_29 = 1;
       __gen_e_acsl_range_32 = 0;
       while (1) {
@@ -1623,9 +3111,13 @@ int main(void)
         __gen_e_acsl_range_32 ++;
       }
       e_acsl_end_loop30: ;
-      __e_acsl_assert(__gen_e_acsl_forall_29,1,"RTE","main",
-                      "separated_guard: \\valid_read(&array_1[3 .. 5][0 .. 2][0])",
-                      "tests/memory/separated.c",64);
+      __gen_e_acsl_assert_data_85.blocking = 1;
+      __gen_e_acsl_assert_data_85.kind = "RTE";
+      __gen_e_acsl_assert_data_85.pred_txt = "separated_guard: \\valid_read(&array_1[3 .. 5][0 .. 2][0])";
+      __gen_e_acsl_assert_data_85.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_85.fct = "main";
+      __gen_e_acsl_assert_data_85.line = 64;
+      __e_acsl_assert(__gen_e_acsl_forall_29,& __gen_e_acsl_assert_data_85);
       __gen_e_acsl_forall_31 = 1;
       __gen_e_acsl_range_34 = 0;
       while (1) {
@@ -1654,9 +3146,20 @@ int main(void)
         __gen_e_acsl_range_34 ++;
       }
       e_acsl_end_loop32: ;
-      __e_acsl_assert(__gen_e_acsl_forall_31,1,"Assertion","main",
-                      "\\separated(&array_1[0 .. 3][2 .. 0][0], &array_1[3 .. 5][0 .. 2][0])",
-                      "tests/memory/separated.c",64);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_83,
+                                   "\\forall integer range_34;\n  0 <= range_34 <= 2 ==>\n  (\\forall integer range_33;\n     3 <= range_33 <= 5 ==>\n     (\\forall integer range_36;\n        2 <= range_36 <= 0 ==>\n        (\\forall integer range_35;\n           0 <= range_35 <= 3 ==>\n           \\separated(\n             &array_1[range_35][range_36][0], &array_1[range_33][range_34][0]\n             ))))",
+                                   0,__gen_e_acsl_forall_31);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_83,
+                                   "\\separated(&array_1[0 .. 3][2 .. 0][0], &array_1[3 .. 5][0 .. 2][0])",
+                                   0,__gen_e_acsl_forall_31);
+      __gen_e_acsl_assert_data_83.blocking = 1;
+      __gen_e_acsl_assert_data_83.kind = "Assertion";
+      __gen_e_acsl_assert_data_83.pred_txt = "\\separated(&array_1[0 .. 3][2 .. 0][0], &array_1[3 .. 5][0 .. 2][0])";
+      __gen_e_acsl_assert_data_83.file = "tests/memory/separated.c";
+      __gen_e_acsl_assert_data_83.fct = "main";
+      __gen_e_acsl_assert_data_83.line = 64;
+      __e_acsl_assert(__gen_e_acsl_forall_31,& __gen_e_acsl_assert_data_83);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_83);
     }
     /*@
     assert
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_sizeof.c b/src/plugins/e-acsl/tests/memory/oracle/gen_sizeof.c
index 04238dc3f425095bb6201e4823a9092509c6484e..c6ca292189fef3219396b13b845e3fca55febedd 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_sizeof.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_sizeof.c
@@ -1,18 +1,32 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int x = 0;
   x ++;
-  __e_acsl_assert(1,1,"Assertion","main","sizeof(int) == sizeof(x)",
-                  "tests/memory/sizeof.i",8);
-  /*@ assert sizeof(int) ≡ sizeof(x); */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(int)",0,
+                                 4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(x)",0,4);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "sizeof(int) == sizeof(x)";
+    __gen_e_acsl_assert_data.file = "tests/memory/sizeof.i";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 8;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ assert sizeof(int) == sizeof(x); */ ;
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_stdout.c b/src/plugins/e-acsl/tests/memory/oracle/gen_stdout.c
index 5cf83f209365a5a2030b660c350f5e6c0880a938..884675f470922a95c6901e670637a1d06277e2f4 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_stdout.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_stdout.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -33,26 +34,69 @@ int main(void)
   __e_acsl_globals_init();
   {
     int __gen_e_acsl_valid;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"__fc_stderr",
+                                 (void *)stderr);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(FILE)",
+                                   0,sizeof(FILE));
     __gen_e_acsl_valid = __e_acsl_valid((void *)stderr,sizeof(FILE),
                                         (void *)stderr,(void *)(& stderr));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main",
-                    "\\valid(__fc_stderr)","tests/memory/stdout.c",8);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\valid(__fc_stderr)",0,__gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(__fc_stderr)";
+    __gen_e_acsl_assert_data.file = "tests/memory/stdout.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 8;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(__fc_stderr); */ ;
   {
     int __gen_e_acsl_valid_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"__fc_stdin",
+                                 (void *)stdin);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(FILE)",0,sizeof(FILE));
     __gen_e_acsl_valid_2 = __e_acsl_valid((void *)stdin,sizeof(FILE),
                                           (void *)stdin,(void *)(& stdin));
-    __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","main",
-                    "\\valid(__fc_stdin)","tests/memory/stdout.c",9);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\valid(__fc_stdin)",0,
+                                 __gen_e_acsl_valid_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(__fc_stdin)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/stdout.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 9;
+    __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid(__fc_stdin); */ ;
   {
     int __gen_e_acsl_valid_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"__fc_stdout",
+                                 (void *)stdout);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(FILE)",0,sizeof(FILE));
     __gen_e_acsl_valid_3 = __e_acsl_valid((void *)stdout,sizeof(FILE),
                                           (void *)stdout,(void *)(& stdout));
-    __e_acsl_assert(__gen_e_acsl_valid_3,1,"Assertion","main",
-                    "\\valid(__fc_stdout)","tests/memory/stdout.c",10);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\valid(__fc_stdout)",0,
+                                 __gen_e_acsl_valid_3);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\valid(__fc_stdout)";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/stdout.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 10;
+    __e_acsl_assert(__gen_e_acsl_valid_3,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   /*@ assert \valid(__fc_stdout); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_struct_initialized.c b/src/plugins/e-acsl/tests/memory/oracle/gen_struct_initialized.c
index cfc1ad9048e8045e97dc8923de8b2dac5b084b8b..e57586b58c153dad717e55b0e25fcdbad42d082e 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_struct_initialized.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_struct_initialized.c
@@ -19,60 +19,155 @@ int main(void)
     __e_acsl_store_block((void *)(& static_pair),(size_t)8);
     {
       int __gen_e_acsl_initialized;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,
+                                   "&static_pair.a",
+                                   (void *)(& static_pair.a));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int32_t)",0,sizeof(int32_t));
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& static_pair.a),
                                                       sizeof(int32_t));
-      __e_acsl_assert(! __gen_e_acsl_initialized,1,"Assertion","main",
-                      "!\\initialized(&static_pair.a)",
-                      "tests/memory/struct_initialized.c",13);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&static_pair.a)",0,
+                                   __gen_e_acsl_initialized);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "!\\initialized(&static_pair.a)";
+      __gen_e_acsl_assert_data.file = "tests/memory/struct_initialized.c";
+      __gen_e_acsl_assert_data.fct = "main";
+      __gen_e_acsl_assert_data.line = 13;
+      __e_acsl_assert(! __gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
-    /*@ assert ¬\initialized(&static_pair.a); */ ;
+    /*@ assert !\initialized(&static_pair.a); */ ;
     {
       int __gen_e_acsl_initialized_2;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,
+                                   "&static_pair.b",
+                                   (void *)(& static_pair.b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int32_t)",0,sizeof(int32_t));
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& static_pair.b),
                                                         sizeof(int32_t));
-      __e_acsl_assert(! __gen_e_acsl_initialized_2,1,"Assertion","main",
-                      "!\\initialized(&static_pair.b)",
-                      "tests/memory/struct_initialized.c",14);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\initialized(&static_pair.b)",0,
+                                   __gen_e_acsl_initialized_2);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Assertion";
+      __gen_e_acsl_assert_data_2.pred_txt = "!\\initialized(&static_pair.b)";
+      __gen_e_acsl_assert_data_2.file = "tests/memory/struct_initialized.c";
+      __gen_e_acsl_assert_data_2.fct = "main";
+      __gen_e_acsl_assert_data_2.line = 14;
+      __e_acsl_assert(! __gen_e_acsl_initialized_2,
+                      & __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
-    /*@ assert ¬\initialized(&static_pair.b); */ ;
+    /*@ assert !\initialized(&static_pair.b); */ ;
     __e_acsl_initialize((void *)(& static_pair.a),sizeof(int32_t));
     static_pair.a = 1;
     {
       int __gen_e_acsl_initialized_3;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,
+                                   "&static_pair.a",
+                                   (void *)(& static_pair.a));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int32_t)",0,sizeof(int32_t));
       __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& static_pair.a),
                                                         sizeof(int32_t));
-      __e_acsl_assert(__gen_e_acsl_initialized_3,1,"Assertion","main",
-                      "\\initialized(&static_pair.a)",
-                      "tests/memory/struct_initialized.c",16);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(&static_pair.a)",0,
+                                   __gen_e_acsl_initialized_3);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Assertion";
+      __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(&static_pair.a)";
+      __gen_e_acsl_assert_data_3.file = "tests/memory/struct_initialized.c";
+      __gen_e_acsl_assert_data_3.fct = "main";
+      __gen_e_acsl_assert_data_3.line = 16;
+      __e_acsl_assert(__gen_e_acsl_initialized_3,
+                      & __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     }
     /*@ assert \initialized(&static_pair.a); */ ;
     {
       int __gen_e_acsl_initialized_4;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,
+                                   "&static_pair.b",
+                                   (void *)(& static_pair.b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int32_t)",0,sizeof(int32_t));
       __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& static_pair.b),
                                                         sizeof(int32_t));
-      __e_acsl_assert(! __gen_e_acsl_initialized_4,1,"Assertion","main",
-                      "!\\initialized(&static_pair.b)",
-                      "tests/memory/struct_initialized.c",17);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\initialized(&static_pair.b)",0,
+                                   __gen_e_acsl_initialized_4);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Assertion";
+      __gen_e_acsl_assert_data_4.pred_txt = "!\\initialized(&static_pair.b)";
+      __gen_e_acsl_assert_data_4.file = "tests/memory/struct_initialized.c";
+      __gen_e_acsl_assert_data_4.fct = "main";
+      __gen_e_acsl_assert_data_4.line = 17;
+      __e_acsl_assert(! __gen_e_acsl_initialized_4,
+                      & __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     }
-    /*@ assert ¬\initialized(&static_pair.b); */ ;
+    /*@ assert !\initialized(&static_pair.b); */ ;
     __e_acsl_initialize((void *)(& static_pair.b),sizeof(int32_t));
     static_pair.b = 2;
     {
       int __gen_e_acsl_initialized_5;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,
+                                   "&static_pair.a",
+                                   (void *)(& static_pair.a));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int32_t)",0,sizeof(int32_t));
       __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& static_pair.a),
                                                         sizeof(int32_t));
-      __e_acsl_assert(__gen_e_acsl_initialized_5,1,"Assertion","main",
-                      "\\initialized(&static_pair.a)",
-                      "tests/memory/struct_initialized.c",19);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\initialized(&static_pair.a)",0,
+                                   __gen_e_acsl_initialized_5);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Assertion";
+      __gen_e_acsl_assert_data_5.pred_txt = "\\initialized(&static_pair.a)";
+      __gen_e_acsl_assert_data_5.file = "tests/memory/struct_initialized.c";
+      __gen_e_acsl_assert_data_5.fct = "main";
+      __gen_e_acsl_assert_data_5.line = 19;
+      __e_acsl_assert(__gen_e_acsl_initialized_5,
+                      & __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     }
     /*@ assert \initialized(&static_pair.a); */ ;
     {
       int __gen_e_acsl_initialized_6;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,
+                                   "&static_pair.b",
+                                   (void *)(& static_pair.b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(int32_t)",0,sizeof(int32_t));
       __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& static_pair.b),
                                                         sizeof(int32_t));
-      __e_acsl_assert(__gen_e_acsl_initialized_6,1,"Assertion","main",
-                      "\\initialized(&static_pair.b)",
-                      "tests/memory/struct_initialized.c",20);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "\\initialized(&static_pair.b)",0,
+                                   __gen_e_acsl_initialized_6);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "Assertion";
+      __gen_e_acsl_assert_data_6.pred_txt = "\\initialized(&static_pair.b)";
+      __gen_e_acsl_assert_data_6.file = "tests/memory/struct_initialized.c";
+      __gen_e_acsl_assert_data_6.fct = "main";
+      __gen_e_acsl_assert_data_6.line = 20;
+      __e_acsl_assert(__gen_e_acsl_initialized_6,
+                      & __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     }
     /*@ assert \initialized(&static_pair.b); */ ;
     __e_acsl_delete_block((void *)(& static_pair));
@@ -83,60 +178,150 @@ int main(void)
     __e_acsl_full_init((void *)(& heap_pair));
     {
       int __gen_e_acsl_initialized_7;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,
+                                   "&heap_pair->a",(void *)(& heap_pair->a));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                     "sizeof(int32_t)",0,sizeof(int32_t));
       __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& heap_pair->a),
                                                         sizeof(int32_t));
-      __e_acsl_assert(! __gen_e_acsl_initialized_7,1,"Assertion","main",
-                      "!\\initialized(&heap_pair->a)",
-                      "tests/memory/struct_initialized.c",26);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                   "\\initialized(&heap_pair->a)",0,
+                                   __gen_e_acsl_initialized_7);
+      __gen_e_acsl_assert_data_7.blocking = 1;
+      __gen_e_acsl_assert_data_7.kind = "Assertion";
+      __gen_e_acsl_assert_data_7.pred_txt = "!\\initialized(&heap_pair->a)";
+      __gen_e_acsl_assert_data_7.file = "tests/memory/struct_initialized.c";
+      __gen_e_acsl_assert_data_7.fct = "main";
+      __gen_e_acsl_assert_data_7.line = 26;
+      __e_acsl_assert(! __gen_e_acsl_initialized_7,
+                      & __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
     }
-    /*@ assert ¬\initialized(&heap_pair->a); */ ;
+    /*@ assert !\initialized(&heap_pair->a); */ ;
     {
       int __gen_e_acsl_initialized_8;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,
+                                   "&heap_pair->b",(void *)(& heap_pair->b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                     "sizeof(int32_t)",0,sizeof(int32_t));
       __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& heap_pair->b),
                                                         sizeof(int32_t));
-      __e_acsl_assert(! __gen_e_acsl_initialized_8,1,"Assertion","main",
-                      "!\\initialized(&heap_pair->b)",
-                      "tests/memory/struct_initialized.c",27);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "\\initialized(&heap_pair->b)",0,
+                                   __gen_e_acsl_initialized_8);
+      __gen_e_acsl_assert_data_8.blocking = 1;
+      __gen_e_acsl_assert_data_8.kind = "Assertion";
+      __gen_e_acsl_assert_data_8.pred_txt = "!\\initialized(&heap_pair->b)";
+      __gen_e_acsl_assert_data_8.file = "tests/memory/struct_initialized.c";
+      __gen_e_acsl_assert_data_8.fct = "main";
+      __gen_e_acsl_assert_data_8.line = 27;
+      __e_acsl_assert(! __gen_e_acsl_initialized_8,
+                      & __gen_e_acsl_assert_data_8);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
     }
-    /*@ assert ¬\initialized(&heap_pair->b); */ ;
+    /*@ assert !\initialized(&heap_pair->b); */ ;
     __e_acsl_initialize((void *)(& heap_pair->a),sizeof(int32_t));
     heap_pair->a = 3;
     {
       int __gen_e_acsl_initialized_9;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,
+                                   "&heap_pair->a",(void *)(& heap_pair->a));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                     "sizeof(int32_t)",0,sizeof(int32_t));
       __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(& heap_pair->a),
                                                         sizeof(int32_t));
-      __e_acsl_assert(__gen_e_acsl_initialized_9,1,"Assertion","main",
-                      "\\initialized(&heap_pair->a)",
-                      "tests/memory/struct_initialized.c",29);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "\\initialized(&heap_pair->a)",0,
+                                   __gen_e_acsl_initialized_9);
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "Assertion";
+      __gen_e_acsl_assert_data_9.pred_txt = "\\initialized(&heap_pair->a)";
+      __gen_e_acsl_assert_data_9.file = "tests/memory/struct_initialized.c";
+      __gen_e_acsl_assert_data_9.fct = "main";
+      __gen_e_acsl_assert_data_9.line = 29;
+      __e_acsl_assert(__gen_e_acsl_initialized_9,
+                      & __gen_e_acsl_assert_data_9);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
     }
     /*@ assert \initialized(&heap_pair->a); */ ;
     {
       int __gen_e_acsl_initialized_10;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,
+                                   "&heap_pair->b",(void *)(& heap_pair->b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                     "sizeof(int32_t)",0,sizeof(int32_t));
       __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& heap_pair->b),
                                                          sizeof(int32_t));
-      __e_acsl_assert(! __gen_e_acsl_initialized_10,1,"Assertion","main",
-                      "!\\initialized(&heap_pair->b)",
-                      "tests/memory/struct_initialized.c",30);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "\\initialized(&heap_pair->b)",0,
+                                   __gen_e_acsl_initialized_10);
+      __gen_e_acsl_assert_data_10.blocking = 1;
+      __gen_e_acsl_assert_data_10.kind = "Assertion";
+      __gen_e_acsl_assert_data_10.pred_txt = "!\\initialized(&heap_pair->b)";
+      __gen_e_acsl_assert_data_10.file = "tests/memory/struct_initialized.c";
+      __gen_e_acsl_assert_data_10.fct = "main";
+      __gen_e_acsl_assert_data_10.line = 30;
+      __e_acsl_assert(! __gen_e_acsl_initialized_10,
+                      & __gen_e_acsl_assert_data_10);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
     }
-    /*@ assert ¬\initialized(&heap_pair->b); */ ;
+    /*@ assert !\initialized(&heap_pair->b); */ ;
     __e_acsl_initialize((void *)(& heap_pair->b),sizeof(int32_t));
     heap_pair->b = 4;
     {
       int __gen_e_acsl_initialized_11;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,
+                                   "&heap_pair->a",(void *)(& heap_pair->a));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11,
+                                     "sizeof(int32_t)",0,sizeof(int32_t));
       __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(& heap_pair->a),
                                                          sizeof(int32_t));
-      __e_acsl_assert(__gen_e_acsl_initialized_11,1,"Assertion","main",
-                      "\\initialized(&heap_pair->a)",
-                      "tests/memory/struct_initialized.c",32);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                   "\\initialized(&heap_pair->a)",0,
+                                   __gen_e_acsl_initialized_11);
+      __gen_e_acsl_assert_data_11.blocking = 1;
+      __gen_e_acsl_assert_data_11.kind = "Assertion";
+      __gen_e_acsl_assert_data_11.pred_txt = "\\initialized(&heap_pair->a)";
+      __gen_e_acsl_assert_data_11.file = "tests/memory/struct_initialized.c";
+      __gen_e_acsl_assert_data_11.fct = "main";
+      __gen_e_acsl_assert_data_11.line = 32;
+      __e_acsl_assert(__gen_e_acsl_initialized_11,
+                      & __gen_e_acsl_assert_data_11);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
     }
     /*@ assert \initialized(&heap_pair->a); */ ;
     {
       int __gen_e_acsl_initialized_12;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,
+                                   "&heap_pair->b",(void *)(& heap_pair->b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                     "sizeof(int32_t)",0,sizeof(int32_t));
       __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& heap_pair->b),
                                                          sizeof(int32_t));
-      __e_acsl_assert(__gen_e_acsl_initialized_12,1,"Assertion","main",
-                      "\\initialized(&heap_pair->b)",
-                      "tests/memory/struct_initialized.c",33);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_12,
+                                   "\\initialized(&heap_pair->b)",0,
+                                   __gen_e_acsl_initialized_12);
+      __gen_e_acsl_assert_data_12.blocking = 1;
+      __gen_e_acsl_assert_data_12.kind = "Assertion";
+      __gen_e_acsl_assert_data_12.pred_txt = "\\initialized(&heap_pair->b)";
+      __gen_e_acsl_assert_data_12.file = "tests/memory/struct_initialized.c";
+      __gen_e_acsl_assert_data_12.fct = "main";
+      __gen_e_acsl_assert_data_12.line = 33;
+      __e_acsl_assert(__gen_e_acsl_initialized_12,
+                      & __gen_e_acsl_assert_data_12);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
     }
     /*@ assert \initialized(&heap_pair->b); */ ;
     __e_acsl_delete_block((void *)(& heap_pair));
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_valid.c b/src/plugins/e-acsl/tests/memory/oracle/gen_valid.c
index 78e7579f2309606b261436cfc0fabe82d513e995..adbf4ab8e58422b6f7025499d284945b3531f213 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_valid.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_valid.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -18,27 +19,59 @@ int *f(int *x)
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
     __e_acsl_store_block((void *)(& x),(size_t)8);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&y",
+                                 (void *)(& y));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& y),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&y)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"y",(void *)y);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)y,sizeof(int),(void *)y,
                                           (void *)(& y));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(y)",0,
+                                   __gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(! __gen_e_acsl_and,1,"Assertion","f","!\\valid(y)",
-                    "tests/memory/valid.c",13);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "!\\valid(y)";
+    __gen_e_acsl_assert_data.file = "tests/memory/valid.c";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 13;
+    __e_acsl_assert(! __gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert ¬\valid(y); */ ;
+  /*@ assert !\valid(y); */ ;
   __e_acsl_full_init((void *)(& y));
   y = x;
   {
     int __gen_e_acsl_valid_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"x",(void *)x);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_2 = __e_acsl_valid((void *)x,sizeof(int),(void *)x,
                                           (void *)(& x));
-    __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","f","\\valid(x)",
-                    "tests/memory/valid.c",15);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(x)",0,
+                                 __gen_e_acsl_valid_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(x)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/valid.c";
+    __gen_e_acsl_assert_data_2.fct = "f";
+    __gen_e_acsl_assert_data_2.line = 15;
+    __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid(x); */ ;
   __e_acsl_delete_block((void *)(& x));
@@ -63,15 +96,34 @@ void g(void)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)p,sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(p)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_initialized_2;
       int __gen_e_acsl_and;
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"*p",
+                                   (void *)*p);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&p",
+                                   (void *)(& p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int **)",0,sizeof(int **));
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& p),
                                                         sizeof(int **));
       if (__gen_e_acsl_initialized_2) {
         int __gen_e_acsl_valid_read;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",
+                                     (void *)p);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                       "sizeof(int *)",0,sizeof(int *));
         __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)p,
                                                       sizeof(int *),
                                                       (void *)p,
@@ -79,16 +131,31 @@ void g(void)
         __gen_e_acsl_and = __gen_e_acsl_valid_read;
       }
       else __gen_e_acsl_and = 0;
-      __e_acsl_assert(__gen_e_acsl_and,1,"RTE","g",
-                      "mem_access: \\valid_read(p)","tests/memory/valid.c",
-                      24);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "RTE";
+      __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(p)";
+      __gen_e_acsl_assert_data_2.file = "tests/memory/valid.c";
+      __gen_e_acsl_assert_data_2.fct = "g";
+      __gen_e_acsl_assert_data_2.line = 24;
+      __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)*p,sizeof(int),(void *)*p,
                                           (void *)p);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(*p)",
+                                   0,__gen_e_acsl_valid);
       __gen_e_acsl_and_2 = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","g","\\valid(*p)",
-                    "tests/memory/valid.c",24);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(*p)";
+    __gen_e_acsl_assert_data.file = "tests/memory/valid.c";
+    __gen_e_acsl_assert_data.fct = "g";
+    __gen_e_acsl_assert_data.line = 24;
+    __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(*p); */ ;
   __e_acsl_delete_block((void *)(& p));
@@ -106,19 +173,45 @@ int *__gen_e_acsl_f(int *x)
   {
     int __gen_e_acsl_valid;
     __e_acsl_store_block((void *)(& x),(size_t)8);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"x",(void *)x);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)x,sizeof(int),(void *)x,
                                         (void *)(& x));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","f","\\valid(x)",
-                    "tests/memory/valid.c",9);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(x)",0,
+                                 __gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(x)";
+    __gen_e_acsl_assert_data.file = "tests/memory/valid.c";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 9;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   __retres = f(x);
   {
     int __gen_e_acsl_valid_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"\\result",
+                                 (void *)__retres);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_2 = __e_acsl_valid((void *)__retres,sizeof(int),
                                           (void *)__retres,
                                           (void *)(& __retres));
-    __e_acsl_assert(__gen_e_acsl_valid_2,1,"Postcondition","f",
-                    "\\valid(\\result)","tests/memory/valid.c",10);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\valid(\\result)",0,__gen_e_acsl_valid_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Postcondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(\\result)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/valid.c";
+    __gen_e_acsl_assert_data_2.fct = "f";
+    __gen_e_acsl_assert_data_2.line = 10;
+    __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     __e_acsl_delete_block((void *)(& x));
     __e_acsl_delete_block((void *)(& __retres));
     return __retres;
@@ -166,24 +259,50 @@ int main(void)
     int __gen_e_acsl_and;
     int __gen_e_acsl_and_3;
     int __gen_e_acsl_and_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a",
+                                 (void *)(& a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& a),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&a)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"a",(void *)a);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)a,sizeof(int),(void *)a,
                                           (void *)(& a));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(a)",0,
+                                   __gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
     if (! __gen_e_acsl_and) {
       int __gen_e_acsl_initialized_2;
       int __gen_e_acsl_and_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& b),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&b)",0,
+                                   __gen_e_acsl_initialized_2);
       if (__gen_e_acsl_initialized_2) {
         int __gen_e_acsl_valid_2;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"b",
+                                     (void *)b);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_2 = __e_acsl_valid((void *)b,sizeof(int),
                                               (void *)b,(void *)(& b));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(b)",
+                                     0,__gen_e_acsl_valid_2);
         __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
       }
       else __gen_e_acsl_and_2 = 0;
@@ -192,16 +311,26 @@ int main(void)
     else __gen_e_acsl_and_3 = 0;
     if (__gen_e_acsl_and_3) {
       int __gen_e_acsl_valid_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"X",(void *)X);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_3 = __e_acsl_valid((void *)X,sizeof(int),(void *)X,
                                             (void *)(& X));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(X)",0,
+                                   __gen_e_acsl_valid_3);
       __gen_e_acsl_and_4 = ! __gen_e_acsl_valid_3;
     }
     else __gen_e_acsl_and_4 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main",
-                    "!\\valid(a) && !\\valid(b) && !\\valid(X)",
-                    "tests/memory/valid.c",29);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "!\\valid(a) && !\\valid(b) && !\\valid(X)";
+    __gen_e_acsl_assert_data.file = "tests/memory/valid.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 29;
+    __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert ¬\valid(a) ∧ ¬\valid(b) ∧ ¬\valid(X); */ ;
+  /*@ assert !\valid(a) && !\valid(b) && !\valid(X); */ ;
   __e_acsl_full_init((void *)(& a));
   a = (int *)malloc(sizeof(int));
   {
@@ -209,24 +338,52 @@ int main(void)
     int __gen_e_acsl_and_5;
     int __gen_e_acsl_and_7;
     int __gen_e_acsl_and_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&a",
+                                 (void *)(& a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& a),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&a)",0,
+                                 __gen_e_acsl_initialized_3);
     if (__gen_e_acsl_initialized_3) {
       int __gen_e_acsl_valid_4;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"a",
+                                   (void *)a);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_4 = __e_acsl_valid((void *)a,sizeof(int),(void *)a,
                                             (void *)(& a));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(a)",
+                                   0,__gen_e_acsl_valid_4);
       __gen_e_acsl_and_5 = __gen_e_acsl_valid_4;
     }
     else __gen_e_acsl_and_5 = 0;
     if (__gen_e_acsl_and_5) {
       int __gen_e_acsl_initialized_4;
       int __gen_e_acsl_and_6;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& b),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\initialized(&b)",0,
+                                   __gen_e_acsl_initialized_4);
       if (__gen_e_acsl_initialized_4) {
         int __gen_e_acsl_valid_5;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"b",
+                                     (void *)b);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_5 = __e_acsl_valid((void *)b,sizeof(int),
                                               (void *)b,(void *)(& b));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "\\valid(b)",0,__gen_e_acsl_valid_5);
         __gen_e_acsl_and_6 = __gen_e_acsl_valid_5;
       }
       else __gen_e_acsl_and_6 = 0;
@@ -235,40 +392,79 @@ int main(void)
     else __gen_e_acsl_and_7 = 0;
     if (__gen_e_acsl_and_7) {
       int __gen_e_acsl_valid_6;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"X",
+                                   (void *)X);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_6 = __e_acsl_valid((void *)X,sizeof(int),(void *)X,
                                             (void *)(& X));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(X)",
+                                   0,__gen_e_acsl_valid_6);
       __gen_e_acsl_and_8 = ! __gen_e_acsl_valid_6;
     }
     else __gen_e_acsl_and_8 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_8,1,"Assertion","main",
-                    "\\valid(a) && !\\valid(b) && !\\valid(X)",
-                    "tests/memory/valid.c",31);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(a) && !\\valid(b) && !\\valid(X)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/valid.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 31;
+    __e_acsl_assert(__gen_e_acsl_and_8,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert \valid(a) ∧ ¬\valid(b) ∧ ¬\valid(X); */ ;
+  /*@ assert \valid(a) && !\valid(b) && !\valid(X); */ ;
   X = a;
   {
     int __gen_e_acsl_initialized_5;
     int __gen_e_acsl_and_9;
     int __gen_e_acsl_and_11;
     int __gen_e_acsl_and_12;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&a",
+                                 (void *)(& a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& a),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized(&a)",0,
+                                 __gen_e_acsl_initialized_5);
     if (__gen_e_acsl_initialized_5) {
       int __gen_e_acsl_valid_7;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"a",
+                                   (void *)a);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_7 = __e_acsl_valid((void *)a,sizeof(int),(void *)a,
                                             (void *)(& a));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\valid(a)",
+                                   0,__gen_e_acsl_valid_7);
       __gen_e_acsl_and_9 = __gen_e_acsl_valid_7;
     }
     else __gen_e_acsl_and_9 = 0;
     if (__gen_e_acsl_and_9) {
       int __gen_e_acsl_initialized_6;
       int __gen_e_acsl_and_10;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& b),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(&b)",0,
+                                   __gen_e_acsl_initialized_6);
       if (__gen_e_acsl_initialized_6) {
         int __gen_e_acsl_valid_8;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"b",
+                                     (void *)b);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_8 = __e_acsl_valid((void *)b,sizeof(int),
                                               (void *)b,(void *)(& b));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                     "\\valid(b)",0,__gen_e_acsl_valid_8);
         __gen_e_acsl_and_10 = __gen_e_acsl_valid_8;
       }
       else __gen_e_acsl_and_10 = 0;
@@ -277,16 +473,27 @@ int main(void)
     else __gen_e_acsl_and_11 = 0;
     if (__gen_e_acsl_and_11) {
       int __gen_e_acsl_valid_9;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"X",
+                                   (void *)X);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_9 = __e_acsl_valid((void *)X,sizeof(int),(void *)X,
                                             (void *)(& X));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\valid(X)",
+                                   0,__gen_e_acsl_valid_9);
       __gen_e_acsl_and_12 = __gen_e_acsl_valid_9;
     }
     else __gen_e_acsl_and_12 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_12,1,"Assertion","main",
-                    "\\valid(a) && !\\valid(b) && \\valid(X)",
-                    "tests/memory/valid.c",33);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\valid(a) && !\\valid(b) && \\valid(X)";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/valid.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 33;
+    __e_acsl_assert(__gen_e_acsl_and_12,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert \valid(a) ∧ ¬\valid(b) ∧ \valid(X); */ ;
+  /*@ assert \valid(a) && !\valid(b) && \valid(X); */ ;
   __e_acsl_full_init((void *)(& b));
   b = __gen_e_acsl_f(& n);
   {
@@ -294,24 +501,52 @@ int main(void)
     int __gen_e_acsl_and_13;
     int __gen_e_acsl_and_15;
     int __gen_e_acsl_and_16;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&a",
+                                 (void *)(& a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& a),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\initialized(&a)",0,
+                                 __gen_e_acsl_initialized_7);
     if (__gen_e_acsl_initialized_7) {
       int __gen_e_acsl_valid_10;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"a",
+                                   (void *)a);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_10 = __e_acsl_valid((void *)a,sizeof(int),(void *)a,
                                              (void *)(& a));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\valid(a)",
+                                   0,__gen_e_acsl_valid_10);
       __gen_e_acsl_and_13 = __gen_e_acsl_valid_10;
     }
     else __gen_e_acsl_and_13 = 0;
     if (__gen_e_acsl_and_13) {
       int __gen_e_acsl_initialized_8;
       int __gen_e_acsl_and_14;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& b),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\initialized(&b)",0,
+                                   __gen_e_acsl_initialized_8);
       if (__gen_e_acsl_initialized_8) {
         int __gen_e_acsl_valid_11;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"b",
+                                     (void *)b);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_11 = __e_acsl_valid((void *)b,sizeof(int),
                                                (void *)b,(void *)(& b));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                     "\\valid(b)",0,__gen_e_acsl_valid_11);
         __gen_e_acsl_and_14 = __gen_e_acsl_valid_11;
       }
       else __gen_e_acsl_and_14 = 0;
@@ -320,40 +555,79 @@ int main(void)
     else __gen_e_acsl_and_15 = 0;
     if (__gen_e_acsl_and_15) {
       int __gen_e_acsl_valid_12;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"X",
+                                   (void *)X);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_12 = __e_acsl_valid((void *)X,sizeof(int),(void *)X,
                                              (void *)(& X));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\valid(X)",
+                                   0,__gen_e_acsl_valid_12);
       __gen_e_acsl_and_16 = __gen_e_acsl_valid_12;
     }
     else __gen_e_acsl_and_16 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_16,1,"Assertion","main",
-                    "\\valid(a) && \\valid(b) && \\valid(X)",
-                    "tests/memory/valid.c",35);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\valid(a) && \\valid(b) && \\valid(X)";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/valid.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 35;
+    __e_acsl_assert(__gen_e_acsl_and_16,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  /*@ assert \valid(a) ∧ \valid(b) ∧ \valid(X); */ ;
+  /*@ assert \valid(a) && \valid(b) && \valid(X); */ ;
   X = b;
   {
     int __gen_e_acsl_initialized_9;
     int __gen_e_acsl_and_17;
     int __gen_e_acsl_and_19;
     int __gen_e_acsl_and_20;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&a",
+                                 (void *)(& a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(& a),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\initialized(&a)",0,
+                                 __gen_e_acsl_initialized_9);
     if (__gen_e_acsl_initialized_9) {
       int __gen_e_acsl_valid_13;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"a",
+                                   (void *)a);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_13 = __e_acsl_valid((void *)a,sizeof(int),(void *)a,
                                              (void *)(& a));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\valid(a)",
+                                   0,__gen_e_acsl_valid_13);
       __gen_e_acsl_and_17 = __gen_e_acsl_valid_13;
     }
     else __gen_e_acsl_and_17 = 0;
     if (__gen_e_acsl_and_17) {
       int __gen_e_acsl_initialized_10;
       int __gen_e_acsl_and_18;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& b),
                                                          sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\initialized(&b)",0,
+                                   __gen_e_acsl_initialized_10);
       if (__gen_e_acsl_initialized_10) {
         int __gen_e_acsl_valid_14;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"b",
+                                     (void *)b);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_14 = __e_acsl_valid((void *)b,sizeof(int),
                                                (void *)b,(void *)(& b));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                     "\\valid(b)",0,__gen_e_acsl_valid_14);
         __gen_e_acsl_and_18 = __gen_e_acsl_valid_14;
       }
       else __gen_e_acsl_and_18 = 0;
@@ -362,16 +636,27 @@ int main(void)
     else __gen_e_acsl_and_19 = 0;
     if (__gen_e_acsl_and_19) {
       int __gen_e_acsl_valid_15;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"X",
+                                   (void *)X);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_15 = __e_acsl_valid((void *)X,sizeof(int),(void *)X,
                                              (void *)(& X));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\valid(X)",
+                                   0,__gen_e_acsl_valid_15);
       __gen_e_acsl_and_20 = __gen_e_acsl_valid_15;
     }
     else __gen_e_acsl_and_20 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_20,1,"Assertion","main",
-                    "\\valid(a) && \\valid(b) && \\valid(X)",
-                    "tests/memory/valid.c",37);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "\\valid(a) && \\valid(b) && \\valid(X)";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/valid.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 37;
+    __e_acsl_assert(__gen_e_acsl_and_20,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert \valid(a) ∧ \valid(b) ∧ \valid(X); */ ;
+  /*@ assert \valid(a) && \valid(b) && \valid(X); */ ;
   __e_acsl_full_init((void *)(& c));
   c = & a;
   __e_acsl_full_init((void *)(& d));
@@ -379,16 +664,36 @@ int main(void)
   {
     int __gen_e_acsl_initialized_11;
     int __gen_e_acsl_and_22;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"c",(void *)c);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)c,
                                                        sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "\\initialized(c)",0,
+                                 __gen_e_acsl_initialized_11);
     if (__gen_e_acsl_initialized_11) {
       int __gen_e_acsl_initialized_12;
       int __gen_e_acsl_and_21;
       int __gen_e_acsl_valid_16;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"*c",
+                                   (void *)*c);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&c",
+                                   (void *)(& c));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                     "sizeof(int **)",0,sizeof(int **));
       __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& c),
                                                          sizeof(int **));
       if (__gen_e_acsl_initialized_12) {
         int __gen_e_acsl_valid_read;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"c",
+                                     (void *)c);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                       "sizeof(int *)",0,sizeof(int *));
         __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)c,
                                                       sizeof(int *),
                                                       (void *)c,
@@ -396,16 +701,31 @@ int main(void)
         __gen_e_acsl_and_21 = __gen_e_acsl_valid_read;
       }
       else __gen_e_acsl_and_21 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_21,1,"RTE","main",
-                      "mem_access: \\valid_read(c)","tests/memory/valid.c",
-                      40);
+      __gen_e_acsl_assert_data_7.blocking = 1;
+      __gen_e_acsl_assert_data_7.kind = "RTE";
+      __gen_e_acsl_assert_data_7.pred_txt = "mem_access: \\valid_read(c)";
+      __gen_e_acsl_assert_data_7.file = "tests/memory/valid.c";
+      __gen_e_acsl_assert_data_7.fct = "main";
+      __gen_e_acsl_assert_data_7.line = 40;
+      __e_acsl_assert(__gen_e_acsl_and_21,& __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_16 = __e_acsl_valid((void *)*c,sizeof(int),
                                              (void *)*c,(void *)c);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "\\valid(*c)",0,__gen_e_acsl_valid_16);
       __gen_e_acsl_and_22 = __gen_e_acsl_valid_16;
     }
     else __gen_e_acsl_and_22 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_22,1,"Assertion","main","\\valid(*c)",
-                    "tests/memory/valid.c",40);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "\\valid(*c)";
+    __gen_e_acsl_assert_data_6.file = "tests/memory/valid.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 40;
+    __e_acsl_assert(__gen_e_acsl_and_22,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
   /*@ assert \valid(*c); */ ;
   {
@@ -413,10 +733,24 @@ int main(void)
     int __gen_e_acsl_and_23;
     int __gen_e_acsl_initialized_14;
     int __gen_e_acsl_and_27;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"*d",
+                                 (void *)*d);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&d",
+                                 (void *)(& d));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                   "sizeof(int ***)",0,sizeof(int ***));
     __gen_e_acsl_initialized_13 = __e_acsl_initialized((void *)(& d),
                                                        sizeof(int ***));
     if (__gen_e_acsl_initialized_13) {
       int __gen_e_acsl_valid_read_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"d",
+                                   (void *)d);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                     "sizeof(int **)",0,sizeof(int **));
       __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)d,
                                                       sizeof(int **),
                                                       (void *)d,
@@ -424,26 +758,57 @@ int main(void)
       __gen_e_acsl_and_23 = __gen_e_acsl_valid_read_2;
     }
     else __gen_e_acsl_and_23 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_23,1,"RTE","main",
-                    "mem_access: \\valid_read(d)","tests/memory/valid.c",41);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "RTE";
+    __gen_e_acsl_assert_data_9.pred_txt = "mem_access: \\valid_read(d)";
+    __gen_e_acsl_assert_data_9.file = "tests/memory/valid.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 41;
+    __e_acsl_assert(__gen_e_acsl_and_23,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_14 = __e_acsl_initialized((void *)*d,
                                                        sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                 "\\initialized(*d)",0,
+                                 __gen_e_acsl_initialized_14);
     if (__gen_e_acsl_initialized_14) {
       int __gen_e_acsl_initialized_15;
       int __gen_e_acsl_and_25;
       int __gen_e_acsl_initialized_17;
       int __gen_e_acsl_and_26;
       int __gen_e_acsl_valid_17;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"*(*d)",
+                                   (void *)*(*d));
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"d",
+                                   (void *)d);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                     "sizeof(int **)",0,sizeof(int **));
       __gen_e_acsl_initialized_15 = __e_acsl_initialized((void *)d,
                                                          sizeof(int **));
       if (__gen_e_acsl_initialized_15) {
         int __gen_e_acsl_initialized_16;
         int __gen_e_acsl_and_24;
         int __gen_e_acsl_valid_read_4;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"*d",
+                                     (void *)*d);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"&d",
+                                     (void *)(& d));
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11,
+                                       "sizeof(int ***)",0,sizeof(int ***));
         __gen_e_acsl_initialized_16 = __e_acsl_initialized((void *)(& d),
                                                            sizeof(int ***));
         if (__gen_e_acsl_initialized_16) {
           int __gen_e_acsl_valid_read_3;
+          __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"d",
+                                       (void *)d);
+          __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11,
+                                         "sizeof(int **)",0,sizeof(int **));
           __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)d,
                                                           sizeof(int **),
                                                           (void *)d,
@@ -451,22 +816,44 @@ int main(void)
           __gen_e_acsl_and_24 = __gen_e_acsl_valid_read_3;
         }
         else __gen_e_acsl_and_24 = 0;
-        __e_acsl_assert(__gen_e_acsl_and_24,1,"RTE","main",
-                        "mem_access: \\valid_read(d)","tests/memory/valid.c",
-                        41);
+        __gen_e_acsl_assert_data_11.blocking = 1;
+        __gen_e_acsl_assert_data_11.kind = "RTE";
+        __gen_e_acsl_assert_data_11.pred_txt = "mem_access: \\valid_read(d)";
+        __gen_e_acsl_assert_data_11.file = "tests/memory/valid.c";
+        __gen_e_acsl_assert_data_11.fct = "main";
+        __gen_e_acsl_assert_data_11.line = 41;
+        __e_acsl_assert(__gen_e_acsl_and_24,& __gen_e_acsl_assert_data_11);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                       "sizeof(int *)",0,sizeof(int *));
         __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)*d,
                                                         sizeof(int *),
                                                         (void *)*d,(void *)d);
         __gen_e_acsl_and_25 = __gen_e_acsl_valid_read_4;
       }
       else __gen_e_acsl_and_25 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_25,1,"RTE","main",
-                      "mem_access: \\valid_read(*d)","tests/memory/valid.c",
-                      41);
+      __gen_e_acsl_assert_data_10.blocking = 1;
+      __gen_e_acsl_assert_data_10.kind = "RTE";
+      __gen_e_acsl_assert_data_10.pred_txt = "mem_access: \\valid_read(*d)";
+      __gen_e_acsl_assert_data_10.file = "tests/memory/valid.c";
+      __gen_e_acsl_assert_data_10.fct = "main";
+      __gen_e_acsl_assert_data_10.line = 41;
+      __e_acsl_assert(__gen_e_acsl_and_25,& __gen_e_acsl_assert_data_10);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"&d",
+                                   (void *)(& d));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                     "sizeof(int ***)",0,sizeof(int ***));
       __gen_e_acsl_initialized_17 = __e_acsl_initialized((void *)(& d),
                                                          sizeof(int ***));
       if (__gen_e_acsl_initialized_17) {
         int __gen_e_acsl_valid_read_5;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"d",
+                                     (void *)d);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                       "sizeof(int **)",0,sizeof(int **));
         __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)d,
                                                         sizeof(int **),
                                                         (void *)d,
@@ -474,16 +861,31 @@ int main(void)
         __gen_e_acsl_and_26 = __gen_e_acsl_valid_read_5;
       }
       else __gen_e_acsl_and_26 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_26,1,"RTE","main",
-                      "mem_access: \\valid_read(d)","tests/memory/valid.c",
-                      41);
+      __gen_e_acsl_assert_data_12.blocking = 1;
+      __gen_e_acsl_assert_data_12.kind = "RTE";
+      __gen_e_acsl_assert_data_12.pred_txt = "mem_access: \\valid_read(d)";
+      __gen_e_acsl_assert_data_12.file = "tests/memory/valid.c";
+      __gen_e_acsl_assert_data_12.fct = "main";
+      __gen_e_acsl_assert_data_12.line = 41;
+      __e_acsl_assert(__gen_e_acsl_and_26,& __gen_e_acsl_assert_data_12);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_17 = __e_acsl_valid((void *)*(*d),sizeof(int),
                                              (void *)*(*d),(void *)*d);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "\\valid(*(*d))",0,__gen_e_acsl_valid_17);
       __gen_e_acsl_and_27 = __gen_e_acsl_valid_17;
     }
     else __gen_e_acsl_and_27 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_27,1,"Assertion","main",
-                    "\\valid(*(*d))","tests/memory/valid.c",41);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "\\valid(*(*d))";
+    __gen_e_acsl_assert_data_8.file = "tests/memory/valid.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 41;
+    __e_acsl_assert(__gen_e_acsl_and_27,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
   /*@ assert \valid(*(*d)); */ ;
   free((void *)a);
@@ -492,25 +894,53 @@ int main(void)
     int __gen_e_acsl_and_28;
     int __gen_e_acsl_and_30;
     int __gen_e_acsl_and_31;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"&a",
+                                 (void *)(& a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_18 = __e_acsl_initialized((void *)(& a),
                                                        sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                 "\\initialized(&a)",0,
+                                 __gen_e_acsl_initialized_18);
     if (__gen_e_acsl_initialized_18) {
       int __gen_e_acsl_valid_18;
-      /*@ assert Eva: dangling_pointer: ¬\dangling(&a); */
+      /*@ assert Eva: dangling_pointer: !\dangling(&a); */
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"a",
+                                   (void *)a);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_18 = __e_acsl_valid((void *)a,sizeof(int),(void *)a,
                                              (void *)(& a));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                   "\\valid(a)",0,__gen_e_acsl_valid_18);
       __gen_e_acsl_and_28 = __gen_e_acsl_valid_18;
     }
     else __gen_e_acsl_and_28 = 0;
     if (! __gen_e_acsl_and_28) {
       int __gen_e_acsl_initialized_19;
       int __gen_e_acsl_and_29;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_19 = __e_acsl_initialized((void *)(& b),
                                                          sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                   "\\initialized(&b)",0,
+                                   __gen_e_acsl_initialized_19);
       if (__gen_e_acsl_initialized_19) {
         int __gen_e_acsl_valid_19;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"b",
+                                     (void *)b);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_19 = __e_acsl_valid((void *)b,sizeof(int),
                                                (void *)b,(void *)(& b));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                     "\\valid(b)",0,__gen_e_acsl_valid_19);
         __gen_e_acsl_and_29 = __gen_e_acsl_valid_19;
       }
       else __gen_e_acsl_and_29 = 0;
@@ -519,22 +949,47 @@ int main(void)
     else __gen_e_acsl_and_30 = 0;
     if (__gen_e_acsl_and_30) {
       int __gen_e_acsl_valid_20;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"X",
+                                   (void *)X);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_20 = __e_acsl_valid((void *)X,sizeof(int),(void *)X,
                                              (void *)(& X));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                   "\\valid(X)",0,__gen_e_acsl_valid_20);
       __gen_e_acsl_and_31 = __gen_e_acsl_valid_20;
     }
     else __gen_e_acsl_and_31 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_31,1,"Assertion","main",
-                    "!\\valid(a) && \\valid(b) && \\valid(X)",
-                    "tests/memory/valid.c",43);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "!\\valid(a) && \\valid(b) && \\valid(X)";
+    __gen_e_acsl_assert_data_13.file = "tests/memory/valid.c";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 43;
+    __e_acsl_assert(__gen_e_acsl_and_31,& __gen_e_acsl_assert_data_13);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
   }
-  /*@ assert ¬\valid(a) ∧ \valid(b) ∧ \valid(X); */ ;
+  /*@ assert !\valid(a) && \valid(b) && \valid(X); */ ;
   {
     int __gen_e_acsl_valid_21;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,"&Z",
+                                 (void *)(& Z));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_21 = __e_acsl_valid((void *)(& Z),sizeof(int),
                                            (void *)(& Z),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_21,1,"Assertion","main","\\valid(&Z)",
-                    "tests/memory/valid.c",44);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_14,"\\valid(&Z)",
+                                 0,__gen_e_acsl_valid_21);
+    __gen_e_acsl_assert_data_14.blocking = 1;
+    __gen_e_acsl_assert_data_14.kind = "Assertion";
+    __gen_e_acsl_assert_data_14.pred_txt = "\\valid(&Z)";
+    __gen_e_acsl_assert_data_14.file = "tests/memory/valid.c";
+    __gen_e_acsl_assert_data_14.fct = "main";
+    __gen_e_acsl_assert_data_14.line = 44;
+    __e_acsl_assert(__gen_e_acsl_valid_21,& __gen_e_acsl_assert_data_14);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
   }
   /*@ assert \valid(&Z); */ ;
   g();
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_valid_alias.c b/src/plugins/e-acsl/tests/memory/oracle/gen_valid_alias.c
index bd36506b4f1487339a94a483e2eac8484eae8caf..cc017e1aac35f9c6b0ec9dbb9d45db83ff9a6614 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_valid_alias.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_valid_alias.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -17,35 +18,66 @@ int main(void)
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
     int __gen_e_acsl_and_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&a",
+                                 (void *)(& a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& a),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&a)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"a",(void *)a);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)a,sizeof(int),(void *)a,
                                           (void *)(& a));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(a)",0,
+                                   __gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
     if (! __gen_e_acsl_and) {
       int __gen_e_acsl_initialized_2;
       int __gen_e_acsl_and_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& b),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&b)",0,
+                                   __gen_e_acsl_initialized_2);
       if (__gen_e_acsl_initialized_2) {
         int __gen_e_acsl_valid_2;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"b",
+                                     (void *)b);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_2 = __e_acsl_valid((void *)b,sizeof(int),
                                               (void *)b,(void *)(& b));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(b)",
+                                     0,__gen_e_acsl_valid_2);
         __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
       }
       else __gen_e_acsl_and_2 = 0;
       __gen_e_acsl_and_3 = ! __gen_e_acsl_and_2;
     }
     else __gen_e_acsl_and_3 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main",
-                    "!\\valid(a) && !\\valid(b)",
-                    "tests/memory/valid_alias.c",9);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "!\\valid(a) && !\\valid(b)";
+    __gen_e_acsl_assert_data.file = "tests/memory/valid_alias.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 9;
+    __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert ¬\valid(a) ∧ ¬\valid(b); */ ;
+  /*@ assert !\valid(a) && !\valid(b); */ ;
   __e_acsl_full_init((void *)(& a));
   a = (int *)malloc(sizeof(int));
   __e_acsl_initialize((void *)a,sizeof(int));
@@ -56,89 +88,180 @@ int main(void)
     int __gen_e_acsl_initialized_3;
     int __gen_e_acsl_and_4;
     int __gen_e_acsl_and_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&a",
+                                 (void *)(& a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& a),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&a)",0,
+                                 __gen_e_acsl_initialized_3);
     if (__gen_e_acsl_initialized_3) {
       int __gen_e_acsl_valid_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"a",
+                                   (void *)a);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_3 = __e_acsl_valid((void *)a,sizeof(int),(void *)a,
                                             (void *)(& a));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(a)",
+                                   0,__gen_e_acsl_valid_3);
       __gen_e_acsl_and_4 = __gen_e_acsl_valid_3;
     }
     else __gen_e_acsl_and_4 = 0;
     if (__gen_e_acsl_and_4) {
       int __gen_e_acsl_initialized_4;
       int __gen_e_acsl_and_5;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& b),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\initialized(&b)",0,
+                                   __gen_e_acsl_initialized_4);
       if (__gen_e_acsl_initialized_4) {
         int __gen_e_acsl_valid_4;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"b",
+                                     (void *)b);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_4 = __e_acsl_valid((void *)b,sizeof(int),
                                               (void *)b,(void *)(& b));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "\\valid(b)",0,__gen_e_acsl_valid_4);
         __gen_e_acsl_and_5 = __gen_e_acsl_valid_4;
       }
       else __gen_e_acsl_and_5 = 0;
       __gen_e_acsl_and_6 = __gen_e_acsl_and_5;
     }
     else __gen_e_acsl_and_6 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","main",
-                    "\\valid(a) && \\valid(b)","tests/memory/valid_alias.c",
-                    13);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(a) && \\valid(b)";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/valid_alias.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 13;
+    __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert \valid(a) ∧ \valid(b); */ ;
+  /*@ assert \valid(a) && \valid(b); */ ;
   {
     int __gen_e_acsl_initialized_5;
     int __gen_e_acsl_and_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"*b",0,*b);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"n",0,n);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&b",
+                                 (void *)(& b));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& b),
                                                       sizeof(int *));
     if (__gen_e_acsl_initialized_5) {
       int __gen_e_acsl_valid_read;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"b",
+                                   (void *)b);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)b,sizeof(int),
                                                     (void *)b,(void *)(& b));
       __gen_e_acsl_and_7 = __gen_e_acsl_valid_read;
     }
     else __gen_e_acsl_and_7 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_7,1,"RTE","main",
-                    "mem_access: \\valid_read(b)",
-                    "tests/memory/valid_alias.c",14);
-    __e_acsl_assert(*b == n,1,"Assertion","main","*b == n",
-                    "tests/memory/valid_alias.c",14);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "RTE";
+    __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read(b)";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/valid_alias.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 14;
+    __e_acsl_assert(__gen_e_acsl_and_7,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "*b == n";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/valid_alias.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 14;
+    __e_acsl_assert(*b == n,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert *b ≡ n; */ ;
+  /*@ assert *b == n; */ ;
   free((void *)b);
   {
     int __gen_e_acsl_initialized_6;
     int __gen_e_acsl_and_8;
     int __gen_e_acsl_and_10;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&a",
+                                 (void *)(& a));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& a),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\initialized(&a)",0,
+                                 __gen_e_acsl_initialized_6);
     if (__gen_e_acsl_initialized_6) {
       int __gen_e_acsl_valid_5;
-      /*@ assert Eva: dangling_pointer: ¬\dangling(&a); */
+      /*@ assert Eva: dangling_pointer: !\dangling(&a); */
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"a",
+                                   (void *)a);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_5 = __e_acsl_valid((void *)a,sizeof(int),(void *)a,
                                             (void *)(& a));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\valid(a)",
+                                   0,__gen_e_acsl_valid_5);
       __gen_e_acsl_and_8 = __gen_e_acsl_valid_5;
     }
     else __gen_e_acsl_and_8 = 0;
     if (! __gen_e_acsl_and_8) {
       int __gen_e_acsl_initialized_7;
       int __gen_e_acsl_and_9;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&b",
+                                   (void *)(& b));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& b),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\initialized(&b)",0,
+                                   __gen_e_acsl_initialized_7);
       if (__gen_e_acsl_initialized_7) {
         int __gen_e_acsl_valid_6;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"b",
+                                     (void *)b);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_6 = __e_acsl_valid((void *)b,sizeof(int),
                                               (void *)b,(void *)(& b));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                     "\\valid(b)",0,__gen_e_acsl_valid_6);
         __gen_e_acsl_and_9 = __gen_e_acsl_valid_6;
       }
       else __gen_e_acsl_and_9 = 0;
       __gen_e_acsl_and_10 = ! __gen_e_acsl_and_9;
     }
     else __gen_e_acsl_and_10 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_10,1,"Assertion","main",
-                    "!\\valid(a) && !\\valid(b)",
-                    "tests/memory/valid_alias.c",16);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(a) && !\\valid(b)";
+    __gen_e_acsl_assert_data_5.file = "tests/memory/valid_alias.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 16;
+    __e_acsl_assert(__gen_e_acsl_and_10,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert ¬\valid(a) ∧ ¬\valid(b); */ ;
+  /*@ assert !\valid(a) && !\valid(b); */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(& b));
   __e_acsl_delete_block((void *)(& a));
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_valid_in_contract.c b/src/plugins/e-acsl/tests/memory/oracle/gen_valid_in_contract.c
index b8910535a12c93389c032a422e0f2d5df6a56e5b..2312f0f7ce7832a8236dac8e1c6c12ff7c42c99e 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_valid_in_contract.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_valid_in_contract.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -9,12 +10,12 @@ struct list {
    struct list *next ;
 };
 /*@ behavior B1:
-      assumes l ≡ \null;
-      ensures \result ≡ \old(l);
+      assumes l == \null;
+      ensures \result == \old(l);
     
     behavior B2:
-      assumes ¬\valid(l) ∨ ¬\valid(l->next);
-      ensures \result ≡ \old(l);
+      assumes !\valid(l) || !\valid(l->next);
+      ensures \result == \old(l);
  */
 struct list *__gen_e_acsl_f(struct list *l);
 
@@ -54,12 +55,12 @@ int main(void)
 }
 
 /*@ behavior B1:
-      assumes l ≡ \null;
-      ensures \result ≡ \old(l);
+      assumes l == \null;
+      ensures \result == \old(l);
     
     behavior B2:
-      assumes ¬\valid(l) ∨ ¬\valid(l->next);
-      ensures \result ≡ \old(l);
+      assumes !\valid(l) || !\valid(l->next);
+      ensures \result == \old(l);
  */
 struct list *__gen_e_acsl_f(struct list *l)
 {
@@ -86,13 +87,25 @@ struct list *__gen_e_acsl_f(struct list *l)
       if (__gen_e_acsl_initialized) {
         int __gen_e_acsl_valid_read;
         int __gen_e_acsl_valid_2;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&l->next",
+                                     (void *)(& l->next));
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(struct list *)",0,
+                                       sizeof(struct list *));
         __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(& l->next),
                                                       sizeof(struct list *),
                                                       (void *)(& l->next),
                                                       (void *)0);
-        __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","f",
-                        "mem_access: \\valid_read(&l->next)",
-                        "tests/memory/valid_in_contract.c",17);
+        __gen_e_acsl_assert_data.blocking = 1;
+        __gen_e_acsl_assert_data.kind = "RTE";
+        __gen_e_acsl_assert_data.pred_txt = "mem_access: \\valid_read(&l->next)";
+        __gen_e_acsl_assert_data.file = "tests/memory/valid_in_contract.c";
+        __gen_e_acsl_assert_data.fct = "f";
+        __gen_e_acsl_assert_data.line = 17;
+        __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
         __gen_e_acsl_valid_2 = __e_acsl_valid((void *)l->next,
                                               sizeof(struct list),
                                               (void *)l->next,
@@ -112,18 +125,42 @@ struct list *__gen_e_acsl_f(struct list *l)
     int __gen_e_acsl_assumes_value;
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == __gen_e_acsl_at,
-                                                    1,"Postcondition","f",
-                                                    "B1: \\result == \\old(l)",
-                                                    "tests/memory/valid_in_contract.c",
-                                                    15);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"\\result",
+                                   (void *)__retres);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"\\old(l)",
+                                   (void *)__gen_e_acsl_at);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Postcondition";
+      __gen_e_acsl_assert_data_2.pred_txt = "B1: \\result == \\old(l)";
+      __gen_e_acsl_assert_data_2.file = "tests/memory/valid_in_contract.c";
+      __gen_e_acsl_assert_data_2.fct = "f";
+      __gen_e_acsl_assert_data_2.line = 15;
+      __e_acsl_assert(__retres == __gen_e_acsl_at,
+                      & __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+    }
     __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1);
-    if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == __gen_e_acsl_at_2,
-                                                    1,"Postcondition","f",
-                                                    "B2: \\result == \\old(l)",
-                                                    "tests/memory/valid_in_contract.c",
-                                                    18);
+    if (__gen_e_acsl_assumes_value) {
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"\\result",
+                                   (void *)__retres);
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"\\old(l)",
+                                   (void *)__gen_e_acsl_at_2);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Postcondition";
+      __gen_e_acsl_assert_data_3.pred_txt = "B2: \\result == \\old(l)";
+      __gen_e_acsl_assert_data_3.file = "tests/memory/valid_in_contract.c";
+      __gen_e_acsl_assert_data_3.fct = "f";
+      __gen_e_acsl_assert_data_3.line = 18;
+      __e_acsl_assert(__retres == __gen_e_acsl_at_2,
+                      & __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+    }
     __e_acsl_contract_clean(__gen_e_acsl_contract);
     __e_acsl_delete_block((void *)(& l));
     __e_acsl_delete_block((void *)(& __retres));
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_vector.c b/src/plugins/e-acsl/tests/memory/oracle/gen_vector.c
index f35eefe1d62032a0d7b35743ac9a0fc8150430d6..e21749c2561d82c40a2001ad219d0d3eac25706d 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_vector.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_vector.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -14,8 +15,14 @@ int *new_inversed(int len, int *v)
     int __gen_e_acsl_valid;
     int __gen_e_acsl_and;
     __e_acsl_store_block((void *)(& v),(size_t)8);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"v",(void *)v);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)v,sizeof(int),(void *)v,
                                         (void *)(& v));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(v)",0,
+                                 __gen_e_acsl_valid);
     if (__gen_e_acsl_valid) {
       unsigned long __gen_e_acsl_offset;
       __e_acsl_mpz_t __gen_e_acsl_offset_2;
@@ -24,14 +31,24 @@ int *new_inversed(int len, int *v)
       unsigned long __gen_e_acsl_block_length;
       __e_acsl_mpz_t __gen_e_acsl_block_length_2;
       int __gen_e_acsl_le;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"v",(void *)v);
       __gen_e_acsl_offset = __e_acsl_offset((void *)v);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "\\offset(v)",0,__gen_e_acsl_offset);
       __gmpz_init_set_ui(__gen_e_acsl_offset_2,__gen_e_acsl_offset);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"len",0,len);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,4);
       __gmpz_init_set_si(__gen_e_acsl_,len * 4L);
       __gmpz_init(__gen_e_acsl_add);
       __gmpz_add(__gen_e_acsl_add,
                  (__e_acsl_mpz_struct const *)(__gen_e_acsl_offset_2),
                  (__e_acsl_mpz_struct const *)(__gen_e_acsl_));
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"v",(void *)v);
       __gen_e_acsl_block_length = __e_acsl_block_length((void *)v);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "\\block_length(v)",0,
+                                     __gen_e_acsl_block_length);
       __gmpz_init_set_ui(__gen_e_acsl_block_length_2,
                          __gen_e_acsl_block_length);
       __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_add),
@@ -43,12 +60,16 @@ int *new_inversed(int len, int *v)
       __gmpz_clear(__gen_e_acsl_block_length_2);
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","new_inversed",
-                    "\\valid(v) && \\offset(v) + len * sizeof(int) <= \\block_length(v)",
-                    "tests/memory/vector.c",12);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(v) && \\offset(v) + len * sizeof(int) <= \\block_length(v)";
+    __gen_e_acsl_assert_data.file = "tests/memory/vector.c";
+    __gen_e_acsl_assert_data.fct = "new_inversed";
+    __gen_e_acsl_assert_data.line = 12;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@
-  assert \valid(v) ∧ \offset(v) + len * sizeof(int) ≤ \block_length(v);
+  /*@ assert \valid(v) && \offset(v) + len * sizeof(int) <= \block_length(v);
    */
   ;
   __e_acsl_full_init((void *)(& p));
@@ -76,19 +97,47 @@ int main(void)
   __e_acsl_full_init((void *)(& v1));
   {
     int __gen_e_acsl_valid;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&v1[2]",
+                                 (void *)(& v1[2]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)(& v1[2]),sizeof(int),
                                         (void *)(v1),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main",
-                    "\\valid(&v1[2])","tests/memory/vector.c",22);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\valid(&v1[2])",0,__gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(&v1[2])";
+    __gen_e_acsl_assert_data.file = "tests/memory/vector.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 22;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(&v1[2]); */ ;
   LAST = v1[2];
   {
     int __gen_e_acsl_initialized;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&v1[2]",
+                                 (void *)(& v1[2]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& v1[2]),
                                                     sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main",
-                    "\\initialized(&v1[2])","tests/memory/vector.c",24);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&v1[2])",0,
+                                 __gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&v1[2])";
+    __gen_e_acsl_assert_data_2.file = "tests/memory/vector.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 24;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \initialized(&v1[2]); */ ;
   __e_acsl_full_init((void *)(& v2));
@@ -96,15 +145,41 @@ int main(void)
   LAST = *(v2 + 2);
   {
     int __gen_e_acsl_initialized_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"v2",
+                                 (void *)v2);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(v2 + 2),
                                                       sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion","main",
-                    "\\initialized(v2 + 2)","tests/memory/vector.c",27);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized(v2 + 2)",0,
+                                 __gen_e_acsl_initialized_2);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\initialized(v2 + 2)";
+    __gen_e_acsl_assert_data_3.file = "tests/memory/vector.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 27;
+    __e_acsl_assert(__gen_e_acsl_initialized_2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   /*@ assert \initialized(v2 + 2); */ ;
-  __e_acsl_assert(LAST == 1,1,"Assertion","main","LAST == 1",
-                  "tests/memory/vector.c",28);
-  /*@ assert LAST ≡ 1; */ ;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"LAST",0,LAST);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "LAST == 1";
+    __gen_e_acsl_assert_data_4.file = "tests/memory/vector.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 28;
+    __e_acsl_assert(LAST == 1,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+  }
+  /*@ assert LAST == 1; */ ;
   free((void *)v2);
   __retres = 0;
   __e_acsl_delete_block((void *)(& v2));
diff --git a/src/plugins/e-acsl/tests/memory/oracle/gen_vla.c b/src/plugins/e-acsl/tests/memory/oracle/gen_vla.c
index db99b83114133ad4e8d0b79dc9dd0a944d921036..033d40c7b20d93c8b92d80f25cd0efb6d6c1ac3a 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/gen_vla.c
+++ b/src/plugins/e-acsl/tests/memory/oracle/gen_vla.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -13,10 +13,17 @@ int main(int argc, char **argv)
   __e_acsl_memory_init(& argc,& argv,(size_t)8);
   {
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(int)",0,
+                                 4);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"LEN",0,LEN);
     if (0L < 4L * LEN) {
       __e_acsl_mpz_t __gen_e_acsl_;
       __e_acsl_mpz_t __gen_e_acsl__2;
       int __gen_e_acsl_le;
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,4);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"LEN",0,LEN);
       __gmpz_init_set_si(__gen_e_acsl_,4L * LEN);
       __gmpz_init_set_ui(__gen_e_acsl__2,18446744073709551615UL);
       __gen_e_acsl_le = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_),
@@ -26,12 +33,16 @@ int main(int argc, char **argv)
       __gmpz_clear(__gen_e_acsl__2);
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main",
-                    "alloca_bounds: 0 < sizeof(int) * LEN <= 18446744073709551615",
-                    "tests/memory/vla.c",9);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "alloca_bounds: 0 < sizeof(int) * LEN <= 18446744073709551615";
+    __gen_e_acsl_assert_data.file = "tests/memory/vla.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 9;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert alloca_bounds: 0 < sizeof(int) * LEN ≤ 18446744073709551615;
-   */
+  /*@ assert alloca_bounds: 0 < sizeof(int) * LEN <= 18446744073709551615; */
   ;
   __lengthof_arr = (unsigned long)LEN;
   int *arr = __builtin_alloca(sizeof(int) * __lengthof_arr);
@@ -43,22 +54,53 @@ int main(int argc, char **argv)
     if (i < LEN) {
       {
         int __gen_e_acsl_valid;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"arr",
+                                     (void *)arr);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid = __e_acsl_valid((void *)(arr + i),sizeof(int),
                                             (void *)arr,(void *)(& arr));
-        __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main",
-                        "\\valid(arr + i)","tests/memory/vla.c",13);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "\\valid(arr + i)",0,__gen_e_acsl_valid);
+        __gen_e_acsl_assert_data_2.blocking = 1;
+        __gen_e_acsl_assert_data_2.kind = "Assertion";
+        __gen_e_acsl_assert_data_2.pred_txt = "\\valid(arr + i)";
+        __gen_e_acsl_assert_data_2.file = "tests/memory/vla.c";
+        __gen_e_acsl_assert_data_2.fct = "main";
+        __gen_e_acsl_assert_data_2.line = 13;
+        __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data_2);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
       }
       /*@ assert \valid(arr + i); */ ;
     }
     else {
       {
         int __gen_e_acsl_valid_2;
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"arr",
+                                     (void *)arr);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"i",0,i);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_2 = __e_acsl_valid((void *)(arr + i),sizeof(int),
                                               (void *)arr,(void *)(& arr));
-        __e_acsl_assert(! __gen_e_acsl_valid_2,1,"Assertion","main",
-                        "!\\valid(arr + i)","tests/memory/vla.c",15);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                     "\\valid(arr + i)",0,
+                                     __gen_e_acsl_valid_2);
+        __gen_e_acsl_assert_data_3.blocking = 1;
+        __gen_e_acsl_assert_data_3.kind = "Assertion";
+        __gen_e_acsl_assert_data_3.pred_txt = "!\\valid(arr + i)";
+        __gen_e_acsl_assert_data_3.file = "tests/memory/vla.c";
+        __gen_e_acsl_assert_data_3.fct = "main";
+        __gen_e_acsl_assert_data_3.line = 15;
+        __e_acsl_assert(! __gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_3);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
       }
-      /*@ assert ¬\valid(arr + i); */ ;
+      /*@ assert !\valid(arr + i); */ ;
     }
     i ++;
   }
diff --git a/src/plugins/e-acsl/tests/memory/oracle/goto.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/goto.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..d986466042cb07b9c333ca68ce9e79f85aa5e62c 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/goto.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/goto.res.oracle
@@ -1,2 +1,8 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/goto.c:17: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/goto.c:17: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/init.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/init.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..0b8a95f03626c81e253db4d5a4241e3de72a08f9 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/init.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/init.res.oracle
@@ -1,2 +1,14 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/init.c:10: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/init.c:10: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/init.c:11: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/init.c:11: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/initialized.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/initialized.res.oracle
index 1b5901750f8eff4dff841228dab2b7f39ee88eb1..d7518d22b51603cfcae52f5d52f9082b693d94b3 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/initialized.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/initialized.res.oracle
@@ -1,5 +1,178 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/initialized.c:18: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:18: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:19: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:19: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:30: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:30: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:31: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:31: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:32: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:32: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:33: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:33: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:34: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:34: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:35: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:35: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:39: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:39: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:40: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:40: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:43: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:43: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:44: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:44: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:45: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:45: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:46: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:46: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:47: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:47: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:50: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:50: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:51: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:51: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:52: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:52: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:53: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:53: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:54: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:54: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:57: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:57: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:58: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:58: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:59: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:59: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:60: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:60: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:61: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:61: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:65: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:65: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:69: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:69: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:74: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:74: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:76: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/initialized.c:76: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/initialized.c:84: Warning: 
-  accessing left-value that contains escaping addresses.
-  assert ¬\dangling(&p);
+  accessing left-value that contains escaping addresses. assert !\dangling(&p);
diff --git a/src/plugins/e-acsl/tests/memory/oracle/literal_string.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/literal_string.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..c742ba5b62433efbe725ebcdf78106dc8c79ac8e 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/literal_string.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/literal_string.res.oracle
@@ -1,2 +1,38 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/literal_string.i:25: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/literal_string.i:25: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/literal_string.i:26: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/literal_string.i:26: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/literal_string.i:27: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/literal_string.i:27: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/literal_string.i:28: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/literal_string.i:28: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/literal_string.i:28: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/literal_string.i:28: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/literal_string.i:11: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/literal_string.i:11: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/local_goto.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/local_goto.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..b1bc9af9c0f430d98b871b72287de6fe80d8e385 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/local_goto.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/local_goto.res.oracle
@@ -1,2 +1,14 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/local_goto.c:23: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/local_goto.c:23: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/local_goto.c:34: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/local_goto.c:34: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/local_var.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/local_var.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..a0432e4ce8de31611d8fc4edb7f45efa6884da4d 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/local_var.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/local_var.res.oracle
@@ -1,2 +1,14 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/local_var.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/local_var.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/local_var.c:15: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/local_var.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/mainargs.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/mainargs.res.oracle
index 338fa0d580e133b8b5c781cef207958f72e9b552..201473ea00c1c7cd15e8baf4f3b9b973bcf2fe0f 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/mainargs.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/mainargs.res.oracle
@@ -18,17 +18,63 @@
   E-ACSL construct `assigns clause in behavior' is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/mainargs.c:7: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/mainargs.c:7: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/mainargs.c:8: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/mainargs.c:8: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/mainargs.c:12: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/memory/mainargs.c:12: Warning: assertion got status unknown.
+[eva:alarm] tests/memory/mainargs.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/mainargs.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/mainargs.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/mainargs.c:13: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/memory/mainargs.c:13: Warning: assertion got status unknown.
+[eva:alarm] tests/memory/mainargs.c:15: Warning: 
+  out of bounds read. assert \valid_read(argv + argc);
+[eva:alarm] tests/memory/mainargs.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/mainargs.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/mainargs.c:15: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/memory/mainargs.c:15: Warning: 
   out of bounds read. assert \valid_read(argv + argc);
 [eva:alarm] tests/memory/mainargs.c:15: Warning: assertion got status unknown.
+[eva:alarm] tests/memory/mainargs.c:16: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/mainargs.c:16: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/mainargs.c:16: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/mainargs.c:16: Warning: 
+  out of bounds read. assert \valid_read(argv + argc);
+[eva:alarm] tests/memory/mainargs.c:16: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/mainargs.c:16: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/mainargs.c:16: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/memory/mainargs.c:16: Warning: 
@@ -42,9 +88,30 @@
   function strlen: precondition 'valid_string_s' got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/string.h:143: Warning: 
   function __gen_e_acsl_strlen: postcondition 'acsl_c_equiv' got status unknown.
+[eva:alarm] tests/memory/mainargs.c:19: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/mainargs.c:19: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/mainargs.c:19: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/mainargs.c:19: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/mainargs.c:19: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/mainargs.c:19: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/memory/mainargs.c:19: Warning: assertion got status unknown.
+[eva:alarm] tests/memory/mainargs.c:20: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/mainargs.c:20: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/mainargs.c:20: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/memory/mainargs.c:20: Warning: assertion got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/offset.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/offset.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..0941541892fa3ad9002208e31ad0e666e16beae6 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/offset.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/offset.res.oracle
@@ -1,2 +1,77 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/offset.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:17: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:21: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:22: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:23: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:28: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:29: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:30: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:31: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:33: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:35: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:39: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:40: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:41: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:43: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:44: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:49: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:51: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:51: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:53: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:53: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:55: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/offset.c:55: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/ptr.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/ptr.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..27b1dc6243e4bec2908dccd387fe4c90c98df08e 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/ptr.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/ptr.res.oracle
@@ -1,2 +1,41 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/ptr.i:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ptr.i:12: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ptr.i:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ptr.i:18: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ptr.i:19: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ptr.i:20: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ptr.i:20: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ptr.i:20: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ptr.i:26: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ptr.i:26: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ptr.i:26: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ptr.i:28: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ptr.i:28: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/ptr_init.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/ptr_init.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..7fbb11593483765028d5e83a05d565201fc52186 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/ptr_init.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/ptr_init.res.oracle
@@ -1,2 +1,8 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/ptr_init.c:26: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ptr_init.c:26: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/ranges_in_builtins.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/ranges_in_builtins.res.oracle
index e1c1333eff2264b0218a6d8f6d68977ef62ed51d..8cbde5f18f9eb8be10fb071aa470eb248be269cf 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/ranges_in_builtins.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/ranges_in_builtins.res.oracle
@@ -4,13 +4,82 @@
   is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/ranges_in_builtins.c:24: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:26: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:26: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:26: Warning: 
+  function __e_acsl_assert_register_long: precondition data->values == \null ||
+                                                       \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:27: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:32: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:33: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:36: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:37: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:8: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:8: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:8: Warning: 
+  function __e_acsl_assert_register_mpz: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/ranges_in_builtins.c:8: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:9: Warning: 
+  function __e_acsl_assert_register_mpz: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:9: Warning: 
+  function __e_acsl_assert_register_mpz: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/ranges_in_builtins.c:9: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/memory/ranges_in_builtins.c:9: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:43: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:44: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:46: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:51: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:53: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:54: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:57: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/ranges_in_builtins.c:57: Warning: 
   assertion got status unknown.
+[eva:alarm] tests/memory/ranges_in_builtins.c:62: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/ranges_in_builtins.c:63: Warning: 
   accessing uninitialized left-value. assert \initialized(&s.b);
diff --git a/src/plugins/e-acsl/tests/memory/oracle/separated.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/separated.res.oracle
index abcde03efaf9e4767e86147f9b2ac40f4c5aa3ad..21647f418cabe93c4f6f7bfecb62789915f67695 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/separated.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/separated.res.oracle
@@ -1,52 +1,262 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/separated.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:14: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:14: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:14: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:14: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:15: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:15: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:15: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:15: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:21: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:21: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:21: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:22: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:22: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:22: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:23: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:23: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:23: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:24: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:24: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:24: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:24: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:24: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:25: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:25: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:25: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:26: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:26: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:26: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:27: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:27: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:27: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:36: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:36: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:36: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:36: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:36: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:36: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:36: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:37: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:37: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:37: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:37: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:37: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:37: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:37: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:37: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:37: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:46: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:46: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:46: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:47: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:47: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:47: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:48: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:48: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:48: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:49: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:49: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:49: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:49: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:49: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:50: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:50: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:50: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:51: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:51: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:51: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:52: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:52: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:52: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/memory/separated.c:60: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:60: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:60: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:61: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:61: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:61: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:62: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:62: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:62: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:62: Warning: assertion got status unknown.
 [eva:alarm] tests/memory/separated.c:63: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:63: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/separated.c:63: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/separated.c:63: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/memory/separated.c:63: Warning: assertion got status unknown.
 [eva:alarm] tests/memory/separated.c:64: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/separated.c:64: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/sizeof.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/sizeof.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..4e3f1574082662ba5c1dce8868ba0f20df52268c 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/sizeof.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/sizeof.res.oracle
@@ -1,2 +1,5 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/sizeof.i:8: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/stdout.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/stdout.res.oracle
index 0aaf460e7936d9bbbe4c61c83a1fd0c8a5db71ea..bec5da30bad0413c96c407662a865a1321438676 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/stdout.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/stdout.res.oracle
@@ -1,11 +1,29 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/stdout.c:8: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/stdout.c:8: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/stdout.c:8: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/memory/stdout.c:8: Warning: assertion got status unknown.
+[eva:alarm] tests/memory/stdout.c:9: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/stdout.c:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/stdout.c:9: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/memory/stdout.c:9: Warning: assertion got status unknown.
+[eva:alarm] tests/memory/stdout.c:10: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/stdout.c:10: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/stdout.c:10: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/memory/stdout.c:10: Warning: assertion got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/struct_initialized.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/struct_initialized.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..f023644bba63db6320af7eab37fb461d2b589064 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/struct_initialized.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/struct_initialized.res.oracle
@@ -1,2 +1,74 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/struct_initialized.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:14: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:16: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:16: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:17: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:17: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:19: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:19: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:20: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:20: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:26: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:26: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:27: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:27: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:29: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:29: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:30: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:30: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:32: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:32: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:33: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/struct_initialized.c:33: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/valid.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/valid.res.oracle
index 10d60024c84446247288b53d197b4897a6a119ad..17912b9f4f43ca53ea77cbdbb15f069414da2f15 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/valid.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/valid.res.oracle
@@ -1,5 +1,232 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/valid.c:29: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:29: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:29: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:29: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:29: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:29: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:29: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:29: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:31: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:31: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:31: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:31: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:31: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:31: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:31: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:31: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:31: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:31: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:33: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:33: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:33: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:33: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:33: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:33: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:33: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:33: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:33: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:33: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:9: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:10: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:10: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:35: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:35: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:35: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:35: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:35: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:35: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:35: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:35: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:35: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:35: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:35: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:35: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:37: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:37: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:37: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:37: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:37: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:37: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:37: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:37: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:37: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:37: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:37: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:37: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:40: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:40: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:40: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:40: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:40: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:40: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:41: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:41: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:41: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:41: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:41: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:41: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:41: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:41: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/valid.c:43: Warning: 
-  accessing left-value that contains escaping addresses.
-  assert ¬\dangling(&a);
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:43: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid.c:43: Warning: 
+  accessing left-value that contains escaping addresses. assert !\dangling(&a);
diff --git a/src/plugins/e-acsl/tests/memory/oracle/valid_alias.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/valid_alias.res.oracle
index 6fdc0e52c0e715a6d514e6ccd33a5307a271136b..7891f00553af1a390cfbd2bae4c7595579552a2d 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/valid_alias.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/valid_alias.res.oracle
@@ -1,5 +1,64 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/valid_alias.c:9: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:9: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:9: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:13: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:13: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:13: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:14: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:14: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/valid_alias.c:16: Warning: 
-  accessing left-value that contains escaping addresses.
-  assert ¬\dangling(&a);
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:16: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/valid_alias.c:16: Warning: 
+  accessing left-value that contains escaping addresses. assert !\dangling(&a);
diff --git a/src/plugins/e-acsl/tests/memory/oracle/vector.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/vector.res.oracle
index 7c772edc7d68123d8d7bf560b2b9f2be246e513a..4f57d05216430cf59d7f35658e755f41ee7dc1d3 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/vector.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/vector.res.oracle
@@ -1,4 +1,46 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/vector.c:22: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vector.c:22: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vector.c:24: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vector.c:24: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vector.c:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vector.c:12: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vector.c:12: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vector.c:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vector.c:12: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vector.c:12: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vector.c:12: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vector.c:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/vector.c:12: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/vector.c:27: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vector.c:27: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/memory/oracle/vla.res.oracle b/src/plugins/e-acsl/tests/memory/oracle/vla.res.oracle
index bbabb8e52c514a69429c33990bb30604c23d7907..8ce89f94f2613a464f2269775718deb401389627 100644
--- a/src/plugins/e-acsl/tests/memory/oracle/vla.res.oracle
+++ b/src/plugins/e-acsl/tests/memory/oracle/vla.res.oracle
@@ -1,4 +1,28 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/memory/vla.c:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vla.c:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/memory/vla.c:9: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/memory/vla.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vla.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vla.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vla.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vla.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/memory/vla.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/special/e-acsl-external-print-value-fct.c b/src/plugins/e-acsl/tests/special/e-acsl-external-print-value-fct.c
new file mode 100644
index 0000000000000000000000000000000000000000..369e4476ffd117449ab8a84ce8b09281bb2b0dd6
--- /dev/null
+++ b/src/plugins/e-acsl/tests/special/e-acsl-external-print-value-fct.c
@@ -0,0 +1,10 @@
+/* run.config, run.config_dev
+   DONTRUN:
+   COMMENT: Support file for e-acsl-external-print-value.c
+*/
+#include <e_acsl.h>
+#include <stdio.h>
+
+void __e_acsl_print_value(__e_acsl_assert_data_value_t *value) {
+  fprintf(stderr, "\t- custom print for %s\n", value->name);
+}
diff --git a/src/plugins/e-acsl/tests/special/e-acsl-external-print-value.c b/src/plugins/e-acsl/tests/special/e-acsl-external-print-value.c
new file mode 100644
index 0000000000000000000000000000000000000000..a7132d8744e98c550064232256caa87649879b70
--- /dev/null
+++ b/src/plugins/e-acsl/tests/special/e-acsl-external-print-value.c
@@ -0,0 +1,9 @@
+/* run.config_dev
+   MACRO: ROOT_EACSL_GCC_OPTS_EXT --assert-print-data --external-print-value tests/special/e-acsl-external-print-value-fct.c
+*/
+
+int main() {
+  int value = 1;
+  //@ check \let x = value; \false;
+  return 0;
+}
diff --git a/src/plugins/e-acsl/tests/special/e-acsl-instrument.c b/src/plugins/e-acsl/tests/special/e-acsl-instrument.c
index 4811173614f7cf845b5d938c7524ed70f90191cc..99a06505de3b0dd046195d6c5480227625f02b9a 100644
--- a/src/plugins/e-acsl/tests/special/e-acsl-instrument.c
+++ b/src/plugins/e-acsl/tests/special/e-acsl-instrument.c
@@ -3,6 +3,7 @@
    STDOPT:#"-e-acsl-instrument='@all,-uninstrument1,-uninstrument2'"
 */
 /* run.config_dev
+   MACRO: ROOT_EACSL_GCC_OPTS_EXT --no-assert-print-data
    MACRO: ROOT_EACSL_GCC_FC_EXTRA_EXT -e-acsl-instrument @all,-uninstrument1,-uninstrument2
 */
 
diff --git a/src/plugins/e-acsl/tests/special/e-acsl-no-assert-print-data.c b/src/plugins/e-acsl/tests/special/e-acsl-no-assert-print-data.c
new file mode 100644
index 0000000000000000000000000000000000000000..fea3dee8c454c325388a8d59f192f4e42e6f5773
--- /dev/null
+++ b/src/plugins/e-acsl/tests/special/e-acsl-no-assert-print-data.c
@@ -0,0 +1,16 @@
+/* run.config
+   COMMENT: test assertion failure without printing assertion data
+   LOG: gen_@PTEST_NAME@.c
+   STDOPT: #"-e-acsl-no-assert-print-data"
+*/
+/* run.config_dev
+   MACRO: ROOT_EACSL_GCC_OPTS_EXT --no-assert-print-data
+*/
+
+#include <limits.h>
+
+int main() {
+  int value = INT_MAX;
+  //@ check \let x = value; \false;
+  return 0;
+}
diff --git a/src/plugins/e-acsl/tests/special/e-acsl-rt-debug.c b/src/plugins/e-acsl/tests/special/e-acsl-rt-debug.c
index 6964a4e84d91b7633603365c9122606873119ec0..50e2bd836c0f0066ac43d023809c3bf213578de2 100644
--- a/src/plugins/e-acsl/tests/special/e-acsl-rt-debug.c
+++ b/src/plugins/e-acsl/tests/special/e-acsl-rt-debug.c
@@ -3,7 +3,9 @@
   STDOPT:#"-e-acsl-debug 1"
  */
 /* run.config_dev
-  MACRO: ROOT_EACSL_GCC_OPTS_EXT --rt-debug --rt-verbose
+  MACRO: ROOT_EACSL_GCC_OPTS_EXT --rt-debug --rt-verbose --full-mtracking
+  COMMENT: Filter the addresses of the output so that the test is deterministic.
+  MACRO: ROOT_EACSL_EXEC_FILTER @SEDCMD@ -e "s|0x[0-9-]*|0x00000-00000-00000|g" | @SEDCMD@ -e "s|Offset: [0-9-]*|Offset: xxxx|g"
  */
 int main() {
   return 0;
diff --git a/src/plugins/e-acsl/tests/special/oracle/builtin.res.oracle b/src/plugins/e-acsl/tests/special/oracle/builtin.res.oracle
index ea338178977c5f4bea94846045470cd18c837b9a..94ff07f66bdef164af2539fcd4719440683c9e3a 100644
--- a/src/plugins/e-acsl/tests/special/oracle/builtin.res.oracle
+++ b/src/plugins/e-acsl/tests/special/oracle/builtin.res.oracle
@@ -1,4 +1,10 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/special/builtin.i:11: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/special/builtin.i:11: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/special/builtin.i:11: Warning: 
   function __gen_e_acsl_f: postcondition got status unknown.
diff --git a/src/plugins/e-acsl/tests/special/oracle/e-acsl-external-print-value.res.oracle b/src/plugins/e-acsl/tests/special/oracle/e-acsl-external-print-value.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..dae3517593472698fde946f6e60eee8aae45f7fb
--- /dev/null
+++ b/src/plugins/e-acsl/tests/special/oracle/e-acsl-external-print-value.res.oracle
@@ -0,0 +1,6 @@
+[e-acsl] beginning translation.
+[e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/special/e-acsl-external-print-value.c:7: Warning: 
+  function __e_acsl_assert, behavior non_blocking: precondition got status invalid.
+[eva:alarm] tests/special/e-acsl-external-print-value.c:7: Warning: 
+  check got status unknown.
diff --git a/src/plugins/e-acsl/tests/special/oracle/e-acsl-functions.res.oracle b/src/plugins/e-acsl/tests/special/oracle/e-acsl-functions.res.oracle
index 8a13b595cda6bcb891eaaed531c8ea270ed56d38..dd99238520112789d714f8bb903305ad7d1ce469 100644
--- a/src/plugins/e-acsl/tests/special/oracle/e-acsl-functions.res.oracle
+++ b/src/plugins/e-acsl/tests/special/oracle/e-acsl-functions.res.oracle
@@ -1,4 +1,22 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/special/e-acsl-functions.c:9: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/special/e-acsl-functions.c:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/special/e-acsl-functions.c:10: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/special/e-acsl-functions.c:11: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/special/e-acsl-functions.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/special/e-acsl-functions.c:11: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/special/e-acsl-functions.c:38: Warning: 
-  function g: precondition *p ≡ 1 got status invalid.
+  function g: precondition *p == 1 got status invalid.
diff --git a/src/plugins/e-acsl/tests/special/oracle/e-acsl-instrument.res.oracle b/src/plugins/e-acsl/tests/special/oracle/e-acsl-instrument.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..df659b5050a89ebcaf5c689f78eddf255547dbe1 100644
--- a/src/plugins/e-acsl/tests/special/oracle/e-acsl-instrument.res.oracle
+++ b/src/plugins/e-acsl/tests/special/oracle/e-acsl-instrument.res.oracle
@@ -1,2 +1,26 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/special/e-acsl-instrument.c:33: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/special/e-acsl-instrument.c:33: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/special/e-acsl-instrument.c:17: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/special/e-acsl-instrument.c:17: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/special/e-acsl-instrument.c:61: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/special/e-acsl-instrument.c:61: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/special/e-acsl-instrument.c:62: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/special/e-acsl-instrument.c:62: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/special/oracle/e-acsl-no-assert-print-data.res.oracle b/src/plugins/e-acsl/tests/special/oracle/e-acsl-no-assert-print-data.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..7a99ff00ba042499caa2cfc9141bb2b779fda179
--- /dev/null
+++ b/src/plugins/e-acsl/tests/special/oracle/e-acsl-no-assert-print-data.res.oracle
@@ -0,0 +1,6 @@
+[e-acsl] beginning translation.
+[e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/special/e-acsl-no-assert-print-data.c:14: Warning: 
+  function __e_acsl_assert, behavior non_blocking: precondition got status invalid.
+[eva:alarm] tests/special/e-acsl-no-assert-print-data.c:14: Warning: 
+  check got status unknown.
diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_builtin.c b/src/plugins/e-acsl/tests/special/oracle/gen_builtin.c
index a80a813054c76077f2d3027cf177897eeac77ecc..6a3906bb22908685f539b7b4624a1bacf49b1d69 100644
--- a/src/plugins/e-acsl/tests/special/oracle/gen_builtin.c
+++ b/src/plugins/e-acsl/tests/special/oracle/gen_builtin.c
@@ -1,12 +1,12 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int incr(int x);
 
-/*@ ensures \result ≡ incr(\old(i)); */
+/*@ ensures \result == incr(\old(i)); */
 int __gen_e_acsl_f(int i);
 
 int f(int i)
@@ -25,12 +25,14 @@ int incr(int x)
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   int i = __gen_e_acsl_f(2);
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
-/*@ ensures \result ≡ incr(\old(i)); */
+/*@ ensures \result == incr(\old(i)); */
 int __gen_e_acsl_f(int i)
 {
   int __gen_e_acsl_at;
@@ -39,10 +41,23 @@ int __gen_e_acsl_f(int i)
   __retres = f(i);
   {
     int __gen_e_acsl_incr_app;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\result",0,
+                                 __retres);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\old(i)",0,
+                                 __gen_e_acsl_at);
     __gen_e_acsl_incr_app = incr(__gen_e_acsl_at);
-    __e_acsl_assert(__retres == __gen_e_acsl_incr_app,1,"Postcondition","f",
-                    "\\result == incr(\\old(i))","tests/special/builtin.i",
-                    11);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"incr(\\old(i))",
+                                 0,__gen_e_acsl_incr_app);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Postcondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\result == incr(\\old(i))";
+    __gen_e_acsl_assert_data.file = "tests/special/builtin.i";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 11;
+    __e_acsl_assert(__retres == __gen_e_acsl_incr_app,
+                    & __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     return __retres;
   }
 }
diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-bittree-model.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-bittree-model.c
index 72d97a54831c7c1dff3f9c7169b1fea2e5589388..f2d5fd7585bba22c9fa4e4c3ab46dd63569bc0b0 100644
--- a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-bittree-model.c
+++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-bittree-model.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-compile-dlmalloc.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-compile-dlmalloc.c
index 2f77399ecaa5a4d06eaa2187ba6d723f9cc485dc..a19e43d58079ff4d5cff6d21d57aca2e68656d7a 100644
--- a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-compile-dlmalloc.c
+++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-compile-dlmalloc.c
@@ -1,13 +1,15 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-external-print-value.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-external-print-value.c
new file mode 100644
index 0000000000000000000000000000000000000000..2c25b012bc7334ce280ea7b9b4eac1573118bb33
--- /dev/null
+++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-external-print-value.c
@@ -0,0 +1,35 @@
+/* Generated by Frama-C */
+#include "stddef.h"
+#include "stdint.h"
+#include "stdio.h"
+extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
+
+int main(void)
+{
+  int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
+  int value = 1;
+  __e_acsl_store_block((void *)(& value),(size_t)4);
+  __e_acsl_full_init((void *)(& value));
+  {
+    int __gen_e_acsl_x;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"value",0,value);
+    __gen_e_acsl_x = value;
+    __gen_e_acsl_assert_data.blocking = 0;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\let x = value; \\false";
+    __gen_e_acsl_assert_data.file = "tests/special/e-acsl-external-print-value.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 7;
+    __e_acsl_assert(0,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+  }
+  /*@ check \let x = value; \false; */ ;
+  __retres = 0;
+  __e_acsl_delete_block((void *)(& value));
+  __e_acsl_memory_clean();
+  return __retres;
+}
+
+
diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-functions.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-functions.c
index 79d83f6e40dab17fa30344132cf90e4891a44645..517e59aa527e91736fd090da7dbef57cfc17bc6e 100644
--- a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-functions.c
+++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-functions.c
@@ -1,13 +1,12 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 /*@ requires \initialized(p);
-    requires *p ≡ 0;
-    ensures \result ≡ \old(*p);
- */
+    requires *p == 0;
+    ensures \result == \old(*p); */
 int __gen_e_acsl_f(int *p);
 
 int f(int *p)
@@ -18,17 +17,43 @@ int f(int *p)
     int i = 0;
     {
       int __gen_e_acsl_and;
-      if (0 <= i) __gen_e_acsl_and = i <= 1; else __gen_e_acsl_and = 0;
-      __e_acsl_assert(__gen_e_acsl_and,1,"Invariant","f","0 <= i <= 1",
-                      "tests/special/e-acsl-functions.c",13);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i);
+      if (0 <= i) {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i);
+        __gen_e_acsl_and = i <= 1;
+      }
+      else __gen_e_acsl_and = 0;
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Invariant";
+      __gen_e_acsl_assert_data.pred_txt = "0 <= i <= 1";
+      __gen_e_acsl_assert_data.file = "tests/special/e-acsl-functions.c";
+      __gen_e_acsl_assert_data.fct = "f";
+      __gen_e_acsl_assert_data.line = 13;
+      __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
-    /*@ loop invariant 0 ≤ i ≤ 1; */
+    /*@ loop invariant 0 <= i <= 1; */
     while (i < 1) {
       int __gen_e_acsl_and_2;
       i ++;
-      if (0 <= i) __gen_e_acsl_and_2 = i <= 1; else __gen_e_acsl_and_2 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_2,1,"Invariant","f","0 <= i <= 1",
-                      "tests/special/e-acsl-functions.c",13);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i);
+      if (0 <= i) {
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i);
+        __gen_e_acsl_and_2 = i <= 1;
+      }
+      else __gen_e_acsl_and_2 = 0;
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Invariant";
+      __gen_e_acsl_assert_data_2.pred_txt = "0 <= i <= 1";
+      __gen_e_acsl_assert_data_2.file = "tests/special/e-acsl-functions.c";
+      __gen_e_acsl_assert_data_2.fct = "f";
+      __gen_e_acsl_assert_data_2.line = 13;
+      __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
   }
   __retres = 0;
@@ -37,15 +62,14 @@ int f(int *p)
 }
 
 /*@ requires \initialized(p);
-    requires *p ≡ 1;
-    ensures \result ≡ \old(*p);
- */
+    requires *p == 1;
+    ensures \result == \old(*p); */
 int g(int *p)
 {
   int __retres;
   {
     int i = 0;
-    /*@ loop invariant 0 ≤ i ≤ 1; */
+    /*@ loop invariant 0 <= i <= 1; */
     while (i < 1) i ++;
   }
   __retres = 0;
@@ -69,9 +93,8 @@ int main(void)
 }
 
 /*@ requires \initialized(p);
-    requires *p ≡ 0;
-    ensures \result ≡ \old(*p);
- */
+    requires *p == 0;
+    ensures \result == \old(*p); */
 int __gen_e_acsl_f(int *p)
 {
   int __gen_e_acsl_at;
@@ -80,32 +103,87 @@ int __gen_e_acsl_f(int *p)
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_valid_read;
     __e_acsl_store_block((void *)(& p),(size_t)8);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)p,sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Precondition","f",
-                    "\\initialized(p)","tests/special/e-acsl-functions.c",9);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(p)",0,
+                                 __gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\initialized(p)";
+    __gen_e_acsl_assert_data.file = "tests/special/e-acsl-functions.c";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 9;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"*p",0,*p);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)p,sizeof(int),
                                                   (void *)p,(void *)(& p));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","f",
-                    "mem_access: \\valid_read(p)",
-                    "tests/special/e-acsl-functions.c",10);
-    __e_acsl_assert(*p == 0,1,"Precondition","f","*p == 0",
-                    "tests/special/e-acsl-functions.c",10);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "RTE";
+    __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(p)";
+    __gen_e_acsl_assert_data_3.file = "tests/special/e-acsl-functions.c";
+    __gen_e_acsl_assert_data_3.fct = "f";
+    __gen_e_acsl_assert_data_3.line = 10;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Precondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "*p == 0";
+    __gen_e_acsl_assert_data_2.file = "tests/special/e-acsl-functions.c";
+    __gen_e_acsl_assert_data_2.fct = "f";
+    __gen_e_acsl_assert_data_2.line = 10;
+    __e_acsl_assert(*p == 0,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   {
     int __gen_e_acsl_valid_read_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)p,sizeof(int),
                                                     (void *)p,(void *)(& p));
-    __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","f",
-                    "mem_access: \\valid_read(p)",
-                    "tests/special/e-acsl-functions.c",11);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "RTE";
+    __gen_e_acsl_assert_data_5.pred_txt = "mem_access: \\valid_read(p)";
+    __gen_e_acsl_assert_data_5.file = "tests/special/e-acsl-functions.c";
+    __gen_e_acsl_assert_data_5.fct = "f";
+    __gen_e_acsl_assert_data_5.line = 11;
+    __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     __gen_e_acsl_at = *p;
   }
   __retres = f(p);
-  __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","f",
-                  "\\result == \\old(*p)","tests/special/e-acsl-functions.c",
-                  11);
-  __e_acsl_delete_block((void *)(& p));
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\result",0,
+                                 __retres);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\old(*p)",0,
+                                 __gen_e_acsl_at);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Postcondition";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\result == \\old(*p)";
+    __gen_e_acsl_assert_data_4.file = "tests/special/e-acsl-functions.c";
+    __gen_e_acsl_assert_data_4.fct = "f";
+    __gen_e_acsl_assert_data_4.line = 11;
+    __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    __e_acsl_delete_block((void *)(& p));
+    return __retres;
+  }
 }
 
 
diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-instrument.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-instrument.c
index 2a06979d910095fbf6dc6bc9d24b41cf29319230..697495fe95fdf8e484ca3c829a6fc6e5c1a531ac 100644
--- a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-instrument.c
+++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-instrument.c
@@ -1,7 +1,7 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stdarg.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -97,20 +97,47 @@ int main(void)
   __gen_e_acsl_uninstrument2(& x);
   {
     int __gen_e_acsl_initialized;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&x",
+                                 (void *)(& x));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& x),
                                                     sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized,1,"Assertion","main",
-                    "\\initialized(&x)","tests/special/e-acsl-instrument.c",
-                    60);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&x)",0,
+                                 __gen_e_acsl_initialized);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\initialized(&x)";
+    __gen_e_acsl_assert_data.file = "tests/special/e-acsl-instrument.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 61;
+    __e_acsl_assert(__gen_e_acsl_initialized,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \initialized(&x); */ ;
   {
     int __gen_e_acsl_initialized_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&y",
+                                 (void *)(& y));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& y),
                                                       sizeof(int));
-    __e_acsl_assert(__gen_e_acsl_initialized_2,1,"Assertion","main",
-                    "\\initialized(&y)","tests/special/e-acsl-instrument.c",
-                    61);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&y)",0,
+                                 __gen_e_acsl_initialized_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\initialized(&y)";
+    __gen_e_acsl_assert_data_2.file = "tests/special/e-acsl-instrument.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 62;
+    __e_acsl_assert(__gen_e_acsl_initialized_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \initialized(&y); */ ;
   {
@@ -137,10 +164,22 @@ int __gen_e_acsl_instrument2(int *p)
   {
     int __gen_e_acsl_valid;
     __e_acsl_store_block((void *)(& p),(size_t)8);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                         (void *)(& p));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","instrument2",
-                    "\\valid(p)","tests/special/e-acsl-instrument.c",32);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0,
+                                 __gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(p)";
+    __gen_e_acsl_assert_data.file = "tests/special/e-acsl-instrument.c";
+    __gen_e_acsl_assert_data.fct = "instrument2";
+    __gen_e_acsl_assert_data.line = 33;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   __retres = instrument2(p);
   __e_acsl_delete_block((void *)(& p));
@@ -153,10 +192,22 @@ int __gen_e_acsl_uninstrument2(int *p)
   int __retres;
   {
     int __gen_e_acsl_valid;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                         (void *)(& p));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","uninstrument2",
-                    "\\valid(p)","tests/special/e-acsl-instrument.c",16);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0,
+                                 __gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(p)";
+    __gen_e_acsl_assert_data.file = "tests/special/e-acsl-instrument.c";
+    __gen_e_acsl_assert_data.fct = "uninstrument2";
+    __gen_e_acsl_assert_data.line = 17;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   __e_acsl_sound_verdict = 0;
   __retres = uninstrument2(p);
diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-no-assert-print-data.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-no-assert-print-data.c
new file mode 100644
index 0000000000000000000000000000000000000000..7825ef0da629bfe582ddc0db5e4e88b5bc657c7d
--- /dev/null
+++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-no-assert-print-data.c
@@ -0,0 +1,33 @@
+/* Generated by Frama-C */
+#include "stddef.h"
+#include "stdint.h"
+#include "stdio.h"
+extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
+
+int main(void)
+{
+  int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
+  int value = 2147483647;
+  __e_acsl_store_block((void *)(& value),(size_t)4);
+  __e_acsl_full_init((void *)(& value));
+  {
+    int __gen_e_acsl_x;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __gen_e_acsl_x = value;
+    __gen_e_acsl_assert_data.blocking = 0;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\let x = value; \\false";
+    __gen_e_acsl_assert_data.file = "tests/special/e-acsl-no-assert-print-data.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 14;
+    __e_acsl_assert(0,& __gen_e_acsl_assert_data);
+  }
+  /*@ check \let x = value; \false; */ ;
+  __retres = 0;
+  __e_acsl_delete_block((void *)(& value));
+  __e_acsl_memory_clean();
+  return __retres;
+}
+
+
diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-rt-debug.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-rt-debug.c
index 2f77399ecaa5a4d06eaa2187ba6d723f9cc485dc..a19e43d58079ff4d5cff6d21d57aca2e68656d7a 100644
--- a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-rt-debug.c
+++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-rt-debug.c
@@ -1,13 +1,15 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 int main(void)
 {
   int __retres;
+  __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
   __retres = 0;
+  __e_acsl_memory_clean();
   return __retres;
 }
 
diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-segment-model.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-segment-model.c
index 72d97a54831c7c1dff3f9c7169b1fea2e5589388..f2d5fd7585bba22c9fa4e4c3ab46dd63569bc0b0 100644
--- a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-segment-model.c
+++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-segment-model.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
diff --git a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-valid.c b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-valid.c
index cf967bfa6fb56894ae6236270ff14523ae6d1469..b0b6577ff88bfe0b812d803b241e573ed69ae149 100644
--- a/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-valid.c
+++ b/src/plugins/e-acsl/tests/special/oracle/gen_e-acsl-valid.c
@@ -1,23 +1,24 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 /*@ requires \valid(y);
-    requires *x ≥ 0;
-    ensures *\old(x) ≡ \old(*x) + 1;
+    requires *x >= 0;
+    ensures *\old(x) == \old(*x) + 1;
     assigns *x;
     assigns *x \from *x, x;
     
     behavior b1:
-      assumes *x ≡ 1;
+      assumes *x == 1;
       ensures *\old(x) < 0;
       assigns \nothing;
     
     behavior b2:
-      assumes *x ≡ 0;
-      ensures *\old(x) ≡ 1;
+      assumes *x == 0;
+      ensures *\old(x) == 1;
     
     complete behaviors b2, b1;
     disjoint behaviors b1, b2;
@@ -28,42 +29,95 @@ void f(int *x, int *y)
 {
   long __gen_e_acsl_old_variant;
   {
-    int __gen_e_acsl_valid_read;
-    __e_acsl_store_block((void *)(& y),(size_t)8);
-    __e_acsl_store_block((void *)(& x),(size_t)8);
-    __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)x,sizeof(int),
-                                                  (void *)x,(void *)(& x));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","f",
-                    "mem_access: \\valid_read(x)",
-                    "tests/special/e-acsl-valid.c",27);
-    __e_acsl_assert(*x >= 0,1,"Precondition","f","*x >= 0",
-                    "tests/special/e-acsl-valid.c",27);
-  }
-  /*@ requires *x ≥ 0;
-      ensures 2 ≥ 1;
-      assigns *x; */
-  {
-    __e_acsl_initialize((void *)x,sizeof(int));
-    (*x) ++;
+    {
+      int __gen_e_acsl_valid_read;
+      __e_acsl_store_block((void *)(& y),(size_t)8);
+      __e_acsl_store_block((void *)(& x),(size_t)8);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"*x",0,*x);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"x",
+                                   (void *)x);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
+      __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)x,sizeof(int),
+                                                    (void *)x,(void *)(& x));
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "RTE";
+      __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(x)";
+      __gen_e_acsl_assert_data_2.file = "tests/special/e-acsl-valid.c";
+      __gen_e_acsl_assert_data_2.fct = "f";
+      __gen_e_acsl_assert_data_2.line = 27;
+      __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Precondition";
+      __gen_e_acsl_assert_data.pred_txt = "*x >= 0";
+      __gen_e_acsl_assert_data.file = "tests/special/e-acsl-valid.c";
+      __gen_e_acsl_assert_data.fct = "f";
+      __gen_e_acsl_assert_data.line = 27;
+      __e_acsl_assert(*x >= 0,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    }
+    /*@ requires *x >= 0;
+        ensures 2 >= 1;
+        assigns *x; */
+    {
+      __e_acsl_initialize((void *)x,sizeof(int));
+      (*x) ++;
+    }
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Postcondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "2 >= 1";
+    __gen_e_acsl_assert_data_3.file = "tests/special/e-acsl-valid.c";
+    __gen_e_acsl_assert_data_3.fct = "f";
+    __gen_e_acsl_assert_data_3.line = 28;
+    __e_acsl_assert(1,& __gen_e_acsl_assert_data_3);
   }
-  __e_acsl_assert(1,1,"Postcondition","f","2 >= 1",
-                  "tests/special/e-acsl-valid.c",28);
   {
     int i = 0;
-    /*@ loop invariant 0 ≤ i ≤ 1;
+    /*@ loop invariant 0 <= i <= 1;
         loop variant 2 - i; */
     while (1) {
       __gen_e_acsl_old_variant = 2L - i;
       if (! (i < 1)) break;
-      /*@ assert 1 ≡ 1; */ ;
+      /*@ assert 1 == 1; */ ;
       /*@ assert \valid(y); */ ;
       i ++;
-      __e_acsl_assert(__gen_e_acsl_old_variant >= 0L,1,"Variant","f",
-                      "(old 2 - i) \342\211\245 0",
-                      "tests/special/e-acsl-valid.c",33);
-      __e_acsl_assert(__gen_e_acsl_old_variant > 2L - i,1,"Variant","f",
-                      "(old 2 - i) > 2 - i","tests/special/e-acsl-valid.c",
-                      33);
+      {
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_4,
+                                      "old 2 - i",0,__gen_e_acsl_old_variant);
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+          {.values = (void *)0};
+        __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_5,
+                                    & __gen_e_acsl_assert_data_4);
+        __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_5,
+                                      "current 2 - i",0,2L - i);
+        __gen_e_acsl_assert_data_4.blocking = 1;
+        __gen_e_acsl_assert_data_4.kind = "Variant";
+        __gen_e_acsl_assert_data_4.pred_txt = "(old 2 - i) >= 0";
+        __gen_e_acsl_assert_data_4.file = "tests/special/e-acsl-valid.c";
+        __gen_e_acsl_assert_data_4.fct = "f";
+        __gen_e_acsl_assert_data_4.line = 33;
+        __e_acsl_assert(__gen_e_acsl_old_variant >= 0L,
+                        & __gen_e_acsl_assert_data_4);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+        __gen_e_acsl_assert_data_5.blocking = 1;
+        __gen_e_acsl_assert_data_5.kind = "Variant";
+        __gen_e_acsl_assert_data_5.pred_txt = "(old 2 - i) > 2 - i";
+        __gen_e_acsl_assert_data_5.file = "tests/special/e-acsl-valid.c";
+        __gen_e_acsl_assert_data_5.fct = "f";
+        __gen_e_acsl_assert_data_5.line = 33;
+        __e_acsl_assert(__gen_e_acsl_old_variant > 2L - i,
+                        & __gen_e_acsl_assert_data_5);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+      }
     }
   }
   __e_acsl_delete_block((void *)(& y));
@@ -90,19 +144,19 @@ int main(void)
 }
 
 /*@ requires \valid(y);
-    requires *x ≥ 0;
-    ensures *\old(x) ≡ \old(*x) + 1;
+    requires *x >= 0;
+    ensures *\old(x) == \old(*x) + 1;
     assigns *x;
     assigns *x \from *x, x;
     
     behavior b1:
-      assumes *x ≡ 1;
+      assumes *x == 1;
       ensures *\old(x) < 0;
       assigns \nothing;
     
     behavior b2:
-      assumes *x ≡ 0;
-      ensures *\old(x) ≡ 1;
+      assumes *x == 0;
+      ensures *\old(x) == 1;
     
     complete behaviors b2, b1;
     disjoint behaviors b1, b2;
@@ -118,34 +172,98 @@ void __gen_e_acsl_f(int *x, int *y)
     __e_acsl_store_block((void *)(& y),(size_t)8);
     __e_acsl_store_block((void *)(& x),(size_t)8);
     __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"y",(void *)y);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)y,sizeof(int),(void *)y,
                                         (void *)(& y));
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Precondition","f","\\valid(y)",
-                    "tests/special/e-acsl-valid.c",12);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(y)",0,
+                                 __gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Precondition";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(y)";
+    __gen_e_acsl_assert_data.file = "tests/special/e-acsl-valid.c";
+    __gen_e_acsl_assert_data.fct = "f";
+    __gen_e_acsl_assert_data.line = 12;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"x",(void *)x);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)x,sizeof(int),
                                                   (void *)x,(void *)(& x));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","f",
-                    "mem_access: \\valid_read(x)",
-                    "tests/special/e-acsl-valid.c",17);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "RTE";
+    __gen_e_acsl_assert_data_2.pred_txt = "mem_access: \\valid_read(x)";
+    __gen_e_acsl_assert_data_2.file = "tests/special/e-acsl-valid.c";
+    __gen_e_acsl_assert_data_2.fct = "f";
+    __gen_e_acsl_assert_data_2.line = 17;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0,
                                            *x == 1);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"x",(void *)x);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(int)",0,sizeof(int));
     __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)x,sizeof(int),
                                                     (void *)x,(void *)(& x));
-    __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","f",
-                    "mem_access: \\valid_read(x)",
-                    "tests/special/e-acsl-valid.c",21);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "RTE";
+    __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(x)";
+    __gen_e_acsl_assert_data_3.file = "tests/special/e-acsl-valid.c";
+    __gen_e_acsl_assert_data_3.fct = "f";
+    __gen_e_acsl_assert_data_3.line = 21;
+    __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1,
                                            *x == 0);
     __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_all_behaviors
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract);
-    __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,1,"Precondition","f",
-                    "all behaviors complete","tests/special/e-acsl-valid.c",
-                    26);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "number of active behaviors",0,
+                                 __gen_e_acsl_active_bhvrs);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "number of active behaviors",0,
+                                 __gen_e_acsl_active_bhvrs);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Precondition";
+    __gen_e_acsl_assert_data_4.pred_txt = "all behaviors complete";
+    __gen_e_acsl_assert_data_4.file = "tests/special/e-acsl-valid.c";
+    __gen_e_acsl_assert_data_4.fct = "f";
+    __gen_e_acsl_assert_data_4.line = 26;
+    __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,
+                    & __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_all_behaviors
     ((__e_acsl_contract_t const *)__gen_e_acsl_contract);
-    __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,1,"Precondition","f",
-                    "all behaviors disjoint","tests/special/e-acsl-valid.c",
-                    26);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "number of active behaviors",0,
+                                 __gen_e_acsl_active_bhvrs);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "number of active behaviors",0,
+                                 __gen_e_acsl_active_bhvrs);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Precondition";
+    __gen_e_acsl_assert_data_7.pred_txt = "all behaviors disjoint";
+    __gen_e_acsl_assert_data_7.file = "tests/special/e-acsl-valid.c";
+    __gen_e_acsl_assert_data_7.fct = "f";
+    __gen_e_acsl_assert_data_7.line = 26;
+    __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,
+                    & __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
   f(x,y);
   __e_acsl_contract_clean(__gen_e_acsl_contract);
diff --git a/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-external-print-value.e-acsl.err.log b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-external-print-value.e-acsl.err.log
new file mode 100644
index 0000000000000000000000000000000000000000..0b7ca7801ce6a4e9822b80836dc55483113e56df
--- /dev/null
+++ b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-external-print-value.e-acsl.err.log
@@ -0,0 +1,6 @@
+tests/special/e-acsl-external-print-value.c: In function 'main'
+tests/special/e-acsl-external-print-value.c:7: Error: Assertion failed:
+	The failing predicate is:
+	\let x = value; \false.
+	With values:
+	- custom print for value
diff --git a/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-instrument.e-acsl.err.log b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-instrument.e-acsl.err.log
index f68292661579bde37ffd5da4872649306018fbda..df9b9d86eeabe595b32ba2cc2bebad46a7947a9d 100644
--- a/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-instrument.e-acsl.err.log
+++ b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-instrument.e-acsl.err.log
@@ -1,16 +1,16 @@
 tests/special/e-acsl-instrument.c: In function 'instrument2'
-tests/special/e-acsl-instrument.c:32: Warning: no sound verdict for Precondition (guess: ok).
+tests/special/e-acsl-instrument.c:33: Warning: no sound verdict for Precondition (guess: ok).
 	the considered predicate is:
 	\valid(p)
 tests/special/e-acsl-instrument.c: In function 'uninstrument2'
-tests/special/e-acsl-instrument.c:16: Warning: no sound verdict for Precondition (guess: ok).
+tests/special/e-acsl-instrument.c:17: Warning: no sound verdict for Precondition (guess: ok).
 	the considered predicate is:
 	\valid(p)
 tests/special/e-acsl-instrument.c: In function 'main'
-tests/special/e-acsl-instrument.c:60: Warning: no sound verdict for Assertion (guess: ok).
+tests/special/e-acsl-instrument.c:61: Warning: no sound verdict for Assertion (guess: ok).
 	the considered predicate is:
 	\initialized(&x)
 tests/special/e-acsl-instrument.c: In function 'main'
-tests/special/e-acsl-instrument.c:61: Warning: no sound verdict for Assertion (guess: ok).
+tests/special/e-acsl-instrument.c:62: Warning: no sound verdict for Assertion (guess: ok).
 	the considered predicate is:
 	\initialized(&y)
diff --git a/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-no-assert-print-data.e-acsl.err.log b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-no-assert-print-data.e-acsl.err.log
new file mode 100644
index 0000000000000000000000000000000000000000..8b4518d17422bcadfe3c85ae968b0bfe6b85f734
--- /dev/null
+++ b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-no-assert-print-data.e-acsl.err.log
@@ -0,0 +1,4 @@
+tests/special/e-acsl-no-assert-print-data.c: In function 'main'
+tests/special/e-acsl-no-assert-print-data.c:14: Error: Assertion failed:
+	The failing predicate is:
+	\let x = value; \false.
diff --git a/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-rt-debug.e-acsl.err.log b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-rt-debug.e-acsl.err.log
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..3ae40d5d7872ad1db6e7c6d073868023c2ab74b7 100644
--- a/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-rt-debug.e-acsl.err.log
+++ b/src/plugins/e-acsl/tests/special/oracle_dev/e-acsl-rt-debug.e-acsl.err.log
@@ -0,0 +1,17 @@
+>>> HEAP ---------------------
+   Application: 128 MB [0x00000-00000-00000, 0x00000-00000-00000]
+   Primary    : 128 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx }
+   Secondary  : 16 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx }
+>>> STACK --------------------
+   Application: 16 MB [0x00000-00000-00000, 0x00000-00000-00000]
+   Primary    : 16 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx }
+   Secondary  : 16 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx }
+>>> GLOBAL -------------------
+   Application: 0 MB [0x00000-00000-00000, 0x00000-00000-00000]
+   Primary    : 0 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx }
+   Secondary  : 0 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx }
+>>> TLS ----------------------
+   Application: 64 MB [0x00000-00000-00000, 0x00000-00000-00000]
+   Primary    : 64 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx }
+   Secondary  : 64 MB [0x00000-00000-00000, 0x00000-00000-00000]{ Offset: xxxx }
+>>> --------------------------
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_addr-by-val.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_addr-by-val.c
index 0324021b4b2ed6ab6d035ed2f388e2ba6056757d..dfc3a961e287759cb75665bcf1d12a5be972ccf2 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_addr-by-val.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_addr-by-val.c
@@ -1,5 +1,4 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
 #include "stdint.h"
 #include "stdio.h"
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_args.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_args.c
index f5eef9929a553ac34af169aa1d9f7dbf2e00e0c2..908470318954eceb12e741ba463182b69e076020 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_args.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_args.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -9,42 +10,105 @@ int main(int argc, char const **argv)
   __e_acsl_memory_init(& argc,(char ***)(& argv),(size_t)8);
   {
     int __gen_e_acsl_valid;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&argc",
+                                 (void *)(& argc));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,"sizeof(int)",
+                                   0,sizeof(int));
     __gen_e_acsl_valid = __e_acsl_valid((void *)(& argc),sizeof(int),
                                         (void *)(& argc),(void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main","\\valid(&argc)",
-                    "tests/temporal/t_args.c",8);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(&argc)",
+                                 0,__gen_e_acsl_valid);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(&argc)";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_args.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 8;
+    __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(&argc); */ ;
   {
     int __gen_e_acsl_valid_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"argv",
+                                 (void *)argv);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char const *)",0,
+                                   sizeof(char const *));
     __gen_e_acsl_valid_2 = __e_acsl_valid((void *)argv,sizeof(char const *),
                                           (void *)argv,(void *)(& argv));
-    __e_acsl_assert(__gen_e_acsl_valid_2,1,"Assertion","main",
-                    "\\valid(argv)","tests/temporal/t_args.c",9);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\valid(argv)",0,__gen_e_acsl_valid_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(argv)";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_args.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 9;
+    __e_acsl_assert(__gen_e_acsl_valid_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid(argv); */ ;
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"argv",
+                                 (void *)argv);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(char const *)",0,
+                                   sizeof(char const *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)argv,
                                                     sizeof(char const *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized(argv)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid_read;
       int __gen_e_acsl_valid_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"*argv",
+                                   (void *)*argv);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"argv",
+                                   (void *)argv);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(char const *)",0,
+                                     sizeof(char const *));
       __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)argv,
                                                     sizeof(char const *),
                                                     (void *)argv,
                                                     (void *)(& argv));
-      __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main",
-                      "mem_access: \\valid_read(argv)",
-                      "tests/temporal/t_args.c",10);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "RTE";
+      __gen_e_acsl_assert_data_4.pred_txt = "mem_access: \\valid_read(argv)";
+      __gen_e_acsl_assert_data_4.file = "tests/temporal/t_args.c";
+      __gen_e_acsl_assert_data_4.fct = "main";
+      __gen_e_acsl_assert_data_4.line = 10;
+      __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(char const)",0,
+                                     sizeof(char const));
       __gen_e_acsl_valid_3 = __e_acsl_valid((void *)*argv,sizeof(char const),
                                             (void *)*argv,(void *)argv);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\valid(*argv)",0,__gen_e_acsl_valid_3);
       __gen_e_acsl_and = __gen_e_acsl_valid_3;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(*argv)",
-                    "tests/temporal/t_args.c",10);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\valid(*argv)";
+    __gen_e_acsl_assert_data_3.file = "tests/temporal/t_args.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 10;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   /*@ assert \valid(*argv); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_array.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_array.c
index 17349b414867ebc57efc76abda167c3f1087dc35..8119c3e7c4a1f1153a52ea0642dbff2b49e58b0e 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_array.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_array.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -25,53 +25,115 @@ int main(void)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(int **)src",
+                                 (void *)(src));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(src),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized((int **)src)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"src[0]",
+                                   (void *)src[0]);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)src[0],sizeof(int),
                                           (void *)src[0],(void *)(src));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid(src[0])",0,__gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(src[0])",
-                    "tests/temporal/t_array.c",12);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(src[0])";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_array.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 12;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(src[0]); */ ;
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&src[1]",
+                                 (void *)(& src[1]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& src[1]),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&src[1])",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_valid_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"src[1]",
+                                   (void *)src[1]);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_2 = __e_acsl_valid((void *)src[1],sizeof(int),
                                             (void *)src[1],
                                             (void *)(& src[1]));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\valid(src[1])",0,__gen_e_acsl_valid_2);
       __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","main",
-                    "\\valid(src[1])","tests/temporal/t_array.c",13);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(src[1])";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_array.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 13;
+    __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid(src[1]); */ ;
   {
     int __gen_e_acsl_initialized_3;
     int __gen_e_acsl_and_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&src[2]",
+                                 (void *)(& src[2]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& src[2]),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized(&src[2])",0,
+                                 __gen_e_acsl_initialized_3);
     if (__gen_e_acsl_initialized_3) {
       int __gen_e_acsl_valid_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"src[2]",
+                                   (void *)src[2]);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_3 = __e_acsl_valid((void *)src[2],sizeof(int),
                                             (void *)src[2],
                                             (void *)(& src[2]));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\valid(src[2])",0,__gen_e_acsl_valid_3);
       __gen_e_acsl_and_3 = __gen_e_acsl_valid_3;
     }
     else __gen_e_acsl_and_3 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_3,1,"Assertion","main",
-                    "!\\valid(src[2])","tests/temporal/t_array.c",14);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "!\\valid(src[2])";
+    __gen_e_acsl_assert_data_3.file = "tests/temporal/t_array.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 14;
+    __e_acsl_assert(! __gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert ¬\valid(src[2]); */ ;
+  /*@ assert !\valid(src[2]); */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(src));
   __e_acsl_delete_block((void *)(& b));
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_char.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_char.c
index 26ac8e12f25ce50dd420654192056f455df54886..d78aaaa218b10b3ed68431b902fe3cb97f2f33d6 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_char.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_char.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -28,33 +28,73 @@ int main(int argc, char const **argv)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                     sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(char),(void *)p,
                                           (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0,
+                                   __gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)",
-                    "tests/temporal/t_char.c",15);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(p)";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_char.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 15;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(p); */ ;
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&q)",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_valid_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(char),(void *)q,
                                             (void *)(& q));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(q)",
+                                   0,__gen_e_acsl_valid_2);
       __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","main","\\valid(q)",
-                    "tests/temporal/t_char.c",16);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(q)";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_char.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 16;
+    __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid(q); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_darray.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_darray.c
index 2dd226207fca2c2718cdea9646ee68554f5691c3..174c9b8d34386f733136caeae8de239e52e3802b 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_darray.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_darray.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -10,24 +10,53 @@ void area_triangle(double (*vertices)[4])
     int __gen_e_acsl_valid_read;
     __e_acsl_store_block((void *)(& vertices),(size_t)8);
     __e_acsl_temporal_pull_parameter((void *)(& vertices),0U,8UL);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,
+                                 "(double *)*(vertices + 0)",
+                                 (void *)(*(vertices + 0)));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(double)",0,sizeof(double));
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(*(vertices + 0)),
                                                   sizeof(double),
                                                   (void *)(*(vertices + 0)),
                                                   (void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"Assertion","area_triangle",
-                    "rte: mem_access: \\valid_read((double *)*(vertices + 0))",
-                    "tests/temporal/t_darray.c",6);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "rte: mem_access: \\valid_read((double *)*(vertices + 0))",
+                                 0,__gen_e_acsl_valid_read);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "rte: mem_access: \\valid_read((double *)*(vertices + 0))";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_darray.c";
+    __gen_e_acsl_assert_data.fct = "area_triangle";
+    __gen_e_acsl_assert_data.line = 6;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert rte: mem_access: \valid_read((double *)*(vertices + 0)); */ ;
   {
     int __gen_e_acsl_valid_read_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,
+                                 "(double *)*(vertices + 1)",
+                                 (void *)(*(vertices + 1)));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(double)",0,sizeof(double));
     __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(*(vertices + 1)),
                                                     sizeof(double),
                                                     (void *)(*(vertices + 1)),
                                                     (void *)0);
-    __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"Assertion","area_triangle",
-                    "rte: mem_access: \\valid_read((double *)*(vertices + 1))",
-                    "tests/temporal/t_darray.c",7);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "rte: mem_access: \\valid_read((double *)*(vertices + 1))",
+                                 0,__gen_e_acsl_valid_read_2);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "rte: mem_access: \\valid_read((double *)*(vertices + 1))";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_darray.c";
+    __gen_e_acsl_assert_data_2.fct = "area_triangle";
+    __gen_e_acsl_assert_data_2.line = 7;
+    __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert rte: mem_access: \valid_read((double *)*(vertices + 1)); */ ;
   __e_acsl_delete_block((void *)(& vertices));
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_dpointer.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_dpointer.c
index 44b32fb0b13f0699b87c1da69c93901bee899264..2407578f325e1f8174550770fbe5c24f717f0e95 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_dpointer.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_dpointer.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -18,10 +19,24 @@ int main(void)
   while (i < 3) {
     {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"i",0,i);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_valid = __e_acsl_valid((void *)(p + i),sizeof(int *),
                                           (void *)p,(void *)(& p));
-      __e_acsl_assert(__gen_e_acsl_valid,1,"Assertion","main",
-                      "\\valid(p + i)","tests/temporal/t_dpointer.c",13);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid(p + i)",0,__gen_e_acsl_valid);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "\\valid(p + i)";
+      __gen_e_acsl_assert_data.file = "tests/temporal/t_dpointer.c";
+      __gen_e_acsl_assert_data.fct = "main";
+      __gen_e_acsl_assert_data.line = 13;
+      __e_acsl_assert(__gen_e_acsl_valid,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
     /*@ assert \valid(p + i); */ ;
     __e_acsl_initialize((void *)(p + i),sizeof(int *));
@@ -32,26 +47,61 @@ int main(void)
     {
       int __gen_e_acsl_initialized;
       int __gen_e_acsl_and;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"i",0,i);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)(p + i),
                                                       sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\initialized(p + i)",0,
+                                   __gen_e_acsl_initialized);
       if (__gen_e_acsl_initialized) {
         int __gen_e_acsl_valid_read;
         int __gen_e_acsl_valid_2;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"*(p + i)",
+                                     (void *)*(p + i));
+        __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+          {.values = (void *)0};
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",
+                                     (void *)p);
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"i",0,i);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                       "sizeof(int *)",0,sizeof(int *));
         __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(p + i),
                                                       sizeof(int *),
                                                       (void *)p,
                                                       (void *)(& p));
-        __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main",
-                        "mem_access: \\valid_read(p + i)",
-                        "tests/temporal/t_dpointer.c",15);
+        __gen_e_acsl_assert_data_3.blocking = 1;
+        __gen_e_acsl_assert_data_3.kind = "RTE";
+        __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(p + i)";
+        __gen_e_acsl_assert_data_3.file = "tests/temporal/t_dpointer.c";
+        __gen_e_acsl_assert_data_3.fct = "main";
+        __gen_e_acsl_assert_data_3.line = 15;
+        __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_3);
+        __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_2 = __e_acsl_valid((void *)*(p + i),sizeof(int),
                                               (void *)*(p + i),
                                               (void *)(p + i));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "\\valid(*(p + i))",0,
+                                     __gen_e_acsl_valid_2);
         __gen_e_acsl_and = __gen_e_acsl_valid_2;
       }
       else __gen_e_acsl_and = 0;
-      __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main",
-                      "\\valid(*(p + i))","tests/temporal/t_dpointer.c",15);
+      __gen_e_acsl_assert_data_2.blocking = 1;
+      __gen_e_acsl_assert_data_2.kind = "Assertion";
+      __gen_e_acsl_assert_data_2.pred_txt = "\\valid(*(p + i))";
+      __gen_e_acsl_assert_data_2.file = "tests/temporal/t_dpointer.c";
+      __gen_e_acsl_assert_data_2.fct = "main";
+      __gen_e_acsl_assert_data_2.line = 15;
+      __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     }
     /*@ assert \valid(*(p + i)); */ ;
     i ++;
@@ -66,29 +116,61 @@ int main(void)
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(p + 2),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\initialized(p + 2)",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_valid_read_2;
       int __gen_e_acsl_valid_3;
+      /*@ assert Eva: dangling_pointer: !\dangling(p + 2); */
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"*(p + 2)",
+                                   (void *)*(p + 2));
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(p + 2),
                                                       sizeof(int *),
                                                       (void *)p,
                                                       (void *)(& p));
-      __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","main",
-                      "mem_access: \\valid_read(p + 2)",
-                      "tests/temporal/t_dpointer.c",21);
-      /*@ assert Eva: dangling_pointer: ¬\dangling(p + 2); */
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "RTE";
+      __gen_e_acsl_assert_data_5.pred_txt = "mem_access: \\valid_read(p + 2)";
+      __gen_e_acsl_assert_data_5.file = "tests/temporal/t_dpointer.c";
+      __gen_e_acsl_assert_data_5.fct = "main";
+      __gen_e_acsl_assert_data_5.line = 21;
+      __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_3 = __e_acsl_valid((void *)*(p + 2),sizeof(int),
                                             (void *)*(p + 2),(void *)(
                                             p + 2));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\valid(*(p + 2))",0,
+                                   __gen_e_acsl_valid_3);
       __gen_e_acsl_and_2 = __gen_e_acsl_valid_3;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main",
-                    "!\\valid(*(p + 2))","tests/temporal/t_dpointer.c",21);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(*(p + 2))";
+    __gen_e_acsl_assert_data_4.file = "tests/temporal/t_dpointer.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 21;
+    __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  /*@ assert ¬\valid(*(p + 2)); */ ;
+  /*@ assert !\valid(*(p + 2)); */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(& p));
   __e_acsl_memory_clean();
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fptr.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fptr.c
index 5759e6ea84b71493b7f495f7554bd37bbb5f3edc..41b1be9b3436f33ebbb69cb4c828d2c1053ef8e7 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fptr.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fptr.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -55,17 +55,38 @@ int main(int argc, char const **argv)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& q),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&q)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)q,sizeof(int),(void *)q,
                                           (void *)(& q));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(q)",
+                                   0,__gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(q)",
-                    "tests/temporal/t_fptr.c",19);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(q)";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_fptr.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 19;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid(q); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_lib.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_lib.c
index e883e275a28ba0a40a14da678e0c6f20a8542ebd..5109aa1cfbeff3ffbb33fe0a1ef24df161612b0d 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_lib.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_lib.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 char *__gen_e_acsl_literal_string;
@@ -43,35 +44,66 @@ int main(void)
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
     int __gen_e_acsl_and_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& q),
                                                     sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&q)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"q",(void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid = __e_acsl_valid((void *)q,sizeof(char),(void *)q,
                                           (void *)(& q));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(q)",0,
+                                   __gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
     if (__gen_e_acsl_and) {
       int __gen_e_acsl_initialized_2;
       int __gen_e_acsl_and_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                   (void *)(& p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& p),
                                                         sizeof(char *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&p)",0,
+                                   __gen_e_acsl_initialized_2);
       if (__gen_e_acsl_initialized_2) {
         int __gen_e_acsl_valid_2;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",
+                                     (void *)p);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_2 = __e_acsl_valid((void *)p,sizeof(char),
                                               (void *)p,(void *)(& p));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",
+                                     0,__gen_e_acsl_valid_2);
         __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
       }
       else __gen_e_acsl_and_2 = 0;
       __gen_e_acsl_and_3 = __gen_e_acsl_and_2;
     }
     else __gen_e_acsl_and_3 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main",
-                    "\\valid(q) && \\valid(p)","tests/temporal/t_fun_lib.c",
-                    15);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(q) && \\valid(p)";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_fun_lib.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 15;
+    __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert \valid(q) ∧ \valid(p); */ ;
+  /*@ assert \valid(q) && \valid(p); */ ;
   __e_acsl_temporal_reset_parameters();
   __e_acsl_temporal_reset_return();
   __e_acsl_temporal_save_nreferent_parameter((void *)(& q),1U);
@@ -88,17 +120,38 @@ int main(void)
   {
     int __gen_e_acsl_initialized_3;
     int __gen_e_acsl_and_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&path",
+                                 (void *)(& path));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& path),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&path)",0,
+                                 __gen_e_acsl_initialized_3);
     if (__gen_e_acsl_initialized_3) {
       int __gen_e_acsl_valid_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"path",
+                                   (void *)path);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_3 = __e_acsl_valid((void *)path,sizeof(char),
                                             (void *)path,(void *)(& path));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\valid(path)",0,__gen_e_acsl_valid_3);
       __gen_e_acsl_and_4 = __gen_e_acsl_valid_3;
     }
     else __gen_e_acsl_and_4 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main","\\valid(path)",
-                    "tests/temporal/t_fun_lib.c",22);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(path)";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_fun_lib.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 22;
+    __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid(path); */ ;
   __e_acsl_temporal_reset_parameters();
@@ -113,35 +166,68 @@ int main(void)
     int __gen_e_acsl_initialized_4;
     int __gen_e_acsl_and_5;
     int __gen_e_acsl_and_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& p),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized_4);
     if (__gen_e_acsl_initialized_4) {
       int __gen_e_acsl_valid_4;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_4 = __e_acsl_valid((void *)p,sizeof(char),(void *)p,
                                             (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\valid(p)",
+                                   0,__gen_e_acsl_valid_4);
       __gen_e_acsl_and_5 = __gen_e_acsl_valid_4;
     }
     else __gen_e_acsl_and_5 = 0;
     if (! __gen_e_acsl_and_5) {
       int __gen_e_acsl_initialized_5;
       int __gen_e_acsl_and_6;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&path",
+                                   (void *)(& path));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& path),
                                                         sizeof(char *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(&path)",0,
+                                   __gen_e_acsl_initialized_5);
       if (__gen_e_acsl_initialized_5) {
         int __gen_e_acsl_valid_5;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"path",
+                                     (void *)path);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_5 = __e_acsl_valid((void *)path,sizeof(char),
                                               (void *)path,(void *)(& path));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                     "\\valid(path)",0,__gen_e_acsl_valid_5);
         __gen_e_acsl_and_6 = __gen_e_acsl_valid_5;
       }
       else __gen_e_acsl_and_6 = 0;
       __gen_e_acsl_and_7 = ! __gen_e_acsl_and_6;
     }
     else __gen_e_acsl_and_7 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_7,1,"Assertion","main",
-                    "!\\valid(p) && !\\valid(path)",
-                    "tests/temporal/t_fun_lib.c",29);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "!\\valid(p) && !\\valid(path)";
+    __gen_e_acsl_assert_data_3.file = "tests/temporal/t_fun_lib.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 29;
+    __e_acsl_assert(__gen_e_acsl_and_7,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert ¬\valid(p) ∧ ¬\valid(path); */ ;
+  /*@ assert !\valid(p) && !\valid(path); */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(& path));
   __e_acsl_delete_block((void *)(& q));
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_ptr.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_ptr.c
index 64bb8c9ecbf2e566cb4a05fa510668b941c25e74..e81eaff83aafca13aef4ed2a85d0b1ce4851ed0f 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_ptr.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_fun_ptr.c
@@ -41,17 +41,36 @@ int main(int argc, char const **argv)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                           (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0,
+                                   __gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(p)",
-                    "tests/temporal/t_fun_ptr.c",28);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(p)";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_fun_ptr.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 28;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(p); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_getenv.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_getenv.c
index ad2ee7a02d6a21a388d24b3c7090113ef50d5071..a02788ad596ce905452650cea65b4a449c8ac0e7 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_getenv.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_getenv.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 char *__gen_e_acsl_literal_string_2;
@@ -7,14 +8,14 @@ char *__gen_e_acsl_literal_string;
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
 /*@ requires valid_name: valid_read_string(name);
-    ensures null_or_valid_result: \result ≡ \null ∨ \valid(\result);
+    ensures null_or_valid_result: \result == \null || \valid(\result);
     assigns \result;
     assigns \result \from __fc_env[0 ..], (indirect: name), *(name + (0 ..));
  */
 char *__gen_e_acsl_getenv(char const *name);
 
 /*@ requires valid_name: valid_read_string(name);
-    ensures null_or_valid_result: \result ≡ \null ∨ \valid(\result);
+    ensures null_or_valid_result: \result == \null || \valid(\result);
     assigns \result;
     assigns \result \from __fc_env[0 ..], (indirect: name), *(name + (0 ..));
  */
@@ -29,17 +30,32 @@ char *__gen_e_acsl_getenv(char const *name)
   {
     int __gen_e_acsl_or;
     __e_acsl_temporal_save_return((void *)(& __retres));
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"\\result",
+                                 (void *)__retres);
     if (__retres == (char *)0) __gen_e_acsl_or = 1;
     else {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"\\result",
+                                   (void *)__retres);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid = __e_acsl_valid((void *)__retres,sizeof(char),
                                           (void *)__retres,
                                           (void *)(& __retres));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\valid(\\result)",0,__gen_e_acsl_valid);
       __gen_e_acsl_or = __gen_e_acsl_valid;
     }
-    __e_acsl_assert(__gen_e_acsl_or,1,"Postcondition","getenv",
-                    "null_or_valid_result: \\result == \\null || \\valid(\\result)",
-                    "FRAMAC_SHARE/libc/stdlib.h",488);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Postcondition";
+    __gen_e_acsl_assert_data_2.pred_txt = "null_or_valid_result: \\result == \\null || \\valid(\\result)";
+    __gen_e_acsl_assert_data_2.file = "FRAMAC_SHARE/libc/stdlib.h";
+    __gen_e_acsl_assert_data_2.fct = "getenv";
+    __gen_e_acsl_assert_data_2.line = 488;
+    __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
     __e_acsl_delete_block((void *)(& __retres));
     return __retres;
   }
@@ -85,48 +101,90 @@ int main(int argc, char const **argv)
   __e_acsl_full_init((void *)(& g2));
   {
     int __gen_e_acsl_or;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"g1",(void *)g1);
     if (g1 == (char *)0) __gen_e_acsl_or = 1;
     else {
       int __gen_e_acsl_initialized;
       int __gen_e_acsl_and;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&g1",
+                                   (void *)(& g1));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& g1),
                                                       sizeof(char *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&g1)",0,
+                                   __gen_e_acsl_initialized);
       if (__gen_e_acsl_initialized) {
         int __gen_e_acsl_valid;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"g1",
+                                     (void *)g1);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid = __e_acsl_valid((void *)g1,sizeof(char),
                                             (void *)g1,(void *)(& g1));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                     "\\valid(g1)",0,__gen_e_acsl_valid);
         __gen_e_acsl_and = __gen_e_acsl_valid;
       }
       else __gen_e_acsl_and = 0;
       __gen_e_acsl_or = __gen_e_acsl_and;
     }
-    __e_acsl_assert(__gen_e_acsl_or,1,"Assertion","main",
-                    "g1 == \\null || \\valid(g1)",
-                    "tests/temporal/t_getenv.c",13);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "g1 == \\null || \\valid(g1)";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_getenv.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 13;
+    __e_acsl_assert(__gen_e_acsl_or,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert g1 ≡ \null ∨ \valid(g1); */ ;
+  /*@ assert g1 == \null || \valid(g1); */ ;
   {
     int __gen_e_acsl_or_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"g2",
+                                 (void *)g2);
     if (g2 == (char *)0) __gen_e_acsl_or_2 = 1;
     else {
       int __gen_e_acsl_initialized_2;
       int __gen_e_acsl_and_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&g2",
+                                   (void *)(& g2));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& g2),
                                                         sizeof(char *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\initialized(&g2)",0,
+                                   __gen_e_acsl_initialized_2);
       if (__gen_e_acsl_initialized_2) {
         int __gen_e_acsl_valid_2;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"g2",
+                                     (void *)g2);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_2 = __e_acsl_valid((void *)g2,sizeof(char),
                                               (void *)g2,(void *)(& g2));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "\\valid(g2)",0,__gen_e_acsl_valid_2);
         __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
       }
       else __gen_e_acsl_and_2 = 0;
       __gen_e_acsl_or_2 = __gen_e_acsl_and_2;
     }
-    __e_acsl_assert(__gen_e_acsl_or_2,1,"Assertion","main",
-                    "g2 == \\null || \\valid(g2)",
-                    "tests/temporal/t_getenv.c",14);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "g2 == \\null || \\valid(g2)";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_getenv.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 14;
+    __e_acsl_assert(__gen_e_acsl_or_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert g2 ≡ \null ∨ \valid(g2); */ ;
+  /*@ assert g2 == \null || \valid(g2); */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(& g2));
   __e_acsl_delete_block((void *)(& g1));
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_global_init.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_global_init.c
index 5206161a3d3e05c067842cd5b3d52fa7f86ca9d6..d6d8f0bc312cd9283b3b119873c5c18b9816b82f 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_global_init.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_global_init.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 char *__gen_e_acsl_literal_string;
 char *__gen_e_acsl_literal_string_2;
@@ -37,17 +37,37 @@ void build_tree(tree_desc *desc)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&extra",
+                                 (void *)(& extra));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& extra),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&extra)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"extra",
+                                   (void *)extra);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)extra,sizeof(int),
                                           (void *)extra,(void *)(& extra));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid(extra)",0,__gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","build_tree",
-                    "\\valid(extra)","tests/temporal/t_global_init.c",34);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(extra)";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_global_init.c";
+    __gen_e_acsl_assert_data.fct = "build_tree";
+    __gen_e_acsl_assert_data.line = 34;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(extra); */ ;
   __e_acsl_delete_block((void *)(& desc));
@@ -160,32 +180,72 @@ int main(int argc, char const **argv)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(char **)",0,sizeof(char **));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                     sizeof(char **));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid_read;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)p,sizeof(char *),
                                                     (void *)p,(void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid_read(p)",0,
+                                   __gen_e_acsl_valid_read);
       __gen_e_acsl_and = __gen_e_acsl_valid_read;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid_read(p)",
-                    "tests/temporal/t_global_init.c",49);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid_read(p)";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_global_init.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 49;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid_read(p); */ ;
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)p,
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(p)",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_initialized_3;
       int __gen_e_acsl_and_2;
       int __gen_e_acsl_valid_read_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"*p",
+                                   (void *)*p);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p",
+                                   (void *)(& p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(char **)",0,sizeof(char **));
       __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& p),
                                                         sizeof(char **));
       if (__gen_e_acsl_initialized_3) {
         int __gen_e_acsl_valid_read_2;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",
+                                     (void *)p);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                       "sizeof(char *)",0,sizeof(char *));
         __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)p,
                                                         sizeof(char *),
                                                         (void *)p,
@@ -193,17 +253,33 @@ int main(int argc, char const **argv)
         __gen_e_acsl_and_2 = __gen_e_acsl_valid_read_2;
       }
       else __gen_e_acsl_and_2 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_2,1,"RTE","main",
-                      "mem_access: \\valid_read(p)",
-                      "tests/temporal/t_global_init.c",50);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "RTE";
+      __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(p)";
+      __gen_e_acsl_assert_data_3.file = "tests/temporal/t_global_init.c";
+      __gen_e_acsl_assert_data_3.fct = "main";
+      __gen_e_acsl_assert_data_3.line = 50;
+      __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)*p,
                                                       sizeof(char),
                                                       (void *)*p,(void *)p);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\valid_read(*p)",0,
+                                   __gen_e_acsl_valid_read_3);
       __gen_e_acsl_and_3 = __gen_e_acsl_valid_read_3;
     }
     else __gen_e_acsl_and_3 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main",
-                    "\\valid_read(*p)","tests/temporal/t_global_init.c",50);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid_read(*p)";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_global_init.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 50;
+    __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid_read(*p); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_labels.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_labels.c
index 72fec76659a77a3aa1be7d0ed9597500503ccbce..830020b4849705f9ef65bfe67f8a3858c9e11c7b 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_labels.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_labels.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -54,52 +54,104 @@ int main(int argc, char const **argv)
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
     int __gen_e_acsl_and_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                           (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0,
+                                   __gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
     if (__gen_e_acsl_and) {
       int __gen_e_acsl_initialized_2;
       int __gen_e_acsl_and_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&q",
+                                   (void *)(& q));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&q)",0,
+                                   __gen_e_acsl_initialized_2);
       if (__gen_e_acsl_initialized_2) {
         int __gen_e_acsl_valid_2;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"q",
+                                     (void *)q);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int),
                                               (void *)q,(void *)(& q));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(q)",
+                                     0,__gen_e_acsl_valid_2);
         __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
       }
       else __gen_e_acsl_and_2 = 0;
       __gen_e_acsl_and_3 = __gen_e_acsl_and_2;
     }
     else __gen_e_acsl_and_3 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main",
-                    "\\valid(p) && \\valid(q)","tests/temporal/t_labels.c",
-                    26);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(p) && \\valid(q)";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_labels.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 26;
+    __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert \valid(p) ∧ \valid(q); */ ;
+  /*@ assert \valid(p) && \valid(q); */ ;
   __e_acsl_full_init((void *)(& q));
   LAB2: __e_acsl_temporal_store_nreferent((void *)(& q),(void *)(& p));
   q = p;
   {
     int __gen_e_acsl_initialized_3;
     int __gen_e_acsl_and_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& p),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized_3);
     if (__gen_e_acsl_initialized_3) {
       int __gen_e_acsl_valid_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_3 = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                             (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(p)",
+                                   0,__gen_e_acsl_valid_3);
       __gen_e_acsl_and_4 = __gen_e_acsl_valid_3;
     }
     else __gen_e_acsl_and_4 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main","\\valid(p)",
-                    "tests/temporal/t_labels.c",30);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(p)";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_labels.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 30;
+    __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid(p); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_lit_string.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_lit_string.c
index 55a7f643816a48caf304ba6d625c12f67541b7de..38fe4b6ad0718cc9be747f4c310e022bd87a8060 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_lit_string.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_lit_string.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 char *__gen_e_acsl_literal_string_2;
 char *__gen_e_acsl_literal_string;
@@ -41,35 +41,67 @@ int main(void)
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
     int __gen_e_acsl_and_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&f",
+                                 (void *)(& f));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& f),
                                                     sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&f)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid_read;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"f",(void *)f);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)f,sizeof(char),
                                                     (void *)f,(void *)(& f));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid_read(f)",0,
+                                   __gen_e_acsl_valid_read);
       __gen_e_acsl_and = __gen_e_acsl_valid_read;
     }
     else __gen_e_acsl_and = 0;
     if (__gen_e_acsl_and) {
       int __gen_e_acsl_initialized_2;
       int __gen_e_acsl_and_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&f",
+                                   (void *)(& f));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& f),
                                                         sizeof(char *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&f)",0,
+                                   __gen_e_acsl_initialized_2);
       if (__gen_e_acsl_initialized_2) {
         int __gen_e_acsl_valid;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"f",
+                                     (void *)f);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid = __e_acsl_valid((void *)f,sizeof(char),(void *)f,
                                             (void *)(& f));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(f)",
+                                     0,__gen_e_acsl_valid);
         __gen_e_acsl_and_2 = __gen_e_acsl_valid;
       }
       else __gen_e_acsl_and_2 = 0;
       __gen_e_acsl_and_3 = ! __gen_e_acsl_and_2;
     }
     else __gen_e_acsl_and_3 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main",
-                    "\\valid_read(f) && !\\valid(f)",
-                    "tests/temporal/t_lit_string.c",9);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid_read(f) && !\\valid(f)";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_lit_string.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 9;
+    __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert \valid_read(f) ∧ ¬\valid(f); */ ;
+  /*@ assert \valid_read(f) && !\valid(f); */ ;
   __e_acsl_full_init((void *)(& g));
   __e_acsl_temporal_store_nblock((void *)(& g),
                                  (void *)__gen_e_acsl_literal_string_2);
@@ -78,36 +110,70 @@ int main(void)
     int __gen_e_acsl_initialized_3;
     int __gen_e_acsl_and_4;
     int __gen_e_acsl_and_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&g",
+                                 (void *)(& g));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& g),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&g)",0,
+                                 __gen_e_acsl_initialized_3);
     if (__gen_e_acsl_initialized_3) {
       int __gen_e_acsl_valid_read_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"g",
+                                   (void *)g);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)g,sizeof(char),
                                                       (void *)g,
                                                       (void *)(& g));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\valid_read(g)",0,
+                                   __gen_e_acsl_valid_read_2);
       __gen_e_acsl_and_4 = __gen_e_acsl_valid_read_2;
     }
     else __gen_e_acsl_and_4 = 0;
     if (__gen_e_acsl_and_4) {
       int __gen_e_acsl_initialized_4;
       int __gen_e_acsl_and_5;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&g",
+                                   (void *)(& g));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& g),
                                                         sizeof(char *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\initialized(&g)",0,
+                                   __gen_e_acsl_initialized_4);
       if (__gen_e_acsl_initialized_4) {
         int __gen_e_acsl_valid_2;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"g",
+                                     (void *)g);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_2 = __e_acsl_valid((void *)g,sizeof(char),
                                               (void *)g,(void *)(& g));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "\\valid(g)",0,__gen_e_acsl_valid_2);
         __gen_e_acsl_and_5 = __gen_e_acsl_valid_2;
       }
       else __gen_e_acsl_and_5 = 0;
       __gen_e_acsl_and_6 = ! __gen_e_acsl_and_5;
     }
     else __gen_e_acsl_and_6 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","main",
-                    "\\valid_read(g) && !\\valid(g)",
-                    "tests/temporal/t_lit_string.c",12);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid_read(g) && !\\valid(g)";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_lit_string.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 12;
+    __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert \valid_read(g) ∧ ¬\valid(g); */ ;
+  /*@ assert \valid_read(g) && !\valid(g); */ ;
   char *p = f;
   __e_acsl_temporal_store_nreferent((void *)(& p),(void *)(& f));
   __e_acsl_store_block((void *)(& p),(size_t)8);
@@ -116,36 +182,70 @@ int main(void)
     int __gen_e_acsl_initialized_5;
     int __gen_e_acsl_and_7;
     int __gen_e_acsl_and_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& p),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized_5);
     if (__gen_e_acsl_initialized_5) {
       int __gen_e_acsl_valid_read_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)p,sizeof(char),
                                                       (void *)p,
                                                       (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\valid_read(p)",0,
+                                   __gen_e_acsl_valid_read_3);
       __gen_e_acsl_and_7 = __gen_e_acsl_valid_read_3;
     }
     else __gen_e_acsl_and_7 = 0;
     if (__gen_e_acsl_and_7) {
       int __gen_e_acsl_initialized_6;
       int __gen_e_acsl_and_8;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p",
+                                   (void *)(& p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& p),
                                                         sizeof(char *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(&p)",0,
+                                   __gen_e_acsl_initialized_6);
       if (__gen_e_acsl_initialized_6) {
         int __gen_e_acsl_valid_3;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",
+                                     (void *)p);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_3 = __e_acsl_valid((void *)p,sizeof(char),
                                               (void *)p,(void *)(& p));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                     "\\valid(p)",0,__gen_e_acsl_valid_3);
         __gen_e_acsl_and_8 = __gen_e_acsl_valid_3;
       }
       else __gen_e_acsl_and_8 = 0;
       __gen_e_acsl_and_9 = ! __gen_e_acsl_and_8;
     }
     else __gen_e_acsl_and_9 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_9,1,"Assertion","main",
-                    "\\valid_read(p) && !\\valid(p)",
-                    "tests/temporal/t_lit_string.c",15);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\valid_read(p) && !\\valid(p)";
+    __gen_e_acsl_assert_data_3.file = "tests/temporal/t_lit_string.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 15;
+    __e_acsl_assert(__gen_e_acsl_and_9,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert \valid_read(p) ∧ ¬\valid(p); */ ;
+  /*@ assert \valid_read(p) && !\valid(p); */ ;
   __e_acsl_full_init((void *)(& q));
   __e_acsl_temporal_store_nreferent((void *)(& q),(void *)(& f));
   q = f;
@@ -153,36 +253,70 @@ int main(void)
     int __gen_e_acsl_initialized_7;
     int __gen_e_acsl_and_10;
     int __gen_e_acsl_and_12;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& q),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\initialized(&q)",0,
+                                 __gen_e_acsl_initialized_7);
     if (__gen_e_acsl_initialized_7) {
       int __gen_e_acsl_valid_read_4;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)q,sizeof(char),
                                                       (void *)q,
                                                       (void *)(& q));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\valid_read(q)",0,
+                                   __gen_e_acsl_valid_read_4);
       __gen_e_acsl_and_10 = __gen_e_acsl_valid_read_4;
     }
     else __gen_e_acsl_and_10 = 0;
     if (__gen_e_acsl_and_10) {
       int __gen_e_acsl_initialized_8;
       int __gen_e_acsl_and_11;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&q",
+                                   (void *)(& q));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& q),
                                                         sizeof(char *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\initialized(&q)",0,
+                                   __gen_e_acsl_initialized_8);
       if (__gen_e_acsl_initialized_8) {
         int __gen_e_acsl_valid_4;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q",
+                                     (void *)q);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_4 = __e_acsl_valid((void *)q,sizeof(char),
                                               (void *)q,(void *)(& q));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                     "\\valid(q)",0,__gen_e_acsl_valid_4);
         __gen_e_acsl_and_11 = __gen_e_acsl_valid_4;
       }
       else __gen_e_acsl_and_11 = 0;
       __gen_e_acsl_and_12 = ! __gen_e_acsl_and_11;
     }
     else __gen_e_acsl_and_12 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_12,1,"Assertion","main",
-                    "\\valid_read(q) && !\\valid(q)",
-                    "tests/temporal/t_lit_string.c",18);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\valid_read(q) && !\\valid(q)";
+    __gen_e_acsl_assert_data_4.file = "tests/temporal/t_lit_string.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 18;
+    __e_acsl_assert(__gen_e_acsl_and_12,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  /*@ assert \valid_read(q) ∧ ¬\valid(q); */ ;
+  /*@ assert \valid_read(q) && !\valid(q); */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(& q));
   __e_acsl_delete_block((void *)(& p));
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_local_init.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_local_init.c
index b0625988e598137cca8e99072940b94c81ca3323..6cfc464bdcaa21c2e3425df273994ba8c4888ed6 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_local_init.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_local_init.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 char *__gen_e_acsl_literal_string_4;
 char *__gen_e_acsl_literal_string_3;
@@ -31,17 +32,37 @@ void build_tree(tree_desc *desc)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&extra",
+                                 (void *)(& extra));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& extra),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&extra)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"extra",
+                                   (void *)extra);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)extra,sizeof(int),
                                           (void *)extra,(void *)(& extra));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid(extra)",0,__gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","build_tree",
-                    "\\valid(extra)","tests/temporal/t_local_init.c",23);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(extra)";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_local_init.c";
+    __gen_e_acsl_assert_data.fct = "build_tree";
+    __gen_e_acsl_assert_data.line = 23;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(extra); */ ;
   __e_acsl_delete_block((void *)(& desc));
@@ -142,32 +163,72 @@ int main(int argc, char const **argv)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(char **)",0,sizeof(char **));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                     sizeof(char **));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid_read;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)p,sizeof(char *),
                                                     (void *)p,(void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid_read(p)",0,
+                                   __gen_e_acsl_valid_read);
       __gen_e_acsl_and = __gen_e_acsl_valid_read;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid_read(p)",
-                    "tests/temporal/t_local_init.c",35);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid_read(p)";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_local_init.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 35;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid_read(p); */ ;
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)p,
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(p)",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_initialized_3;
       int __gen_e_acsl_and_2;
       int __gen_e_acsl_valid_read_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"*p",
+                                   (void *)*p);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p",
+                                   (void *)(& p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(char **)",0,sizeof(char **));
       __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& p),
                                                         sizeof(char **));
       if (__gen_e_acsl_initialized_3) {
         int __gen_e_acsl_valid_read_2;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",
+                                     (void *)p);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                       "sizeof(char *)",0,sizeof(char *));
         __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)p,
                                                         sizeof(char *),
                                                         (void *)p,
@@ -175,17 +236,33 @@ int main(int argc, char const **argv)
         __gen_e_acsl_and_2 = __gen_e_acsl_valid_read_2;
       }
       else __gen_e_acsl_and_2 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_2,1,"RTE","main",
-                      "mem_access: \\valid_read(p)",
-                      "tests/temporal/t_local_init.c",36);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "RTE";
+      __gen_e_acsl_assert_data_3.pred_txt = "mem_access: \\valid_read(p)";
+      __gen_e_acsl_assert_data_3.file = "tests/temporal/t_local_init.c";
+      __gen_e_acsl_assert_data_3.fct = "main";
+      __gen_e_acsl_assert_data_3.line = 36;
+      __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)*p,
                                                       sizeof(char),
                                                       (void *)*p,(void *)p);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\valid_read(*p)",0,
+                                   __gen_e_acsl_valid_read_3);
       __gen_e_acsl_and_3 = __gen_e_acsl_valid_read_3;
     }
     else __gen_e_acsl_and_3 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main",
-                    "\\valid_read(*p)","tests/temporal/t_local_init.c",36);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid_read(*p)";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_local_init.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 36;
+    __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid_read(*p); */ ;
   char *str[4] =
@@ -208,34 +285,76 @@ int main(int argc, char const **argv)
   {
     int __gen_e_acsl_initialized_4;
     int __gen_e_acsl_and_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char **)",0,sizeof(char **));
     __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& p),
                                                       sizeof(char **));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized_4);
     if (__gen_e_acsl_initialized_4) {
       int __gen_e_acsl_valid_read_4;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)p,
                                                       sizeof(char *),
                                                       (void *)p,
                                                       (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\valid_read(p)",0,
+                                   __gen_e_acsl_valid_read_4);
       __gen_e_acsl_and_4 = __gen_e_acsl_valid_read_4;
     }
     else __gen_e_acsl_and_4 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main",
-                    "\\valid_read(p)","tests/temporal/t_local_init.c",42);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\valid_read(p)";
+    __gen_e_acsl_assert_data_4.file = "tests/temporal/t_local_init.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 42;
+    __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
   /*@ assert \valid_read(p); */ ;
   {
     int __gen_e_acsl_initialized_5;
     int __gen_e_acsl_and_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)p,
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\initialized(p)",0,
+                                 __gen_e_acsl_initialized_5);
     if (__gen_e_acsl_initialized_5) {
       int __gen_e_acsl_initialized_6;
       int __gen_e_acsl_and_5;
       int __gen_e_acsl_valid_read_6;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"*p",
+                                   (void *)*p);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&p",
+                                   (void *)(& p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(char **)",0,sizeof(char **));
       __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& p),
                                                         sizeof(char **));
       if (__gen_e_acsl_initialized_6) {
         int __gen_e_acsl_valid_read_5;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"p",
+                                     (void *)p);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                       "sizeof(char *)",0,sizeof(char *));
         __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)p,
                                                         sizeof(char *),
                                                         (void *)p,
@@ -243,17 +362,33 @@ int main(int argc, char const **argv)
         __gen_e_acsl_and_5 = __gen_e_acsl_valid_read_5;
       }
       else __gen_e_acsl_and_5 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_5,1,"RTE","main",
-                      "mem_access: \\valid_read(p)",
-                      "tests/temporal/t_local_init.c",43);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "RTE";
+      __gen_e_acsl_assert_data_6.pred_txt = "mem_access: \\valid_read(p)";
+      __gen_e_acsl_assert_data_6.file = "tests/temporal/t_local_init.c";
+      __gen_e_acsl_assert_data_6.fct = "main";
+      __gen_e_acsl_assert_data_6.line = 43;
+      __e_acsl_assert(__gen_e_acsl_and_5,& __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)*p,
                                                       sizeof(char),
                                                       (void *)*p,(void *)p);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\valid_read(*p)",0,
+                                   __gen_e_acsl_valid_read_6);
       __gen_e_acsl_and_6 = __gen_e_acsl_valid_read_6;
     }
     else __gen_e_acsl_and_6 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","main",
-                    "\\valid_read(*p)","tests/temporal/t_local_init.c",43);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "\\valid_read(*p)";
+    __gen_e_acsl_assert_data_5.file = "tests/temporal/t_local_init.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 43;
+    __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
   /*@ assert \valid_read(*p); */ ;
   char **P = (char **)(Strings);
@@ -263,34 +398,76 @@ int main(int argc, char const **argv)
   {
     int __gen_e_acsl_initialized_7;
     int __gen_e_acsl_and_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&P",
+                                 (void *)(& P));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                   "sizeof(char **)",0,sizeof(char **));
     __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& P),
                                                       sizeof(char **));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "\\initialized(&P)",0,
+                                 __gen_e_acsl_initialized_7);
     if (__gen_e_acsl_initialized_7) {
       int __gen_e_acsl_valid_read_7;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"P",
+                                   (void *)P);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_valid_read_7 = __e_acsl_valid_read((void *)P,
                                                       sizeof(char *),
                                                       (void *)P,
                                                       (void *)(& P));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                   "\\valid_read(P)",0,
+                                   __gen_e_acsl_valid_read_7);
       __gen_e_acsl_and_7 = __gen_e_acsl_valid_read_7;
     }
     else __gen_e_acsl_and_7 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_7,1,"Assertion","main",
-                    "\\valid_read(P)","tests/temporal/t_local_init.c",47);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "\\valid_read(P)";
+    __gen_e_acsl_assert_data_7.file = "tests/temporal/t_local_init.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 47;
+    __e_acsl_assert(__gen_e_acsl_and_7,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
   /*@ assert \valid_read(P); */ ;
   {
     int __gen_e_acsl_initialized_8;
     int __gen_e_acsl_and_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"P",(void *)P);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)P,
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                 "\\initialized(P)",0,
+                                 __gen_e_acsl_initialized_8);
     if (__gen_e_acsl_initialized_8) {
       int __gen_e_acsl_initialized_9;
       int __gen_e_acsl_and_8;
       int __gen_e_acsl_valid_read_9;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"*P",
+                                   (void *)*P);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&P",
+                                   (void *)(& P));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                     "sizeof(char **)",0,sizeof(char **));
       __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(& P),
                                                         sizeof(char **));
       if (__gen_e_acsl_initialized_9) {
         int __gen_e_acsl_valid_read_8;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"P",
+                                     (void *)P);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                       "sizeof(char *)",0,sizeof(char *));
         __gen_e_acsl_valid_read_8 = __e_acsl_valid_read((void *)P,
                                                         sizeof(char *),
                                                         (void *)P,
@@ -298,17 +475,33 @@ int main(int argc, char const **argv)
         __gen_e_acsl_and_8 = __gen_e_acsl_valid_read_8;
       }
       else __gen_e_acsl_and_8 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_8,1,"RTE","main",
-                      "mem_access: \\valid_read(P)",
-                      "tests/temporal/t_local_init.c",48);
+      __gen_e_acsl_assert_data_9.blocking = 1;
+      __gen_e_acsl_assert_data_9.kind = "RTE";
+      __gen_e_acsl_assert_data_9.pred_txt = "mem_access: \\valid_read(P)";
+      __gen_e_acsl_assert_data_9.file = "tests/temporal/t_local_init.c";
+      __gen_e_acsl_assert_data_9.fct = "main";
+      __gen_e_acsl_assert_data_9.line = 48;
+      __e_acsl_assert(__gen_e_acsl_and_8,& __gen_e_acsl_assert_data_9);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_read_9 = __e_acsl_valid_read((void *)*P,
                                                       sizeof(char),
                                                       (void *)*P,(void *)P);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "\\valid_read(*P)",0,
+                                   __gen_e_acsl_valid_read_9);
       __gen_e_acsl_and_9 = __gen_e_acsl_valid_read_9;
     }
     else __gen_e_acsl_and_9 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_9,1,"Assertion","main",
-                    "\\valid_read(*P)","tests/temporal/t_local_init.c",48);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "\\valid_read(*P)";
+    __gen_e_acsl_assert_data_8.file = "tests/temporal/t_local_init.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 48;
+    __e_acsl_assert(__gen_e_acsl_and_9,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
   /*@ assert \valid_read(*P); */ ;
   __e_acsl_full_init((void *)(& P));
@@ -317,34 +510,76 @@ int main(int argc, char const **argv)
   {
     int __gen_e_acsl_initialized_10;
     int __gen_e_acsl_and_10;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&P",
+                                 (void *)(& P));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                   "sizeof(char **)",0,sizeof(char **));
     __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& P),
                                                        sizeof(char **));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                 "\\initialized(&P)",0,
+                                 __gen_e_acsl_initialized_10);
     if (__gen_e_acsl_initialized_10) {
       int __gen_e_acsl_valid_read_10;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"P",
+                                   (void *)P);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_valid_read_10 = __e_acsl_valid_read((void *)P,
                                                        sizeof(char *),
                                                        (void *)P,
                                                        (void *)(& P));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "\\valid_read(P)",0,
+                                   __gen_e_acsl_valid_read_10);
       __gen_e_acsl_and_10 = __gen_e_acsl_valid_read_10;
     }
     else __gen_e_acsl_and_10 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_10,1,"Assertion","main",
-                    "\\valid_read(P)","tests/temporal/t_local_init.c",52);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "\\valid_read(P)";
+    __gen_e_acsl_assert_data_10.file = "tests/temporal/t_local_init.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 52;
+    __e_acsl_assert(__gen_e_acsl_and_10,& __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
   }
   /*@ assert \valid_read(P); */ ;
   {
     int __gen_e_acsl_initialized_11;
     int __gen_e_acsl_and_12;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"P",(void *)P);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)P,
                                                        sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                 "\\initialized(P)",0,
+                                 __gen_e_acsl_initialized_11);
     if (__gen_e_acsl_initialized_11) {
       int __gen_e_acsl_initialized_12;
       int __gen_e_acsl_and_11;
       int __gen_e_acsl_valid_read_12;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"*P",
+                                   (void *)*P);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"&P",
+                                   (void *)(& P));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                     "sizeof(char **)",0,sizeof(char **));
       __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& P),
                                                          sizeof(char **));
       if (__gen_e_acsl_initialized_12) {
         int __gen_e_acsl_valid_read_11;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"P",
+                                     (void *)P);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                       "sizeof(char *)",0,sizeof(char *));
         __gen_e_acsl_valid_read_11 = __e_acsl_valid_read((void *)P,
                                                          sizeof(char *),
                                                          (void *)P,
@@ -352,17 +587,33 @@ int main(int argc, char const **argv)
         __gen_e_acsl_and_11 = __gen_e_acsl_valid_read_11;
       }
       else __gen_e_acsl_and_11 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_11,1,"RTE","main",
-                      "mem_access: \\valid_read(P)",
-                      "tests/temporal/t_local_init.c",53);
+      __gen_e_acsl_assert_data_12.blocking = 1;
+      __gen_e_acsl_assert_data_12.kind = "RTE";
+      __gen_e_acsl_assert_data_12.pred_txt = "mem_access: \\valid_read(P)";
+      __gen_e_acsl_assert_data_12.file = "tests/temporal/t_local_init.c";
+      __gen_e_acsl_assert_data_12.fct = "main";
+      __gen_e_acsl_assert_data_12.line = 53;
+      __e_acsl_assert(__gen_e_acsl_and_11,& __gen_e_acsl_assert_data_12);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_read_12 = __e_acsl_valid_read((void *)*P,
                                                        sizeof(char),
                                                        (void *)*P,(void *)P);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                   "\\valid_read(*P)",0,
+                                   __gen_e_acsl_valid_read_12);
       __gen_e_acsl_and_12 = __gen_e_acsl_valid_read_12;
     }
     else __gen_e_acsl_and_12 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_12,1,"Assertion","main",
-                    "\\valid_read(*P)","tests/temporal/t_local_init.c",53);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "\\valid_read(*P)";
+    __gen_e_acsl_assert_data_11.file = "tests/temporal/t_local_init.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 53;
+    __e_acsl_assert(__gen_e_acsl_and_12,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
   }
   /*@ assert \valid_read(*P); */ ;
   int extra_lbits[1] = {0};
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc-asan.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc-asan.c
index 28d445663fa2d5681b645ac2dc174e1e7685c768..1b61d34bc77ef5bdc4971b63294a84f20aabfbc6 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc-asan.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc-asan.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 char *__gen_e_acsl_literal_string;
@@ -49,7 +50,7 @@ int main(void)
     p = (int *)malloc((unsigned long)(1024 * 1024));
     __e_acsl_temporal_store_nblock((void *)(& p),(void *)*(& p));
     counter ++;
-    /*@ assert Eva: dangling_pointer: ¬\dangling(&q); */
+    /*@ assert Eva: dangling_pointer: !\dangling(&q); */
     if (p != q) {
       __e_acsl_temporal_reset_parameters();
       __e_acsl_temporal_reset_return();
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc.c
index 93a179e2a29395b84dc30359889e3331d28443b9..f49e516c9b55ef0430ec452a8184901a0e82cf73 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_malloc.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -15,35 +16,75 @@ int main(void)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                           (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0,
+                                   __gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(! __gen_e_acsl_and,1,"Assertion","main","!\\valid(p)",
-                    "tests/temporal/t_malloc.c",11);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "!\\valid(p)";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_malloc.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 11;
+    __e_acsl_assert(! __gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert ¬\valid(p); */ ;
+  /*@ assert !\valid(p); */ ;
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&q)",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_valid_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int),(void *)q,
                                             (void *)(& q));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(q)",
+                                   0,__gen_e_acsl_valid_2);
       __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main","!\\valid(q)",
-                    "tests/temporal/t_malloc.c",12);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(q)";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_malloc.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 12;
+    __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert ¬\valid(q); */ ;
+  /*@ assert !\valid(q); */ ;
   __e_acsl_full_init((void *)(& p));
   __e_acsl_temporal_reset_parameters();
   __e_acsl_temporal_reset_return();
@@ -55,33 +96,75 @@ int main(void)
   {
     int __gen_e_acsl_initialized_3;
     int __gen_e_acsl_and_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& p),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized_3);
     if (__gen_e_acsl_initialized_3) {
       int __gen_e_acsl_valid_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_3 = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                             (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"\\valid(p)",
+                                   0,__gen_e_acsl_valid_3);
       __gen_e_acsl_and_3 = __gen_e_acsl_valid_3;
     }
     else __gen_e_acsl_and_3 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main","\\valid(p)",
-                    "tests/temporal/t_malloc.c",17);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\valid(p)";
+    __gen_e_acsl_assert_data_3.file = "tests/temporal/t_malloc.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 17;
+    __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   /*@ assert \valid(p); */ ;
   {
     int __gen_e_acsl_initialized_4;
     int __gen_e_acsl_and_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& q),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\initialized(&q)",0,
+                                 __gen_e_acsl_initialized_4);
     if (__gen_e_acsl_initialized_4) {
       int __gen_e_acsl_valid_4;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_4 = __e_acsl_valid((void *)q,sizeof(int),(void *)q,
                                             (void *)(& q));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"\\valid(q)",
+                                   0,__gen_e_acsl_valid_4);
       __gen_e_acsl_and_4 = __gen_e_acsl_valid_4;
     }
     else __gen_e_acsl_and_4 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main","\\valid(q)",
-                    "tests/temporal/t_malloc.c",18);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\valid(q)";
+    __gen_e_acsl_assert_data_4.file = "tests/temporal/t_malloc.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 18;
+    __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
   /*@ assert \valid(q); */ ;
   __e_acsl_temporal_reset_parameters();
@@ -91,36 +174,78 @@ int main(void)
   {
     int __gen_e_acsl_initialized_5;
     int __gen_e_acsl_and_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& p),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized_5);
     if (__gen_e_acsl_initialized_5) {
       int __gen_e_acsl_valid_5;
-      /*@ assert Eva: dangling_pointer: ¬\dangling(&p); */
+      /*@ assert Eva: dangling_pointer: !\dangling(&p); */
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_5 = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                             (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"\\valid(p)",
+                                   0,__gen_e_acsl_valid_5);
       __gen_e_acsl_and_5 = __gen_e_acsl_valid_5;
     }
     else __gen_e_acsl_and_5 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_5,1,"Assertion","main","!\\valid(p)",
-                    "tests/temporal/t_malloc.c",22);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(p)";
+    __gen_e_acsl_assert_data_5.file = "tests/temporal/t_malloc.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 22;
+    __e_acsl_assert(! __gen_e_acsl_and_5,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert ¬\valid(p); */ ;
+  /*@ assert !\valid(p); */ ;
   {
     int __gen_e_acsl_initialized_6;
     int __gen_e_acsl_and_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& q),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "\\initialized(&q)",0,
+                                 __gen_e_acsl_initialized_6);
     if (__gen_e_acsl_initialized_6) {
       int __gen_e_acsl_valid_6;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_6 = __e_acsl_valid((void *)q,sizeof(int),(void *)q,
                                             (void *)(& q));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"\\valid(q)",
+                                   0,__gen_e_acsl_valid_6);
       __gen_e_acsl_and_6 = __gen_e_acsl_valid_6;
     }
     else __gen_e_acsl_and_6 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_6,1,"Assertion","main","!\\valid(q)",
-                    "tests/temporal/t_malloc.c",23);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "!\\valid(q)";
+    __gen_e_acsl_assert_data_6.file = "tests/temporal/t_malloc.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 23;
+    __e_acsl_assert(! __gen_e_acsl_and_6,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
-  /*@ assert ¬\valid(q); */ ;
+  /*@ assert !\valid(q); */ ;
   __e_acsl_full_init((void *)(& p));
   __e_acsl_temporal_reset_parameters();
   __e_acsl_temporal_reset_return();
@@ -129,35 +254,77 @@ int main(void)
   {
     int __gen_e_acsl_initialized_7;
     int __gen_e_acsl_and_7;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& p),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized_7);
     if (__gen_e_acsl_initialized_7) {
       int __gen_e_acsl_valid_7;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_7 = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                             (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"\\valid(p)",
+                                   0,__gen_e_acsl_valid_7);
       __gen_e_acsl_and_7 = __gen_e_acsl_valid_7;
     }
     else __gen_e_acsl_and_7 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_7,1,"Assertion","main","\\valid(p)",
-                    "tests/temporal/t_malloc.c",28);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "\\valid(p)";
+    __gen_e_acsl_assert_data_7.file = "tests/temporal/t_malloc.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 28;
+    __e_acsl_assert(__gen_e_acsl_and_7,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
   /*@ assert \valid(p); */ ;
   {
     int __gen_e_acsl_initialized_8;
     int __gen_e_acsl_and_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& q),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                 "\\initialized(&q)",0,
+                                 __gen_e_acsl_initialized_8);
     if (__gen_e_acsl_initialized_8) {
       int __gen_e_acsl_valid_8;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_8 = __e_acsl_valid((void *)q,sizeof(int),(void *)q,
                                             (void *)(& q));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,"\\valid(q)",
+                                   0,__gen_e_acsl_valid_8);
       __gen_e_acsl_and_8 = __gen_e_acsl_valid_8;
     }
     else __gen_e_acsl_and_8 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_8,1,"Assertion","main","!\\valid(q)",
-                    "tests/temporal/t_malloc.c",29);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "!\\valid(q)";
+    __gen_e_acsl_assert_data_8.file = "tests/temporal/t_malloc.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 29;
+    __e_acsl_assert(! __gen_e_acsl_and_8,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
-  /*@ assert ¬\valid(q); */ ;
+  /*@ assert !\valid(q); */ ;
   __e_acsl_initialize((void *)q,sizeof(int));
   *q = 1;
   __e_acsl_initialize((void *)p,sizeof(int));
@@ -170,17 +337,38 @@ int main(void)
   {
     int __gen_e_acsl_initialized_9;
     int __gen_e_acsl_and_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(& q),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                 "\\initialized(&q)",0,
+                                 __gen_e_acsl_initialized_9);
     if (__gen_e_acsl_initialized_9) {
       int __gen_e_acsl_valid_9;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_9 = __e_acsl_valid((void *)q,sizeof(int),(void *)q,
                                             (void *)(& q));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,"\\valid(q)",
+                                   0,__gen_e_acsl_valid_9);
       __gen_e_acsl_and_9 = __gen_e_acsl_valid_9;
     }
     else __gen_e_acsl_and_9 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_9,1,"Assertion","main","\\valid(q)",
-                    "tests/temporal/t_malloc.c",35);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "\\valid(q)";
+    __gen_e_acsl_assert_data_9.file = "tests/temporal/t_malloc.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 35;
+    __e_acsl_assert(__gen_e_acsl_and_9,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
   /*@ assert \valid(q); */ ;
   __e_acsl_full_init((void *)(& q));
@@ -192,17 +380,38 @@ int main(void)
   {
     int __gen_e_acsl_initialized_10;
     int __gen_e_acsl_and_10;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& q),
                                                        sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                 "\\initialized(&q)",0,
+                                 __gen_e_acsl_initialized_10);
     if (__gen_e_acsl_initialized_10) {
       int __gen_e_acsl_valid_10;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_10 = __e_acsl_valid((void *)q,sizeof(int),(void *)q,
                                              (void *)(& q));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,
+                                   "\\valid(q)",0,__gen_e_acsl_valid_10);
       __gen_e_acsl_and_10 = __gen_e_acsl_valid_10;
     }
     else __gen_e_acsl_and_10 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_10,1,"Assertion","main","\\valid(q)",
-                    "tests/temporal/t_malloc.c",39);
+    __gen_e_acsl_assert_data_10.blocking = 1;
+    __gen_e_acsl_assert_data_10.kind = "Assertion";
+    __gen_e_acsl_assert_data_10.pred_txt = "\\valid(q)";
+    __gen_e_acsl_assert_data_10.file = "tests/temporal/t_malloc.c";
+    __gen_e_acsl_assert_data_10.fct = "main";
+    __gen_e_acsl_assert_data_10.line = 39;
+    __e_acsl_assert(__gen_e_acsl_and_10,& __gen_e_acsl_assert_data_10);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
   }
   /*@ assert \valid(q); */ ;
   __retres = 0;
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_memcpy.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_memcpy.c
index c54bc9d417f2ae65931cfb5fd109ea98c165f2f7..e11e4ba74eebb932763d7207ae14eb94d9e0a7c7 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_memcpy.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_memcpy.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 #include "string.h"
@@ -12,9 +13,9 @@ extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
         \separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1));
     ensures
       copied_contents:
-        memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡
+        memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ==
         0;
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures result_ptr: \result == \old(dest);
     assigns *((char *)dest + (0 .. n - 1)), \result;
     assigns *((char *)dest + (0 .. n - 1))
       \from *((char *)src + (0 .. n - 1));
@@ -24,9 +25,8 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src,
                           size_t n);
 
 /*@ requires valid_s: valid_or_empty(s, n);
-    ensures
-      acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) ≡ \true;
-    ensures result_ptr: \result ≡ \old(s);
+    ensures acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) == \true;
+    ensures result_ptr: \result == \old(s);
     assigns *((char *)s + (0 .. n - 1)), \result;
     assigns *((char *)s + (0 .. n - 1)) \from c;
     assigns \result \from s;
@@ -65,34 +65,75 @@ int main(void)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"(int **)src",
+                                 (void *)(src));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(src),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized((int **)src)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"src[0]",
+                                   (void *)src[0]);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)src[0],sizeof(int),
                                           (void *)src[0],(void *)(src));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid(src[0])",0,__gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(src[0])",
-                    "tests/temporal/t_memcpy.c",20);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(src[0])";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_memcpy.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 20;
+    __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
   /*@ assert \valid(src[0]); */ ;
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&src[1]",
+                                 (void *)(& src[1]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& src[1]),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&src[1])",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_valid_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"src[1]",
+                                   (void *)src[1]);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_2 = __e_acsl_valid((void *)src[1],sizeof(int),
                                             (void *)src[1],
                                             (void *)(& src[1]));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\valid(src[1])",0,__gen_e_acsl_valid_2);
       __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_2,1,"Assertion","main",
-                    "\\valid(src[1])","tests/temporal/t_memcpy.c",21);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "\\valid(src[1])";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_memcpy.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 21;
+    __e_acsl_assert(__gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
   /*@ assert \valid(src[1]); */ ;
   __e_acsl_temporal_reset_parameters();
@@ -104,34 +145,76 @@ int main(void)
   {
     int __gen_e_acsl_initialized_3;
     int __gen_e_acsl_and_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"(int **)dest",
+                                 (void *)(dest));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(dest),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized((int **)dest)",0,
+                                 __gen_e_acsl_initialized_3);
     if (__gen_e_acsl_initialized_3) {
       int __gen_e_acsl_valid_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"dest[0]",
+                                   (void *)dest[0]);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_3 = __e_acsl_valid((void *)dest[0],sizeof(int),
                                             (void *)dest[0],(void *)(dest));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\valid(dest[0])",0,__gen_e_acsl_valid_3);
       __gen_e_acsl_and_3 = __gen_e_acsl_valid_3;
     }
     else __gen_e_acsl_and_3 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main",
-                    "\\valid(dest[0])","tests/temporal/t_memcpy.c",25);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\valid(dest[0])";
+    __gen_e_acsl_assert_data_3.file = "tests/temporal/t_memcpy.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 25;
+    __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
   /*@ assert \valid(dest[0]); */ ;
   {
     int __gen_e_acsl_initialized_4;
     int __gen_e_acsl_and_4;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&dest[1]",
+                                 (void *)(& dest[1]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& dest[1]),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\initialized(&dest[1])",0,
+                                 __gen_e_acsl_initialized_4);
     if (__gen_e_acsl_initialized_4) {
       int __gen_e_acsl_valid_4;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"dest[1]",
+                                   (void *)dest[1]);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_4 = __e_acsl_valid((void *)dest[1],sizeof(int),
                                             (void *)dest[1],
                                             (void *)(& dest[1]));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\valid(dest[1])",0,__gen_e_acsl_valid_4);
       __gen_e_acsl_and_4 = __gen_e_acsl_valid_4;
     }
     else __gen_e_acsl_and_4 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_4,1,"Assertion","main",
-                    "\\valid(dest[1])","tests/temporal/t_memcpy.c",26);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "\\valid(dest[1])";
+    __gen_e_acsl_assert_data_4.file = "tests/temporal/t_memcpy.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 26;
+    __e_acsl_assert(__gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
   /*@ assert \valid(dest[1]); */ ;
   __e_acsl_temporal_reset_parameters();
@@ -141,36 +224,78 @@ int main(void)
   {
     int __gen_e_acsl_initialized_5;
     int __gen_e_acsl_and_5;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"(int **)dest",
+                                 (void *)(dest));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(dest),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\initialized((int **)dest)",0,
+                                 __gen_e_acsl_initialized_5);
     if (__gen_e_acsl_initialized_5) {
       int __gen_e_acsl_valid_5;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"dest[0]",
+                                   (void *)dest[0]);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_5 = __e_acsl_valid((void *)dest[0],sizeof(int),
                                             (void *)dest[0],(void *)(dest));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\valid(dest[0])",0,__gen_e_acsl_valid_5);
       __gen_e_acsl_and_5 = __gen_e_acsl_valid_5;
     }
     else __gen_e_acsl_and_5 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_5,1,"Assertion","main",
-                    "!\\valid(dest[0])","tests/temporal/t_memcpy.c",30);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(dest[0])";
+    __gen_e_acsl_assert_data_5.file = "tests/temporal/t_memcpy.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 30;
+    __e_acsl_assert(! __gen_e_acsl_and_5,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert ¬\valid(dest[0]); */ ;
+  /*@ assert !\valid(dest[0]); */ ;
   {
     int __gen_e_acsl_initialized_6;
     int __gen_e_acsl_and_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&dest[1]",
+                                 (void *)(& dest[1]));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& dest[1]),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "\\initialized(&dest[1])",0,
+                                 __gen_e_acsl_initialized_6);
     if (__gen_e_acsl_initialized_6) {
       int __gen_e_acsl_valid_6;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"dest[1]",
+                                   (void *)dest[1]);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_6 = __e_acsl_valid((void *)dest[1],sizeof(int),
                                             (void *)dest[1],
                                             (void *)(& dest[1]));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "\\valid(dest[1])",0,__gen_e_acsl_valid_6);
       __gen_e_acsl_and_6 = __gen_e_acsl_valid_6;
     }
     else __gen_e_acsl_and_6 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_6,1,"Assertion","main",
-                    "!\\valid(dest[1])","tests/temporal/t_memcpy.c",31);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "!\\valid(dest[1])";
+    __gen_e_acsl_assert_data_6.file = "tests/temporal/t_memcpy.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 31;
+    __e_acsl_assert(! __gen_e_acsl_and_6,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
-  /*@ assert ¬\valid(dest[1]); */ ;
+  /*@ assert !\valid(dest[1]); */ ;
   __e_acsl_temporal_reset_parameters();
   __e_acsl_temporal_reset_return();
   int **p = malloc((unsigned long)size);
@@ -192,16 +317,36 @@ int main(void)
   {
     int __gen_e_acsl_initialized_7;
     int __gen_e_acsl_and_8;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)p,
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                 "\\initialized(p)",0,
+                                 __gen_e_acsl_initialized_7);
     if (__gen_e_acsl_initialized_7) {
       int __gen_e_acsl_initialized_8;
       int __gen_e_acsl_and_7;
       int __gen_e_acsl_valid_7;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"*p",
+                                   (void *)*p);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&p",
+                                   (void *)(& p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                     "sizeof(int **)",0,sizeof(int **));
       __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& p),
                                                         sizeof(int **));
       if (__gen_e_acsl_initialized_8) {
         int __gen_e_acsl_valid_read;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"p",
+                                     (void *)p);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                       "sizeof(int *)",0,sizeof(int *));
         __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)p,
                                                       sizeof(int *),
                                                       (void *)p,
@@ -209,56 +354,124 @@ int main(void)
         __gen_e_acsl_and_7 = __gen_e_acsl_valid_read;
       }
       else __gen_e_acsl_and_7 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_7,1,"RTE","main",
-                      "mem_access: \\valid_read(p)",
-                      "tests/temporal/t_memcpy.c",40);
+      __gen_e_acsl_assert_data_8.blocking = 1;
+      __gen_e_acsl_assert_data_8.kind = "RTE";
+      __gen_e_acsl_assert_data_8.pred_txt = "mem_access: \\valid_read(p)";
+      __gen_e_acsl_assert_data_8.file = "tests/temporal/t_memcpy.c";
+      __gen_e_acsl_assert_data_8.fct = "main";
+      __gen_e_acsl_assert_data_8.line = 40;
+      __e_acsl_assert(__gen_e_acsl_and_7,& __gen_e_acsl_assert_data_8);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_7 = __e_acsl_valid((void *)*p,sizeof(int),
                                             (void *)*p,(void *)p);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                   "\\valid(*p)",0,__gen_e_acsl_valid_7);
       __gen_e_acsl_and_8 = __gen_e_acsl_valid_7;
     }
     else __gen_e_acsl_and_8 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_8,1,"Assertion","main","\\valid(*p)",
-                    "tests/temporal/t_memcpy.c",40);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Assertion";
+    __gen_e_acsl_assert_data_7.pred_txt = "\\valid(*p)";
+    __gen_e_acsl_assert_data_7.file = "tests/temporal/t_memcpy.c";
+    __gen_e_acsl_assert_data_7.fct = "main";
+    __gen_e_acsl_assert_data_7.line = 40;
+    __e_acsl_assert(__gen_e_acsl_and_8,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
   }
   /*@ assert \valid(*p); */ ;
   {
     int __gen_e_acsl_initialized_9;
     int __gen_e_acsl_and_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"p",(void *)p);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(p + 1),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                 "\\initialized(p + 1)",0,
+                                 __gen_e_acsl_initialized_9);
     if (__gen_e_acsl_initialized_9) {
       int __gen_e_acsl_valid_read_2;
       int __gen_e_acsl_valid_8;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"*(p + 1)",
+                                   (void *)*(p + 1));
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_10,"p",
+                                   (void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_10,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)(p + 1),
                                                       sizeof(int *),
                                                       (void *)p,
                                                       (void *)(& p));
-      __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","main",
-                      "mem_access: \\valid_read(p + 1)",
-                      "tests/temporal/t_memcpy.c",41);
+      __gen_e_acsl_assert_data_10.blocking = 1;
+      __gen_e_acsl_assert_data_10.kind = "RTE";
+      __gen_e_acsl_assert_data_10.pred_txt = "mem_access: \\valid_read(p + 1)";
+      __gen_e_acsl_assert_data_10.file = "tests/temporal/t_memcpy.c";
+      __gen_e_acsl_assert_data_10.fct = "main";
+      __gen_e_acsl_assert_data_10.line = 41;
+      __e_acsl_assert(__gen_e_acsl_valid_read_2,
+                      & __gen_e_acsl_assert_data_10);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_8 = __e_acsl_valid((void *)*(p + 1),sizeof(int),
                                             (void *)*(p + 1),(void *)(
                                             p + 1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "\\valid(*(p + 1))",0,
+                                   __gen_e_acsl_valid_8);
       __gen_e_acsl_and_9 = __gen_e_acsl_valid_8;
     }
     else __gen_e_acsl_and_9 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_9,1,"Assertion","main",
-                    "\\valid(*(p + 1))","tests/temporal/t_memcpy.c",41);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "\\valid(*(p + 1))";
+    __gen_e_acsl_assert_data_9.file = "tests/temporal/t_memcpy.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 41;
+    __e_acsl_assert(__gen_e_acsl_and_9,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
   /*@ assert \valid(*(p + 1)); */ ;
   {
     int __gen_e_acsl_initialized_10;
     int __gen_e_acsl_and_11;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)q,
                                                        sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                 "\\initialized(q)",0,
+                                 __gen_e_acsl_initialized_10);
     if (__gen_e_acsl_initialized_10) {
       int __gen_e_acsl_initialized_11;
       int __gen_e_acsl_and_10;
       int __gen_e_acsl_valid_9;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_11,"*q",
+                                   (void *)*q);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"&q",
+                                   (void *)(& q));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                     "sizeof(int **)",0,sizeof(int **));
       __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(& q),
                                                          sizeof(int **));
       if (__gen_e_acsl_initialized_11) {
         int __gen_e_acsl_valid_read_3;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_12,"q",
+                                     (void *)q);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_12,
+                                       "sizeof(int *)",0,sizeof(int *));
         __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)q,
                                                         sizeof(int *),
                                                         (void *)q,
@@ -266,43 +479,91 @@ int main(void)
         __gen_e_acsl_and_10 = __gen_e_acsl_valid_read_3;
       }
       else __gen_e_acsl_and_10 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_10,1,"RTE","main",
-                      "mem_access: \\valid_read(q)",
-                      "tests/temporal/t_memcpy.c",42);
+      __gen_e_acsl_assert_data_12.blocking = 1;
+      __gen_e_acsl_assert_data_12.kind = "RTE";
+      __gen_e_acsl_assert_data_12.pred_txt = "mem_access: \\valid_read(q)";
+      __gen_e_acsl_assert_data_12.file = "tests/temporal/t_memcpy.c";
+      __gen_e_acsl_assert_data_12.fct = "main";
+      __gen_e_acsl_assert_data_12.line = 42;
+      __e_acsl_assert(__gen_e_acsl_and_10,& __gen_e_acsl_assert_data_12);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_12);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_11,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_9 = __e_acsl_valid((void *)*q,sizeof(int),
                                             (void *)*q,(void *)q);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_11,
+                                   "\\valid(*q)",0,__gen_e_acsl_valid_9);
       __gen_e_acsl_and_11 = __gen_e_acsl_valid_9;
     }
     else __gen_e_acsl_and_11 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_11,1,"Assertion","main",
-                    "!\\valid(*q)","tests/temporal/t_memcpy.c",42);
+    __gen_e_acsl_assert_data_11.blocking = 1;
+    __gen_e_acsl_assert_data_11.kind = "Assertion";
+    __gen_e_acsl_assert_data_11.pred_txt = "!\\valid(*q)";
+    __gen_e_acsl_assert_data_11.file = "tests/temporal/t_memcpy.c";
+    __gen_e_acsl_assert_data_11.fct = "main";
+    __gen_e_acsl_assert_data_11.line = 42;
+    __e_acsl_assert(! __gen_e_acsl_and_11,& __gen_e_acsl_assert_data_11);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_11);
   }
-  /*@ assert ¬\valid(*q); */ ;
+  /*@ assert !\valid(*q); */ ;
   {
     int __gen_e_acsl_initialized_12;
     int __gen_e_acsl_and_12;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(q + 1),
                                                        sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                 "\\initialized(q + 1)",0,
+                                 __gen_e_acsl_initialized_12);
     if (__gen_e_acsl_initialized_12) {
       int __gen_e_acsl_valid_read_4;
       int __gen_e_acsl_valid_10;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_13,"*(q + 1)",
+                                   (void *)*(q + 1));
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_14,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_14,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)(q + 1),
                                                       sizeof(int *),
                                                       (void *)q,
                                                       (void *)(& q));
-      __e_acsl_assert(__gen_e_acsl_valid_read_4,1,"RTE","main",
-                      "mem_access: \\valid_read(q + 1)",
-                      "tests/temporal/t_memcpy.c",43);
+      __gen_e_acsl_assert_data_14.blocking = 1;
+      __gen_e_acsl_assert_data_14.kind = "RTE";
+      __gen_e_acsl_assert_data_14.pred_txt = "mem_access: \\valid_read(q + 1)";
+      __gen_e_acsl_assert_data_14.file = "tests/temporal/t_memcpy.c";
+      __gen_e_acsl_assert_data_14.fct = "main";
+      __gen_e_acsl_assert_data_14.line = 43;
+      __e_acsl_assert(__gen_e_acsl_valid_read_4,
+                      & __gen_e_acsl_assert_data_14);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_14);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_13,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_10 = __e_acsl_valid((void *)*(q + 1),sizeof(int),
                                              (void *)*(q + 1),
                                              (void *)(q + 1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,
+                                   "\\valid(*(q + 1))",0,
+                                   __gen_e_acsl_valid_10);
       __gen_e_acsl_and_12 = __gen_e_acsl_valid_10;
     }
     else __gen_e_acsl_and_12 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_12,1,"Assertion","main",
-                    "!\\valid(*(q + 1))","tests/temporal/t_memcpy.c",43);
+    __gen_e_acsl_assert_data_13.blocking = 1;
+    __gen_e_acsl_assert_data_13.kind = "Assertion";
+    __gen_e_acsl_assert_data_13.pred_txt = "!\\valid(*(q + 1))";
+    __gen_e_acsl_assert_data_13.file = "tests/temporal/t_memcpy.c";
+    __gen_e_acsl_assert_data_13.fct = "main";
+    __gen_e_acsl_assert_data_13.line = 43;
+    __e_acsl_assert(! __gen_e_acsl_and_12,& __gen_e_acsl_assert_data_13);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
   }
-  /*@ assert ¬\valid(*(q + 1)); */ ;
+  /*@ assert !\valid(*(q + 1)); */ ;
   __e_acsl_full_init((void *)(& tmp_1));
   __e_acsl_temporal_store_nblock((void *)(& tmp_1),(void *)0);
   tmp_1 = (int *)0;
@@ -320,16 +581,36 @@ int main(void)
   {
     int __gen_e_acsl_initialized_13;
     int __gen_e_acsl_and_14;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_13 = __e_acsl_initialized((void *)q,
                                                        sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,
+                                 "\\initialized(q)",0,
+                                 __gen_e_acsl_initialized_13);
     if (__gen_e_acsl_initialized_13) {
       int __gen_e_acsl_initialized_14;
       int __gen_e_acsl_and_13;
       int __gen_e_acsl_valid_11;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_15,"*q",
+                                   (void *)*q);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,"&q",
+                                   (void *)(& q));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_16,
+                                     "sizeof(int **)",0,sizeof(int **));
       __gen_e_acsl_initialized_14 = __e_acsl_initialized((void *)(& q),
                                                          sizeof(int **));
       if (__gen_e_acsl_initialized_14) {
         int __gen_e_acsl_valid_read_5;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_16,"q",
+                                     (void *)q);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_16,
+                                       "sizeof(int *)",0,sizeof(int *));
         __gen_e_acsl_valid_read_5 = __e_acsl_valid_read((void *)q,
                                                         sizeof(int *),
                                                         (void *)q,
@@ -337,41 +618,89 @@ int main(void)
         __gen_e_acsl_and_13 = __gen_e_acsl_valid_read_5;
       }
       else __gen_e_acsl_and_13 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_13,1,"RTE","main",
-                      "mem_access: \\valid_read(q)",
-                      "tests/temporal/t_memcpy.c",48);
+      __gen_e_acsl_assert_data_16.blocking = 1;
+      __gen_e_acsl_assert_data_16.kind = "RTE";
+      __gen_e_acsl_assert_data_16.pred_txt = "mem_access: \\valid_read(q)";
+      __gen_e_acsl_assert_data_16.file = "tests/temporal/t_memcpy.c";
+      __gen_e_acsl_assert_data_16.fct = "main";
+      __gen_e_acsl_assert_data_16.line = 48;
+      __e_acsl_assert(__gen_e_acsl_and_13,& __gen_e_acsl_assert_data_16);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_16);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_15,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_11 = __e_acsl_valid((void *)*q,sizeof(int),
                                              (void *)*q,(void *)q);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_15,
+                                   "\\valid(*q)",0,__gen_e_acsl_valid_11);
       __gen_e_acsl_and_14 = __gen_e_acsl_valid_11;
     }
     else __gen_e_acsl_and_14 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_14,1,"Assertion","main","\\valid(*q)",
-                    "tests/temporal/t_memcpy.c",48);
+    __gen_e_acsl_assert_data_15.blocking = 1;
+    __gen_e_acsl_assert_data_15.kind = "Assertion";
+    __gen_e_acsl_assert_data_15.pred_txt = "\\valid(*q)";
+    __gen_e_acsl_assert_data_15.file = "tests/temporal/t_memcpy.c";
+    __gen_e_acsl_assert_data_15.fct = "main";
+    __gen_e_acsl_assert_data_15.line = 48;
+    __e_acsl_assert(__gen_e_acsl_and_14,& __gen_e_acsl_assert_data_15);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_15);
   }
   /*@ assert \valid(*q); */ ;
   {
     int __gen_e_acsl_initialized_15;
     int __gen_e_acsl_and_15;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,"q",(void *)q);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_15 = __e_acsl_initialized((void *)(q + 1),
                                                        sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,
+                                 "\\initialized(q + 1)",0,
+                                 __gen_e_acsl_initialized_15);
     if (__gen_e_acsl_initialized_15) {
       int __gen_e_acsl_valid_read_6;
       int __gen_e_acsl_valid_12;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_17,"*(q + 1)",
+                                   (void *)*(q + 1));
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_18,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_18,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_valid_read_6 = __e_acsl_valid_read((void *)(q + 1),
                                                       sizeof(int *),
                                                       (void *)q,
                                                       (void *)(& q));
-      __e_acsl_assert(__gen_e_acsl_valid_read_6,1,"RTE","main",
-                      "mem_access: \\valid_read(q + 1)",
-                      "tests/temporal/t_memcpy.c",49);
+      __gen_e_acsl_assert_data_18.blocking = 1;
+      __gen_e_acsl_assert_data_18.kind = "RTE";
+      __gen_e_acsl_assert_data_18.pred_txt = "mem_access: \\valid_read(q + 1)";
+      __gen_e_acsl_assert_data_18.file = "tests/temporal/t_memcpy.c";
+      __gen_e_acsl_assert_data_18.fct = "main";
+      __gen_e_acsl_assert_data_18.line = 49;
+      __e_acsl_assert(__gen_e_acsl_valid_read_6,
+                      & __gen_e_acsl_assert_data_18);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_18);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_17,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_12 = __e_acsl_valid((void *)*(q + 1),sizeof(int),
                                              (void *)*(q + 1),
                                              (void *)(q + 1));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_17,
+                                   "\\valid(*(q + 1))",0,
+                                   __gen_e_acsl_valid_12);
       __gen_e_acsl_and_15 = __gen_e_acsl_valid_12;
     }
     else __gen_e_acsl_and_15 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_15,1,"Assertion","main",
-                    "\\valid(*(q + 1))","tests/temporal/t_memcpy.c",49);
+    __gen_e_acsl_assert_data_17.blocking = 1;
+    __gen_e_acsl_assert_data_17.kind = "Assertion";
+    __gen_e_acsl_assert_data_17.pred_txt = "\\valid(*(q + 1))";
+    __gen_e_acsl_assert_data_17.file = "tests/temporal/t_memcpy.c";
+    __gen_e_acsl_assert_data_17.fct = "main";
+    __gen_e_acsl_assert_data_17.line = 49;
+    __e_acsl_assert(__gen_e_acsl_and_15,& __gen_e_acsl_assert_data_17);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_17);
   }
   /*@ assert \valid(*(q + 1)); */ ;
   __retres = 0;
@@ -387,9 +716,8 @@ int main(void)
 }
 
 /*@ requires valid_s: valid_or_empty(s, n);
-    ensures
-      acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) ≡ \true;
-    ensures result_ptr: \result ≡ \old(s);
+    ensures acsl_c_equiv: memset((char *)\old(s), \old(c), \old(n)) == \true;
+    ensures result_ptr: \result == \old(s);
     assigns *((char *)s + (0 .. n - 1)), \result;
     assigns *((char *)s + (0 .. n - 1)) \from c;
     assigns \result \from s;
@@ -407,11 +735,24 @@ void *__gen_e_acsl_memset(void *s, int c, size_t n)
   __gen_e_acsl_at = s;
   __retres = memset(s,c,n);
   __e_acsl_initialize(s,n);
-  __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","memset",
-                  "result_ptr: \\result == \\old(s)",
-                  "FRAMAC_SHARE/libc/string.h",135);
-  __e_acsl_delete_block((void *)(& s));
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"\\result",
+                                 __retres);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"\\old(s)",
+                                 __gen_e_acsl_at);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Postcondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "result_ptr: \\result == \\old(s)";
+    __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_3.fct = "memset";
+    __gen_e_acsl_assert_data_3.line = 135;
+    __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
+    __e_acsl_delete_block((void *)(& s));
+    return __retres;
+  }
 }
 
 /*@ requires valid_dest: valid_or_empty(dest, n);
@@ -421,9 +762,9 @@ void *__gen_e_acsl_memset(void *s, int c, size_t n)
         \separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1));
     ensures
       copied_contents:
-        memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ≡
+        memcmp{Post, Pre}((char *)\old(dest), (char *)\old(src), \old(n)) ==
         0;
-    ensures result_ptr: \result ≡ \old(dest);
+    ensures result_ptr: \result == \old(dest);
     assigns *((char *)dest + (0 .. n - 1)), \result;
     assigns *((char *)dest + (0 .. n - 1))
       \from *((char *)src + (0 .. n - 1));
@@ -460,6 +801,16 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src,
     __e_acsl_store_block((void *)(& dest),(size_t)8);
     __e_acsl_temporal_pull_parameter((void *)(& dest),0U,8UL);
     __e_acsl_temporal_pull_parameter((void *)(& src),1U,8UL);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"dest",dest);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"n",0,n);
     __gmpz_init_set_ui(__gen_e_acsl_n,n);
     __gmpz_init_set_si(__gen_e_acsl_,1L);
     __gmpz_init(__gen_e_acsl_sub);
@@ -477,43 +828,107 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src,
                (__e_acsl_mpz_struct const *)(__gen_e_acsl_));
     __gen_e_acsl__3 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size = 1UL * __gen_e_acsl__3;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0,
+                                   __gen_e_acsl_size);
     if (__gen_e_acsl_size <= 0UL) __gen_e_acsl_if = 0UL;
-    else __gen_e_acsl_if = __gen_e_acsl_size;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,"size",0,
+                                     __gen_e_acsl_size);
+      __gen_e_acsl_if = __gen_e_acsl_size;
+    }
     __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)((char *)dest + 
                                                            1 * 0),
                                                   __gen_e_acsl_if,dest,
                                                   (void *)(& dest));
-    __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","memcpy",
-                    "separated_guard: \\valid_read((char *)dest + (0 .. n - 1))",
-                    "FRAMAC_SHARE/libc/string.h",98);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "RTE";
+    __gen_e_acsl_assert_data_4.pred_txt = "separated_guard: \\valid_read((char *)dest + (0 .. n - 1))";
+    __gen_e_acsl_assert_data_4.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_4.fct = "memcpy";
+    __gen_e_acsl_assert_data_4.line = 98;
+    __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"src",
+                                 (void *)src);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"n",0,n);
     __gen_e_acsl__4 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size_2 = 1UL * __gen_e_acsl__4;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0,
+                                   __gen_e_acsl_size_2);
     if (__gen_e_acsl_size_2 <= 0UL) __gen_e_acsl_if_2 = 0UL;
-    else __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,"size",0,
+                                     __gen_e_acsl_size_2);
+      __gen_e_acsl_if_2 = __gen_e_acsl_size_2;
+    }
     __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)((char *)src + 
                                                              1 * 0),
                                                     __gen_e_acsl_if_2,
                                                     (void *)src,
                                                     (void *)(& src));
-    __e_acsl_assert(__gen_e_acsl_valid_read_2,1,"RTE","memcpy",
-                    "separated_guard: \\valid_read((char *)src + (0 .. n - 1))",
-                    "FRAMAC_SHARE/libc/string.h",98);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "RTE";
+    __gen_e_acsl_assert_data_5.pred_txt = "separated_guard: \\valid_read((char *)src + (0 .. n - 1))";
+    __gen_e_acsl_assert_data_5.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_5.fct = "memcpy";
+    __gen_e_acsl_assert_data_5.line = 98;
+    __e_acsl_assert(__gen_e_acsl_valid_read_2,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"dest",dest);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n);
     __gen_e_acsl__5 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size_3 = 1UL * __gen_e_acsl__5;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                   __gen_e_acsl_size_3);
     if (__gen_e_acsl_size_3 <= 0UL) __gen_e_acsl_if_3 = 0UL;
-    else __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                     __gen_e_acsl_size_3);
+      __gen_e_acsl_if_3 = __gen_e_acsl_size_3;
+    }
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"src",
+                                 (void *)src);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,"sizeof(char)",
+                                 0,1);
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"n",0,n);
     __gen_e_acsl__6 = __gmpz_get_ui((__e_acsl_mpz_struct const *)(__gen_e_acsl_add));
     __gen_e_acsl_size_4 = 1UL * __gen_e_acsl__6;
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                   __gen_e_acsl_size_4);
     if (__gen_e_acsl_size_4 <= 0UL) __gen_e_acsl_if_4 = 0UL;
-    else __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+    else {
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,"size",0,
+                                     __gen_e_acsl_size_4);
+      __gen_e_acsl_if_4 = __gen_e_acsl_size_4;
+    }
     __gen_e_acsl_separated = __e_acsl_separated((size_t)2,
                                                 (char *)dest + 1 * 0,
                                                 __gen_e_acsl_if_3,
                                                 (char *)src + 1 * 0,
                                                 __gen_e_acsl_if_4);
-    __e_acsl_assert(__gen_e_acsl_separated,1,"Precondition","memcpy",
-                    "separation:\n  \\separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1))",
-                    "FRAMAC_SHARE/libc/string.h",98);
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "separation:\n  \\separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1))",
+                                 0,__gen_e_acsl_separated);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Precondition";
+    __gen_e_acsl_assert_data_3.pred_txt = "separation:\n  \\separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1))";
+    __gen_e_acsl_assert_data_3.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_3.fct = "memcpy";
+    __gen_e_acsl_assert_data_3.line = 98;
+    __e_acsl_assert(__gen_e_acsl_separated,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     __e_acsl_temporal_reset_parameters();
     __e_acsl_temporal_reset_return();
     __e_acsl_temporal_save_nreferent_parameter((void *)(& dest),0U);
@@ -529,12 +944,25 @@ void *__gen_e_acsl_memcpy(void * restrict dest, void const * restrict src,
   __gen_e_acsl_at = dest;
   __retres = memcpy(dest,src,n);
   __e_acsl_initialize(dest,n);
-  __e_acsl_assert(__retres == __gen_e_acsl_at,1,"Postcondition","memcpy",
-                  "result_ptr: \\result == \\old(dest)",
-                  "FRAMAC_SHARE/libc/string.h",102);
-  __e_acsl_delete_block((void *)(& src));
-  __e_acsl_delete_block((void *)(& dest));
-  return __retres;
+  {
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"\\result",
+                                 __retres);
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"\\old(dest)",
+                                 __gen_e_acsl_at);
+    __gen_e_acsl_assert_data_7.blocking = 1;
+    __gen_e_acsl_assert_data_7.kind = "Postcondition";
+    __gen_e_acsl_assert_data_7.pred_txt = "result_ptr: \\result == \\old(dest)";
+    __gen_e_acsl_assert_data_7.file = "FRAMAC_SHARE/libc/string.h";
+    __gen_e_acsl_assert_data_7.fct = "memcpy";
+    __gen_e_acsl_assert_data_7.line = 102;
+    __e_acsl_assert(__retres == __gen_e_acsl_at,& __gen_e_acsl_assert_data_7);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+    __e_acsl_delete_block((void *)(& src));
+    __e_acsl_delete_block((void *)(& dest));
+    return __retres;
+  }
 }
 
 
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_scope.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_scope.c
index d2fccd6d110b8a6a5ea893322af2ca29f610d2b2..cafa0b4ca8cd11221c76a958846a6e6861566b83 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_scope.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_scope.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -31,36 +31,76 @@ int main(void)
   {
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&p",
+                                 (void *)(& p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& p),
                                                     sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&p)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
-      /*@ assert Eva: dangling_pointer: ¬\dangling(&p); */
+      /*@ assert Eva: dangling_pointer: !\dangling(&p); */
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"p",(void *)p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid = __e_acsl_valid((void *)p,sizeof(int),(void *)p,
                                           (void *)(& p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(p)",0,
+                                   __gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
-    __e_acsl_assert(! __gen_e_acsl_and,1,"Assertion","main","!\\valid(p)",
-                    "tests/temporal/t_scope.c",15);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "!\\valid(p)";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_scope.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 15;
+    __e_acsl_assert(! __gen_e_acsl_and,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert ¬\valid(p); */ ;
+  /*@ assert !\valid(p); */ ;
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&q)",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_valid_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int),(void *)q,
                                             (void *)(& q));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(q)",
+                                   0,__gen_e_acsl_valid_2);
       __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main","!\\valid(q)",
-                    "tests/temporal/t_scope.c",16);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(q)";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_scope.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 16;
+    __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert ¬\valid(q); */ ;
+  /*@ assert !\valid(q); */ ;
   {
     int j = 8;
     __e_acsl_store_block((void *)(& j),(size_t)4);
@@ -71,17 +111,38 @@ int main(void)
     {
       int __gen_e_acsl_initialized_3;
       int __gen_e_acsl_and_3;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&p",
+                                   (void *)(& p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& p),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(&p)",0,
+                                   __gen_e_acsl_initialized_3);
       if (__gen_e_acsl_initialized_3) {
         int __gen_e_acsl_valid_3;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"p",
+                                     (void *)p);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_3 = __e_acsl_valid((void *)p,sizeof(int),
                                               (void *)p,(void *)(& p));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                     "\\valid(p)",0,__gen_e_acsl_valid_3);
         __gen_e_acsl_and_3 = __gen_e_acsl_valid_3;
       }
       else __gen_e_acsl_and_3 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main","\\valid(p)",
-                      "tests/temporal/t_scope.c",21);
+      __gen_e_acsl_assert_data_3.blocking = 1;
+      __gen_e_acsl_assert_data_3.kind = "Assertion";
+      __gen_e_acsl_assert_data_3.pred_txt = "\\valid(p)";
+      __gen_e_acsl_assert_data_3.file = "tests/temporal/t_scope.c";
+      __gen_e_acsl_assert_data_3.fct = "main";
+      __gen_e_acsl_assert_data_3.line = 21;
+      __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data_3);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
     }
     /*@ assert \valid(p); */ ;
     __e_acsl_initialize((void *)p,sizeof(int));
@@ -89,25 +150,60 @@ int main(void)
     {
       int __gen_e_acsl_initialized_4;
       int __gen_e_acsl_and_4;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&q",
+                                   (void *)(& q));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& q),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\initialized(&q)",0,
+                                   __gen_e_acsl_initialized_4);
       if (__gen_e_acsl_initialized_4) {
         int __gen_e_acsl_valid_4;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"q",
+                                     (void *)q);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_4 = __e_acsl_valid((void *)q,sizeof(int),
                                               (void *)q,(void *)(& q));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                     "\\valid(q)",0,__gen_e_acsl_valid_4);
         __gen_e_acsl_and_4 = __gen_e_acsl_valid_4;
       }
       else __gen_e_acsl_and_4 = 0;
-      __e_acsl_assert(! __gen_e_acsl_and_4,1,"Assertion","main",
-                      "!\\valid(q)","tests/temporal/t_scope.c",24);
+      __gen_e_acsl_assert_data_4.blocking = 1;
+      __gen_e_acsl_assert_data_4.kind = "Assertion";
+      __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(q)";
+      __gen_e_acsl_assert_data_4.file = "tests/temporal/t_scope.c";
+      __gen_e_acsl_assert_data_4.fct = "main";
+      __gen_e_acsl_assert_data_4.line = 24;
+      __e_acsl_assert(! __gen_e_acsl_and_4,& __gen_e_acsl_assert_data_4);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
     }
-    /*@ assert ¬\valid(q); */ ;
+    /*@ assert !\valid(q); */ ;
     {
       int __gen_e_acsl_valid_5;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&j",
+                                   (void *)(& j));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_5 = __e_acsl_valid((void *)(& j),sizeof(int),
                                             (void *)(& j),(void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_5,1,"Assertion","main",
-                      "\\valid(&j)","tests/temporal/t_scope.c",25);
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\valid(&j)",0,__gen_e_acsl_valid_5);
+      __gen_e_acsl_assert_data_5.blocking = 1;
+      __gen_e_acsl_assert_data_5.kind = "Assertion";
+      __gen_e_acsl_assert_data_5.pred_txt = "\\valid(&j)";
+      __gen_e_acsl_assert_data_5.file = "tests/temporal/t_scope.c";
+      __gen_e_acsl_assert_data_5.fct = "main";
+      __gen_e_acsl_assert_data_5.line = 25;
+      __e_acsl_assert(__gen_e_acsl_valid_5,& __gen_e_acsl_assert_data_5);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
     }
     /*@ assert \valid(&j); */ ;
     __e_acsl_delete_block((void *)(& j));
@@ -125,19 +221,40 @@ int main(void)
     {
       int __gen_e_acsl_initialized_5;
       int __gen_e_acsl_and_5;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&p",
+                                   (void *)(& p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& p),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "\\initialized(&p)",0,
+                                   __gen_e_acsl_initialized_5);
       if (__gen_e_acsl_initialized_5) {
         int __gen_e_acsl_valid_6;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"p",
+                                     (void *)p);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_6 = __e_acsl_valid((void *)p,sizeof(int),
                                               (void *)p,(void *)(& p));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                     "\\valid(p)",0,__gen_e_acsl_valid_6);
         __gen_e_acsl_and_5 = __gen_e_acsl_valid_6;
       }
       else __gen_e_acsl_and_5 = 0;
-      __e_acsl_assert(! __gen_e_acsl_and_5,1,"Assertion","main",
-                      "!\\valid(p)","tests/temporal/t_scope.c",33);
+      __gen_e_acsl_assert_data_6.blocking = 1;
+      __gen_e_acsl_assert_data_6.kind = "Assertion";
+      __gen_e_acsl_assert_data_6.pred_txt = "!\\valid(p)";
+      __gen_e_acsl_assert_data_6.file = "tests/temporal/t_scope.c";
+      __gen_e_acsl_assert_data_6.fct = "main";
+      __gen_e_acsl_assert_data_6.line = 33;
+      __e_acsl_assert(! __gen_e_acsl_and_5,& __gen_e_acsl_assert_data_6);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
     }
-    /*@ assert ¬\valid(p); */ ;
+    /*@ assert !\valid(p); */ ;
     __e_acsl_full_init((void *)(& q));
     __e_acsl_temporal_store_nblock((void *)(& q),(void *)(& a));
     q = & a;
@@ -147,17 +264,38 @@ int main(void)
     {
       int __gen_e_acsl_initialized_6;
       int __gen_e_acsl_and_6;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&p",
+                                   (void *)(& p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& p),
                                                         sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                   "\\initialized(&p)",0,
+                                   __gen_e_acsl_initialized_6);
       if (__gen_e_acsl_initialized_6) {
         int __gen_e_acsl_valid_7;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"p",
+                                     (void *)p);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid_7 = __e_acsl_valid((void *)p,sizeof(int),
                                               (void *)p,(void *)(& p));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,
+                                     "\\valid(p)",0,__gen_e_acsl_valid_7);
         __gen_e_acsl_and_6 = __gen_e_acsl_valid_7;
       }
       else __gen_e_acsl_and_6 = 0;
-      __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","main","\\valid(p)",
-                      "tests/temporal/t_scope.c",36);
+      __gen_e_acsl_assert_data_7.blocking = 1;
+      __gen_e_acsl_assert_data_7.kind = "Assertion";
+      __gen_e_acsl_assert_data_7.pred_txt = "\\valid(p)";
+      __gen_e_acsl_assert_data_7.file = "tests/temporal/t_scope.c";
+      __gen_e_acsl_assert_data_7.fct = "main";
+      __gen_e_acsl_assert_data_7.line = 36;
+      __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
     }
     /*@ assert \valid(p); */ ;
     len --;
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_struct.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_struct.c
index cf3331c161ba0ccb1d28369c4ee644fbef937def..310c3c1122dcd71eac39cce93a553b95b690a5a4 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_struct.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_struct.c
@@ -1,5 +1,6 @@
 /* Generated by Frama-C */
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
@@ -46,68 +47,133 @@ int main(void)
     int __gen_e_acsl_initialized;
     int __gen_e_acsl_and;
     int __gen_e_acsl_and_3;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&t1.p",
+                                 (void *)(& t1.p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& t1.p),
                                                     sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                 "\\initialized(&t1.p)",0,
+                                 __gen_e_acsl_initialized);
     if (__gen_e_acsl_initialized) {
       int __gen_e_acsl_valid;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"t1.p",
+                                   (void *)t1.p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid = __e_acsl_valid((void *)t1.p,sizeof(char),
                                           (void *)t1.p,(void *)(& t1.p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\valid(t1.p)",0,__gen_e_acsl_valid);
       __gen_e_acsl_and = __gen_e_acsl_valid;
     }
     else __gen_e_acsl_and = 0;
     if (__gen_e_acsl_and) {
       int __gen_e_acsl_initialized_2;
       int __gen_e_acsl_and_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&t1.q",
+                                   (void *)(& t1.q));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& t1.q),
                                                         sizeof(char *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&t1.q)",0,
+                                   __gen_e_acsl_initialized_2);
       if (__gen_e_acsl_initialized_2) {
         int __gen_e_acsl_valid_2;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"t1.q",
+                                     (void *)t1.q);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_2 = __e_acsl_valid((void *)t1.q,sizeof(char),
                                               (void *)t1.q,(void *)(& t1.q));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                     "\\valid(t1.q)",0,__gen_e_acsl_valid_2);
         __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
       }
       else __gen_e_acsl_and_2 = 0;
       __gen_e_acsl_and_3 = __gen_e_acsl_and_2;
     }
     else __gen_e_acsl_and_3 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_3,1,"Assertion","main",
-                    "\\valid(t1.p) && \\valid(t1.q)",
-                    "tests/temporal/t_struct.c",30);
+    __gen_e_acsl_assert_data.blocking = 1;
+    __gen_e_acsl_assert_data.kind = "Assertion";
+    __gen_e_acsl_assert_data.pred_txt = "\\valid(t1.p) && \\valid(t1.q)";
+    __gen_e_acsl_assert_data.file = "tests/temporal/t_struct.c";
+    __gen_e_acsl_assert_data.fct = "main";
+    __gen_e_acsl_assert_data.line = 30;
+    __e_acsl_assert(__gen_e_acsl_and_3,& __gen_e_acsl_assert_data);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
   }
-  /*@ assert \valid(t1.p) ∧ \valid(t1.q); */ ;
+  /*@ assert \valid(t1.p) && \valid(t1.q); */ ;
   {
     int __gen_e_acsl_initialized_3;
     int __gen_e_acsl_and_4;
     int __gen_e_acsl_and_6;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&t2.p",
+                                 (void *)(& t2.p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& t2.p),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&t2.p)",0,
+                                 __gen_e_acsl_initialized_3);
     if (__gen_e_acsl_initialized_3) {
       int __gen_e_acsl_valid_3;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"t2.p",
+                                   (void *)t2.p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_3 = __e_acsl_valid((void *)t2.p,sizeof(char),
                                             (void *)t2.p,(void *)(& t2.p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\valid(t2.p)",0,__gen_e_acsl_valid_3);
       __gen_e_acsl_and_4 = __gen_e_acsl_valid_3;
     }
     else __gen_e_acsl_and_4 = 0;
     if (! __gen_e_acsl_and_4) {
       int __gen_e_acsl_initialized_4;
       int __gen_e_acsl_and_5;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&t2.q",
+                                   (void *)(& t2.q));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& t2.q),
                                                         sizeof(char *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                   "\\initialized(&t2.q)",0,
+                                   __gen_e_acsl_initialized_4);
       if (__gen_e_acsl_initialized_4) {
         int __gen_e_acsl_valid_4;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"t2.q",
+                                     (void *)t2.q);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_4 = __e_acsl_valid((void *)t2.q,sizeof(char),
                                               (void *)t2.q,(void *)(& t2.q));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                     "\\valid(t2.q)",0,__gen_e_acsl_valid_4);
         __gen_e_acsl_and_5 = __gen_e_acsl_valid_4;
       }
       else __gen_e_acsl_and_5 = 0;
       __gen_e_acsl_and_6 = ! __gen_e_acsl_and_5;
     }
     else __gen_e_acsl_and_6 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_6,1,"Assertion","main",
-                    "!\\valid(t2.p) && !\\valid(t2.q)",
-                    "tests/temporal/t_struct.c",31);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(t2.p) && !\\valid(t2.q)";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_struct.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 31;
+    __e_acsl_assert(__gen_e_acsl_and_6,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert ¬\valid(t2.p) ∧ ¬\valid(t2.q); */ ;
+  /*@ assert !\valid(t2.p) && !\valid(t2.q); */ ;
   __e_acsl_full_init((void *)(& t2));
   __e_acsl_temporal_memcpy((void *)(& t2),(void *)(& t1),(size_t)16);
   t2 = t1;
@@ -115,35 +181,68 @@ int main(void)
     int __gen_e_acsl_initialized_5;
     int __gen_e_acsl_and_7;
     int __gen_e_acsl_and_9;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&t2.p",
+                                 (void *)(& t2.p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)(& t2.p),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                 "\\initialized(&t2.p)",0,
+                                 __gen_e_acsl_initialized_5);
     if (__gen_e_acsl_initialized_5) {
       int __gen_e_acsl_valid_5;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"t2.p",
+                                   (void *)t2.p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_5 = __e_acsl_valid((void *)t2.p,sizeof(char),
                                             (void *)t2.p,(void *)(& t2.p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\valid(t2.p)",0,__gen_e_acsl_valid_5);
       __gen_e_acsl_and_7 = __gen_e_acsl_valid_5;
     }
     else __gen_e_acsl_and_7 = 0;
     if (__gen_e_acsl_and_7) {
       int __gen_e_acsl_initialized_6;
       int __gen_e_acsl_and_8;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"&t2.q",
+                                   (void *)(& t2.q));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)(& t2.q),
                                                         sizeof(char *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                   "\\initialized(&t2.q)",0,
+                                   __gen_e_acsl_initialized_6);
       if (__gen_e_acsl_initialized_6) {
         int __gen_e_acsl_valid_6;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_3,"t2.q",
+                                     (void *)t2.q);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_3,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_6 = __e_acsl_valid((void *)t2.q,sizeof(char),
                                               (void *)t2.q,(void *)(& t2.q));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_3,
+                                     "\\valid(t2.q)",0,__gen_e_acsl_valid_6);
         __gen_e_acsl_and_8 = __gen_e_acsl_valid_6;
       }
       else __gen_e_acsl_and_8 = 0;
       __gen_e_acsl_and_9 = __gen_e_acsl_and_8;
     }
     else __gen_e_acsl_and_9 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_9,1,"Assertion","main",
-                    "\\valid(t2.p) && \\valid(t2.q)",
-                    "tests/temporal/t_struct.c",34);
+    __gen_e_acsl_assert_data_3.blocking = 1;
+    __gen_e_acsl_assert_data_3.kind = "Assertion";
+    __gen_e_acsl_assert_data_3.pred_txt = "\\valid(t2.p) && \\valid(t2.q)";
+    __gen_e_acsl_assert_data_3.file = "tests/temporal/t_struct.c";
+    __gen_e_acsl_assert_data_3.fct = "main";
+    __gen_e_acsl_assert_data_3.line = 34;
+    __e_acsl_assert(__gen_e_acsl_and_9,& __gen_e_acsl_assert_data_3);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_3);
   }
-  /*@ assert \valid(t2.p) ∧ \valid(t2.q); */ ;
+  /*@ assert \valid(t2.p) && \valid(t2.q); */ ;
   __e_acsl_initialize((void *)(& t2.p),sizeof(char *));
   __e_acsl_temporal_store_nblock((void *)(& t2.p),(void *)0);
   t2.p = (char *)0;
@@ -156,35 +255,68 @@ int main(void)
     int __gen_e_acsl_initialized_7;
     int __gen_e_acsl_and_10;
     int __gen_e_acsl_and_12;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&t2.p",
+                                 (void *)(& t2.p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& t2.p),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                 "\\initialized(&t2.p)",0,
+                                 __gen_e_acsl_initialized_7);
     if (__gen_e_acsl_initialized_7) {
       int __gen_e_acsl_valid_7;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"t2.p",
+                                   (void *)t2.p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_7 = __e_acsl_valid((void *)t2.p,sizeof(char),
                                             (void *)t2.p,(void *)(& t2.p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\valid(t2.p)",0,__gen_e_acsl_valid_7);
       __gen_e_acsl_and_10 = __gen_e_acsl_valid_7;
     }
     else __gen_e_acsl_and_10 = 0;
     if (! __gen_e_acsl_and_10) {
       int __gen_e_acsl_initialized_8;
       int __gen_e_acsl_and_11;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"&t2.q",
+                                   (void *)(& t2.q));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& t2.q),
                                                         sizeof(char *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                   "\\initialized(&t2.q)",0,
+                                   __gen_e_acsl_initialized_8);
       if (__gen_e_acsl_initialized_8) {
         int __gen_e_acsl_valid_8;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_4,"t2.q",
+                                     (void *)t2.q);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_4,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_8 = __e_acsl_valid((void *)t2.q,sizeof(char),
                                               (void *)t2.q,(void *)(& t2.q));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,
+                                     "\\valid(t2.q)",0,__gen_e_acsl_valid_8);
         __gen_e_acsl_and_11 = __gen_e_acsl_valid_8;
       }
       else __gen_e_acsl_and_11 = 0;
       __gen_e_acsl_and_12 = __gen_e_acsl_and_11;
     }
     else __gen_e_acsl_and_12 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_12,1,"Assertion","main",
-                    "!\\valid(t2.p) && \\valid(t2.q)",
-                    "tests/temporal/t_struct.c",38);
+    __gen_e_acsl_assert_data_4.blocking = 1;
+    __gen_e_acsl_assert_data_4.kind = "Assertion";
+    __gen_e_acsl_assert_data_4.pred_txt = "!\\valid(t2.p) && \\valid(t2.q)";
+    __gen_e_acsl_assert_data_4.file = "tests/temporal/t_struct.c";
+    __gen_e_acsl_assert_data_4.fct = "main";
+    __gen_e_acsl_assert_data_4.line = 38;
+    __e_acsl_assert(__gen_e_acsl_and_12,& __gen_e_acsl_assert_data_4);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
   }
-  /*@ assert ¬\valid(t2.p) ∧ \valid(t2.q); */ ;
+  /*@ assert !\valid(t2.p) && \valid(t2.q); */ ;
   __e_acsl_initialize((void *)(& l.t),sizeof(struct temporal_t));
   __e_acsl_temporal_memcpy((void *)(& l.t),(void *)(& t2),(size_t)16);
   l.t = t2;
@@ -192,64 +324,131 @@ int main(void)
     int __gen_e_acsl_initialized_9;
     int __gen_e_acsl_and_13;
     int __gen_e_acsl_and_15;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&l.t.p",
+                                 (void *)(& l.t.p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)(& l.t.p),
                                                       sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                 "\\initialized(&l.t.p)",0,
+                                 __gen_e_acsl_initialized_9);
     if (__gen_e_acsl_initialized_9) {
       int __gen_e_acsl_valid_9;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"l.t.p",
+                                   (void *)l.t.p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_9 = __e_acsl_valid((void *)l.t.p,sizeof(char),
                                             (void *)l.t.p,(void *)(& l.t.p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\valid(l.t.p)",0,__gen_e_acsl_valid_9);
       __gen_e_acsl_and_13 = __gen_e_acsl_valid_9;
     }
     else __gen_e_acsl_and_13 = 0;
     if (! __gen_e_acsl_and_13) {
       int __gen_e_acsl_initialized_10;
       int __gen_e_acsl_and_14;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"&l.t.q",
+                                   (void *)(& l.t.q));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& l.t.q),
                                                          sizeof(char *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                   "\\initialized(&l.t.q)",0,
+                                   __gen_e_acsl_initialized_10);
       if (__gen_e_acsl_initialized_10) {
         int __gen_e_acsl_valid_10;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_5,"l.t.q",
+                                     (void *)l.t.q);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_5,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_10 = __e_acsl_valid((void *)l.t.q,sizeof(char),
                                                (void *)l.t.q,
                                                (void *)(& l.t.q));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,
+                                     "\\valid(l.t.q)",0,
+                                     __gen_e_acsl_valid_10);
         __gen_e_acsl_and_14 = __gen_e_acsl_valid_10;
       }
       else __gen_e_acsl_and_14 = 0;
       __gen_e_acsl_and_15 = __gen_e_acsl_and_14;
     }
     else __gen_e_acsl_and_15 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_15,1,"Assertion","main",
-                    "!\\valid(l.t.p) && \\valid(l.t.q)",
-                    "tests/temporal/t_struct.c",41);
+    __gen_e_acsl_assert_data_5.blocking = 1;
+    __gen_e_acsl_assert_data_5.kind = "Assertion";
+    __gen_e_acsl_assert_data_5.pred_txt = "!\\valid(l.t.p) && \\valid(l.t.q)";
+    __gen_e_acsl_assert_data_5.file = "tests/temporal/t_struct.c";
+    __gen_e_acsl_assert_data_5.fct = "main";
+    __gen_e_acsl_assert_data_5.line = 41;
+    __e_acsl_assert(__gen_e_acsl_and_15,& __gen_e_acsl_assert_data_5);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
   }
-  /*@ assert ¬\valid(l.t.p) ∧ \valid(l.t.q); */ ;
+  /*@ assert !\valid(l.t.p) && \valid(l.t.q); */ ;
   __e_acsl_full_init((void *)(& lp));
   __e_acsl_temporal_store_nblock((void *)(& lp),(void *)(& l));
   lp = & l;
   {
     int __gen_e_acsl_initialized_11;
     int __gen_e_acsl_and_16;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"&lp->t.p",
+                                 (void *)(& lp->t.p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(& lp->t.p),
                                                        sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                 "\\initialized(&lp->t.p)",0,
+                                 __gen_e_acsl_initialized_11);
     if (__gen_e_acsl_initialized_11) {
       int __gen_e_acsl_valid_read;
       int __gen_e_acsl_valid_11;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_6,"lp->t.p",
+                                   (void *)lp->t.p);
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_7,"&lp->t.p",
+                                   (void *)(& lp->t.p));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_7,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)(& lp->t.p),
                                                     sizeof(char *),
                                                     (void *)(& lp->t.p),
                                                     (void *)0);
-      __e_acsl_assert(__gen_e_acsl_valid_read,1,"RTE","main",
-                      "mem_access: \\valid_read(&lp->t.p)",
-                      "tests/temporal/t_struct.c",44);
+      __gen_e_acsl_assert_data_7.blocking = 1;
+      __gen_e_acsl_assert_data_7.kind = "RTE";
+      __gen_e_acsl_assert_data_7.pred_txt = "mem_access: \\valid_read(&lp->t.p)";
+      __gen_e_acsl_assert_data_7.file = "tests/temporal/t_struct.c";
+      __gen_e_acsl_assert_data_7.fct = "main";
+      __gen_e_acsl_assert_data_7.line = 44;
+      __e_acsl_assert(__gen_e_acsl_valid_read,& __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_6,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_11 = __e_acsl_valid((void *)lp->t.p,sizeof(char),
                                              (void *)lp->t.p,
                                              (void *)(& lp->t.p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,
+                                   "\\valid(lp->t.p)",0,
+                                   __gen_e_acsl_valid_11);
       __gen_e_acsl_and_16 = __gen_e_acsl_valid_11;
     }
     else __gen_e_acsl_and_16 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_16,1,"Assertion","main",
-                    "!\\valid(lp->t.p)","tests/temporal/t_struct.c",44);
+    __gen_e_acsl_assert_data_6.blocking = 1;
+    __gen_e_acsl_assert_data_6.kind = "Assertion";
+    __gen_e_acsl_assert_data_6.pred_txt = "!\\valid(lp->t.p)";
+    __gen_e_acsl_assert_data_6.file = "tests/temporal/t_struct.c";
+    __gen_e_acsl_assert_data_6.fct = "main";
+    __gen_e_acsl_assert_data_6.line = 44;
+    __e_acsl_assert(! __gen_e_acsl_and_16,& __gen_e_acsl_assert_data_6);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
   }
-  /*@ assert ¬\valid(lp->t.p); */ ;
+  /*@ assert !\valid(lp->t.p); */ ;
   __e_acsl_initialize((void *)(tarr),sizeof(temporal));
   __e_acsl_temporal_memcpy((void *)(tarr),(void *)(& t2),(size_t)16);
   tarr[0] = t2;
@@ -257,38 +456,73 @@ int main(void)
     int __gen_e_acsl_initialized_12;
     int __gen_e_acsl_and_17;
     int __gen_e_acsl_and_19;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&tarr[0].p",
+                                 (void *)(& tarr[0].p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& tarr[0].p),
                                                        sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                 "\\initialized(&tarr[0].p)",0,
+                                 __gen_e_acsl_initialized_12);
     if (__gen_e_acsl_initialized_12) {
       int __gen_e_acsl_valid_12;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"tarr[0].p",
+                                   (void *)tarr[0].p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_12 = __e_acsl_valid((void *)tarr[0].p,sizeof(char),
                                              (void *)tarr[0].p,
                                              (void *)(& tarr[0].p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "\\valid(tarr[0].p)",0,
+                                   __gen_e_acsl_valid_12);
       __gen_e_acsl_and_17 = __gen_e_acsl_valid_12;
     }
     else __gen_e_acsl_and_17 = 0;
     if (! __gen_e_acsl_and_17) {
       int __gen_e_acsl_initialized_13;
       int __gen_e_acsl_and_18;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,"&tarr[0].q",
+                                   (void *)(& tarr[0].q));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized_13 = __e_acsl_initialized((void *)(& tarr[0].q),
                                                          sizeof(char *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                   "\\initialized(&tarr[0].q)",0,
+                                   __gen_e_acsl_initialized_13);
       if (__gen_e_acsl_initialized_13) {
         int __gen_e_acsl_valid_13;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_8,
+                                     "tarr[0].q",(void *)tarr[0].q);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_8,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_13 = __e_acsl_valid((void *)tarr[0].q,
                                                sizeof(char),
                                                (void *)tarr[0].q,
                                                (void *)(& tarr[0].q));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_8,
+                                     "\\valid(tarr[0].q)",0,
+                                     __gen_e_acsl_valid_13);
         __gen_e_acsl_and_18 = __gen_e_acsl_valid_13;
       }
       else __gen_e_acsl_and_18 = 0;
       __gen_e_acsl_and_19 = __gen_e_acsl_and_18;
     }
     else __gen_e_acsl_and_19 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_19,1,"Assertion","main",
-                    "!\\valid(tarr[0].p) && \\valid(tarr[0].q)",
-                    "tests/temporal/t_struct.c",47);
+    __gen_e_acsl_assert_data_8.blocking = 1;
+    __gen_e_acsl_assert_data_8.kind = "Assertion";
+    __gen_e_acsl_assert_data_8.pred_txt = "!\\valid(tarr[0].p) && \\valid(tarr[0].q)";
+    __gen_e_acsl_assert_data_8.file = "tests/temporal/t_struct.c";
+    __gen_e_acsl_assert_data_8.fct = "main";
+    __gen_e_acsl_assert_data_8.line = 47;
+    __e_acsl_assert(__gen_e_acsl_and_19,& __gen_e_acsl_assert_data_8);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_8);
   }
-  /*@ assert ¬\valid(tarr[0].p) ∧ \valid(tarr[0].q); */ ;
+  /*@ assert !\valid(tarr[0].p) && \valid(tarr[0].q); */ ;
   __e_acsl_initialize((void *)(larr),sizeof(larger));
   __e_acsl_temporal_memcpy((void *)(larr),(void *)(& l),(size_t)32);
   larr[0] = l;
@@ -296,39 +530,74 @@ int main(void)
     int __gen_e_acsl_initialized_14;
     int __gen_e_acsl_and_20;
     int __gen_e_acsl_and_22;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,"&larr[0].t.p",
+                                 (void *)(& larr[0].t.p));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                   "sizeof(char *)",0,sizeof(char *));
     __gen_e_acsl_initialized_14 = __e_acsl_initialized((void *)(& larr[0].t.p),
                                                        sizeof(char *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                 "\\initialized(&larr[0].t.p)",0,
+                                 __gen_e_acsl_initialized_14);
     if (__gen_e_acsl_initialized_14) {
       int __gen_e_acsl_valid_14;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,
+                                   "larr[0].t.p",(void *)larr[0].t.p);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                     "sizeof(char)",0,sizeof(char));
       __gen_e_acsl_valid_14 = __e_acsl_valid((void *)larr[0].t.p,
                                              sizeof(char),
                                              (void *)larr[0].t.p,
                                              (void *)(& larr[0].t.p));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "\\valid(larr[0].t.p)",0,
+                                   __gen_e_acsl_valid_14);
       __gen_e_acsl_and_20 = __gen_e_acsl_valid_14;
     }
     else __gen_e_acsl_and_20 = 0;
     if (! __gen_e_acsl_and_20) {
       int __gen_e_acsl_initialized_15;
       int __gen_e_acsl_and_21;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,
+                                   "&larr[0].t.q",(void *)(& larr[0].t.q));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                     "sizeof(char *)",0,sizeof(char *));
       __gen_e_acsl_initialized_15 = __e_acsl_initialized((void *)(& larr[0].t.q),
                                                          sizeof(char *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                   "\\initialized(&larr[0].t.q)",0,
+                                   __gen_e_acsl_initialized_15);
       if (__gen_e_acsl_initialized_15) {
         int __gen_e_acsl_valid_15;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_9,
+                                     "larr[0].t.q",(void *)larr[0].t.q);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_9,
+                                       "sizeof(char)",0,sizeof(char));
         __gen_e_acsl_valid_15 = __e_acsl_valid((void *)larr[0].t.q,
                                                sizeof(char),
                                                (void *)larr[0].t.q,
                                                (void *)(& larr[0].t.q));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_9,
+                                     "\\valid(larr[0].t.q)",0,
+                                     __gen_e_acsl_valid_15);
         __gen_e_acsl_and_21 = __gen_e_acsl_valid_15;
       }
       else __gen_e_acsl_and_21 = 0;
       __gen_e_acsl_and_22 = __gen_e_acsl_and_21;
     }
     else __gen_e_acsl_and_22 = 0;
-    __e_acsl_assert(__gen_e_acsl_and_22,1,"Assertion","main",
-                    "!\\valid(larr[0].t.p) && \\valid(larr[0].t.q)",
-                    "tests/temporal/t_struct.c",50);
+    __gen_e_acsl_assert_data_9.blocking = 1;
+    __gen_e_acsl_assert_data_9.kind = "Assertion";
+    __gen_e_acsl_assert_data_9.pred_txt = "!\\valid(larr[0].t.p) && \\valid(larr[0].t.q)";
+    __gen_e_acsl_assert_data_9.file = "tests/temporal/t_struct.c";
+    __gen_e_acsl_assert_data_9.fct = "main";
+    __gen_e_acsl_assert_data_9.line = 50;
+    __e_acsl_assert(__gen_e_acsl_and_22,& __gen_e_acsl_assert_data_9);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_9);
   }
-  /*@ assert ¬\valid(larr[0].t.p) ∧ \valid(larr[0].t.q); */ ;
+  /*@ assert !\valid(larr[0].t.p) && \valid(larr[0].t.q); */ ;
   __retres = 0;
   __e_acsl_delete_block((void *)(larr));
   __e_acsl_delete_block((void *)(& lp));
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_while.c b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_while.c
index 8dd92ddbabe95047d7346030178dc49bb905e389..67c3b186c978cbcaa54d9cf521c5ea5e6aad7a87 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/gen_t_while.c
+++ b/src/plugins/e-acsl/tests/temporal/oracle/gen_t_while.c
@@ -1,6 +1,6 @@
 /* Generated by Frama-C */
-#include "__fc_alloc_axiomatic.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;
 
@@ -25,17 +25,38 @@ int main(void)
     {
       int __gen_e_acsl_initialized;
       int __gen_e_acsl_and;
+      __e_acsl_assert_data_t __gen_e_acsl_assert_data =
+        {.values = (void *)0};
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"&q",
+                                   (void *)(& q));
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                     "sizeof(int *)",0,sizeof(int *));
       __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& q),
                                                       sizeof(int *));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,
+                                   "\\initialized(&q)",0,
+                                   __gen_e_acsl_initialized);
       if (__gen_e_acsl_initialized) {
         int __gen_e_acsl_valid;
+        __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data,"q",
+                                     (void *)q);
+        __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data,
+                                       "sizeof(int)",0,sizeof(int));
         __gen_e_acsl_valid = __e_acsl_valid((void *)q,sizeof(int),(void *)q,
                                             (void *)(& q));
+        __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"\\valid(q)",
+                                     0,__gen_e_acsl_valid);
         __gen_e_acsl_and = __gen_e_acsl_valid;
       }
       else __gen_e_acsl_and = 0;
-      __e_acsl_assert(__gen_e_acsl_and,1,"Assertion","main","\\valid(q)",
-                      "tests/temporal/t_while.c",29);
+      __gen_e_acsl_assert_data.blocking = 1;
+      __gen_e_acsl_assert_data.kind = "Assertion";
+      __gen_e_acsl_assert_data.pred_txt = "\\valid(q)";
+      __gen_e_acsl_assert_data.file = "tests/temporal/t_while.c";
+      __gen_e_acsl_assert_data.fct = "main";
+      __gen_e_acsl_assert_data.line = 29;
+      __e_acsl_assert(__gen_e_acsl_and,& __gen_e_acsl_assert_data);
+      __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
     }
     /*@ assert \valid(q); */ ;
     __e_acsl_initialize((void *)q,sizeof(int));
@@ -48,19 +69,40 @@ int main(void)
   {
     int __gen_e_acsl_initialized_2;
     int __gen_e_acsl_and_2;
+    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
+      {.values = (void *)0};
+    __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"&q",
+                                 (void *)(& q));
+    __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                   "sizeof(int *)",0,sizeof(int *));
     __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)(& q),
                                                       sizeof(int *));
+    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,
+                                 "\\initialized(&q)",0,
+                                 __gen_e_acsl_initialized_2);
     if (__gen_e_acsl_initialized_2) {
       int __gen_e_acsl_valid_2;
+      __e_acsl_assert_register_ptr(& __gen_e_acsl_assert_data_2,"q",
+                                   (void *)q);
+      __e_acsl_assert_register_ulong(& __gen_e_acsl_assert_data_2,
+                                     "sizeof(int)",0,sizeof(int));
       __gen_e_acsl_valid_2 = __e_acsl_valid((void *)q,sizeof(int),(void *)q,
                                             (void *)(& q));
+      __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"\\valid(q)",
+                                   0,__gen_e_acsl_valid_2);
       __gen_e_acsl_and_2 = __gen_e_acsl_valid_2;
     }
     else __gen_e_acsl_and_2 = 0;
-    __e_acsl_assert(! __gen_e_acsl_and_2,1,"Assertion","main","!\\valid(q)",
-                    "tests/temporal/t_while.c",37);
+    __gen_e_acsl_assert_data_2.blocking = 1;
+    __gen_e_acsl_assert_data_2.kind = "Assertion";
+    __gen_e_acsl_assert_data_2.pred_txt = "!\\valid(q)";
+    __gen_e_acsl_assert_data_2.file = "tests/temporal/t_while.c";
+    __gen_e_acsl_assert_data_2.fct = "main";
+    __gen_e_acsl_assert_data_2.line = 37;
+    __e_acsl_assert(! __gen_e_acsl_and_2,& __gen_e_acsl_assert_data_2);
+    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
   }
-  /*@ assert ¬\valid(q); */ ;
+  /*@ assert !\valid(q); */ ;
   __retres = 0;
   return_label: __e_acsl_store_block_duplicate((void *)(& q),(size_t)8);
   __e_acsl_delete_block((void *)(& q));
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_args.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_args.res.oracle
index d1a7d5a008bb05cfa2c8986371a0fd2c9312b9c5..9d850de2c0259736c8a18e079b60ea72e2ab42df 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_args.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_args.res.oracle
@@ -1,7 +1,34 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_args.c:8: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_args.c:8: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_args.c:9: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_args.c:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/temporal/t_args.c:9: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/temporal/t_args.c:9: Warning: assertion got status unknown.
+[eva:alarm] tests/temporal/t_args.c:10: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_args.c:10: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_args.c:10: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_args.c:10: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_args.c:10: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/temporal/t_args.c:10: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status invalid.
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_array.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_array.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..0eff0aabb75c93f0d852db7d58cf4c8078e817db 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_array.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_array.res.oracle
@@ -1,2 +1,32 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_array.c:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_array.c:12: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_array.c:12: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_array.c:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_array.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_array.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_array.c:13: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_array.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_array.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_array.c:14: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_char.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_char.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..1ca7f961fc713887c4ce5384474eb385d3036923 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_char.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_char.res.oracle
@@ -1,2 +1,26 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_char.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_char.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_char.c:15: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_char.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_char.c:16: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_char.c:16: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_char.c:16: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_char.c:16: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_darray.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_darray.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..7273a66178001169cb6de638c01a48192becdb29 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_darray.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_darray.res.oracle
@@ -1,2 +1,14 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_darray.c:6: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_darray.c:6: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_darray.c:7: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_darray.c:7: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_dpointer.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_dpointer.res.oracle
index be99b03ac0e2a4d60f8dd1374232a3bab4b5229c..48faa133ffafba682c4da9c491e60593f657a15e 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_dpointer.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_dpointer.res.oracle
@@ -1,10 +1,52 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_dpointer.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_dpointer.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_dpointer.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_dpointer.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_dpointer.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_dpointer.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_dpointer.c:15: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_dpointer.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_dpointer.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/temporal/t_dpointer.c:15: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] tests/temporal/t_dpointer.c:21: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_dpointer.c:21: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] tests/temporal/t_dpointer.c:21: Warning: 
   accessing left-value that contains escaping addresses.
-  assert ¬\dangling(p + 2);
+  assert !\dangling(p + 2);
+[eva:alarm] tests/temporal/t_dpointer.c:21: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_dpointer.c:21: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_dpointer.c:21: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/temporal/t_dpointer.c:21: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/temporal/t_dpointer.c:21: Warning: 
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_fptr.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_fptr.res.oracle
index 8715d9fa66b2e270073f6cc836aa7b6eab90d190..4658faeeeb782935840afebbb3877af08c14f2d5 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_fptr.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_fptr.res.oracle
@@ -4,3 +4,15 @@
 [e-acsl] tests/temporal/t_fptr.c:16: Warning: 
   E-ACSL construct `\valid_function' is not yet supported. Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_fptr.c:19: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fptr.c:19: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fptr.c:19: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fptr.c:19: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_fun_lib.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_fun_lib.res.oracle
index af89a06f90482c8971681ae7c20d260cee3c211c..87d8ba0caa4ac6229135505d873abc8d778ff798 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_fun_lib.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_fun_lib.res.oracle
@@ -1,6 +1,45 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fun_lib.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [kernel:annot:missing-spec] tests/temporal/t_fun_lib.c:19: Warning: 
   Neither code nor specification for function realpath, generating default assigns from the prototype
+[eva:alarm] tests/temporal/t_fun_lib.c:22: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fun_lib.c:22: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fun_lib.c:22: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fun_lib.c:22: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/temporal/t_fun_lib.c:22: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status invalid.
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_fun_ptr.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_fun_ptr.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..0a34fd1866ca1a9008abfb4e0de0207307f0cd74 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_fun_ptr.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_fun_ptr.res.oracle
@@ -1,2 +1,14 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_fun_ptr.c:28: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fun_ptr.c:28: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fun_ptr.c:28: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_fun_ptr.c:28: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_getenv.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_getenv.res.oracle
index 0955f5f4a0be52c79023675a3c414507a87f28b2..23536de8173f67a8dc6af747788123c5fe67b928 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_getenv.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_getenv.res.oracle
@@ -14,13 +14,52 @@
   E-ACSL construct `assigns clause in behavior' is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] FRAMAC_SHARE/libc/stdlib.h:488: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdlib.h:488: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/stdlib.h:488: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/stdlib.h:488: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/stdlib.h:488: Warning: 
   function __gen_e_acsl_getenv: postcondition 'null_or_valid_result' got status unknown.
+[eva:alarm] tests/temporal/t_getenv.c:13: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_getenv.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_getenv.c:13: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_getenv.c:13: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_getenv.c:13: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/temporal/t_getenv.c:13: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/temporal/t_getenv.c:13: Warning: assertion got status unknown.
+[eva:alarm] tests/temporal/t_getenv.c:14: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_getenv.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_getenv.c:14: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_getenv.c:14: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_getenv.c:14: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/temporal/t_getenv.c:14: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
 [eva:alarm] tests/temporal/t_getenv.c:14: Warning: assertion got status unknown.
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_global_init.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_global_init.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..b6c4bd474f727d03629d425d229abba46c693731 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_global_init.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_global_init.res.oracle
@@ -1,2 +1,44 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_global_init.c:34: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_global_init.c:34: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_global_init.c:34: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_global_init.c:34: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_global_init.c:49: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_global_init.c:49: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_global_init.c:49: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_global_init.c:49: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_global_init.c:50: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_global_init.c:50: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_global_init.c:50: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_global_init.c:50: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_global_init.c:50: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_global_init.c:50: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_labels.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_labels.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..9bd531688498f2414a5bfe2e3432094ad9fe952b 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_labels.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_labels.res.oracle
@@ -1,2 +1,41 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_labels.c:26: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_labels.c:26: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_labels.c:26: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_labels.c:26: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_labels.c:26: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_labels.c:26: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_labels.c:26: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_labels.c:26: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_labels.c:26: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_labels.c:30: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_labels.c:30: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_labels.c:30: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_labels.c:30: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_lit_string.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_lit_string.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..7004ff0bbfc6fec80c27fd9e06e16dddca9a18f9 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_lit_string.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_lit_string.res.oracle
@@ -1,2 +1,110 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:9: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:15: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_lit_string.c:18: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_local_init.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_local_init.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..f8138df0fa9b63be0e56b2592106d2d388d0a881 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_local_init.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_local_init.res.oracle
@@ -1,2 +1,134 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_local_init.c:35: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:35: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:35: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:35: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:36: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:36: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:36: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:36: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:36: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:36: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:42: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:42: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:42: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:42: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:43: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:43: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:43: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:43: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:43: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:43: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:47: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:47: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:47: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:47: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:48: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:48: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:48: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:48: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:48: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:48: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:52: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:52: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:52: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:52: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:53: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:53: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:53: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:53: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:53: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:53: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:23: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:23: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:23: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_local_init.c:23: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_malloc-asan.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_malloc-asan.res.oracle
index 966a3018a5d8b478de4164882d306bfe24614209..1c418fb4ff465463625db3ff054d4496cf29c01a 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_malloc-asan.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_malloc-asan.res.oracle
@@ -1,5 +1,4 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
 [eva:alarm] tests/temporal/t_malloc-asan.c:28: Warning: 
-  accessing left-value that contains escaping addresses.
-  assert ¬\dangling(&q);
+  accessing left-value that contains escaping addresses. assert !\dangling(&q);
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_malloc.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_malloc.res.oracle
index 01e8d6abf31a734a75a7b78bf851da3fd7fe38e2..3af9a764c683ffcd1a8a37722832ee3c153d000c 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_malloc.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_malloc.res.oracle
@@ -1,5 +1,46 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_malloc.c:11: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_malloc.c:11: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_malloc.c:12: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_malloc.c:12: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_malloc.c:17: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_malloc.c:17: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_malloc.c:17: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_malloc.c:17: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_malloc.c:18: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_malloc.c:18: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_malloc.c:18: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_malloc.c:18: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] tests/temporal/t_malloc.c:22: Warning: 
-  accessing left-value that contains escaping addresses.
-  assert ¬\dangling(&p);
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_malloc.c:22: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_malloc.c:22: Warning: 
+  accessing left-value that contains escaping addresses. assert !\dangling(&p);
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_memcpy.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_memcpy.res.oracle
index cb751d8a0f1ffbade8c51b16888393ebb55839e4..712744e8ddd0287b1c780b0f1c256ce1177e266d 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_memcpy.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_memcpy.res.oracle
@@ -25,9 +25,180 @@
   E-ACSL construct `assigns clause in behavior' is not yet supported.
   Ignoring annotation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_memcpy.c:20: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:20: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:20: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:20: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:21: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:21: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:21: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:21: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: 
   function __e_acsl_assert, behavior blocking: precondition got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:98: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:102: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/string.h:101: Warning: 
   function __gen_e_acsl_memcpy: postcondition 'copied_contents' got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:25: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:25: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:25: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:25: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:26: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:26: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:26: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:26: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] FRAMAC_SHARE/libc/string.h:135: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
 [eva:alarm] FRAMAC_SHARE/libc/string.h:134: Warning: 
   function __gen_e_acsl_memset: postcondition 'acsl_c_equiv' got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:30: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:30: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:30: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:30: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:31: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:31: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:31: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:31: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:40: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:40: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:40: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:40: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:40: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:40: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:41: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:41: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:41: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:41: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:41: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:42: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:42: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:43: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:43: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:48: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:48: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:48: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:48: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:48: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:48: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:49: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:49: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:49: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:49: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_memcpy.c:49: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_scope.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_scope.res.oracle
index 9826a53ef7efbcc35395480a2eb83765489302ab..917fe5cf5117752845ad3d83a76cf4428340ed85 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_scope.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_scope.res.oracle
@@ -5,5 +5,10 @@
 [eva:locals-escaping] tests/temporal/t_scope.c:10: Warning: 
   locals {i} escaping the scope of a block of main through q
 [eva:alarm] tests/temporal/t_scope.c:15: Warning: 
-  accessing left-value that contains escaping addresses.
-  assert ¬\dangling(&p);
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_scope.c:15: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_scope.c:15: Warning: 
+  accessing left-value that contains escaping addresses. assert !\dangling(&p);
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_struct.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_struct.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..18593fec2065deeab0070104e0a890aef139f2d9 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_struct.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_struct.res.oracle
@@ -1,2 +1,191 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_struct.c:30: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:30: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:30: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:30: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:30: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:30: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:30: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:30: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:30: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:31: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:31: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:31: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:31: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:31: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:34: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:34: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:34: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:34: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:34: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:34: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:34: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:34: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:34: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:38: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:38: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:38: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:38: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:38: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:38: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:38: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:38: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:38: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:41: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:41: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:41: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:41: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:41: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:41: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:41: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:41: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:41: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:44: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:44: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:44: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:44: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:47: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:47: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:47: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:47: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:47: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:47: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:47: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:47: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:47: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:50: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:50: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:50: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:50: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:50: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:50: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:50: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:50: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_struct.c:50: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/temporal/oracle/t_while.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle/t_while.res.oracle
index efd026311297e55d8fefb674326118e6ece88624..5e841bf819502b3a1f22fc0cb8070b822c8bebf8 100644
--- a/src/plugins/e-acsl/tests/temporal/oracle/t_while.res.oracle
+++ b/src/plugins/e-acsl/tests/temporal/oracle/t_while.res.oracle
@@ -1,2 +1,26 @@
 [e-acsl] beginning translation.
 [e-acsl] translation done in project "e-acsl".
+[eva:alarm] tests/temporal/t_while.c:29: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_while.c:29: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_while.c:29: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_while.c:29: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_while.c:37: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_while.c:37: Warning: 
+  function __e_acsl_assert_register_int: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_while.c:37: Warning: 
+  function __e_acsl_assert_register_ptr: precondition data->values == \null ||
+                                                      \valid(data->values) got status unknown.
+[eva:alarm] tests/temporal/t_while.c:37: Warning: 
+  function __e_acsl_assert_register_ulong: precondition data->values == \null ||
+                                                        \valid(data->values) got status unknown.
diff --git a/src/plugins/e-acsl/tests/test_config.in b/src/plugins/e-acsl/tests/test_config.in
index ce7dca752b1fdd101119d743e4c91c3ee4557fba..55b9f357b3475c0e31946b0b09f162c70913b614 100644
--- a/src/plugins/e-acsl/tests/test_config.in
+++ b/src/plugins/e-acsl/tests/test_config.in
@@ -1,8 +1,8 @@
 MACRO: DEST @PTEST_RESULT@/gen_@PTEST_NAME@
 MACRO: MACHDEP -machdep gcc_x86_64
-MACRO: GLOBAL @MACHDEP@ -remove-unused-specified-functions -verbose 0
+MACRO: GLOBAL @MACHDEP@ -remove-unused-specified-functions -verbose 0 -no-unicode
 
-MACRO: EACSL -e-acsl -e-acsl-share ./share/e-acsl -e-acsl-verbose 1 -e-acsl-assert-print-data
+MACRO: EACSL -e-acsl -e-acsl-share ./share/e-acsl -e-acsl-verbose 1
 MACRO: EVA -eva -eva-no-alloc-returns-null -eva-no-results -eva-no-print -eva-warn-key libc:unsupported-spec=inactive -eva-warn-key loop-unroll:auto=inactive
 
 MACRO: EVENTUALLY -print -ocode @DEST@.c
diff --git a/src/plugins/e-acsl/tests/test_config_dev.in b/src/plugins/e-acsl/tests/test_config_dev.in
index 50abc706cd00fbdb2399681f0677cdd3e8eec806..a4b467001b82cdbff1ed5c3204c016343d9d3245 100644
--- a/src/plugins/e-acsl/tests/test_config_dev.in
+++ b/src/plugins/e-acsl/tests/test_config_dev.in
@@ -8,7 +8,7 @@ MACRO: EACSL_ERR @PTEST_NAME@.e-acsl.err.log
 COMMENT: Define the following macro to "no" in a test to stop the execution of `e-acsl-gcc.sh`
 MACRO: ROOT_EACSL_GCC_ENABLE yes
 COMMENT: Default options for `e-acsl-gcc.sh`
-MACRO: ROOT_EACSL_GCC_MISC_OPTS -q -X --assert-print-data
+MACRO: ROOT_EACSL_GCC_MISC_OPTS -q -X --no-assert-print-data
 COMMENT: Default options for the frama-c invocation
 MACRO: ROOT_EACSL_GCC_FC_EXTRA -journal-disable -verbose 0