diff --git a/Changelog b/Changelog
index d6cb74c629b2bcd3289153888bdb04ce073246b7..c992b733c9a3d45f182630536afc3d4039148901 100644
--- a/Changelog
+++ b/Changelog
@@ -19,9 +19,10 @@ Open Source Release <next-release>
 
 o!  Kernel    [2021-04-09] Change the type of the measure from string to
               logic_info in the variant AST node.
+o   Ptests    [2021-04-08] FILTER directive reads the standard input and can be
+              chained.
 -*  Kernel    [2021-03-26] Raise an error if trying to merge a tentative
               definition with a proper definition during linking
-o   Ptests    [2021-03-24] Add new EXIT directive
 o   Ptests    [2021-03-25] Modify MODULE directive.
 o   Ptests    [2021-03-24] Add new EXIT directive.
 -   Aorai     [2021-02-09] New option for tracking last N states of the
diff --git a/doc/developer/advance.tex b/doc/developer/advance.tex
index 02e1327c60f30d06e58db560c400cf946addad89..e275932216d8a6a094f3bf7b4d436882d18a6405 100644
--- a/doc/developer/advance.tex
+++ b/doc/developer/advance.tex
@@ -988,7 +988,7 @@ file, run it only once.
 & \textit{None}
 \\
 & \texttt{FILTER}\nscodeidxdef{Test!Directive}{FILTER}
-& Command used to filter results
+& Command reading the standard input used to filter results. In such a command, the predefined macro \texttt{@PTEST\_ORACLE@} is set to the basename of the oracle.
 & \textit{None}
 \\
 & \texttt{MODULE}\nscodeidxdef{Test!Directive}{MODULE}
@@ -1154,7 +1154,7 @@ or
   \texttt{@macro-name@} in a \texttt{CMD}, \texttt{LOG}, \texttt{OPT},
   \texttt{STDOPT} or \texttt{EXECNOW} directive at this configuration level
   or in any level below it will be replaced by \texttt{content}. Existing
-  pre-defined macros are listed in section~\ref{sec:ptests-macros}.
+  predefined macros are listed in section~\ref{sec:ptests-macros}.
 \item \texttt{MODULE}\nscodeidx{Test!Directive}{MODULE}
  directive takes as argument the name of a \texttt{.cmxs}
   module. It will then add a directive to compile this file with the
@@ -1168,6 +1168,19 @@ or
   the suite. This directive is only
   usable in a \texttt{test\_config}\codeidx{test\_config}
   configuration file.
+\item The \texttt{FILTER}\nscodeidx{Test!Directive}{FILTER} directive specifies
+  a transformation on the test result files before the comparison to the oracles.
+  The filtering command read the result from the standard input and the oracle
+  will be compared with the standard output of that command.
+  In such a directive, the predefined macro \texttt{@PTEST\_ORACLE@} is set to the
+  basename of the oracle.
+  That allows running a \texttt{diff} command with the oracle of another
+  test configuration:
+  \begin{code}
+    FILTER: diff --new-file @PTEST_DIR@/oracle_configuration/@PTEST_ORACLE@ -
+  \end{code}
+  Chaining multiple filter commands is possible by defining several \texttt{FILTER} directives (they are applied in the reverse order),
+  and an empty command drops the previous \texttt{FILTER} directives.
 \end{itemize}
 
 \begin{important}
diff --git a/ptests/ptests.ml b/ptests/ptests.ml
index 0cd9d185146d17370673b2bbaf0f3067c428d780..5b1478eeb934c3ad8192bda11c4b22724318b429 100644
--- a/ptests/ptests.ml
+++ b/ptests/ptests.ml
@@ -93,6 +93,11 @@ let str_string_match_and_replace regex1 regex2 ~suffix s =
   Mutex.unlock str_mutex;
   (replaced_str, matched)
 
+let str_bounded_full_split regex s n =
+  Mutex.lock str_mutex;
+  let res = Str.bounded_full_split regex s n in
+  Mutex.unlock str_mutex; res
+
 let str_split regex s =
   Mutex.lock str_mutex;
   let res = Str.split regex s in
@@ -124,6 +129,20 @@ let str_split_list =
     let _,_,res = (add "" acc) in
     res
 
+(* removes first blanks *)
+let trim_right s =
+  let n = ref (String.length s - 1) in
+  let last_char_to_keep =
+    try
+      while !n > 0 do
+        if String.get s !n <> ' ' then raise Exit;
+        n := !n - 1
+      done;
+      0
+    with Exit -> !n
+  in
+  String.sub s 0 (last_char_to_keep+1)
+
 let default_env = ref []
 
 let add_default_env x y = default_env:=(x,y)::!default_env
@@ -153,32 +172,46 @@ let dir_config_file = "test_config"
     the pattern [test_file_regexp] will be considered as test files *)
 let test_file_regexp = ".*\\.\\(c\\|i\\)$"
 
-(** the pattern that ends the parsing of options in a test file *)
-let end_comment = Str.regexp ".*\\*/"
-
-let regex_cmxs = Str.regexp ("\\([^/]+\\)[.]cmxs\\($\\|[ \t]\\)")
-
-let opt_to_byte toplevel =
-  match string_del_suffix "frama-c" toplevel with
-  | Some path -> path ^ "frama-c.byte"
-  | None ->
-    match string_del_suffix "toplevel.opt" toplevel with
-    | Some path -> path ^ "toplevel.byte"
+(* Splits the command string to separate the command name from the parameters
+   [let cmd_name,param=command_partition cmd in assert cmd=cmd_name^param]
+*)
+let command_partition =
+  let regexp_unescaped_blank = Str.regexp "[^\\ ] " in
+  fun cmd ->
+    match str_bounded_full_split regexp_unescaped_blank cmd 2 with
+    | [ Str.Text cmd ] ->
+      cmd, ""
+    | [ Str.Text cmd ; Str.Delim delim ] ->
+      cmd ^ (String.make 1 (String.get delim 0)), (String.make 1 (String.get delim 1))
+    | [ Str.Text cmd ; Str.Delim delim; Str.Text options ] ->
+      cmd ^ (String.make 1 (String.get delim 0)), (String.make 1 (String.get delim 1)) ^ options
+    | [ Str.Delim delim ] ->
+      (String.make 1 (String.get delim 0)), (String.make 1 (String.get delim 1))
+    | [ Str.Delim delim; Str.Text options ] ->
+      (String.make 1 (String.get delim 0)), (String.make 1 (String.get delim 1)) ^ options
+    | _ -> assert false
+
+let opt_to_byte_options =
+  let regex_cmxs = Str.regexp ("\\([^/]+\\)[.]cmxs\\($\\|[ \t]\\)") in
+  fun options -> str_global_replace regex_cmxs "\\1.cmo\\2" options
+
+let opt_to_byte cmd =
+  let opt_to_byte toplevel =
+    match string_del_suffix "frama-c" toplevel with
+    | Some path -> path ^ "frama-c.byte"
     | None ->
-      match string_del_suffix "frama-c-gui" toplevel with
-      | Some path -> path ^ "frama-c-gui.byte"
+      match string_del_suffix "toplevel.opt" toplevel with
+      | Some path -> path ^ "toplevel.byte"
       | None ->
-        match string_del_suffix "viewer.opt" toplevel with
-        | Some path -> path ^ "viewer.byte"
-        | None -> toplevel
-
-let opt_to_byte_options options =
-  str_global_replace regex_cmxs "\\1.cmo\\2" options
-
-let execnow_opt_to_byte cmd =
-  let cmd = opt_to_byte cmd in
-  opt_to_byte_options cmd
-
+        match string_del_suffix "frama-c-gui" toplevel with
+        | Some path -> path ^ "frama-c-gui.byte"
+        | None ->
+          match string_del_suffix "viewer.opt" toplevel with
+          | Some path -> path ^ "viewer.byte"
+          | None -> toplevel
+  in
+  let cmdname, options = command_partition cmd in
+  (opt_to_byte cmdname) ^ (opt_to_byte_options options)
 
 let output_unix_error (exn : exn) =
   match exn with
@@ -299,31 +332,33 @@ let example_msg =
      EXECNOW: ([LOG|BIN] <file>)+ <command>  @[<v 0># Defines the command to execute to build a 'LOG' (textual) 'BIN' (binary) targets.@ \
      # Note: the textual targets are compared to oracles.@]@  \
      MODULE: <module>... @[<v 0># Compile the module and adds the corresponding '-load-module' option to all sub-test commands.@]@  \
-     LOG: <file>...      @[<v 0># Defines dune targets built by the next sub-test command.@]@  \
+     LOG: <file>...      @[<v 0># Defines targets built by the next sub-test command.@]@  \
      CMD: <command>      @[<v 0># Defines the command to execute for all tests in order to get results to be compared to oracles.@]@  \
      OPT: <options>      @[<v 0># Defines a sub-test using the 'CMD' definition: <command> <options>@]@  \
      STDOPT: +<extra>    @[<v 0># Defines a sub-test and append the extra to the current option.@]@  \
      STDOPT: #<extra>    @[<v 0># Defines a sub-test and prepend the extra to the current option.@]@  \
      EXIT: <number>      @[<v 0># Defines the exit code required for the next sub-test commands.@]@  \
      FILTER: <cmd>       @[<v 0># Performs a transformation on the test result files before the comparison from the oracles.@ \
-     # The oracle will be compared from the standard output of the command: <cmd> <test-output-file>.@ \
+     # The oracle will be compared from the standard output of the command: cat <test-output-file> | <cmd> .@ \
+     # Chaining multiple filter commands is possible by defining several FILTER directives.@ \
+     # An empty command drops the previous FILTER directives.@ \
+     # Note: in such a command, the @@PTEST_ORACLE@@ macro is set to the basename of the oracle.@ \
+     # This allows running a 'diff' command with the oracle of another test configuration:@ \
+     #    FILTER: diff --new-file @@PTEST_DIR@@/oracle_configuration/@@PTEST_ORACLE@@ @]@  \
      TIMEOUT: <delay>    @[<v 0># Set a timeout for all sub-test.@]@  \
      NOFRAMAC:           @[<v 0># Drops previous sub-test definitions and considers that there is no defined default sub-test.@]@  \
      GCC:                @[<v 0># Deprecated.@]@  \
-     MACRO: <name> <def> @[<v 0># set a definition to the variable @@<name>@@.@]@  \
+     MACRO: <name> <def> @[<v 0># Set a definition to the macro @@<name>@@.@]@  \
      @]@ \
      @[<v 1>\
-     Some variables can be used in test command:@ \
-     @@PTEST_CONFIG@@    \
-     # test configuration suffix@ \
-     @@PTEST_FILE@@   \
-     # substituted by the test filename@ \
-     @@PTEST_DIR@@    \
-     # dirname of the test file@ \
-     @@PTEST_NAME@@   \
-     # basename of the test file@ \
-     @@PTEST_NUMBER@@ \
-     # test command number@] @ \
+     Some predefined macros can be used in test commands:@  \
+     @@PTEST_DIR@@       # Dirname of the test file.@  \
+     @@PTEST_FILE@@      # Substituted by the test filename.@  \
+     @@PTEST_NAME@@      # Basename of the test file.@  \
+     @@PTEST_NUMBER@@    # Test command number.@  \
+     @@PTEST_CONFIG@@    # Test configuration suffix.@  \
+     @@PTEST_RESULT@@    # Shorthand alias to @@PTEST_DIR@@/result@@PTEST_CONFIG@@ (the result directory dedicated to the tested configuration).@  \
+     @@PTEST_ORACLE@@    # Basename of the current oracle file (macro only usable in FILTER directives).@  \
      @[<v 1>\
      Examples:@ \
      ptests@ \
@@ -915,7 +950,12 @@ end = struct
       (fun ~drop:_ ~file:_ _ s current -> { current with dc_test_regexp = s });
 
       "FILTER",
-      (fun ~drop:_ ~file:_ _ s current -> { current with dc_filter = Some s });
+      (fun ~drop:_ ~file:_ _ s current ->
+         let s = trim_right s in
+         match current.dc_filter with
+         | None when s="" -> { current with dc_filter = None }
+         | None           -> { current with dc_filter = Some s }
+         | Some filter    -> { current with dc_filter = Some (s ^ " | " ^ filter) });
 
       "EXIT",
       (fun ~drop:_ ~file:_ _ s current -> { current with dc_exit_code = Some s });
@@ -953,6 +993,9 @@ end = struct
          { current with dc_commands = []; dc_framac = false; });
     ]
 
+  (** the pattern that ends the parsing of options in a test file *)
+  let end_comment = Str.regexp ".*\\*/"
+
   let scan_directives ~drop dir ~file scan_buffer default =
     set_default_parsing_env default;
     let r = ref { default with dc_commands = [] } in
@@ -1121,230 +1164,164 @@ let unlock () = Mutex.unlock shared.lock
 
 let lock () = Mutex.lock shared.lock
 
-let catenate_number nb_files prefix n =
-  if nb_files > 1
-  then prefix ^ "." ^ (string_of_int n)
-  else prefix
+let update_log_files dir file =
+  mv (SubDir.make_result_file dir file) (SubDir.make_oracle_file dir file)
 
-let name_without_extension command =
-  try
-    (Filename.chop_extension command.file)
-  with
-    Invalid_argument _ ->
-    fail ("this test file does not have any extension: " ^
-          command.file)
+module Cmd : sig
 
-let gen_prefix gen_file cmd =
-  let prefix = gen_file cmd.directory (name_without_extension cmd) in
-  catenate_number cmd.nb_files prefix cmd.n
+  val log_prefix : toplevel_command -> string
+  val oracle_prefix : toplevel_command -> string
 
-let log_prefix = gen_prefix SubDir.make_result_file
-let oracle_prefix = gen_prefix SubDir.make_oracle_file
+  val get_macros : toplevel_command -> string Macros.StringMap.t
 
-let get_ptest_file cmd = SubDir.make_file cmd.directory cmd.file
+  (* [basic_command_string cmd] does not redirect the outputs, and does
+     not overwrite the result files *)
+  val basic_command_string : toplevel_command -> string
 
-let get_macros cmd =
-  let ptest_config =
-    if !special_config = "" then "" else "_" ^ !special_config
-  in
-  let ptest_file = get_ptest_file cmd in
-  let ptest_name =
-    try Filename.chop_extension cmd.file
-    with Invalid_argument _ -> cmd.file
-  in
-  let macros =
-    [ "PTEST_CONFIG", ptest_config;
-      "PTEST_DIR", SubDir.get cmd.directory;
-      "PTEST_RESULT",
-      SubDir.get cmd.directory ^ "/" ^ redefine_name "result";
-      "PTEST_FILE", Filename.sanitize ptest_file;
-      "PTEST_NAME", ptest_name;
-      "PTEST_NUMBER", string_of_int cmd.n;
-    ]
-  in
-  Macros.add_list macros cmd.macros
+  val command_string : toplevel_command -> string
 
-let contains_frama_c_binary_name =
-  Str.regexp "[^( ]*\\(toplevel\\|viewer\\|frama-c-gui\\|frama-c[^-]\\).*"
+  val update_toplevel_command : toplevel_command -> unit
 
-let frama_c_binary_name =
-  Str.regexp "\\([^ ]*\\(toplevel\\|viewer\\|frama-c-gui\\|frama-c\\)\\(\\.opt\\|\\.byte\\|\\.exe\\)?\\)"
+end = struct
 
-let basic_command_string =
-  fun command ->
-  let macros = get_macros command in
-  let logfiles = List.map (Macros.expand macros) command.log_files in
-  command.log_files <- logfiles;
-  let has_ptest_file_t, toplevel =
-    Macros.does_expand macros command.toplevel
-  in
-  let has_ptest_file_o, options = Macros.does_expand macros command.options in
-  let toplevel = if !use_byte then opt_to_byte toplevel else toplevel in
-  let toplevel, contains_frama_c_binary =
-    str_string_match_and_replace contains_frama_c_binary_name
-      frama_c_binary_name ~suffix:" -check" toplevel
-  in
-  let options =
-    if contains_frama_c_binary
-    then begin
-      let opt_modules = match Macros.expand macros
-                                (Macros.get "PTEST_LOAD_MODULES" macros) with
-      | "" -> ""
-      | s -> "-load-module=" ^ s ^ ""
-      in
-      let opt_pre = Macros.expand macros !additional_options_pre in
-      let opt_post = Macros.expand macros !additional_options in
-      opt_modules ^ opt_pre ^ " " ^ options ^ " " ^ opt_post
-    end else options
-  in
-  let options = if !use_byte then opt_to_byte_options options else options in
-  let raw_command =
-    if has_ptest_file_t || has_ptest_file_o || command.execnow then
-      toplevel ^ " " ^ options
-    else begin
-      let file = Filename.sanitize @@ get_ptest_file command in
-      toplevel ^ " " ^ file ^ " " ^ options
-    end
-  in
-  if command.timeout = "" then raw_command
-  else "ulimit -t " ^ command.timeout ^ " && " ^ raw_command
+  let catenate_number nb_files prefix n =
+    if nb_files > 1
+    then prefix ^ "." ^ (string_of_int n)
+    else prefix
 
-(* Searches for executable [s] in the directories contained in the PATH
-   environment variable. Returns [None] if not found, or
-   [Some <fullpath>] otherwise. *)
-let find_in_path s =
-  let trim_right s =
-    let n = ref (String.length s - 1) in
-    let last_char_to_keep =
-      try
-        while !n > 0 do
-          if String.get s !n <> ' ' then raise Exit;
-          n := !n - 1
-        done;
-        0
-      with Exit -> !n
+  let name_without_extension command =
+    try
+      (Filename.chop_extension command.file)
+    with
+      Invalid_argument _ ->
+      fail ("this test file does not have any extension: " ^
+            command.file)
+
+  let gen_prefix gen_file cmd =
+    let prefix = gen_file cmd.directory (name_without_extension cmd) in
+    catenate_number cmd.nb_files prefix cmd.n
+
+  let log_prefix = gen_prefix SubDir.make_result_file
+  let oracle_prefix = gen_prefix SubDir.make_oracle_file
+
+  let get_ptest_file cmd = SubDir.make_file cmd.directory cmd.file
+
+  let get_macros cmd =
+    let ptest_config =
+      if !special_config = "" then "" else "_" ^ !special_config
     in
-    String.sub s 0 (last_char_to_keep+1)
-  in
-  let s = trim_right s in
-  let path_separator = if Sys.os_type = "Win32" then ";" else ":" in
-  let re_path_sep = Str.regexp path_separator in
-  let path_dirs = Str.split re_path_sep (Sys.getenv "PATH") in
-  let found = ref "" in
-  try
-    List.iter (fun dir ->
-        let fullname = dir ^ Filename.dir_sep ^ s in
-        if Sys.file_exists fullname then begin
-          found := fullname;
-          raise Exit
-        end
-      ) path_dirs;
-    None
-  with Exit ->
-    Some !found
+    let ptest_file = get_ptest_file cmd in
+    let ptest_name =
+      try Filename.chop_extension cmd.file
+      with Invalid_argument _ -> cmd.file
+    in
+    let macros =
+      [ "PTEST_CONFIG", ptest_config;
+        "PTEST_DIR", SubDir.get cmd.directory;
+        "PTEST_RESULT",
+        SubDir.get cmd.directory ^ "/" ^ redefine_name "result";
+        "PTEST_FILE", Filename.sanitize ptest_file;
+        "PTEST_NAME", ptest_name;
+        "PTEST_NUMBER", string_of_int cmd.n;
+      ]
+    in
+    Macros.add_list macros cmd.macros
 
-let command_string command =
-  let log_prefix = log_prefix command in
-  let errlog = log_prefix ^ ".err.log" in
-  let stderr = match command.filter with
-      None -> errlog
-    | Some _ ->
-      let stderr =
-        Filename.temp_file (Filename.basename log_prefix) ".err.log"
-      in
-      at_exit (fun () ->  unlink stderr);
-      stderr
-  in
-  let filter = match command.filter with
-    | None -> None
-    | Some filter ->
-      let len = String.length filter in
-      let rec split_filter i =
-        if i < len && filter.[i] = ' ' then split_filter (i+1)
-        else
-          try
-            let idx = String.index_from filter i ' ' in
-            String.sub filter i idx,
-            String.sub filter idx (len - idx)
-          with Not_found ->
-            String.sub filter i (len - i), ""
-      in
-      let exec_name, params = split_filter 0 in
-      let exec_name =
-        if Sys.file_exists exec_name || not (Filename.is_relative exec_name)
-        then exec_name
-        else
-          match find_in_path exec_name with
-          | Some full_exec_name -> full_exec_name
-          | None ->
-            Filename.concat
-              (Filename.dirname (Filename.dirname log_prefix))
-              (Filename.basename exec_name)
-      in
-      Some (exec_name ^ params)
-  in
-  let command_string = basic_command_string command in
-  let command_string =
-    command_string ^ " 2>" ^ (Filename.sanitize stderr)
-  in
-  let command_string = match filter with
-    | None -> command_string
-    | Some filter -> command_string ^ " | " ^ filter
-  in
-  let res = Filename.sanitize (log_prefix ^ ".res.log") in
-  let command_string = command_string ^ " >" ^ res in
-  let command_string =
-    match command.timeout with
-    | "" -> command_string
-    | s ->
-      Printf.sprintf
-        "%s; if test $? -gt 127; then \
-         echo 'TIMEOUT (%s); ABORTING EXECUTION' > %s; \
-         fi"
-        command_string s (Filename.sanitize stderr)
-  in
-  let command_string = match filter with
-    | None -> command_string
-    | Some filter ->
-      Printf.sprintf "%s && %s < %s >%s && rm -f %s" (* exit code ? *)
-        command_string
-        filter
-        (Filename.sanitize stderr)
-        (Filename.sanitize errlog)
-        (Filename.sanitize stderr)
-  in
-  command_string
+  let contains_frama_c_binary_name =
+    Str.regexp "[^( ]*\\(toplevel\\|viewer\\|frama-c-gui\\|frama-c[^-]\\).*"
 
-let update_log_files dir file =
-  mv (SubDir.make_result_file dir file) (SubDir.make_oracle_file dir file)
+  let frama_c_binary_name =
+    Str.regexp "\\([^ ]*\\(toplevel\\|viewer\\|frama-c-gui\\|frama-c\\)\\(\\.opt\\|\\.byte\\|\\.exe\\)?\\)"
+
+  let basic_command_string =
+    fun command ->
+    let macros = get_macros command in
+    let logfiles = List.map (Macros.expand macros) command.log_files in
+    command.log_files <- logfiles;
+    let has_ptest_file_t, toplevel =
+      Macros.does_expand macros command.toplevel
+    in
+    let has_ptest_file_o, options = Macros.does_expand macros command.options in
+    let toplevel = if !use_byte then opt_to_byte toplevel else toplevel in
+    let toplevel, contains_frama_c_binary =
+      str_string_match_and_replace contains_frama_c_binary_name
+        frama_c_binary_name ~suffix:" -check" toplevel
+    in
+    let options =
+      if contains_frama_c_binary
+      then begin
+        let opt_modules = match Macros.expand macros
+                                  (Macros.get "PTEST_LOAD_MODULES" macros) with
+        | "" -> ""
+        | s -> "-load-module=" ^ s ^ ""
+        in
+        let opt_pre = Macros.expand macros !additional_options_pre in
+        let opt_post = Macros.expand macros !additional_options in
+        opt_modules ^ opt_pre ^ " " ^ options ^ " " ^ opt_post
+      end else options
+    in
+    let options = if !use_byte then opt_to_byte_options options else options in
+    let raw_command =
+      if has_ptest_file_t || has_ptest_file_o || command.execnow then
+        toplevel ^ " " ^ options
+      else begin
+        let file = Filename.sanitize @@ get_ptest_file command in
+        toplevel ^ " " ^ file ^ " " ^ options
+      end
+    in
+    if command.timeout = "" then raw_command
+    else "ulimit -t " ^ command.timeout ^ " && " ^ raw_command
+
+  let command_string command =
+    let log_prefix = log_prefix command in
+    let reslog,errlog = match command.filter with
+      | None -> log_prefix ^ ".res.log", log_prefix ^ ".err.log"
+      | Some _ ->log_prefix ^ ".res.unfiltered-log", log_prefix ^ ".err.unfiltered-log"
+    in
+    let reslog = Filename.sanitize reslog in
+    let errlog = Filename.sanitize errlog in
+    let command_str = basic_command_string command in
+    let command_str =
+      command_str ^ " >" ^ reslog ^ " 2>" ^ errlog
+    in
+    let command_str =
+      match command.timeout with
+      | "" -> command_str
+      | s ->
+        Printf.sprintf
+          "%s; if test $? -gt 127; then \
+           echo 'TIMEOUT (%s); ABORTING EXECUTION' > %s; \
+           fi"
+          command_str s errlog
+    in
+    command_str
 
-let update_toplevel_command command =
+  let update_toplevel_command command =
+    let log_prefix = log_prefix command in
+    let oracle_prefix = oracle_prefix command in
+    let update_oracle log oracle =
+      try
+        if is_file_empty_or_nonexisting log then
+          (* No, remove the oracle *)
+          unlink ~silent:false oracle
+        else
+          (* Yes, update the oracle*)
+          mv log oracle
+      with (* Possible error in [is_file_empty] *)
+        Unix.Unix_error _ -> ()
+    in
+    (* Update res.oracle and err.oracle *)
+    update_oracle (log_prefix ^ ".res.log") (oracle_prefix ^ ".res.oracle");
+    update_oracle (log_prefix ^ ".err.log") (oracle_prefix ^ ".err.oracle");
+    (* Update files related to LOG directives *)
+    let macros = get_macros command in
+    let log_files = List.map (Macros.expand macros) command.log_files in
+    List.iter (update_log_files command.directory) log_files
 
-  let log_prefix = log_prefix command in
-  let oracle_prefix = oracle_prefix command in
-  (* Update oracle *)
-  mv (log_prefix ^ ".res.log") (oracle_prefix ^ ".res.oracle");
-  (* Is there an error log ? *)
-  begin try
-      let log = log_prefix ^ ".err.log"
-      and oracle = oracle_prefix ^ ".err.oracle"
-      in
-      if is_file_empty_or_nonexisting log then
-        (* No, remove the error oracle *)
-        unlink ~silent:false oracle
-      else
-        (* Yes, update the error oracle*)
-        mv log oracle
-    with (* Possible error in [is_file_empty] *)
-      Unix.Unix_error _ -> ()
-  end;
-  let macros = get_macros command in
-  let log_files = List.map (Macros.expand macros) command.log_files
-  in
-  List.iter (update_log_files command.directory) log_files
+end
 
 let rec update_command = function
-    Toplevel cmd -> update_toplevel_command cmd
+  | Toplevel cmd -> Cmd.update_toplevel_command cmd
   | Target (execnow,cmds) ->
     List.iter (update_log_files execnow.ex_dir) execnow.ex_log;
     Queue.iter update_command cmds
@@ -1379,6 +1356,7 @@ module Make_Report(M:sig type t end)=struct
   let remove k = H.remove tbl k
 
 end
+
 module Report_run=Make_Report(struct type t=int*float
 (* At some point will contain the running time*)
   end)
@@ -1418,6 +1396,7 @@ let pretty_report fmt =
                else if err=1 then "Stderr oracle difference"
                else if err=2 then "Stderr System Error (missing oracle?)"
                else "Unexpected errror")))
+
 let xunit_report () =
   if !xunit then begin
     let out = open_out_bin "xunit.xml" in
@@ -1445,20 +1424,20 @@ let do_command command =
        Gui: launch the command in the gui
        Examine : just enqueue the cmp *)
     if !behavior = Update
-    then update_toplevel_command command
+    then Cmd.update_toplevel_command command
     else begin
       (* Run, Show, Gui or Examine *)
       if !behavior = Gui then begin
         (* basic_command_string does not redirect the outputs, and does
            not overwrite the result files *)
-        let basic_command_string = basic_command_string command in
+        let basic_command_string = Cmd.basic_command_string command in
         lock_printf "%% launch %s@." basic_command_string ;
         ignore (launch basic_command_string)
       end
       else begin
         (* command string also replaces macros in logfiles names, which
            is useful for Examine as well. *)
-        let command_string = command_string command in
+        let command_string = Cmd.command_string command in
         let summary_ret =
           if !behavior <> Examine
           then begin
@@ -1468,9 +1447,7 @@ let do_command command =
             let time = 0. (* Individual time is difficult to compute correctly
                              for now, and currently unused *) in
             report_run command (launch_result, time) ;
-            let summary_ret = (launch_result = command.exit_code)
-                              || (command.filter <> None) (* cannot checks exit code *)
-            in
+            let summary_ret = launch_result = command.exit_code in
             if not summary_ret then
               lock_printf "%% Unexpected code (returns %d instead of %d) for command: %s@." launch_result command.exit_code command_string ;
             summary_ret
@@ -1511,7 +1488,7 @@ let do_command command =
             Toplevel cmd ->
             shared.summary_run <- succ shared.summary_run;
             shared.summary_ret <- succ shared.summary_ret;
-            let log_prefix = log_prefix cmd in
+            let log_prefix = Cmd.log_prefix cmd in
             unlink (log_prefix ^ ".res.log ")
           | Target (execnow,cmds) ->
             shared.summary_run <- succ shared.summary_run;
@@ -1540,7 +1517,7 @@ let do_command command =
           remove_execnow_results execnow;
           let cmd =
             if !use_byte then
-              execnow_opt_to_byte execnow.ex_cmd
+              opt_to_byte execnow.ex_cmd
             else
               execnow.ex_cmd
           in
@@ -1606,6 +1583,60 @@ let check_file_is_empty_or_nonexisting diff ~log_file =
     1
   end
 
+(* Searches for executable [s] in the directories contained in the PATH
+     environment variable. Returns [None] if not found, or
+     [Some <fullpath>] otherwise. *)
+let find_in_path s =
+  let s = trim_right s in
+  let path_separator = if Sys.os_type = "Win32" then ";" else ":" in
+  let re_path_sep = Str.regexp path_separator in
+  let path_dirs = Str.split re_path_sep (Sys.getenv "PATH") in
+  let found = ref "" in
+  try
+    List.iter (fun dir ->
+        let fullname = dir ^ Filename.dir_sep ^ s in
+        if Sys.file_exists fullname then begin
+          found := fullname;
+          raise Exit
+        end
+      ) path_dirs;
+    None
+  with Exit ->
+    Some !found
+
+let do_filter =
+  let regexp_ptest_oracle = Str.regexp "@PTEST_ORACLE@" in
+  fun cmd kind ->
+    match cmd.filter with
+    | None -> ()
+    | Some filter ->
+      let log_prefix = Cmd.log_prefix cmd in
+      let log_ext = log_ext kind in
+      let log_file = Filename.sanitize (log_prefix ^ log_ext ^ ".log") in
+      let foracle = (Filename.basename log_prefix) ^ log_ext ^ ".oracle" in
+      let filter = Str.global_replace regexp_ptest_oracle foracle filter in
+      let exec_name, params = command_partition filter in
+      let exec_name =
+        if Sys.file_exists exec_name || not (Filename.is_relative exec_name)
+        then exec_name
+        else
+          match find_in_path exec_name with
+          | Some full_exec_name -> full_exec_name
+          | None ->
+            Filename.concat
+              (Filename.dirname (Filename.dirname log_prefix))
+              (Filename.basename exec_name)
+      in
+      let unfiltered_file = Filename.sanitize (log_prefix ^ log_ext ^ ".unfiltered-log") in
+      let filter_cmd = Format.sprintf "%s | %s%s > %s 2> /dev/null"
+          (* the filter command can be a diff from a [@PTEST_ORACLE@] *)
+          (if Sys.file_exists unfiltered_file then "cat " ^ unfiltered_file else "echo \"\"")
+          exec_name params log_file
+      in
+      if !verbosity >= 1
+      then lock_printf "%tFilter command:@\n%s@." print_default_env filter_cmd;
+      ignore (launch filter_cmd)
+
 let compare_one_file cmp log_prefix oracle_prefix log_kind =
   if !behavior = Show
   then begin
@@ -1618,7 +1649,8 @@ let compare_one_file cmp log_prefix oracle_prefix log_kind =
     let ext = log_ext log_kind in
     let log_file = Filename.sanitize (log_prefix ^ ext ^ ".log") in
     let oracle_file = Filename.sanitize (oracle_prefix ^ ext ^ ".oracle") in
-    if log_kind = Err && not (Sys.file_exists oracle_file) then
+    do_filter cmp log_kind;
+    if not (Sys.file_exists oracle_file) then
       check_file_is_empty_or_nonexisting (Command_error (cmp,log_kind)) ~log_file
     else begin
       let cmp_string =
@@ -1649,8 +1681,8 @@ let compare_one_log_file dir file =
 
 let do_cmp = function
   | Cmp_Toplevel (cmd,ret) ->
-    let log_prefix = log_prefix cmd in
-    let oracle_prefix = oracle_prefix cmd in
+    let log_prefix = Cmd.log_prefix cmd in
+    let oracle_prefix = Cmd.oracle_prefix cmd in
     let cmp = { res = compare_one_file cmd log_prefix oracle_prefix Res;
                 err = compare_one_file cmd log_prefix oracle_prefix Err;
                 ret
@@ -1728,15 +1760,16 @@ let diff_check_exist old_file new_file =
 
 let do_diff = function
   | Command_error (diff, kind) ->
-    let log_prefix = log_prefix diff in
+    let log_prefix = Cmd.log_prefix diff in
     let log_ext = log_ext kind in
     let log_file = Filename.sanitize (log_prefix ^ log_ext ^ ".log") in
-    let command_string = command_string diff in
+    do_filter diff kind ;
+    let command_string = Cmd.command_string diff in
     lock_printf "%tCommand:@\n%s@." print_default_env command_string;
     if !behavior = Show
     then ignore (launch ("cat " ^ log_file))
     else
-      let oracle_prefix = oracle_prefix diff in
+      let oracle_prefix = Cmd.oracle_prefix diff in
       let oracle_file =
         Filename.sanitize (oracle_prefix ^ log_ext ^ ".oracle")
       in
@@ -1862,10 +1895,11 @@ let () =
        end
        else begin
          if not (List.mem suite exclude_suite) then begin
-           let dir_files = Sys.readdir (SubDir.get directory) in
-           if !verbosity >= 1 then
-             lock_printf "%% - Look at %d entries of the directory...@."
-               (Array.length dir_files);
+           let dirname = SubDir.get directory in
+           let dir_files = Sys.readdir dirname in
+           if !verbosity >= 2 then
+             lock_printf "%% - Look at %d entries of the directory %S ...@."
+               (Array.length dir_files) dirname;
            for i = 0 to pred (Array.length dir_files) do
              let file = dir_files.(i) in
              assert (Filename.is_relative file);
@@ -1898,18 +1932,25 @@ let dispatcher () =
         fun {toplevel; opts=options; logs=log_files; macros; exit_code; timeout} ->
           let n = !i in
           incr i;
-          { file; options; toplevel; nb_files; directory; n; log_files;
-            filter = config.dc_filter; macros;
-            exit_code = begin
-              match exit_code with
-              | None -> 0
-              | Some exit_code ->
-                try int_of_string exit_code with
-                | _ -> lock_eprintf "@[%s: integer required for directive EXIT: %s (defaults to 0)@]@." file exit_code ; 0
-            end;
-            execnow=false;
-            timeout;
-          }
+          let cmd =
+            { file; options; toplevel; nb_files; directory; n; log_files;
+              filter = config.dc_filter; macros;
+              exit_code = begin
+                match exit_code with
+                | None -> 0
+                | Some exit_code ->
+                  try int_of_string exit_code with
+                  | _ -> lock_eprintf "@[%s: integer required for directive EXIT: %s (defaults to 0)@]@." file exit_code ; 0
+              end;
+              execnow=false;
+              timeout;
+            }
+          in
+          let macros = Cmd.get_macros cmd in
+          match cmd.filter with
+          | None -> cmd
+          | Some filter ->
+            { cmd with filter = Some (Macros.expand macros filter) }
       in
       let nb_files_execnow = List.length config.dc_execnow in
       let make_execnow_cmd =
@@ -1931,9 +1972,9 @@ let dispatcher () =
             execnow = true;
             timeout = execnow.ex_timeout;
           } in
-          let macros = get_macros cmd in
+          let macros = Cmd.get_macros cmd in
           let process_macros s = Macros.expand macros s in
-          { ex_cmd = basic_command_string cmd;
+          { ex_cmd = Cmd.basic_command_string cmd;
             ex_log = List.map process_macros execnow.ex_log;
             ex_bin = List.map process_macros execnow.ex_bin;
             ex_dir = execnow.ex_dir;
@@ -1942,9 +1983,9 @@ let dispatcher () =
             ex_timeout = execnow.ex_timeout;
           }
       in
-      let treat_option q option =
+      let treat_option q cmd =
         Queue.push
-          (Toplevel (make_toplevel_cmd option))
+          (Toplevel (make_toplevel_cmd cmd))
           q;
       in
       if not config.dc_dont_run
diff --git a/src/plugins/value/utests b/src/plugins/value/utests
deleted file mode 100755
index 0b2cfea613cd1024532c5bbff89cae377bc921b5..0000000000000000000000000000000000000000
--- a/src/plugins/value/utests
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash -eu
-
-export LC_ALL=C
-
-# before testing, we check that no extraneous oracles exist in the tests
-# directory, otherwise the final diff may be invalid
-ptests/check_oracles.sh
-res=$?
-if [ $res -ne 0 ]; then
-    echo "Error: $0 cannot run due to extraneous tests, please remove them."
-    exit 1
-fi
-
-TESTS=(float value idct builtins)
-CONFIGS=(apron equalities bitwise symblocs gauges octagons)
-
-for C in ${CONFIGS[@]}
-do
-    echo $C
-#    ./bin/ptests.opt -config $C -update 2> /dev/null
-
-    for T in ${TESTS[@]}
-    do
-        diff tests/$T/oracle tests/$T/oracle_$C | \
-            sed -r 's/([\+-][\+-][\+-]) ([^\t]+)\t.*/\1 \2\tDATE/' > tests/$T/diff_$C
-    done
-done
diff --git a/src/plugins/value/vtests b/src/plugins/value/vtests
deleted file mode 100755
index 2962dae8d845919d715d58362f08e97b0fd984d0..0000000000000000000000000000000000000000
--- a/src/plugins/value/vtests
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash -eu
-
-DEFAULT_TESTS=(float value idct builtins)
-CONFIGS=( apron equalities bitwise symblocs gauges octagons)
-
-ARGS=("${@-}")
-
-# has_target returns 0 if at least one of the arguments is a target
-# (i.e. not an option such as "-j 8"). If so, do not run tests
-# for all default targets, only for the specified target(s)
-has_target=0
-# sets has_target=0
-function has_target() {
-    local __has_target=1
-    for f in $@; do
-        __re="\\b$f\\b" # match argument as whole word
-        if [[ "$f" =~ \.[ci]$ || \
-            ( "$f" =~ ^[A-Za-z] && "${DEFAULT_TESTS[@]}" =~ $__re ) ]]; then
-            __has_target=0
-        fi
-    done
-    return $__has_target
-}
-
-
-if has_target ${ARGS[@]}; then
-    TESTS=("${ARGS[@]}")
-else
-    TESTS="${DEFAULT_TESTS[@]} ${ARGS[@]}"
-fi
-
-echo Testing ${TESTS[@]}
-
-for A in ${CONFIGS[@]}
-do
-    echo $A
-    ./bin/ptests.opt -config $A ${TESTS[@]}
-done
diff --git a/tests/builtins/.gitignore b/tests/builtins/.gitignore
deleted file mode 100644
index 5de45901ce62a18d26c6309c170b943215b78b67..0000000000000000000000000000000000000000
--- a/tests/builtins/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/oracle_*
diff --git a/tests/builtins/oracle_apron/allocated.0.res.oracle b/tests/builtins/oracle_apron/allocated.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..0024a8acbf3bf25926fcb3cffcf8437a3c62eccc
--- /dev/null
+++ b/tests/builtins/oracle_apron/allocated.0.res.oracle
@@ -0,0 +1,8 @@
+260a261,263
+> [eva] tests/builtins/allocated.c:127: Call to builtin __fc_vla_alloc
+> [eva:malloc] tests/builtins/allocated.c:127: 
+>   resizing variable `__malloc_main_l127' (0..31/319) to fit 0..63/319
+273c276
+<   j ∈ [1..2147483647]
+---
+>   j ∈ [1..10]
diff --git a/tests/builtins/diff_apron b/tests/builtins/oracle_apron/memexec-malloc.res.oracle
similarity index 51%
rename from tests/builtins/diff_apron
rename to tests/builtins/oracle_apron/memexec-malloc.res.oracle
index befd75c34a2d5c9b2763732afa55aac09a3e621c..52147626c5bfe17dad369f34bfce764569c634e2 100644
--- a/tests/builtins/diff_apron
+++ b/tests/builtins/oracle_apron/memexec-malloc.res.oracle
@@ -1,13 +1,3 @@
-diff tests/builtins/oracle/allocated.0.res.oracle tests/builtins/oracle_apron/allocated.0.res.oracle
-260a261,263
-> [eva] tests/builtins/allocated.c:127: Call to builtin __fc_vla_alloc
-> [eva:malloc] tests/builtins/allocated.c:127: 
->   resizing variable `__malloc_main_l127' (0..31/319) to fit 0..63/319
-273c276
-<   j ∈ [1..2147483647]
----
->   j ∈ [1..10]
-diff tests/builtins/oracle/memexec-malloc.res.oracle tests/builtins/oracle_apron/memexec-malloc.res.oracle
 16c16,19
 < [eva] tests/builtins/memexec-malloc.c:25: Reusing old results for call to f
 ---
diff --git a/tests/builtins/oracle_bitwise/allocated.0.res.oracle b/tests/builtins/oracle_bitwise/allocated.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..87890193c79273904feacf3c7ffbf536a7370772
--- /dev/null
+++ b/tests/builtins/oracle_bitwise/allocated.0.res.oracle
@@ -0,0 +1,4 @@
+260a261,263
+> [eva] tests/builtins/allocated.c:127: Call to builtin __fc_vla_alloc
+> [eva:malloc] tests/builtins/allocated.c:127: 
+>   resizing variable `__malloc_main_l127' (0..31/319) to fit 0..63/319
diff --git a/tests/builtins/diff_bitwise b/tests/builtins/oracle_bitwise/allocated.1.res.oracle
similarity index 94%
rename from tests/builtins/diff_bitwise
rename to tests/builtins/oracle_bitwise/allocated.1.res.oracle
index 98cc819af464d4d56ee7b45393da6c4b1eb5dc02..4ac690d043fdd5c2afbd6920018a8ecb36c52300 100644
--- a/tests/builtins/diff_bitwise
+++ b/tests/builtins/oracle_bitwise/allocated.1.res.oracle
@@ -1,9 +1,3 @@
-diff tests/builtins/oracle/allocated.0.res.oracle tests/builtins/oracle_bitwise/allocated.0.res.oracle
-260a261,263
-> [eva] tests/builtins/allocated.c:127: Call to builtin __fc_vla_alloc
-> [eva:malloc] tests/builtins/allocated.c:127: 
->   resizing variable `__malloc_main_l127' (0..31/319) to fit 0..63/319
-diff tests/builtins/oracle/allocated.1.res.oracle tests/builtins/oracle_bitwise/allocated.1.res.oracle
 171a172,173
 > [eva] tests/builtins/allocated.c:82: Call to builtin malloc
 > [eva] tests/builtins/allocated.c:82: allocating variable __malloc_main_l82_7
@@ -282,8 +276,3 @@ diff tests/builtins/oracle/allocated.1.res.oracle tests/builtins/oracle_bitwise/
 >     __malloc_main_l82_36[0..2]; __malloc_main_l82_37[0..2];
 >     __malloc_main_l97[0]; __malloc_main_l114[0..3]; __malloc_main_l127;
 >     __malloc_main_l127_0[0..1]; __malloc_main_l127_1[0..2];
-diff tests/builtins/oracle/malloc-optimistic.res.oracle tests/builtins/oracle_bitwise/malloc-optimistic.res.oracle
-1945a1946,1948
-> [eva] tests/builtins/malloc-optimistic.c:90: Call to builtin malloc
-> [eva:malloc] tests/builtins/malloc-optimistic.c:90: 
->   resizing variable `__malloc_main7_l90' (0..31/3231) to fit 0..511/3231
diff --git a/tests/builtins/oracle_bitwise/malloc-optimistic.res.oracle b/tests/builtins/oracle_bitwise/malloc-optimistic.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..e8114192164f92807bbf1ffc93bb288873370d0d
--- /dev/null
+++ b/tests/builtins/oracle_bitwise/malloc-optimistic.res.oracle
@@ -0,0 +1,4 @@
+1945a1946,1948
+> [eva] tests/builtins/malloc-optimistic.c:90: Call to builtin malloc
+> [eva:malloc] tests/builtins/malloc-optimistic.c:90: 
+>   resizing variable `__malloc_main7_l90' (0..31/3231) to fit 0..511/3231
diff --git a/tests/builtins/oracle_equalities/alloc_weak.res.oracle b/tests/builtins/oracle_equalities/alloc_weak.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..46bd130fae56226367c2947b899aace1bcb8b4d1
--- /dev/null
+++ b/tests/builtins/oracle_equalities/alloc_weak.res.oracle
@@ -0,0 +1,7 @@
+36,37d35
+< [eva:alarm] tests/builtins/alloc_weak.c:30: Warning: 
+<   accessing uninitialized left-value. assert \initialized(p);
+912c910
+<   r ∈ [--..--]
+---
+>   r ∈ {42}
diff --git a/tests/builtins/diff_octagons b/tests/builtins/oracle_equalities/allocated.1.res.oracle
similarity index 88%
rename from tests/builtins/diff_octagons
rename to tests/builtins/oracle_equalities/allocated.1.res.oracle
index 5a356e3c8576bf71c7a4a33ade1a1bd89a2339f2..4ac690d043fdd5c2afbd6920018a8ecb36c52300 100644
--- a/tests/builtins/diff_octagons
+++ b/tests/builtins/oracle_equalities/allocated.1.res.oracle
@@ -1,9 +1,3 @@
-diff tests/builtins/oracle/allocated.0.res.oracle tests/builtins/oracle_octagons/allocated.0.res.oracle
-273c273
-<   j ∈ [1..2147483647]
----
->   j ∈ {10}
-diff tests/builtins/oracle/allocated.1.res.oracle tests/builtins/oracle_octagons/allocated.1.res.oracle
 171a172,173
 > [eva] tests/builtins/allocated.c:82: Call to builtin malloc
 > [eva] tests/builtins/allocated.c:82: allocating variable __malloc_main_l82_7
@@ -282,42 +276,3 @@ diff tests/builtins/oracle/allocated.1.res.oracle tests/builtins/oracle_octagons
 >     __malloc_main_l82_36[0..2]; __malloc_main_l82_37[0..2];
 >     __malloc_main_l97[0]; __malloc_main_l114[0..3]; __malloc_main_l127;
 >     __malloc_main_l127_0[0..1]; __malloc_main_l127_1[0..2];
-diff tests/builtins/oracle/imprecise.res.oracle tests/builtins/oracle_octagons/imprecise.res.oracle
-229a230,231
-> [kernel] tests/builtins/imprecise.c:111: 
->   more than 200(300) elements to enumerate. Approximating.
-238a241,242
-> [kernel] tests/builtins/imprecise.c:114: 
->   more than 200(300) elements to enumerate. Approximating.
-242,245d245
-< [kernel] tests/builtins/imprecise.c:111: 
-<   more than 200(300) elements to enumerate. Approximating.
-< [kernel] tests/builtins/imprecise.c:114: 
-<   more than 200(300) elements to enumerate. Approximating.
-diff tests/builtins/oracle/linked_list.1.res.oracle tests/builtins/oracle_octagons/linked_list.1.res.oracle
-530a531,532
-> [kernel] tests/builtins/linked_list.c:43: 
->   more than 100(127) elements to enumerate. Approximating.
-532a535,536
-> [kernel] tests/builtins/linked_list.c:44: 
->   more than 100(127) elements to enumerate. Approximating.
-702a707,708
-> [kernel] tests/builtins/linked_list.c:43: 
->   more than 100(128) elements to enumerate. Approximating.
-704a711,712
-> [kernel] tests/builtins/linked_list.c:44: 
->   more than 100(128) elements to enumerate. Approximating.
-800,803d807
-< [kernel] tests/builtins/linked_list.c:43: 
-<   more than 100(128) elements to enumerate. Approximating.
-< [kernel] tests/builtins/linked_list.c:44: 
-<   more than 100(128) elements to enumerate. Approximating.
-diff tests/builtins/oracle/malloc-optimistic.res.oracle tests/builtins/oracle_octagons/malloc-optimistic.res.oracle
-3520c3520
-<   i ∈ [14..100]
----
->   i ∈ {98; 99; 100}
-3524c3524
-<   i ∈ [14..100]
----
->   i ∈ {98; 99; 100}
diff --git a/tests/builtins/oracle_equalities/imprecise.res.oracle b/tests/builtins/oracle_equalities/imprecise.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..77e31d6a008a1c895c3328e1f50f19a9ad2751c9
--- /dev/null
+++ b/tests/builtins/oracle_equalities/imprecise.res.oracle
@@ -0,0 +1,14 @@
+104a105,106
+> [kernel] tests/builtins/imprecise.c:51: 
+>   imprecise size for variable v3 (abstract type 'struct u')
+229a232,233
+> [kernel] tests/builtins/imprecise.c:111: 
+>   more than 200(300) elements to enumerate. Approximating.
+238a243,244
+> [kernel] tests/builtins/imprecise.c:114: 
+>   more than 200(300) elements to enumerate. Approximating.
+242,245d247
+< [kernel] tests/builtins/imprecise.c:111: 
+<   more than 200(300) elements to enumerate. Approximating.
+< [kernel] tests/builtins/imprecise.c:114: 
+<   more than 200(300) elements to enumerate. Approximating.
diff --git a/tests/builtins/oracle_equalities/linked_list.1.res.oracle b/tests/builtins/oracle_equalities/linked_list.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..f60cb5f5e10f4e05e006738213c909bd1d7eec32
--- /dev/null
+++ b/tests/builtins/oracle_equalities/linked_list.1.res.oracle
@@ -0,0 +1,23 @@
+477a478,479
+> [kernel] tests/builtins/linked_list.c:19: 
+>   more than 100(127) elements to enumerate. Approximating.
+530a533,534
+> [kernel] tests/builtins/linked_list.c:43: 
+>   more than 100(127) elements to enumerate. Approximating.
+532a537,538
+> [kernel] tests/builtins/linked_list.c:44: 
+>   more than 100(127) elements to enumerate. Approximating.
+658a665,666
+> [kernel] tests/builtins/linked_list.c:19: 
+>   more than 100(128) elements to enumerate. Approximating.
+702a711,712
+> [kernel] tests/builtins/linked_list.c:43: 
+>   more than 100(128) elements to enumerate. Approximating.
+704a715,716
+> [kernel] tests/builtins/linked_list.c:44: 
+>   more than 100(128) elements to enumerate. Approximating.
+800,803d811
+< [kernel] tests/builtins/linked_list.c:43: 
+<   more than 100(128) elements to enumerate. Approximating.
+< [kernel] tests/builtins/linked_list.c:44: 
+<   more than 100(128) elements to enumerate. Approximating.
diff --git a/tests/builtins/diff_symblocs b/tests/builtins/oracle_equalities/malloc-optimistic.res.oracle
similarity index 80%
rename from tests/builtins/diff_symblocs
rename to tests/builtins/oracle_equalities/malloc-optimistic.res.oracle
index ee8da8f5ff2393200b544b6fb197f2925da29baa..b3c7f4c235269d85b57d9a80bef690a0eada1a5a 100644
--- a/tests/builtins/diff_symblocs
+++ b/tests/builtins/oracle_equalities/malloc-optimistic.res.oracle
@@ -1,42 +1,3 @@
-diff tests/builtins/oracle/alloc_weak.res.oracle tests/builtins/oracle_symblocs/alloc_weak.res.oracle
-36,37d35
-< [eva:alarm] tests/builtins/alloc_weak.c:30: Warning: 
-<   accessing uninitialized left-value. assert \initialized(p);
-912c910
-<   r ∈ [--..--]
----
->   r ∈ {42}
-diff tests/builtins/oracle/imprecise.res.oracle tests/builtins/oracle_symblocs/imprecise.res.oracle
-229a230,231
-> [kernel] tests/builtins/imprecise.c:111: 
->   more than 200(300) elements to enumerate. Approximating.
-238a241,242
-> [kernel] tests/builtins/imprecise.c:114: 
->   more than 200(300) elements to enumerate. Approximating.
-242,245d245
-< [kernel] tests/builtins/imprecise.c:111: 
-<   more than 200(300) elements to enumerate. Approximating.
-< [kernel] tests/builtins/imprecise.c:114: 
-<   more than 200(300) elements to enumerate. Approximating.
-diff tests/builtins/oracle/linked_list.1.res.oracle tests/builtins/oracle_symblocs/linked_list.1.res.oracle
-530a531,532
-> [kernel] tests/builtins/linked_list.c:43: 
->   more than 100(127) elements to enumerate. Approximating.
-532a535,536
-> [kernel] tests/builtins/linked_list.c:44: 
->   more than 100(127) elements to enumerate. Approximating.
-702a707,708
-> [kernel] tests/builtins/linked_list.c:43: 
->   more than 100(128) elements to enumerate. Approximating.
-704a711,712
-> [kernel] tests/builtins/linked_list.c:44: 
->   more than 100(128) elements to enumerate. Approximating.
-800,803d807
-< [kernel] tests/builtins/linked_list.c:43: 
-<   more than 100(128) elements to enumerate. Approximating.
-< [kernel] tests/builtins/linked_list.c:44: 
-<   more than 100(128) elements to enumerate. Approximating.
-diff tests/builtins/oracle/malloc-optimistic.res.oracle tests/builtins/oracle_symblocs/malloc-optimistic.res.oracle
 524,525d523
 < [eva:alarm] tests/builtins/malloc-optimistic.c:79: Warning: 
 <   accessing uninitialized left-value. assert \initialized(p + i);
diff --git a/tests/builtins/oracle_equalities/write-const.res.oracle b/tests/builtins/oracle_equalities/write-const.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..0a5f8befe7584eb8848315543ca4c602b77dcb58
--- /dev/null
+++ b/tests/builtins/oracle_equalities/write-const.res.oracle
@@ -0,0 +1,8 @@
+84c84
+<   tmp ∈ {{ &a ; &b }}
+---
+>   tmp ∈ {{ &b }}
+107c107
+<   tmp ∈ {{ &a ; &b }}
+---
+>   tmp ∈ {{ &b }}
diff --git a/tests/builtins/oracle_gauges/linked_list.0.res.oracle b/tests/builtins/oracle_gauges/linked_list.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..3e663c0dba878b5c33d027da0e0592a81d0ff7d8
--- /dev/null
+++ b/tests/builtins/oracle_gauges/linked_list.0.res.oracle
@@ -0,0 +1,7 @@
+2290a2291,2296
+> [eva] computing for function printf_va_1 <- main.
+>   Called from tests/builtins/linked_list.c:51.
+> [eva] Done for function printf_va_1
+> [eva] computing for function printf_va_1 <- main.
+>   Called from tests/builtins/linked_list.c:51.
+> [eva] Done for function printf_va_1
diff --git a/tests/builtins/oracle_gauges/linked_list.1.res.oracle b/tests/builtins/oracle_gauges/linked_list.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..7c13a08f9bb84b3ec370ab4095b0f66f9e5b4a81
--- /dev/null
+++ b/tests/builtins/oracle_gauges/linked_list.1.res.oracle
@@ -0,0 +1,7 @@
+798a799,804
+> [eva] computing for function printf_va_1 <- main.
+>   Called from tests/builtins/linked_list.c:51.
+> [eva] Done for function printf_va_1
+> [eva] computing for function printf_va_1 <- main.
+>   Called from tests/builtins/linked_list.c:51.
+> [eva] Done for function printf_va_1
diff --git a/tests/builtins/oracle_gauges/malloc-size-zero.1.res.oracle b/tests/builtins/oracle_gauges/malloc-size-zero.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..0c017518231a9387ed3a716683b90316af598b7a
--- /dev/null
+++ b/tests/builtins/oracle_gauges/malloc-size-zero.1.res.oracle
@@ -0,0 +1,11 @@
+31a32,41
+> [eva] computing for function my_calloc <- main.
+>   Called from tests/builtins/malloc-size-zero.c:29.
+> [eva] tests/builtins/malloc-size-zero.c:10: Call to builtin malloc
+> [eva] Recording results for my_calloc
+> [eva] Done for function my_calloc
+> [eva] computing for function my_calloc <- main.
+>   Called from tests/builtins/malloc-size-zero.c:29.
+> [eva] tests/builtins/malloc-size-zero.c:10: Call to builtin malloc
+> [eva] Recording results for my_calloc
+> [eva] Done for function my_calloc
diff --git a/tests/builtins/oracle_gauges/memcpy.res.oracle b/tests/builtins/oracle_gauges/memcpy.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..91212f9a25006a4d43cdbe619d37707f3b6be6cf
--- /dev/null
+++ b/tests/builtins/oracle_gauges/memcpy.res.oracle
@@ -0,0 +1,5 @@
+176a177,178
+> [eva] tests/builtins/memcpy.c:96: Call to builtin memcpy
+> [eva] tests/builtins/memcpy.c:96: Call to builtin memcpy
+457a460
+> [eva] tests/builtins/memcpy.c:230: starting to merge loop iterations
diff --git a/tests/builtins/diff_gauges b/tests/builtins/oracle_gauges/realloc.res.oracle
similarity index 89%
rename from tests/builtins/diff_gauges
rename to tests/builtins/oracle_gauges/realloc.res.oracle
index 5ab38814e5490f8fefbb33e3c3e00dbb35eb1772..eb5ba9f9b6059c288fb316686521befe7c4c1fc3 100644
--- a/tests/builtins/diff_gauges
+++ b/tests/builtins/oracle_gauges/realloc.res.oracle
@@ -1,38 +1,3 @@
-diff tests/builtins/oracle/linked_list.0.res.oracle tests/builtins/oracle_gauges/linked_list.0.res.oracle
-2290a2291,2296
-> [eva] computing for function printf_va_1 <- main.
->   Called from tests/builtins/linked_list.c:51.
-> [eva] Done for function printf_va_1
-> [eva] computing for function printf_va_1 <- main.
->   Called from tests/builtins/linked_list.c:51.
-> [eva] Done for function printf_va_1
-diff tests/builtins/oracle/linked_list.1.res.oracle tests/builtins/oracle_gauges/linked_list.1.res.oracle
-798a799,804
-> [eva] computing for function printf_va_1 <- main.
->   Called from tests/builtins/linked_list.c:51.
-> [eva] Done for function printf_va_1
-> [eva] computing for function printf_va_1 <- main.
->   Called from tests/builtins/linked_list.c:51.
-> [eva] Done for function printf_va_1
-diff tests/builtins/oracle/malloc-size-zero.1.res.oracle tests/builtins/oracle_gauges/malloc-size-zero.1.res.oracle
-31a32,41
-> [eva] computing for function my_calloc <- main.
->   Called from tests/builtins/malloc-size-zero.c:29.
-> [eva] tests/builtins/malloc-size-zero.c:10: Call to builtin malloc
-> [eva] Recording results for my_calloc
-> [eva] Done for function my_calloc
-> [eva] computing for function my_calloc <- main.
->   Called from tests/builtins/malloc-size-zero.c:29.
-> [eva] tests/builtins/malloc-size-zero.c:10: Call to builtin malloc
-> [eva] Recording results for my_calloc
-> [eva] Done for function my_calloc
-diff tests/builtins/oracle/memcpy.res.oracle tests/builtins/oracle_gauges/memcpy.res.oracle
-176a177,178
-> [eva] tests/builtins/memcpy.c:96: Call to builtin memcpy
-> [eva] tests/builtins/memcpy.c:96: Call to builtin memcpy
-457a460
-> [eva] tests/builtins/memcpy.c:230: starting to merge loop iterations
-diff tests/builtins/oracle/realloc.res.oracle tests/builtins/oracle_gauges/realloc.res.oracle
 677a678,1026
 > [eva] tests/builtins/realloc.c:152: Call to builtin realloc
 > [eva:malloc] bases_to_realloc: {__realloc_w_main10_l152}
diff --git a/tests/builtins/oracle_octagons/allocated.0.res.oracle b/tests/builtins/oracle_octagons/allocated.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..a970bfeaa5593624bcc26eb76d03bb912cea6cb5
--- /dev/null
+++ b/tests/builtins/oracle_octagons/allocated.0.res.oracle
@@ -0,0 +1,4 @@
+273c273
+<   j ∈ [1..2147483647]
+---
+>   j ∈ {10}
diff --git a/tests/builtins/diff_equalities b/tests/builtins/oracle_octagons/allocated.1.res.oracle
similarity index 58%
rename from tests/builtins/diff_equalities
rename to tests/builtins/oracle_octagons/allocated.1.res.oracle
index 8699598a3ca9544f25a497378f97193643a0b367..4ac690d043fdd5c2afbd6920018a8ecb36c52300 100644
--- a/tests/builtins/diff_equalities
+++ b/tests/builtins/oracle_octagons/allocated.1.res.oracle
@@ -1,12 +1,3 @@
-diff tests/builtins/oracle/alloc_weak.res.oracle tests/builtins/oracle_equalities/alloc_weak.res.oracle
-36,37d35
-< [eva:alarm] tests/builtins/alloc_weak.c:30: Warning: 
-<   accessing uninitialized left-value. assert \initialized(p);
-912c910
-<   r ∈ [--..--]
----
->   r ∈ {42}
-diff tests/builtins/oracle/allocated.1.res.oracle tests/builtins/oracle_equalities/allocated.1.res.oracle
 171a172,173
 > [eva] tests/builtins/allocated.c:82: Call to builtin malloc
 > [eva] tests/builtins/allocated.c:82: allocating variable __malloc_main_l82_7
@@ -285,305 +276,3 @@ diff tests/builtins/oracle/allocated.1.res.oracle tests/builtins/oracle_equaliti
 >     __malloc_main_l82_36[0..2]; __malloc_main_l82_37[0..2];
 >     __malloc_main_l97[0]; __malloc_main_l114[0..3]; __malloc_main_l127;
 >     __malloc_main_l127_0[0..1]; __malloc_main_l127_1[0..2];
-diff tests/builtins/oracle/imprecise.res.oracle tests/builtins/oracle_equalities/imprecise.res.oracle
-104a105,106
-> [kernel] tests/builtins/imprecise.c:51: 
->   imprecise size for variable v3 (abstract type 'struct u')
-229a232,233
-> [kernel] tests/builtins/imprecise.c:111: 
->   more than 200(300) elements to enumerate. Approximating.
-238a243,244
-> [kernel] tests/builtins/imprecise.c:114: 
->   more than 200(300) elements to enumerate. Approximating.
-242,245d247
-< [kernel] tests/builtins/imprecise.c:111: 
-<   more than 200(300) elements to enumerate. Approximating.
-< [kernel] tests/builtins/imprecise.c:114: 
-<   more than 200(300) elements to enumerate. Approximating.
-diff tests/builtins/oracle/linked_list.1.res.oracle tests/builtins/oracle_equalities/linked_list.1.res.oracle
-477a478,479
-> [kernel] tests/builtins/linked_list.c:19: 
->   more than 100(127) elements to enumerate. Approximating.
-530a533,534
-> [kernel] tests/builtins/linked_list.c:43: 
->   more than 100(127) elements to enumerate. Approximating.
-532a537,538
-> [kernel] tests/builtins/linked_list.c:44: 
->   more than 100(127) elements to enumerate. Approximating.
-658a665,666
-> [kernel] tests/builtins/linked_list.c:19: 
->   more than 100(128) elements to enumerate. Approximating.
-702a711,712
-> [kernel] tests/builtins/linked_list.c:43: 
->   more than 100(128) elements to enumerate. Approximating.
-704a715,716
-> [kernel] tests/builtins/linked_list.c:44: 
->   more than 100(128) elements to enumerate. Approximating.
-800,803d811
-< [kernel] tests/builtins/linked_list.c:43: 
-<   more than 100(128) elements to enumerate. Approximating.
-< [kernel] tests/builtins/linked_list.c:44: 
-<   more than 100(128) elements to enumerate. Approximating.
-diff tests/builtins/oracle/malloc-optimistic.res.oracle tests/builtins/oracle_equalities/malloc-optimistic.res.oracle
-524,525d523
-< [eva:alarm] tests/builtins/malloc-optimistic.c:79: Warning: 
-<   accessing uninitialized left-value. assert \initialized(p + i);
-533c531
-<   k ∈ {-2; -1}
----
->   k ∈ {-1}
-569c567
-<   k ∈ {-1; 0}
----
->   k ∈ {0}
-607c605
-<   k ∈ {0; 1}
----
->   k ∈ {1}
-647c645
-<   k ∈ {1; 2}
----
->   k ∈ {2}
-689c687
-<   k ∈ {2; 3}
----
->   k ∈ {3}
-733c731
-<   k ∈ {3; 4}
----
->   k ∈ {4}
-779c777
-<   k ∈ {4; 5}
----
->   k ∈ {5}
-827c825
-<   k ∈ {5; 6}
----
->   k ∈ {6}
-877c875
-<   k ∈ {6; 7}
----
->   k ∈ {7}
-1826,1827d1823
-< [eva:alarm] tests/builtins/malloc-optimistic.c:92: Warning: 
-<   accessing uninitialized left-value. assert \initialized(p + i);
-2018,2019d2013
-< [eva:alarm] tests/builtins/malloc-optimistic.c:105: Warning: 
-<   accessing uninitialized left-value. assert \initialized(p + i);
-2027c2021
-<   k ∈ {-2; -1}
----
->   k ∈ {-1}
-2085c2079
-<   k ∈ {-1; 0}
----
->   k ∈ {0}
-2145c2139
-<   k ∈ {0; 1}
----
->   k ∈ {1}
-2207c2201
-<   k ∈ {1; 2}
----
->   k ∈ {2}
-2271c2265
-<   k ∈ {2; 3}
----
->   k ∈ {3}
-2337c2331
-<   k ∈ {3; 4}
----
->   k ∈ {4}
-2405c2399
-<   k ∈ {4; 5}
----
->   k ∈ {5}
-2475c2469
-<   k ∈ {5; 6}
----
->   k ∈ {6}
-2547c2541
-<   k ∈ {6; 7}
----
->   k ∈ {7}
-2621c2615
-<   k ∈ {7; 8}
----
->   k ∈ {8}
-2697c2691
-<   k ∈ {8; 9}
----
->   k ∈ {9}
-2775c2769
-<   k ∈ {9; 10}
----
->   k ∈ {10}
-2855c2849
-<   k ∈ {10; 11}
----
->   k ∈ {11}
-2937c2931
-<   k ∈ {11; 12}
----
->   k ∈ {12}
-3018c3012
-<   k ∈ {12; 13}
----
->   k ∈ {13}
-3064c3058
-<   k ∈ {12; 13; 14}
----
->   k ∈ {13; 14}
-3109c3103
-<   k ∈ {12; 13; 14; 15}
----
->   k ∈ {13; 14; 15}
-3154c3148
-<   k ∈ [12..97]
----
->   k ∈ [13..97]
-3211c3205
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {-20; 1}
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {1}
-3219c3213
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {-20; 1; 2}
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {2}
-3227c3221
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {-20; 1; 2; 3}
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {3}
-3235,3236c3229
-< [eva] tests/builtins/malloc-optimistic.c:122: 
-<   Frama_C_show_each: {-20; 1; 2; 3; 4}
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {4}
-3244,3245c3237
-< [eva] tests/builtins/malloc-optimistic.c:122: 
-<   Frama_C_show_each: {-20; 1; 2; 3; 4; 5}
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {5}
-3253,3254c3245
-< [eva] tests/builtins/malloc-optimistic.c:122: 
-<   Frama_C_show_each: {-20; 1; 2; 3; 4; 5; 6}
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {6}
-3262,3263c3253
-< [eva] tests/builtins/malloc-optimistic.c:122: 
-<   Frama_C_show_each: {-20; 1; 2; 3; 4; 5; 6; 7}
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {7}
-3271c3261
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..8]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {8}
-3279c3269
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..9]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {9}
-3287c3277
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..10]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {10}
-3295c3285
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..11]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {11}
-3303c3293
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..12]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {12}
-3311c3301
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..13]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {13}
-3319c3309
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..14]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {14}
-3327c3317
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..15]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {15}
-3335c3325
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..16]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {16}
-3343c3333
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..17]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {17}
-3351c3341
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..18]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {18}
-3359c3349
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..19]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {19}
-3367c3357
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..20]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {20}
-3375c3365
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..21]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {21}
-3383c3373
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..22]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {22}
-3391c3381
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..23]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {23}
-3399c3389
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..24]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {24}
-3407c3397
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..25]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {25}
-3415c3405
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..26]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {26}
-3423c3413
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..27]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {27}
-3431c3421
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..28]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {28}
-3439c3429
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..29]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {29}
-3447c3437
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..30]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {30}
-3456c3446
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..31]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {30; 31}
-3464c3454
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..32]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {30; 31; 32}
-3472c3462
-< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..99]
----
-> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [30..99]
-diff tests/builtins/oracle/write-const.res.oracle tests/builtins/oracle_equalities/write-const.res.oracle
-84c84
-<   tmp ∈ {{ &a ; &b }}
----
->   tmp ∈ {{ &b }}
-107c107
-<   tmp ∈ {{ &a ; &b }}
----
->   tmp ∈ {{ &b }}
diff --git a/tests/builtins/oracle_octagons/imprecise.res.oracle b/tests/builtins/oracle_octagons/imprecise.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..6a8f6f7472f5a5501091a29779ea57ee2a5e3a76
--- /dev/null
+++ b/tests/builtins/oracle_octagons/imprecise.res.oracle
@@ -0,0 +1,11 @@
+229a230,231
+> [kernel] tests/builtins/imprecise.c:111: 
+>   more than 200(300) elements to enumerate. Approximating.
+238a241,242
+> [kernel] tests/builtins/imprecise.c:114: 
+>   more than 200(300) elements to enumerate. Approximating.
+242,245d245
+< [kernel] tests/builtins/imprecise.c:111: 
+<   more than 200(300) elements to enumerate. Approximating.
+< [kernel] tests/builtins/imprecise.c:114: 
+<   more than 200(300) elements to enumerate. Approximating.
diff --git a/tests/builtins/oracle_octagons/linked_list.1.res.oracle b/tests/builtins/oracle_octagons/linked_list.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..68e3c862caba586b10558d8444653c9887203172
--- /dev/null
+++ b/tests/builtins/oracle_octagons/linked_list.1.res.oracle
@@ -0,0 +1,17 @@
+530a531,532
+> [kernel] tests/builtins/linked_list.c:43: 
+>   more than 100(127) elements to enumerate. Approximating.
+532a535,536
+> [kernel] tests/builtins/linked_list.c:44: 
+>   more than 100(127) elements to enumerate. Approximating.
+702a707,708
+> [kernel] tests/builtins/linked_list.c:43: 
+>   more than 100(128) elements to enumerate. Approximating.
+704a711,712
+> [kernel] tests/builtins/linked_list.c:44: 
+>   more than 100(128) elements to enumerate. Approximating.
+800,803d807
+< [kernel] tests/builtins/linked_list.c:43: 
+<   more than 100(128) elements to enumerate. Approximating.
+< [kernel] tests/builtins/linked_list.c:44: 
+<   more than 100(128) elements to enumerate. Approximating.
diff --git a/tests/builtins/oracle_octagons/malloc-optimistic.res.oracle b/tests/builtins/oracle_octagons/malloc-optimistic.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..0b5266ca5c301fd7cca13468863189f962c14abc
--- /dev/null
+++ b/tests/builtins/oracle_octagons/malloc-optimistic.res.oracle
@@ -0,0 +1,8 @@
+3520c3520
+<   i ∈ [14..100]
+---
+>   i ∈ {98; 99; 100}
+3524c3524
+<   i ∈ [14..100]
+---
+>   i ∈ {98; 99; 100}
diff --git a/tests/builtins/oracle_symblocs/alloc_weak.res.oracle b/tests/builtins/oracle_symblocs/alloc_weak.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..46bd130fae56226367c2947b899aace1bcb8b4d1
--- /dev/null
+++ b/tests/builtins/oracle_symblocs/alloc_weak.res.oracle
@@ -0,0 +1,7 @@
+36,37d35
+< [eva:alarm] tests/builtins/alloc_weak.c:30: Warning: 
+<   accessing uninitialized left-value. assert \initialized(p);
+912c910
+<   r ∈ [--..--]
+---
+>   r ∈ {42}
diff --git a/tests/builtins/oracle_symblocs/imprecise.res.oracle b/tests/builtins/oracle_symblocs/imprecise.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..6a8f6f7472f5a5501091a29779ea57ee2a5e3a76
--- /dev/null
+++ b/tests/builtins/oracle_symblocs/imprecise.res.oracle
@@ -0,0 +1,11 @@
+229a230,231
+> [kernel] tests/builtins/imprecise.c:111: 
+>   more than 200(300) elements to enumerate. Approximating.
+238a241,242
+> [kernel] tests/builtins/imprecise.c:114: 
+>   more than 200(300) elements to enumerate. Approximating.
+242,245d245
+< [kernel] tests/builtins/imprecise.c:111: 
+<   more than 200(300) elements to enumerate. Approximating.
+< [kernel] tests/builtins/imprecise.c:114: 
+<   more than 200(300) elements to enumerate. Approximating.
diff --git a/tests/builtins/oracle_symblocs/linked_list.1.res.oracle b/tests/builtins/oracle_symblocs/linked_list.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..68e3c862caba586b10558d8444653c9887203172
--- /dev/null
+++ b/tests/builtins/oracle_symblocs/linked_list.1.res.oracle
@@ -0,0 +1,17 @@
+530a531,532
+> [kernel] tests/builtins/linked_list.c:43: 
+>   more than 100(127) elements to enumerate. Approximating.
+532a535,536
+> [kernel] tests/builtins/linked_list.c:44: 
+>   more than 100(127) elements to enumerate. Approximating.
+702a707,708
+> [kernel] tests/builtins/linked_list.c:43: 
+>   more than 100(128) elements to enumerate. Approximating.
+704a711,712
+> [kernel] tests/builtins/linked_list.c:44: 
+>   more than 100(128) elements to enumerate. Approximating.
+800,803d807
+< [kernel] tests/builtins/linked_list.c:43: 
+<   more than 100(128) elements to enumerate. Approximating.
+< [kernel] tests/builtins/linked_list.c:44: 
+<   more than 100(128) elements to enumerate. Approximating.
diff --git a/tests/builtins/oracle_symblocs/malloc-optimistic.res.oracle b/tests/builtins/oracle_symblocs/malloc-optimistic.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..b3c7f4c235269d85b57d9a80bef690a0eada1a5a
--- /dev/null
+++ b/tests/builtins/oracle_symblocs/malloc-optimistic.res.oracle
@@ -0,0 +1,253 @@
+524,525d523
+< [eva:alarm] tests/builtins/malloc-optimistic.c:79: Warning: 
+<   accessing uninitialized left-value. assert \initialized(p + i);
+533c531
+<   k ∈ {-2; -1}
+---
+>   k ∈ {-1}
+569c567
+<   k ∈ {-1; 0}
+---
+>   k ∈ {0}
+607c605
+<   k ∈ {0; 1}
+---
+>   k ∈ {1}
+647c645
+<   k ∈ {1; 2}
+---
+>   k ∈ {2}
+689c687
+<   k ∈ {2; 3}
+---
+>   k ∈ {3}
+733c731
+<   k ∈ {3; 4}
+---
+>   k ∈ {4}
+779c777
+<   k ∈ {4; 5}
+---
+>   k ∈ {5}
+827c825
+<   k ∈ {5; 6}
+---
+>   k ∈ {6}
+877c875
+<   k ∈ {6; 7}
+---
+>   k ∈ {7}
+1826,1827d1823
+< [eva:alarm] tests/builtins/malloc-optimistic.c:92: Warning: 
+<   accessing uninitialized left-value. assert \initialized(p + i);
+2018,2019d2013
+< [eva:alarm] tests/builtins/malloc-optimistic.c:105: Warning: 
+<   accessing uninitialized left-value. assert \initialized(p + i);
+2027c2021
+<   k ∈ {-2; -1}
+---
+>   k ∈ {-1}
+2085c2079
+<   k ∈ {-1; 0}
+---
+>   k ∈ {0}
+2145c2139
+<   k ∈ {0; 1}
+---
+>   k ∈ {1}
+2207c2201
+<   k ∈ {1; 2}
+---
+>   k ∈ {2}
+2271c2265
+<   k ∈ {2; 3}
+---
+>   k ∈ {3}
+2337c2331
+<   k ∈ {3; 4}
+---
+>   k ∈ {4}
+2405c2399
+<   k ∈ {4; 5}
+---
+>   k ∈ {5}
+2475c2469
+<   k ∈ {5; 6}
+---
+>   k ∈ {6}
+2547c2541
+<   k ∈ {6; 7}
+---
+>   k ∈ {7}
+2621c2615
+<   k ∈ {7; 8}
+---
+>   k ∈ {8}
+2697c2691
+<   k ∈ {8; 9}
+---
+>   k ∈ {9}
+2775c2769
+<   k ∈ {9; 10}
+---
+>   k ∈ {10}
+2855c2849
+<   k ∈ {10; 11}
+---
+>   k ∈ {11}
+2937c2931
+<   k ∈ {11; 12}
+---
+>   k ∈ {12}
+3018c3012
+<   k ∈ {12; 13}
+---
+>   k ∈ {13}
+3064c3058
+<   k ∈ {12; 13; 14}
+---
+>   k ∈ {13; 14}
+3109c3103
+<   k ∈ {12; 13; 14; 15}
+---
+>   k ∈ {13; 14; 15}
+3154c3148
+<   k ∈ [12..97]
+---
+>   k ∈ [13..97]
+3211c3205
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {-20; 1}
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {1}
+3219c3213
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {-20; 1; 2}
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {2}
+3227c3221
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {-20; 1; 2; 3}
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {3}
+3235,3236c3229
+< [eva] tests/builtins/malloc-optimistic.c:122: 
+<   Frama_C_show_each: {-20; 1; 2; 3; 4}
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {4}
+3244,3245c3237
+< [eva] tests/builtins/malloc-optimistic.c:122: 
+<   Frama_C_show_each: {-20; 1; 2; 3; 4; 5}
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {5}
+3253,3254c3245
+< [eva] tests/builtins/malloc-optimistic.c:122: 
+<   Frama_C_show_each: {-20; 1; 2; 3; 4; 5; 6}
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {6}
+3262,3263c3253
+< [eva] tests/builtins/malloc-optimistic.c:122: 
+<   Frama_C_show_each: {-20; 1; 2; 3; 4; 5; 6; 7}
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {7}
+3271c3261
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..8]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {8}
+3279c3269
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..9]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {9}
+3287c3277
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..10]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {10}
+3295c3285
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..11]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {11}
+3303c3293
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..12]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {12}
+3311c3301
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..13]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {13}
+3319c3309
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..14]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {14}
+3327c3317
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..15]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {15}
+3335c3325
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..16]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {16}
+3343c3333
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..17]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {17}
+3351c3341
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..18]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {18}
+3359c3349
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..19]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {19}
+3367c3357
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..20]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {20}
+3375c3365
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..21]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {21}
+3383c3373
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..22]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {22}
+3391c3381
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..23]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {23}
+3399c3389
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..24]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {24}
+3407c3397
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..25]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {25}
+3415c3405
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..26]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {26}
+3423c3413
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..27]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {27}
+3431c3421
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..28]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {28}
+3439c3429
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..29]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {29}
+3447c3437
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..30]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {30}
+3456c3446
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..31]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {30; 31}
+3464c3454
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..32]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: {30; 31; 32}
+3472c3462
+< [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [-20..99]
+---
+> [eva] tests/builtins/malloc-optimistic.c:122: Frama_C_show_each: [30..99]
diff --git a/tests/float/.gitignore b/tests/float/.gitignore
deleted file mode 100644
index 5de45901ce62a18d26c6309c170b943215b78b67..0000000000000000000000000000000000000000
--- a/tests/float/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/oracle_*
diff --git a/tests/float/diff_apron b/tests/float/diff_apron
deleted file mode 100644
index 4534235bc71b5660c23f9e9c4da7fa19e6658b61..0000000000000000000000000000000000000000
--- a/tests/float/diff_apron
+++ /dev/null
@@ -1,6 +0,0 @@
-Only in tests/float/oracle: absorb.res.oracle
-Only in tests/float/oracle: absorb_sav.err
-Only in tests/float/oracle: absorb_sav.res
-Only in tests/float/oracle: absorb_sav2.err
-Only in tests/float/oracle: absorb_sav2.res
-Only in tests/float/oracle: fval_test.res.oracle
diff --git a/tests/float/diff_bitwise b/tests/float/diff_bitwise
deleted file mode 100644
index 4534235bc71b5660c23f9e9c4da7fa19e6658b61..0000000000000000000000000000000000000000
--- a/tests/float/diff_bitwise
+++ /dev/null
@@ -1,6 +0,0 @@
-Only in tests/float/oracle: absorb.res.oracle
-Only in tests/float/oracle: absorb_sav.err
-Only in tests/float/oracle: absorb_sav.res
-Only in tests/float/oracle: absorb_sav2.err
-Only in tests/float/oracle: absorb_sav2.res
-Only in tests/float/oracle: fval_test.res.oracle
diff --git a/tests/float/diff_equalities b/tests/float/diff_equalities
deleted file mode 100644
index bf39814c4b96d859cb091c9b348f53ca943cf92b..0000000000000000000000000000000000000000
--- a/tests/float/diff_equalities
+++ /dev/null
@@ -1,44 +0,0 @@
-Only in tests/float/oracle: absorb.res.oracle
-Only in tests/float/oracle: absorb_sav.err
-Only in tests/float/oracle: absorb_sav.res
-Only in tests/float/oracle: absorb_sav2.err
-Only in tests/float/oracle: absorb_sav2.res
-diff tests/float/oracle/alarms.0.res.oracle tests/float/oracle_equalities/alarms.0.res.oracle
-141,143c141,142
-<   u1{.l[bits 0 to 31]; .f; .d[bits 0 to 31]} ∈
-<     [-3.40282346639e+38 .. 3.40282346639e+38]
-<     {.l[bits 32 to 63]; .f[bits 32 to 63]; .d[bits 32 to 63]} ∈ [--..--]
----
->   u1{.l; .f[bits 0 to 63]; .d} ∈
->     [-9223372036854775808..9218868437227405311]
-diff tests/float/oracle/alarms.1.res.oracle tests/float/oracle_equalities/alarms.1.res.oracle
-126,127c126,127
-<   u1{.l[bits 0 to 31]; .f; .d[bits 0 to 31]} ∈ [-inf .. inf]
-<     {.l[bits 32 to 63]; .f[bits 32 to 63]; .d[bits 32 to 63]} ∈ [--..--]
----
->   u1{.l; .f[bits 0 to 63]; .d} ∈
->     [-9223372036854775808..9218868437227405312]
-diff tests/float/oracle/cond.res.oracle tests/float/oracle_equalities/cond.res.oracle
-45,46c45,46
-<   dz ∈ [0x1.0000000000001p0 .. 0x1.4000000000000p3]
-<   dt ∈ [-0x1.4000000000000p3 .. 0x1.fffffffffffffp-1]
----
->   dz ∈ [0x1.0000020000000p0 .. 0x1.4000000000000p3]
->   dt ∈ [-0x1.4000000000000p3 .. 0x1.fffffe0000000p-1]
-Only in tests/float/oracle: fval_test.res.oracle
-diff tests/float/oracle/nonlin.1.res.oracle tests/float/oracle_equalities/nonlin.1.res.oracle
-61a62
-> [eva:nonlin] tests/float/nonlin.c:44: subdividing on a
-diff tests/float/oracle/nonlin.2.res.oracle tests/float/oracle_equalities/nonlin.2.res.oracle
-61a62
-> [eva:nonlin] tests/float/nonlin.c:44: subdividing on a
-diff tests/float/oracle/nonlin.4.res.oracle tests/float/oracle_equalities/nonlin.4.res.oracle
-61a62
-> [eva:nonlin] tests/float/nonlin.c:44: subdividing on a
-diff tests/float/oracle/nonlin.5.res.oracle tests/float/oracle_equalities/nonlin.5.res.oracle
-61a62
-> [eva:nonlin] tests/float/nonlin.c:44: subdividing on a
-diff tests/float/oracle/parse.res.oracle tests/float/oracle_equalities/parse.res.oracle
-22a23,24
-> [eva] tests/float/parse.i:37: Warning: 
->   cannot parse floating-point constant, returning imprecise result
diff --git a/tests/float/diff_gauges b/tests/float/diff_gauges
deleted file mode 100644
index 4534235bc71b5660c23f9e9c4da7fa19e6658b61..0000000000000000000000000000000000000000
--- a/tests/float/diff_gauges
+++ /dev/null
@@ -1,6 +0,0 @@
-Only in tests/float/oracle: absorb.res.oracle
-Only in tests/float/oracle: absorb_sav.err
-Only in tests/float/oracle: absorb_sav.res
-Only in tests/float/oracle: absorb_sav2.err
-Only in tests/float/oracle: absorb_sav2.res
-Only in tests/float/oracle: fval_test.res.oracle
diff --git a/tests/float/diff_octagons b/tests/float/diff_octagons
deleted file mode 100644
index c37678723890d07cf9737efd397500e8c12efee2..0000000000000000000000000000000000000000
--- a/tests/float/diff_octagons
+++ /dev/null
@@ -1,30 +0,0 @@
-Only in tests/float/oracle: absorb.res.oracle
-Only in tests/float/oracle: absorb_sav.err
-Only in tests/float/oracle: absorb_sav.res
-Only in tests/float/oracle: absorb_sav2.err
-Only in tests/float/oracle: absorb_sav2.res
-Only in tests/float/oracle: fval_test.res.oracle
-diff tests/float/oracle/nonlin.1.res.oracle tests/float/oracle_octagons/nonlin.1.res.oracle
-283a284,285
-> [eva:nonlin] tests/float/nonlin.c:113: non-linear 'f + f', lv 'f'
-> [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
-287d288
-< [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
-diff tests/float/oracle/nonlin.2.res.oracle tests/float/oracle_octagons/nonlin.2.res.oracle
-263a264,265
-> [eva:nonlin] tests/float/nonlin.c:113: non-linear 'f + f', lv 'f'
-> [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
-267d268
-< [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
-diff tests/float/oracle/nonlin.4.res.oracle tests/float/oracle_octagons/nonlin.4.res.oracle
-283a284,285
-> [eva:nonlin] tests/float/nonlin.c:113: non-linear 'f + f', lv 'f'
-> [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
-287d288
-< [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
-diff tests/float/oracle/nonlin.5.res.oracle tests/float/oracle_octagons/nonlin.5.res.oracle
-263a264,265
-> [eva:nonlin] tests/float/nonlin.c:113: non-linear 'f + f', lv 'f'
-> [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
-267d268
-< [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
diff --git a/tests/float/diff_symblocs b/tests/float/diff_symblocs
deleted file mode 100644
index 4534235bc71b5660c23f9e9c4da7fa19e6658b61..0000000000000000000000000000000000000000
--- a/tests/float/diff_symblocs
+++ /dev/null
@@ -1,6 +0,0 @@
-Only in tests/float/oracle: absorb.res.oracle
-Only in tests/float/oracle: absorb_sav.err
-Only in tests/float/oracle: absorb_sav.res
-Only in tests/float/oracle: absorb_sav2.err
-Only in tests/float/oracle: absorb_sav2.res
-Only in tests/float/oracle: fval_test.res.oracle
diff --git a/tests/float/oracle_equalities/alarms.0.res.oracle b/tests/float/oracle_equalities/alarms.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..68e49e3184b0b81f9c011ba5e18670c56e6d4661
--- /dev/null
+++ b/tests/float/oracle_equalities/alarms.0.res.oracle
@@ -0,0 +1,7 @@
+141,143c141,142
+<   u1{.l[bits 0 to 31]; .f; .d[bits 0 to 31]} ∈
+<     [-3.40282346639e+38 .. 3.40282346639e+38]
+<     {.l[bits 32 to 63]; .f[bits 32 to 63]; .d[bits 32 to 63]} ∈ [--..--]
+---
+>   u1{.l; .f[bits 0 to 63]; .d} ∈
+>     [-9223372036854775808..9218868437227405311]
diff --git a/tests/float/oracle_equalities/alarms.1.res.oracle b/tests/float/oracle_equalities/alarms.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..5e58a829ab38662aa46fb473546ee15e5ae869b2
--- /dev/null
+++ b/tests/float/oracle_equalities/alarms.1.res.oracle
@@ -0,0 +1,6 @@
+126,127c126,127
+<   u1{.l[bits 0 to 31]; .f; .d[bits 0 to 31]} ∈ [-inf .. inf]
+<     {.l[bits 32 to 63]; .f[bits 32 to 63]; .d[bits 32 to 63]} ∈ [--..--]
+---
+>   u1{.l; .f[bits 0 to 63]; .d} ∈
+>     [-9223372036854775808..9218868437227405312]
diff --git a/tests/float/oracle_equalities/cond.res.oracle b/tests/float/oracle_equalities/cond.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..4cd8c3819bdb64f63d5e9a5ad88e1e7fa18fadeb
--- /dev/null
+++ b/tests/float/oracle_equalities/cond.res.oracle
@@ -0,0 +1,6 @@
+45,46c45,46
+<   dz ∈ [0x1.0000000000001p0 .. 0x1.4000000000000p3]
+<   dt ∈ [-0x1.4000000000000p3 .. 0x1.fffffffffffffp-1]
+---
+>   dz ∈ [0x1.0000020000000p0 .. 0x1.4000000000000p3]
+>   dt ∈ [-0x1.4000000000000p3 .. 0x1.fffffe0000000p-1]
diff --git a/tests/float/oracle_equalities/const3.1.res.oracle b/tests/float/oracle_equalities/const3.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..412af6075b5e836804b4f3c7685e52ef6d66ba06
--- /dev/null
+++ b/tests/float/oracle_equalities/const3.1.res.oracle
@@ -0,0 +1,4 @@
+23c23
+<   d1 ∈ [0x1.16c2000000000p-133 .. 0x1.16c3000000000p-133]
+---
+>   d1 ∈ {0x1.16c2000000000p-133}
diff --git a/tests/float/oracle_equalities/dr.2.res.oracle b/tests/float/oracle_equalities/dr.2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..a95f94eddaafab39b9466d93690939f6fbae3ec4
--- /dev/null
+++ b/tests/float/oracle_equalities/dr.2.res.oracle
@@ -0,0 +1,8 @@
+25c25
+< [eva] tests/float/dr.i:26: Frama_C_show_each: {0; 1}, {0; 1}
+---
+> [eva] tests/float/dr.i:26: Frama_C_show_each: {1}, {0; 1}
+30c30
+<   e1 ∈ {0; 1}
+---
+>   e1 ∈ {1}
diff --git a/tests/float/oracle_equalities/nonlin.1.res.oracle b/tests/float/oracle_equalities/nonlin.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..ecb490dd56a3dc7600996a9fa4c56e69e08246f1
--- /dev/null
+++ b/tests/float/oracle_equalities/nonlin.1.res.oracle
@@ -0,0 +1,2 @@
+61a62
+> [eva:nonlin] tests/float/nonlin.c:44: subdividing on a
diff --git a/tests/float/oracle_equalities/nonlin.2.res.oracle b/tests/float/oracle_equalities/nonlin.2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..ecb490dd56a3dc7600996a9fa4c56e69e08246f1
--- /dev/null
+++ b/tests/float/oracle_equalities/nonlin.2.res.oracle
@@ -0,0 +1,2 @@
+61a62
+> [eva:nonlin] tests/float/nonlin.c:44: subdividing on a
diff --git a/tests/float/oracle_equalities/nonlin.4.res.oracle b/tests/float/oracle_equalities/nonlin.4.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..ecb490dd56a3dc7600996a9fa4c56e69e08246f1
--- /dev/null
+++ b/tests/float/oracle_equalities/nonlin.4.res.oracle
@@ -0,0 +1,2 @@
+61a62
+> [eva:nonlin] tests/float/nonlin.c:44: subdividing on a
diff --git a/tests/float/oracle_equalities/nonlin.5.res.oracle b/tests/float/oracle_equalities/nonlin.5.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..ecb490dd56a3dc7600996a9fa4c56e69e08246f1
--- /dev/null
+++ b/tests/float/oracle_equalities/nonlin.5.res.oracle
@@ -0,0 +1,2 @@
+61a62
+> [eva:nonlin] tests/float/nonlin.c:44: subdividing on a
diff --git a/tests/float/oracle_equalities/parse.res.oracle b/tests/float/oracle_equalities/parse.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..542e811520e5c6db63e32660ecdbfa1cd1dc7b07
--- /dev/null
+++ b/tests/float/oracle_equalities/parse.res.oracle
@@ -0,0 +1,3 @@
+22a23,24
+> [eva] tests/float/parse.i:37: Warning: 
+>   cannot parse floating-point constant, returning imprecise result
diff --git a/tests/float/oracle_octagons/nonlin.1.res.oracle b/tests/float/oracle_octagons/nonlin.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..fe134f358b16fda0215c2c8edce50d56d3918a23
--- /dev/null
+++ b/tests/float/oracle_octagons/nonlin.1.res.oracle
@@ -0,0 +1,5 @@
+283a284,285
+> [eva:nonlin] tests/float/nonlin.c:113: non-linear 'f + f', lv 'f'
+> [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
+287d288
+< [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
diff --git a/tests/float/oracle_octagons/nonlin.2.res.oracle b/tests/float/oracle_octagons/nonlin.2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..133a62cf0e9c55c178de48b56c726d904a91ce7e
--- /dev/null
+++ b/tests/float/oracle_octagons/nonlin.2.res.oracle
@@ -0,0 +1,5 @@
+263a264,265
+> [eva:nonlin] tests/float/nonlin.c:113: non-linear 'f + f', lv 'f'
+> [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
+267d268
+< [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
diff --git a/tests/float/oracle_octagons/nonlin.4.res.oracle b/tests/float/oracle_octagons/nonlin.4.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..fe134f358b16fda0215c2c8edce50d56d3918a23
--- /dev/null
+++ b/tests/float/oracle_octagons/nonlin.4.res.oracle
@@ -0,0 +1,5 @@
+283a284,285
+> [eva:nonlin] tests/float/nonlin.c:113: non-linear 'f + f', lv 'f'
+> [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
+287d288
+< [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
diff --git a/tests/float/oracle_octagons/nonlin.5.res.oracle b/tests/float/oracle_octagons/nonlin.5.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..133a62cf0e9c55c178de48b56c726d904a91ce7e
--- /dev/null
+++ b/tests/float/oracle_octagons/nonlin.5.res.oracle
@@ -0,0 +1,5 @@
+263a264,265
+> [eva:nonlin] tests/float/nonlin.c:113: non-linear 'f + f', lv 'f'
+> [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
+267d268
+< [eva:nonlin] tests/float/nonlin.c:113: subdividing on f
diff --git a/tests/idct/.gitignore b/tests/idct/.gitignore
deleted file mode 100644
index 5de45901ce62a18d26c6309c170b943215b78b67..0000000000000000000000000000000000000000
--- a/tests/idct/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/oracle_*
diff --git a/tests/idct/diff_bitwise b/tests/idct/diff_bitwise
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/tests/idct/diff_symblocs b/tests/idct/diff_symblocs
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/tests/idct/diff_apron b/tests/idct/oracle_apron/ieee_1180_1990.res.oracle
similarity index 99%
rename from tests/idct/diff_apron
rename to tests/idct/oracle_apron/ieee_1180_1990.res.oracle
index 5ba6a7afd0f54ff837ad4d3a56435fe90d807105..b696284c7d49f28e2eb8ee927a34fea902866785 100644
--- a/tests/idct/diff_apron
+++ b/tests/idct/oracle_apron/ieee_1180_1990.res.oracle
@@ -1,4 +1,3 @@
-diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_apron/ieee_1180_1990.res.oracle
 147,158c147,170
 < [eva] tests/idct/ieee_1180_1990.c:85: 
 <   Reusing old results for call to IEEE_1180_1990_rand
diff --git a/tests/idct/diff_equalities b/tests/idct/oracle_equalities/ieee_1180_1990.res.oracle
similarity index 98%
rename from tests/idct/diff_equalities
rename to tests/idct/oracle_equalities/ieee_1180_1990.res.oracle
index 4ed73b90e44bd7a7e5fb827e497ac3b792169bb2..9c63f5d99c1f6986a3e4851262be742e6119bd50 100644
--- a/tests/idct/diff_equalities
+++ b/tests/idct/oracle_equalities/ieee_1180_1990.res.oracle
@@ -1,4 +1,3 @@
-diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_equalities/ieee_1180_1990.res.oracle
 356a357,358
 > [eva:signed-overflow] tests/idct/ieee_1180_1990.c:219: Warning: 
 >   2's complement assumed for overflow
diff --git a/tests/idct/diff_gauges b/tests/idct/oracle_gauges/ieee_1180_1990.res.oracle
similarity index 67%
rename from tests/idct/diff_gauges
rename to tests/idct/oracle_gauges/ieee_1180_1990.res.oracle
index e7ae4765f4b8c72b685f6b4b5a9175288e2d3df4..78b4e218935dc26704c0c50248719d9ce608473c 100644
--- a/tests/idct/diff_gauges
+++ b/tests/idct/oracle_gauges/ieee_1180_1990.res.oracle
@@ -1,4 +1,3 @@
-diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_gauges/ieee_1180_1990.res.oracle
 579a580,581
 > [eva] tests/idct/ieee_1180_1990.c:100: 
 >   Call to builtin Frama_C_sqrt for function sqrt
diff --git a/tests/idct/diff_octagons b/tests/idct/oracle_octagons/ieee_1180_1990.res.oracle
similarity index 97%
rename from tests/idct/diff_octagons
rename to tests/idct/oracle_octagons/ieee_1180_1990.res.oracle
index 46e477e3f73c2fc3d4aa05888afdfc1d43d7b003..e5cce9d6282fe3ccfb31a03e8be7fd73d4567b45 100644
--- a/tests/idct/diff_octagons
+++ b/tests/idct/oracle_octagons/ieee_1180_1990.res.oracle
@@ -1,4 +1,3 @@
-diff tests/idct/oracle/ieee_1180_1990.res.oracle tests/idct/oracle_octagons/ieee_1180_1990.res.oracle
 424a425,432
 > [eva] tests/idct/ieee_1180_1990.c:85: 
 >   Reusing old results for call to IEEE_1180_1990_rand
diff --git a/tests/libc/oracle/runtime.res.oracle b/tests/libc/oracle/runtime.res.oracle
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/tests/saveload/basic.i b/tests/saveload/basic.i
index d69c1a3b38c537d6b2ea6bd2714c3a3f3f0c03cd..6e2f8318e06b079b2a35dc0d74b806f4f8664d85 100644
--- a/tests/saveload/basic.i
+++ b/tests/saveload/basic.i
@@ -1,21 +1,21 @@
 /* run.config
-   EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs
+ MODULE: @PTEST_NAME@
    EXECNOW: LOG basic_sav.res LOG basic_sav.err BIN basic.sav @frama-c@ -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -eva @EVA_OPTIONS@ -out -input -deps ./@PTEST_DIR@/@PTEST_NAME@.i -save ./tests/saveload/result/basic.sav > ./tests/saveload/result/basic_sav.res 2> ./tests/saveload/result/basic_sav.err
-   EXECNOW: LOG basic_sav.1.res LOG basic_sav.1.err BIN basic.1.sav ./bin/toplevel.opt -save ./tests/saveload/result/basic.1.sav @PTEST_DIR@/@PTEST_NAME@.i -eva @EVA_OPTIONS@ -out -input -deps > ./tests/saveload/result/basic_sav.1.res 2> ./tests/saveload/result/basic_sav.1.err
+   EXECNOW: LOG basic_sav.1.res LOG basic_sav.1.err BIN basic.1.sav @frama-c@ -save ./tests/saveload/result/basic.1.sav @PTEST_DIR@/@PTEST_NAME@.i -eva @EVA_OPTIONS@ -out -input -deps > ./tests/saveload/result/basic_sav.1.res 2> ./tests/saveload/result/basic_sav.1.err
+ MODULE:
    STDOPT: +"-load ./tests/saveload/result/basic.sav -eva @EVA_OPTIONS@ -out -input -deps -journal-disable"
-   STDOPT: #"-load-module @PTEST_DIR@/@PTEST_NAME@.cmxs" +"-load ./tests/saveload/result/basic.1.sav -eva @EVA_OPTIONS@ -out -input -deps -journal-disable -print"
+ MODULE: @PTEST_NAME@
+   STDOPT: +"-load ./tests/saveload/result/basic.1.sav -eva @EVA_OPTIONS@ -out -input -deps -journal-disable -print"
+ MODULE:
    STDOPT: +"-load ./tests/saveload/result/basic.1.sav -eva @EVA_OPTIONS@ -out -input -deps -journal-disable"
-   EXECNOW: make -s @PTEST_DIR@/status.cmxs
+ MODULE: status
    EXECNOW: LOG status_sav.res LOG status_sav.err BIN status.sav @frama-c@ -load-module @PTEST_DIR@/status -save ./tests/saveload/result/status.sav @PTEST_DIR@/@PTEST_NAME@.i > ./tests/saveload/result/status_sav.res 2> ./tests/saveload/result/status_sav.err
-   STDOPT: #"-load-module @PTEST_DIR@/status" +"-load ./tests/saveload/result/status.sav"
+   STDOPT: +"-load ./tests/saveload/result/status.sav"
+ MODULE:
    STDOPT: +"-load ./tests/saveload/result/status.sav"
 */
-
 int main() {
-  int i, j;
-
-  i = 10;
-  /*@ assert (i == 10); */
+  int i,j; i=10; /*@ assert (i == 10); */
   while(i--);
   j = 5;
 
diff --git a/tests/test_config_apron b/tests/test_config_apron
index 568bc84e0ab1763640485b94c48d108a868c76b1..ff3a028903375e622d271ae85a070bdad02df8cb 100644
--- a/tests/test_config_apron
+++ b/tests/test_config_apron
@@ -1,3 +1,7 @@
 MACRO: EVA_OPTIONS -eva-show-progress -eva-msg-key=-summary -eva-auto-loop-unroll 0 -eva-domains apron-octagon -eva-warn-key experimental=inactive
 MACRO: EVA_CONFIG @EVA_OPTIONS@ -no-autoload-plugins -load-module from,inout,eva,scope,variadic -machdep x86_32
+
+# Compare the result with the oracle of the default config.
+FILTER: diff --new-file @PTEST_DIR@/oracle/@PTEST_ORACLE@ -
+
 OPT: -eva @EVA_CONFIG@ -journal-disable -out -input -deps
diff --git a/tests/test_config_bitwise b/tests/test_config_bitwise
index 9a4d5dfea1a205e217149f186c5341ca046a5189..103334223c75fc4d7ef5faadd2187fd3913defbf 100644
--- a/tests/test_config_bitwise
+++ b/tests/test_config_bitwise
@@ -1,3 +1,7 @@
 MACRO: EVA_OPTIONS -eva-show-progress -eva-msg-key=-summary -eva-auto-loop-unroll 0 -eva-domains bitwise
 MACRO: EVA_CONFIG @EVA_OPTIONS@ -no-autoload-plugins -load-module from,inout,eva,scope,variadic -machdep x86_32
+
+# Compare the result with the oracle of the default config.
+FILTER: diff --new-file @PTEST_DIR@/oracle/@PTEST_ORACLE@ -
+
 OPT: -eva @EVA_CONFIG@ -journal-disable -out -input -deps
diff --git a/tests/test_config_equalities b/tests/test_config_equalities
index 45664b6c91351aae50544f999ad2d98142ee818e..ffa23c9d32dac550f13db32f54185a48c1b3772e 100644
--- a/tests/test_config_equalities
+++ b/tests/test_config_equalities
@@ -1,3 +1,7 @@
 MACRO: EVA_OPTIONS -eva-show-progress -eva-msg-key=-summary -eva-auto-loop-unroll 0 -eva-domains equality
 MACRO: EVA_CONFIG @EVA_OPTIONS@ -no-autoload-plugins -load-module from,inout,eva,scope,variadic -machdep x86_32
+
+# Compare the result with the oracle of the default config.
+FILTER: diff --new-file @PTEST_DIR@/oracle/@PTEST_ORACLE@ -
+
 OPT: -eva @EVA_CONFIG@ -journal-disable -out -input -deps
diff --git a/tests/test_config_gauges b/tests/test_config_gauges
index ee46c34eb9c1a5f4dfb63334ee41a14f19fcfb40..2c04eba2c74acdaa705e8dc6437b577266183d32 100644
--- a/tests/test_config_gauges
+++ b/tests/test_config_gauges
@@ -1,3 +1,7 @@
 MACRO: EVA_OPTIONS -eva-show-progress -eva-msg-key=-summary -eva-auto-loop-unroll 0 -eva-domains gauges
 MACRO: EVA_CONFIG @EVA_OPTIONS@ -no-autoload-plugins -load-module from,inout,eva,scope,variadic -machdep x86_32
+
+# Compare the result with the oracle of the default config.
+FILTER: diff --new-file @PTEST_DIR@/oracle/@PTEST_ORACLE@ -
+
 OPT: -eva @EVA_CONFIG@ -journal-disable -out -input -deps
diff --git a/tests/test_config_octagons b/tests/test_config_octagons
index 689c4edbfbb0fe5a6259aa03d4971a16a5b6387c..c3f170e9652940aae572fa469a014cb5da8baf23 100644
--- a/tests/test_config_octagons
+++ b/tests/test_config_octagons
@@ -1,3 +1,7 @@
 MACRO: EVA_OPTIONS -eva-show-progress -eva-msg-key=-summary -eva-domains octagon
 MACRO: EVA_CONFIG @EVA_OPTIONS@ -no-autoload-plugins -load-module from,inout,eva,scope,variadic -machdep x86_32
+
+# Compare the result with the oracle of the default config.
+FILTER: diff --new-file @PTEST_DIR@/oracle/@PTEST_ORACLE@ -
+
 OPT: -eva @EVA_CONFIG@ -journal-disable -out -input -deps
diff --git a/tests/test_config_symblocs b/tests/test_config_symblocs
index b4a58bcd9f85e32c18b992356b7ad4fb1e21dafd..d25a43c5eb7a0aeff3b6cddcdda469a1433ba638 100644
--- a/tests/test_config_symblocs
+++ b/tests/test_config_symblocs
@@ -1,3 +1,7 @@
 MACRO: EVA_OPTIONS -eva-show-progress -eva-msg-key=-summary -eva-auto-loop-unroll 0 -eva-domains symbolic-locations
 MACRO: EVA_CONFIG @EVA_OPTIONS@ -no-autoload-plugins -load-module from,inout,eva,scope,variadic -machdep x86_32
+
+# Compare the result with the oracle of the default config.
+FILTER: diff --new-file @PTEST_DIR@/oracle/@PTEST_ORACLE@ -
+
 OPT: -eva @EVA_CONFIG@ -journal-disable -out -input -deps
diff --git a/tests/value/.gitignore b/tests/value/.gitignore
deleted file mode 100644
index 5de45901ce62a18d26c6309c170b943215b78b67..0000000000000000000000000000000000000000
--- a/tests/value/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/oracle_*
diff --git a/tests/value/diff_apron b/tests/value/diff_apron
deleted file mode 100644
index b8f9fbe7d8c8bbc8d910d97e3d71e2b1413b6746..0000000000000000000000000000000000000000
--- a/tests/value/diff_apron
+++ /dev/null
@@ -1,1508 +0,0 @@
-diff tests/value/oracle/alias.1.res.oracle tests/value/oracle_apron/alias.1.res.oracle
-85c85
-<   z ∈ {0; 1; 2}
----
->   z ∈ {0; 2}
-diff tests/value/oracle/alias.2.res.oracle tests/value/oracle_apron/alias.2.res.oracle
-76c76
-<   z ∈ {-5; -4; -3; -2; -1; 0; 1; 1000}
----
->   z ∈ {-1; 1000}
-diff tests/value/oracle/alias.3.res.oracle tests/value/oracle_apron/alias.3.res.oracle
-67c67
-<   z ∈ {0; 1; 2}
----
->   z ∈ {0; 2}
-diff tests/value/oracle/alias.6.res.oracle tests/value/oracle_apron/alias.6.res.oracle
-82c82
-<   t ∈ {4; 5; 6}
----
->   t ∈ {5}
-diff tests/value/oracle/array_degenerating_loop.res.oracle tests/value/oracle_apron/array_degenerating_loop.res.oracle
-11,12d10
-< [eva:alarm] tests/value/array_degenerating_loop.i:9: Warning: 
-<   signed overflow. assert G + t[i] ≤ 2147483647;
-14c12
-<   Frama_C_show_each: [55..2147483647], [-2147483648..99]
----
->   Frama_C_show_each: [55..155], [-2147483648..99]
-diff tests/value/oracle/auto_loop_unroll.0.res.oracle tests/value/oracle_apron/auto_loop_unroll.0.res.oracle
-11,13c11
-< [eva:alarm] tests/value/auto_loop_unroll.c:25: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:27: Frama_C_show_each_auto: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:27: Frama_C_show_each_auto: {100}
-15,18c13
-< [eva:alarm] tests/value/auto_loop_unroll.c:31: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:33: 
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:33: Frama_C_show_each_imprecise: {1000}
-20,23c15
-< [eva:alarm] tests/value/auto_loop_unroll.c:39: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:41: 
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:41: Frama_C_show_each_imprecise: {100}
-32,34c24
-< [eva:alarm] tests/value/auto_loop_unroll.c:58: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:59: Frama_C_show_each_64: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:59: Frama_C_show_each_64: {64}
-36,38c26
-< [eva:alarm] tests/value/auto_loop_unroll.c:63: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:64: Frama_C_show_each_40: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:64: Frama_C_show_each_40: [0..120]
-40,42c28
-< [eva:alarm] tests/value/auto_loop_unroll.c:69: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:72: Frama_C_show_each_80: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:72: Frama_C_show_each_80: [0..160]
-44,47c30
-< [eva:alarm] tests/value/auto_loop_unroll.c:76: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:82: 
-<   Frama_C_show_each_32_80: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:82: Frama_C_show_each_32_80: [0..164]
-55,56d37
-< [eva:alarm] tests/value/auto_loop_unroll.c:88: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-60,62c41
-< [eva:alarm] tests/value/auto_loop_unroll.c:93: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:95: Frama_C_show_each_101: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:95: Frama_C_show_each_101: {101}
-71c50,53
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-81c63,66
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-90c75,78
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-107c95,98
-< [eva] tests/value/auto_loop_unroll.c:100: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:100.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-114,115d104
-< [eva:alarm] tests/value/auto_loop_unroll.c:14: Warning: 
-<   signed overflow. assert g + 1 ≤ 2147483647;
-118c107,110
-< [eva] tests/value/auto_loop_unroll.c:100: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:100.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-121,122d112
-< [eva:alarm] tests/value/auto_loop_unroll.c:18: Warning: 
-<   signed overflow. assert i + 1 ≤ 2147483647;
-125c115
-< [eva] tests/value/auto_loop_unroll.c:103: Frama_C_show_each_25: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:103: Frama_C_show_each_25: {25}
-131c121,122
-< [eva] tests/value/auto_loop_unroll.c:112: Frama_C_show_each_120: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:112: 
->   Frama_C_show_each_120: [15..2147483647]
-133,136c124
-< [eva:alarm] tests/value/auto_loop_unroll.c:120: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:122: 
-<   Frama_C_show_each_32_64: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:122: Frama_C_show_each_32_64: [0..65]
-152,153d139
-< [eva:alarm] tests/value/auto_loop_unroll.c:145: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-160c146
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
->   Frama_C_show_each_imprecise: [10..2147483647]
-178,183c164,172
-< [eva] tests/value/auto_loop_unroll.c:162: Reusing old results for call to incr_g
-< [eva] tests/value/auto_loop_unroll.c:162: Reusing old results for call to incr_g
-< [eva:alarm] tests/value/auto_loop_unroll.c:164: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:166: 
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
-> [eva] computing for function incr_g <- complex_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:162.
-> [eva] Recording results for incr_g
-> [eva] Done for function incr_g
-> [eva] computing for function incr_g <- complex_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:162.
-> [eva] Recording results for incr_g
-> [eva] Done for function incr_g
-> [eva] tests/value/auto_loop_unroll.c:166: Frama_C_show_each_imprecise: [0..64]
-185,188c174
-< [eva:alarm] tests/value/auto_loop_unroll.c:173: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:175: 
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:175: Frama_C_show_each_imprecise: [0..9]
-190,191d175
-< [eva:alarm] tests/value/auto_loop_unroll.c:181: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-195c179
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
->   Frama_C_show_each_imprecise: [64..2147483647]
-201,203c185
-< [eva:alarm] tests/value/auto_loop_unroll.c:193: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:195: Frama_C_show_each_11: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:195: Frama_C_show_each_11: {11}
-205,207c187
-< [eva:alarm] tests/value/auto_loop_unroll.c:198: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:200: Frama_C_show_each_12: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:200: Frama_C_show_each_12: {12}
-209,210d188
-< [eva:alarm] tests/value/auto_loop_unroll.c:204: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-212a191,192
-> [eva:alarm] tests/value/auto_loop_unroll.c:204: Warning: 
->   signed overflow. assert res + 1 ≤ 2147483647;
-216,217d195
-< [eva:alarm] tests/value/auto_loop_unroll.c:209: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-219a198,199
-> [eva:alarm] tests/value/auto_loop_unroll.c:209: Warning: 
->   signed overflow. assert res + 1 ≤ 2147483647;
-223,224d202
-< [eva:alarm] tests/value/auto_loop_unroll.c:217: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-228,231c206
-< [eva:alarm] tests/value/auto_loop_unroll.c:222: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:226: 
-<   Frama_C_show_each_11_111: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:226: Frama_C_show_each_11_111: [11..111]
-239,241c214
-< [eva:alarm] tests/value/auto_loop_unroll.c:236: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:238: Frama_C_show_each_20: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:238: Frama_C_show_each_20: [20..2147483646]
-243,244d215
-< [eva:alarm] tests/value/auto_loop_unroll.c:241: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-247c218,220
-< [eva] tests/value/auto_loop_unroll.c:243: Frama_C_show_each_21: [0..2147483647]
----
-> [eva:alarm] tests/value/auto_loop_unroll.c:241: Warning: 
->   signed overflow. assert res + 1 ≤ 2147483647;
-> [eva] tests/value/auto_loop_unroll.c:243: Frama_C_show_each_21: {21}
-253,255c226,227
-< [eva:alarm] tests/value/auto_loop_unroll.c:250: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:254: Frama_C_show_each_30: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:254: Frama_C_show_each_30: {30}
-> [eva] tests/value/auto_loop_unroll.c:258: starting to merge loop iterations
-258,259c230,231
-< [eva] tests/value/auto_loop_unroll.c:258: starting to merge loop iterations
-< [eva] tests/value/auto_loop_unroll.c:263: Frama_C_show_each_top: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:263: 
->   Frama_C_show_each_top: [31..2147483647]
-261,263c233
-< [eva:alarm] tests/value/auto_loop_unroll.c:267: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:272: Frama_C_show_each_32: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:272: Frama_C_show_each_32: {32}
-268c238
-<   Frama_C_show_each_33_inf: [0..2147483647]
----
->   Frama_C_show_each_33_inf: [33..2147483647]
-272,273d241
-< [eva:alarm] tests/value/auto_loop_unroll.c:283: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-281c249
-<   __retres ∈ [1..2147483647]
----
->   __retres ∈ [1..25]
-283c251
-<   g ∈ [1..2147483647]
----
->   g ∈ [1..126]
-diff tests/value/oracle/auto_loop_unroll.1.res.oracle tests/value/oracle_apron/auto_loop_unroll.1.res.oracle
-15,18c15
-< [eva:alarm] tests/value/auto_loop_unroll.c:31: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:33: 
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:33: Frama_C_show_each_imprecise: {1000}
-20,23c17
-< [eva:alarm] tests/value/auto_loop_unroll.c:39: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:41: 
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:41: Frama_C_show_each_imprecise: {100}
-58c52,55
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-67c64,67
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-76c76,79
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-85c88,91
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-94c100,103
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-103c112,115
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-112c124,127
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-121c136,139
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-130c148,151
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-139c160,163
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-148c172,175
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-157c184,187
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-166c196,199
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-175c208,211
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-184c220,223
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-193c232,235
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-202c244,247
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-211c256,259
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-220c268,271
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-229c280,283
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-238c292,295
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-247c304,307
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-256c316,319
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-265c328,331
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-274c340,343
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-296,297d364
-< [eva:alarm] tests/value/auto_loop_unroll.c:145: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-304c371
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
->   Frama_C_show_each_imprecise: [10..2147483647]
-322,327c389,397
-< [eva] tests/value/auto_loop_unroll.c:162: Reusing old results for call to incr_g
-< [eva] tests/value/auto_loop_unroll.c:162: Reusing old results for call to incr_g
-< [eva:alarm] tests/value/auto_loop_unroll.c:164: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:166: 
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
-> [eva] computing for function incr_g <- complex_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:162.
-> [eva] Recording results for incr_g
-> [eva] Done for function incr_g
-> [eva] computing for function incr_g <- complex_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:162.
-> [eva] Recording results for incr_g
-> [eva] Done for function incr_g
-> [eva] tests/value/auto_loop_unroll.c:166: Frama_C_show_each_imprecise: [0..64]
-329,332c399
-< [eva:alarm] tests/value/auto_loop_unroll.c:173: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:175: 
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:175: Frama_C_show_each_imprecise: [0..9]
-334,335d400
-< [eva:alarm] tests/value/auto_loop_unroll.c:181: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-339c404
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
->   Frama_C_show_each_imprecise: [64..2147483647]
-344c409
-< [eva:loop-unroll] tests/value/auto_loop_unroll.c:192: Automatic loop unrolling.
----
-> [eva] tests/value/auto_loop_unroll.c:192: starting to merge loop iterations
-346c411
-< [eva:loop-unroll] tests/value/auto_loop_unroll.c:197: Automatic loop unrolling.
----
-> [eva] tests/value/auto_loop_unroll.c:197: starting to merge loop iterations
-348,353c413,429
-< [eva:loop-unroll] tests/value/auto_loop_unroll.c:203: Automatic loop unrolling.
-< [eva] tests/value/auto_loop_unroll.c:206: Frama_C_show_each_0_13: [0..13]
-< [eva:loop-unroll] tests/value/auto_loop_unroll.c:208: Automatic loop unrolling.
-< [eva] tests/value/auto_loop_unroll.c:211: Frama_C_show_each_0_14: [0..14]
-< [eva:loop-unroll] tests/value/auto_loop_unroll.c:214: Automatic loop unrolling.
-< [eva] tests/value/auto_loop_unroll.c:219: Frama_C_show_each_0_15: [0..15]
----
-> [eva] tests/value/auto_loop_unroll.c:203: starting to merge loop iterations
-> [eva:alarm] tests/value/auto_loop_unroll.c:203: Warning: 
->   signed overflow. assert -2147483648 ≤ i_0 - 1;
-> [eva:alarm] tests/value/auto_loop_unroll.c:204: Warning: 
->   signed overflow. assert res + 1 ≤ 2147483647;
-> [eva] tests/value/auto_loop_unroll.c:206: 
->   Frama_C_show_each_0_13: [0..2147483647]
-> [eva] tests/value/auto_loop_unroll.c:208: starting to merge loop iterations
-> [eva:alarm] tests/value/auto_loop_unroll.c:208: Warning: 
->   signed overflow. assert -2147483648 ≤ i_1 - 1;
-> [eva:alarm] tests/value/auto_loop_unroll.c:209: Warning: 
->   signed overflow. assert res + 1 ≤ 2147483647;
-> [eva] tests/value/auto_loop_unroll.c:211: 
->   Frama_C_show_each_0_14: [0..2147483647]
-> [eva] tests/value/auto_loop_unroll.c:214: starting to merge loop iterations
-> [eva] tests/value/auto_loop_unroll.c:219: 
->   Frama_C_show_each_0_15: [0..2147483647]
-364c440,444
-< [eva:loop-unroll] tests/value/auto_loop_unroll.c:240: Automatic loop unrolling.
----
-> [eva] tests/value/auto_loop_unroll.c:240: starting to merge loop iterations
-> [eva:alarm] tests/value/auto_loop_unroll.c:240: Warning: 
->   signed overflow. assert -2147483648 ≤ i - 1;
-> [eva:alarm] tests/value/auto_loop_unroll.c:241: Warning: 
->   signed overflow. assert res + 1 ≤ 2147483647;
-375c455,456
-< [eva] tests/value/auto_loop_unroll.c:263: Frama_C_show_each_top: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:263: 
->   Frama_C_show_each_top: [31..2147483647]
-391,392d471
-< [eva:alarm] tests/value/auto_loop_unroll.c:283: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-425,426c504,505
-<   i ∈ {-1}
-<   res ∈ {21}
----
->   i ∈ [-2147483648..20]
->   res ∈ [0..2147483647]
-diff tests/value/oracle/backward_add_ptr.res.oracle tests/value/oracle_apron/backward_add_ptr.res.oracle
-71c71,74
-< [eva] tests/value/backward_add_ptr.c:91: Reusing old results for call to gm
----
-> [eva] computing for function gm <- main3 <- main.
->   Called from tests/value/backward_add_ptr.c:91.
-> [eva] Recording results for gm
-> [eva] Done for function gm
-93c96,99
-< [eva] tests/value/backward_add_ptr.c:110: Reusing old results for call to gm
----
-> [eva] computing for function gm <- main3 <- main.
->   Called from tests/value/backward_add_ptr.c:110.
-> [eva] Recording results for gm
-> [eva] Done for function gm
-107c113,116
-< [eva] tests/value/backward_add_ptr.c:125: Reusing old results for call to gm
----
-> [eva] computing for function gm <- main3 <- main.
->   Called from tests/value/backward_add_ptr.c:125.
-> [eva] Recording results for gm
-> [eva] Done for function gm
-160c169,172
-< [eva] tests/value/backward_add_ptr.c:160: Reusing old results for call to gm
----
-> [eva] computing for function gm <- main4 <- main.
->   Called from tests/value/backward_add_ptr.c:160.
-> [eva] Recording results for gm
-> [eva] Done for function gm
-diff tests/value/oracle/call_simple.res.oracle tests/value/oracle_apron/call_simple.res.oracle
-28c28
-<   c ∈ [--..--]
----
->   c ∈ [-2147483648..2147483646]
-diff tests/value/oracle/deps_compose.res.oracle tests/value/oracle_apron/deps_compose.res.oracle
-24c24,27
-< [eva] tests/value/deps_compose.i:26: Reusing old results for call to f
----
-> [eva] computing for function f <- main.
->   Called from tests/value/deps_compose.i:26.
-> [eva] Recording results for f
-> [eva] Done for function f
-diff tests/value/oracle/divneg.res.oracle tests/value/oracle_apron/divneg.res.oracle
-57c57
-<   vic ∈ {4294967295}
----
->   vic ∈ {-1}
-diff tests/value/oracle/domains_function.res.oracle tests/value/oracle_apron/domains_function.res.oracle
-107c107,110
-< [eva] tests/value/domains_function.c:63: Reusing old results for call to use
----
-> [eva] computing for function use <- test_propagation <- main.
->   Called from tests/value/domains_function.c:63.
-> [eva] Recording results for use
-> [eva] Done for function use
-diff tests/value/oracle/downcast.1.res.oracle tests/value/oracle_apron/downcast.1.res.oracle
-61c61
-<   [100000..2147483647], [100145..2147483647], [100145..2147483647]
----
->   [100000..2147483502], [100145..2147483647], [100145..2147483647]
-diff tests/value/oracle/dur.res.oracle tests/value/oracle_apron/dur.res.oracle
-310c310
-<   V6 ∈ [--..--] or UNINITIALIZED
----
->   V6 ∈ [0..32767] or UNINITIALIZED
-diff tests/value/oracle/find_ivaltop.res.oracle tests/value/oracle_apron/find_ivaltop.res.oracle
-32,33c32,33
-<   j ∈ {0; 1; 2; 3; 4; 5; 6; 7}
-<   X ∈ {1; 2; 3; 4; 5; 6; 7; 8}
----
->   j ∈ {7}
->   X ∈ {8}
-39c39
-<   \result FROM t[0..7]
----
->   \result FROM t[7]
-44c44
-<     t[0..7]
----
->     t[7]
-diff tests/value/oracle/for_loops.1.res.oracle tests/value/oracle_apron/for_loops.1.res.oracle
-39,41c39
-< [eva:alarm] tests/value/for_loops.c:16: Warning: 
-<   signed overflow. assert w + 1 ≤ 2147483647;
-< [eva] tests/value/for_loops.c:17: Frama_C_show_each_F: [0..2147483647]
----
-> [eva] tests/value/for_loops.c:17: Frama_C_show_each_F: [0..100]
-47c45
-<   j ∈ [0..2147483647]
----
->   j ∈ [0..100]
-diff tests/value/oracle/for_loops.2.res.oracle tests/value/oracle_apron/for_loops.2.res.oracle
-37,39c37
-< [eva:alarm] tests/value/for_loops.c:42: Warning: 
-<   signed overflow. assert w + T[j] ≤ 2147483647;
-< [eva] tests/value/for_loops.c:43: Frama_C_show_each: [0..2147483647]
----
-> [eva] tests/value/for_loops.c:43: Frama_C_show_each: [0..1000]
-diff tests/value/oracle/fptr.0.res.oracle tests/value/oracle_apron/fptr.0.res.oracle
-57c57,60
-< [eva] tests/value/fptr.i:9: Reusing old results for call to h
----
-> [eva] computing for function h <- f <- main.
->   Called from tests/value/fptr.i:9.
-> [eva] Recording results for h
-> [eva] Done for function h
-66,67c69,76
-< [eva] tests/value/fptr.i:9: Reusing old results for call to hh
-< [eva] tests/value/fptr.i:9: Reusing old results for call to h
----
-> [eva] computing for function hh <- f <- main.
->   Called from tests/value/fptr.i:9.
-> [eva] Recording results for hh
-> [eva] Done for function hh
-> [eva] computing for function h <- f <- main.
->   Called from tests/value/fptr.i:9.
-> [eva] Recording results for h
-> [eva] Done for function h
-72c81,92
-< [eva] tests/value/fptr.i:52: Reusing old results for call to f
----
-> [eva] computing for function f <- main.
->   Called from tests/value/fptr.i:52.
-> [eva] computing for function hh <- f <- main.
->   Called from tests/value/fptr.i:9.
-> [eva] Recording results for hh
-> [eva] Done for function hh
-> [eva] computing for function h <- f <- main.
->   Called from tests/value/fptr.i:9.
-> [eva] Recording results for h
-> [eva] Done for function h
-> [eva] Recording results for f
-> [eva] Done for function f
-diff tests/value/oracle/fptr.1.res.oracle tests/value/oracle_apron/fptr.1.res.oracle
-42c42,45
-< [eva] tests/value/fptr.i:9: Reusing old results for call to h
----
-> [eva] computing for function h <- f <- main_uninit.
->   Called from tests/value/fptr.i:9.
-> [eva] Recording results for h
-> [eva] Done for function h
-51,52c54,61
-< [eva] tests/value/fptr.i:9: Reusing old results for call to hh
-< [eva] tests/value/fptr.i:9: Reusing old results for call to h
----
-> [eva] computing for function hh <- f <- main_uninit.
->   Called from tests/value/fptr.i:9.
-> [eva] Recording results for hh
-> [eva] Done for function hh
-> [eva] computing for function h <- f <- main_uninit.
->   Called from tests/value/fptr.i:9.
-> [eva] Recording results for h
-> [eva] Done for function h
-57c66,77
-< [eva] tests/value/fptr.i:68: Reusing old results for call to f
----
-> [eva] computing for function f <- main_uninit.
->   Called from tests/value/fptr.i:68.
-> [eva] computing for function hh <- f <- main_uninit.
->   Called from tests/value/fptr.i:9.
-> [eva] Recording results for hh
-> [eva] Done for function hh
-> [eva] computing for function h <- f <- main_uninit.
->   Called from tests/value/fptr.i:9.
-> [eva] Recording results for h
-> [eva] Done for function h
-> [eva] Recording results for f
-> [eva] Done for function f
-diff tests/value/oracle/from_call.0.res.oracle tests/value/oracle_apron/from_call.0.res.oracle
-68c68,73
-< [eva] tests/value/from_call.i:20: Reusing old results for call to g
----
-> [eva] computing for function g <- f <- main.
->   Called from tests/value/from_call.i:20.
-> [eva] Recording results for g
-> [from] Computing for function g
-> [from] Done for function g
-> [eva] Done for function g
-78c83,88
-< [eva] tests/value/from_call.i:20: Reusing old results for call to g
----
-> [eva] computing for function g <- f <- main.
->   Called from tests/value/from_call.i:20.
-> [eva] Recording results for g
-> [from] Computing for function g
-> [from] Done for function g
-> [eva] Done for function g
-149,150c159,170
-< [eva] tests/value/from_call.i:44: Reusing old results for call to return_A1
-< [eva] tests/value/from_call.i:44: Reusing old results for call to return_A2
----
-> [eva] computing for function return_A1 <- dispatcher2 <- call_dispatcher2 <- main.
->   Called from tests/value/from_call.i:44.
-> [eva] Recording results for return_A1
-> [from] Computing for function return_A1
-> [from] Done for function return_A1
-> [eva] Done for function return_A1
-> [eva] computing for function return_A2 <- dispatcher2 <- call_dispatcher2 <- main.
->   Called from tests/value/from_call.i:44.
-> [eva] Recording results for return_A2
-> [from] Computing for function return_A2
-> [from] Done for function return_A2
-> [eva] Done for function return_A2
-diff tests/value/oracle/from_call.1.res.oracle tests/value/oracle_apron/from_call.1.res.oracle
-64c64,67
-< [eva] tests/value/from_call.i:20: Reusing old results for call to g
----
-> [eva] computing for function g <- f <- main.
->   Called from tests/value/from_call.i:20.
-> [eva] Recording results for g
-> [eva] Done for function g
-72c75,78
-< [eva] tests/value/from_call.i:20: Reusing old results for call to g
----
-> [eva] computing for function g <- f <- main.
->   Called from tests/value/from_call.i:20.
-> [eva] Recording results for g
-> [eva] Done for function g
-123,124c129,136
-< [eva] tests/value/from_call.i:44: Reusing old results for call to return_A1
-< [eva] tests/value/from_call.i:44: Reusing old results for call to return_A2
----
-> [eva] computing for function return_A1 <- dispatcher2 <- call_dispatcher2 <- main.
->   Called from tests/value/from_call.i:44.
-> [eva] Recording results for return_A1
-> [eva] Done for function return_A1
-> [eva] computing for function return_A2 <- dispatcher2 <- call_dispatcher2 <- main.
->   Called from tests/value/from_call.i:44.
-> [eva] Recording results for return_A2
-> [eva] Done for function return_A2
-diff tests/value/oracle/fun_ptr.0.res.oracle tests/value/oracle_apron/fun_ptr.0.res.oracle
-39c39,42
-< [eva] tests/value/fun_ptr.i:33: Reusing old results for call to f
----
-> [eva] computing for function f <- test2 <- main.
->   Called from tests/value/fun_ptr.i:33.
-> [eva] Recording results for f
-> [eva] Done for function f
-diff tests/value/oracle/fun_ptr.1.res.oracle tests/value/oracle_apron/fun_ptr.1.res.oracle
-43c43,46
-< [eva] tests/value/fun_ptr.i:33: Reusing old results for call to f
----
-> [eva] computing for function f <- test2 <- main.
->   Called from tests/value/fun_ptr.i:33.
-> [eva] Recording results for f
-> [eva] Done for function f
-diff tests/value/oracle/gauges.res.oracle tests/value/oracle_apron/gauges.res.oracle
-38,39d37
-< [eva:alarm] tests/value/gauges.c:26: Warning: 
-<   signed overflow. assert l + 1 ≤ 2147483647;
-70,71d67
-< [eva:alarm] tests/value/gauges.c:48: Warning: 
-<   signed overflow. assert l + 1 ≤ 2147483647;
-113,114d108
-< [eva:alarm] tests/value/gauges.c:81: Warning: 
-<   signed overflow. assert k + 1 ≤ 2147483647;
-116,117d109
-< [eva:alarm] tests/value/gauges.c:84: Warning: 
-<   signed overflow. assert k + 1 ≤ 2147483647;
-123a116,117
-> [eva:alarm] tests/value/gauges.c:81: Warning: 
->   signed overflow. assert k + 1 ≤ 2147483647;
-125c119,121
-< [eva] tests/value/gauges.c:86: Frama_C_show_each: [0..2147483647]
----
-> [eva:alarm] tests/value/gauges.c:84: Warning: 
->   signed overflow. assert k + 1 ≤ 2147483647;
-> [eva] tests/value/gauges.c:86: Frama_C_show_each: [15..2147483647]
-139,140d134
-< [eva:alarm] tests/value/gauges.c:99: Warning: 
-<   signed overflow. assert c + 1 ≤ 2147483647;
-187,188d180
-< [eva:alarm] tests/value/gauges.c:140: Warning: 
-<   signed overflow. assert j + 1 ≤ 2147483647;
-303,304d294
-< [eva:alarm] tests/value/gauges.c:220: Warning: 
-<   signed overflow. assert -2147483648 ≤ n - 1;
-319,320d308
-< [eva:alarm] tests/value/gauges.c:240: Warning: 
-<   signed overflow. assert j + 1 ≤ 2147483647;
-322c310
-<   Frama_C_show_each: {45; 46; 47; 48; 49; 50; 51}, [0..2147483647]
----
->   Frama_C_show_each: {45; 46; 47; 48; 49; 50; 51}, [0..46]
-328,329d315
-< [eva:alarm] tests/value/gauges.c:251: Warning: 
-<   signed overflow. assert j + 1 ≤ 2147483647;
-331c317
-<   Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, [0..2147483647]
----
->   Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, [0..49]
-337,338d322
-< [eva:alarm] tests/value/gauges.c:263: Warning: 
-<   signed overflow. assert j + 1 ≤ 2147483647;
-340c324
-<   Frama_C_show_each: {-59; -58; -57; -56; -55; -54; -53}, [0..2147483647]
----
->   Frama_C_show_each: {-59; -58; -57; -56; -55; -54; -53}, [0..65]
-346,347d329
-< [eva:alarm] tests/value/gauges.c:274: Warning: 
-<   signed overflow. assert j + 1 ≤ 2147483647;
-349c331
-<   Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, [0..2147483647]
----
->   Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, [0..70]
-357,358d338
-< [eva:alarm] tests/value/gauges.c:293: Warning: 
-<   signed overflow. assert j + 1 ≤ 2147483647;
-360c340
-<   Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..2147483647]
----
->   Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..598]
-802c782
-<   n ∈ [-2147483648..99]
----
->   n ∈ [-2147483547..99]
-805c785
-<   i ∈ [0..2147483647]
----
->   i ∈ [10..2147483647]
-841c821
-<   i ∈ [0..2147483647]
----
->   i ∈ [0..21]
-diff tests/value/oracle/ghost.res.oracle tests/value/oracle_apron/ghost.res.oracle
-10,11d9
-< [eva:alarm] tests/value/ghost.i:17: Warning: 
-<   signed overflow. assert G + 1 ≤ 2147483647;
-diff tests/value/oracle/hierarchical_convergence.res.oracle tests/value/oracle_apron/hierarchical_convergence.res.oracle
-40c40
-<   j ∈ [0..2147483647]
----
->   j ∈ [0..99]
-diff tests/value/oracle/initialized_copy.1.res.oracle tests/value/oracle_apron/initialized_copy.1.res.oracle
-24,27c24
-<   c_0[bits 0 to 7] ∈ {1} or UNINITIALIZED
-<      [bits 8 to 15] ∈ {2}
-<      [bits 16 to 23] ∈ {3}
-<      [bits 24 to 31] ∈ {4}
----
->   c_0 ∈ {67305985} or UNINITIALIZED
-29,32c26
-<   a_2[bits 0 to 7] ∈ {1} or UNINITIALIZED
-<      [bits 8 to 15] ∈ {2}
-<      [bits 16 to 23] ∈ {3}
-<      [bits 24 to 31] ∈ {4}
----
->   a_2 ∈ {67305985} or UNINITIALIZED
-diff tests/value/oracle/invalid_loc_return.res.oracle tests/value/oracle_apron/invalid_loc_return.res.oracle
-70c70,73
-< [eva] tests/value/invalid_loc_return.i:17: Reusing old results for call to foo
----
-> [eva] computing for function foo <- main <- main2.
->   Called from tests/value/invalid_loc_return.i:17.
-> [eva] Recording results for foo
-> [eva] Done for function foo
-diff tests/value/oracle/local.res.oracle tests/value/oracle_apron/local.res.oracle
-22c22,25
-< [eva] tests/value/local.i:13: Reusing old results for call to f
----
-> [eva] computing for function f <- g <- main.
->   Called from tests/value/local.i:13.
-> [eva] Recording results for f
-> [eva] Done for function f
-diff tests/value/oracle/local_slevel.res.oracle tests/value/oracle_apron/local_slevel.res.oracle
-13,15c13,15
-< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1}
-< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0; 1}
-< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1; 2}
----
-> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
-> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0}
-> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
-18c18
-<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3}
----
->   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3}
-22c22
-<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3; 4}
----
->   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3; 4}
-26,34c26
-<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483647]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483647]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483648]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483648]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {1}, [1..79],1%2, [0..4294967295]
----
->   Frama_C_show_each: {1}, [1..79],1%2, [1..79]
-36c28
-<   Frama_C_show_each: {-1}, [0..78],0%2, [0..4294967295]
----
->   Frama_C_show_each: {-1}, [0..78],0%2, [0..78]
-152c144
-<   r ∈ [--..--]
----
->   r ∈ [0..2147483647]
-393,395c385,387
-< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1}
-< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0; 1}
-< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1; 2}
----
-> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
-> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0}
-> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
-398c390
-<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3}
----
->   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3}
-402c394
-<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3; 4}
----
->   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3; 4}
-406,414c398
-<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483647]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483647]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483648]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483648]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {1}, [1..79],1%2, [0..4294967295]
----
->   Frama_C_show_each: {1}, [1..79],1%2, [1..79]
-416c400
-<   Frama_C_show_each: {-1}, [0..78],0%2, [0..4294967295]
----
->   Frama_C_show_each: {-1}, [0..78],0%2, [0..78]
-532c516
-<   r ∈ [--..--]
----
->   r ∈ [0..2147483647]
-diff tests/value/oracle/logicdeps.res.oracle tests/value/oracle_apron/logicdeps.res.oracle
-31c31,39
-< [eva] tests/value/logicdeps.i:25: Reusing old results for call to g
----
-> [eva] computing for function g <- main.
->   Called from tests/value/logicdeps.i:25.
-> [eva] computing for function f <- g <- main.
->   Called from tests/value/logicdeps.i:13.
-> [eva] Done for function f
-> [eva] Recording results for g
-> [from] Computing for function g
-> [from] Done for function g
-> [eva] Done for function g
-51c59,67
-< [eva] tests/value/logicdeps.i:32: Reusing old results for call to g
----
-> [eva] computing for function g <- main.
->   Called from tests/value/logicdeps.i:32.
-> [eva] computing for function f <- g <- main.
->   Called from tests/value/logicdeps.i:13.
-> [eva] Done for function f
-> [eva] Recording results for g
-> [from] Computing for function g
-> [from] Done for function g
-> [eva] Done for function g
-diff tests/value/oracle/long.res.oracle tests/value/oracle_apron/long.res.oracle
-15,17c15,26
-< [eva] tests/value/long.i:12: Reusing old results for call to f
-< [eva] tests/value/long.i:12: Reusing old results for call to f
-< [eva] tests/value/long.i:12: Reusing old results for call to f
----
-> [eva] computing for function f <- main.
->   Called from tests/value/long.i:12.
-> [eva] Recording results for f
-> [eva] Done for function f
-> [eva] computing for function f <- main.
->   Called from tests/value/long.i:12.
-> [eva] Recording results for f
-> [eva] Done for function f
-> [eva] computing for function f <- main.
->   Called from tests/value/long.i:12.
-> [eva] Recording results for f
-> [eva] Done for function f
-diff tests/value/oracle/long_const.0.res.oracle tests/value/oracle_apron/long_const.0.res.oracle
-19c19,22
-< [eva] tests/value/long_const.i:25: Reusing old results for call to LL_ABS
----
-> [eva] computing for function LL_ABS <- div64 <- main.
->   Called from tests/value/long_const.i:25.
-> [eva] Recording results for LL_ABS
-> [eva] Done for function LL_ABS
-diff tests/value/oracle/long_const.1.res.oracle tests/value/oracle_apron/long_const.1.res.oracle
-19c19,22
-< [eva] tests/value/long_const.i:25: Reusing old results for call to LL_ABS
----
-> [eva] computing for function LL_ABS <- div64 <- main.
->   Called from tests/value/long_const.i:25.
-> [eva] Recording results for LL_ABS
-> [eva] Done for function LL_ABS
-diff tests/value/oracle/loop_wvar.1.res.oracle tests/value/oracle_apron/loop_wvar.1.res.oracle
-12,13d11
-< [eva:alarm] tests/value/loop_wvar.i:57: Warning: 
-<   signed overflow. assert next + 1 ≤ 2147483647;
-27,28c25
-< [eva] tests/value/loop_wvar.i:71: Frama_C_show_each: [0..9], [0..17], [0..11]
-< [eva] tests/value/loop_wvar.i:71: Frama_C_show_each: [0..9], [0..18], [0..12]
----
-> [eva] tests/value/loop_wvar.i:71: Frama_C_show_each: [0..9], [0..9], [0..9]
-37,38c34,35
-<   j ∈ [0..18]
-<   k ∈ [0..12]
----
->   j ∈ [0..17]
->   k ∈ [0..11]
-41c38
-<   next ∈ [0..2147483647]
----
->   next ∈ [0..25]
-diff tests/value/oracle/loopinv.res.oracle tests/value/oracle_apron/loopinv.res.oracle
-51,53c51
-< [eva:alarm] tests/value/loopinv.c:45: Warning: 
-<   signed overflow. assert j + 1 ≤ 2147483647;
-< [eva] tests/value/loopinv.c:46: Frama_C_show_each: [0..99], [0..2147483647]
----
-> [eva] tests/value/loopinv.c:46: Frama_C_show_each: [0..99], [0..100]
-134,135d131
-< [    -    ] Assertion 'Eva,signed_overflow' (file tests/value/loopinv.c, line 45)
-<             tried with Eva.
-148,149c144,145
-<      4 To be validated
-<     13 Total
----
->      3 To be validated
->     12 Total
-diff tests/value/oracle/memexec.res.oracle tests/value/oracle_apron/memexec.res.oracle
-27,32c27,50
-< [eva] tests/value/memexec.c:13: Reusing old results for call to f11
-< [eva] tests/value/memexec.c:14: Reusing old results for call to f11
-< [eva] tests/value/memexec.c:16: Reusing old results for call to f11
-< [eva] tests/value/memexec.c:18: Reusing old results for call to f11
-< [eva] tests/value/memexec.c:20: Reusing old results for call to f11
-< [eva] tests/value/memexec.c:21: Reusing old results for call to f11
----
-> [eva] computing for function f11 <- f1 <- main.
->   Called from tests/value/memexec.c:13.
-> [eva] Recording results for f11
-> [eva] Done for function f11
-> [eva] computing for function f11 <- f1 <- main.
->   Called from tests/value/memexec.c:14.
-> [eva] Recording results for f11
-> [eva] Done for function f11
-> [eva] computing for function f11 <- f1 <- main.
->   Called from tests/value/memexec.c:16.
-> [eva] Recording results for f11
-> [eva] Done for function f11
-> [eva] computing for function f11 <- f1 <- main.
->   Called from tests/value/memexec.c:18.
-> [eva] Recording results for f11
-> [eva] Done for function f11
-> [eva] computing for function f11 <- f1 <- main.
->   Called from tests/value/memexec.c:20.
-> [eva] Recording results for f11
-> [eva] Done for function f11
-> [eva] computing for function f11 <- f1 <- main.
->   Called from tests/value/memexec.c:21.
-> [eva] Recording results for f11
-> [eva] Done for function f11
-106c124,127
-< [eva] tests/value/memexec.c:113: Reusing old results for call to f5_aux
----
-> [eva] computing for function f5_aux <- f5 <- main.
->   Called from tests/value/memexec.c:113.
-> [eva] Recording results for f5_aux
-> [eva] Done for function f5_aux
-129c150,153
-< [eva] tests/value/memexec.c:137: Reusing old results for call to f7_1
----
-> [eva] computing for function f7_1 <- f7 <- main.
->   Called from tests/value/memexec.c:137.
-> [eva] Recording results for f7_1
-> [eva] Done for function f7_1
-144c168,171
-< [eva] tests/value/memexec.c:150: Reusing old results for call to f8_1
----
-> [eva] computing for function f8_1 <- f8 <- main.
->   Called from tests/value/memexec.c:150.
-> [eva] Recording results for f8_1
-> [eva] Done for function f8_1
-diff tests/value/oracle/modulo.res.oracle tests/value/oracle_apron/modulo.res.oracle
-40a41,64
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [-9..-1], [-8..0]
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [1..9], [-8..0]
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [-9..-1], [0..8]
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [1..9], [0..8]
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {-8; -7; -6; -5; -4; -3; -2; -1},
->   {1; 2; 3; 4; 5; 6; 7},
->   {-6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6}
-50a75,98
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [1..9], [-8..0]
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [-9..-1], [-8..0]
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [1..9], [0..8]
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [-9..-1], [0..8]
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {-8; -7; -6; -5; -4; -3; -2; -1},
->   {1; 2; 3; 4; 5; 6; 7},
->   {-6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6}
-60a109,110
-> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-10..10], [-9..9], [-8..8]
-> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-9..9], [-8..8], [-7..7]
-diff tests/value/oracle/octagons.res.oracle tests/value/oracle_apron/octagons.res.oracle
-270,273c270,273
-<   a ∈ [-1024..2147483647]
-<   b ∈ [-1023..2147483647]
-<   c ∈ [-1023..2147483647]
-<   d ∈ [-1032..2147483647]
----
->   a ∈ [-603..2147483646]
->   b ∈ [-602..2147483647]
->   c ∈ [-602..1446]
->   d ∈ [-611..2147483647]
-diff tests/value/oracle/offsetmap.0.res.oracle tests/value/oracle_apron/offsetmap.0.res.oracle
-64,65c64
-<   a[bits 0 to 7] ∈ {1; 6}
-<    [bits 8 to 31]# ∈ {6}%32, bits 8 to 31 
----
->   a ∈ {1; 6}
-67,68c66
-<   a7[bits 0 to 7] ∈ {1}
-<     [bits 8 to 31]# ∈ {97}%32, bits 8 to 31 
----
->   a7 ∈ {1}
-108,109c106
-<   a[bits 0 to 7] ∈ {1; 6}
-<    [bits 8 to 31]# ∈ {6}%32, bits 8 to 31 
----
->   a ∈ {1; 6}
-111,112c108
-<   a7[bits 0 to 7] ∈ {1}
-<     [bits 8 to 31]# ∈ {97}%32, bits 8 to 31 
----
->   a7 ∈ {1}
-diff tests/value/oracle/offsetmap.1.res.oracle tests/value/oracle_apron/offsetmap.1.res.oracle
-64,69c64,66
-<   a[bits 0 to 7] ∈ {1; 6}
-<    [bits 8 to 31]# ∈ {6}%32, bits 8 to 31 
-<   b[bits 0 to 7] ∈ {0; 1}
-<    [bits 8 to 31]# ∈ {0; 6}%32, bits 8 to 31 
-<   a7[bits 0 to 7] ∈ {1}
-<     [bits 8 to 31]# ∈ {97}%32, bits 8 to 31 
----
->   a ∈ {1; 6}
->   b ∈ {0; 1}
->   a7 ∈ {1}
-109,114c106,108
-<   a[bits 0 to 7] ∈ {1; 6}
-<    [bits 8 to 31]# ∈ {6}%32, bits 8 to 31 
-<   b[bits 0 to 7] ∈ {0; 1}
-<    [bits 8 to 31]# ∈ {0; 6}%32, bits 8 to 31 
-<   a7[bits 0 to 7] ∈ {1}
-<     [bits 8 to 31]# ∈ {97}%32, bits 8 to 31 
----
->   a ∈ {1; 6}
->   b ∈ {0; 1}
->   a7 ∈ {1}
-diff tests/value/oracle/partitioning-annots.4.res.oracle tests/value/oracle_apron/partitioning-annots.4.res.oracle
-15,16d14
-< [eva:alarm] tests/value/partitioning-annots.c:138: Warning: 
-<   division by zero. assert j ≢ 0;
-diff tests/value/oracle/precise_locations.res.oracle tests/value/oracle_apron/precise_locations.res.oracle
-32,35c32,47
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
----
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-37,42c49,72
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
----
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-520,529c550,589
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
-< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
----
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-> [eva] computing for function ct <- main.
->   Called from tests/value/precise_locations.i:39.
-> [eva] Recording results for ct
-> [eva] Done for function ct
-diff tests/value/oracle/precond.res.oracle tests/value/oracle_apron/precond.res.oracle
-49a50,51
-> [eva] computing for function f <- main.
->   Called from tests/value/precond.c:39.
-53c55,56
-< [eva] tests/value/precond.c:39: Reusing old results for call to f
----
-> [eva] Recording results for f
-> [eva] Done for function f
-diff tests/value/oracle/ptr_relation.1.res.oracle tests/value/oracle_apron/ptr_relation.1.res.oracle
-24c24
-<   j ∈ {-1; 0; 1}
----
->   j ∈ {0}
-diff tests/value/oracle/raz.res.oracle tests/value/oracle_apron/raz.res.oracle
-14c14
-<   i ∈ [0..2147483647]
----
->   i ∈ [0..10]
-diff tests/value/oracle/reevaluate_alarms.res.oracle tests/value/oracle_apron/reevaluate_alarms.res.oracle
-61c61
-<   S ∈ [0..2147483647]
----
->   S ∈ [4..2147483647]
-diff tests/value/oracle/relation_reduction.res.oracle tests/value/oracle_apron/relation_reduction.res.oracle
-24,27d23
-< [eva:alarm] tests/value/relation_reduction.i:20: Warning: 
-<   accessing out of bounds index. assert 0 ≤ y;
-< [eva:alarm] tests/value/relation_reduction.i:20: Warning: 
-<   accessing out of bounds index. assert y < 9;
-34,37c30,33
-<   R1 ∈ [-2147483648..2147483637]
-<   R2 ∈ [-2147483638..2147483647]
-<   R3 ∈ [--..--]
-<   R4 ∈ {0; 1; 2; 3; 4; 5}
----
->   R1 ∈ {0; 2}
->   R2 ∈ {0; 12}
->   R3 ∈ {0; 7}
->   R4 ∈ {0; 2}
-diff tests/value/oracle/relation_shift.res.oracle tests/value/oracle_apron/relation_shift.res.oracle
-31,32c31,32
-<   r1 ∈ [--..--]
-<   r2 ∈ [--..--]
----
->   r1 ∈ {2}
->   r2 ∈ {7}
-35,37c35,37
-<   x ∈ [-2147483647..2147483647]
-<   y ∈ [-2147483648..2147483646]
-<   z ∈ [-2147483642..2147483647]
----
->   x ∈ [-2147483646..2147483642]
->   y ∈ [-2147483648..2147483640]
->   z ∈ [-2147483641..2147483647]
-49,50c49,50
-<   r1 ∈ [--..--]
-<   r2 ∈ [--..--]
----
->   r1 ∈ {2}
->   r2 ∈ {7}
-53,55c53,55
-<   x ∈ [-2147483647..2147483647]
-<   y ∈ [-2147483648..2147483646]
-<   z ∈ [-2147483642..2147483647]
----
->   x ∈ [-2147483646..2147483642]
->   y ∈ [-2147483648..2147483640]
->   z ∈ [-2147483641..2147483647]
-diff tests/value/oracle/relations.res.oracle tests/value/oracle_apron/relations.res.oracle
-80,81c80,82
-<   e ∈ [--..--]
-<   f ∈ [--..--]
----
->   e ∈ {1}
->   f[bits 0 to 7] ∈ {1; 4}
->    [bits 8 to 31] ∈ [--..--]
-diff tests/value/oracle/relations2.res.oracle tests/value/oracle_apron/relations2.res.oracle
-25c25
-<   len ∈ [--..--]
----
->   len ∈ [0..1023]
-36,37c36
-< [eva] tests/value/relations2.i:17: 
-<   Frama_C_show_each_end: [0..4294967295], [0..64]
----
-> [eva] tests/value/relations2.i:17: Frama_C_show_each_end: [0..1023], [0..64]
-69,71d67
-< [eva:alarm] tests/value/relations2.i:34: Warning: 
-<   accessing out of bounds index.
-<   assert (unsigned int)(i - (unsigned int)(t + 1)) < 514;
-124,125d119
-< [eva:alarm] tests/value/relations2.i:35: Warning: 
-<   signed overflow. assert s + b3 ≤ 2147483647;
-140c134
-<   len ∈ [--..--]
----
->   len ∈ [0..1023]
-diff tests/value/oracle/return.res.oracle tests/value/oracle_apron/return.res.oracle
-12c12,15
-< [eva] tests/value/return.i:19: Reusing old results for call to f
----
-> [eva] computing for function f <- main.
->   Called from tests/value/return.i:19.
-> [eva] Recording results for f
-> [eva] Done for function f
-diff tests/value/oracle/static.res.oracle tests/value/oracle_apron/static.res.oracle
-22c22,25
-< [eva] tests/value/static.i:20: Reusing old results for call to f
----
-> [eva] computing for function f <- main.
->   Called from tests/value/static.i:20.
-> [eva] Recording results for f
-> [eva] Done for function f
-diff tests/value/oracle/struct2.res.oracle tests/value/oracle_apron/struct2.res.oracle
-81,84d80
-<   accessing out of bounds index. assert 0 ≤ (int)(i + j);
-< [eva:alarm] tests/value/struct2.i:185: Warning: 
-<   accessing out of bounds index. assert (int)(i + j) < 2;
-< [eva:alarm] tests/value/struct2.i:185: Warning: 
-106d101
-< [scope:rm_asserts] removing 2 assertion(s)
-diff tests/value/oracle/test.0.res.oracle tests/value/oracle_apron/test.0.res.oracle
-29c29
-<   j ∈ [-1073741822..1]
----
->   j ∈ {-1; 0; 1}
-diff tests/value/oracle/undefined_sequence.1.res.oracle tests/value/oracle_apron/undefined_sequence.1.res.oracle
-33c33,36
-< [eva] tests/value/undefined_sequence.i:54: Reusing old results for call to g
----
-> [eva] computing for function g <- main.
->   Called from tests/value/undefined_sequence.i:54.
-> [eva] Recording results for g
-> [eva] Done for function g
-Only in tests/value/oracle: unit_tests.res.oracle
-diff tests/value/oracle/unroll.res.oracle tests/value/oracle_apron/unroll.res.oracle
-13,14d12
-< [eva:alarm] tests/value/unroll.i:34: Warning: 
-<   signed overflow. assert -2147483648 ≤ j - 1;
-26c24
-<   j ∈ [-2147483648..-123]
----
->   j ∈ {-238}
-diff tests/value/oracle/unroll_simple.res.oracle tests/value/oracle_apron/unroll_simple.res.oracle
-8,9d7
-< [eva:alarm] tests/value/unroll_simple.i:11: Warning: 
-<   signed overflow. assert -2147483648 ≤ j - 1;
-21c19
-<   j ∈ [-2147483648..-126]
----
->   j ∈ {-250}
-diff tests/value/oracle/widen_on_non_monotonic.res.oracle tests/value/oracle_apron/widen_on_non_monotonic.res.oracle
-25a26
-> [eva] tests/value/widen_on_non_monotonic.i:21: starting to merge loop iterations
-diff tests/value/oracle/with_comment.res.oracle tests/value/oracle_apron/with_comment.res.oracle
-9,10d8
-< [eva:alarm] tests/value/with_comment.i:21: Warning: 
-<   signed overflow. assert G + 1 ≤ 2147483647;
diff --git a/tests/value/diff_bitwise b/tests/value/diff_bitwise
deleted file mode 100644
index 7ef9494da776c8a2e342d1f3be2eacc46a36d1e6..0000000000000000000000000000000000000000
--- a/tests/value/diff_bitwise
+++ /dev/null
@@ -1,54 +0,0 @@
-diff tests/value/oracle/addition.res.oracle tests/value/oracle_bitwise/addition.res.oracle
-121,123c121
-< [eva] tests/value/addition.i:52: 
-<   Assigning imprecise value to p10.
-<   The imprecision originates from Arithmetic {tests/value/addition.i:52}
----
-> [eva] tests/value/addition.i:52: Assigning imprecise value to p10.
-163a162
->   {{ garbled mix of &{p1} (origin: Misaligned {tests/value/addition.i:52}) }}
-165a165
->   {{ garbled mix of &{p2} (origin: Misaligned {tests/value/addition.i:56}) }}
-201,203c201
-<   p10 ∈
-<      {{ garbled mix of &{p1}
-<       (origin: Arithmetic {tests/value/addition.i:52}) }}
----
->   p10 ∈ {{ garbled mix of &{p1} }}
-428a427
->   {{ garbled mix of &{p1} (origin: Misaligned {tests/value/addition.i:52}) }}
-467,469c466
-<   p10 ∈
-<      {{ garbled mix of &{p1}
-<       (origin: Arithmetic {tests/value/addition.i:52}) }}
----
->   p10 ∈ {{ garbled mix of &{p1} }}
-diff tests/value/oracle/bitwise.res.oracle tests/value/oracle_bitwise/bitwise.res.oracle
-98c98,101
-< [eva] tests/value/bitwise.i:158: Frama_C_show_each_dead: {0}
----
-> [eva] tests/value/bitwise.i:156: 
->   The evaluation of the expression x & 2
->   led to bottom without alarms:
->   at this point the product of states has no possible concretization.
-diff tests/value/oracle/bitwise_pointer.res.oracle tests/value/oracle_bitwise/bitwise_pointer.res.oracle
-34,36c34
-< [eva] tests/value/bitwise_pointer.i:18: 
-<   Assigning imprecise value to p.
-<   The imprecision originates from Arithmetic {tests/value/bitwise_pointer.i:18}
----
-> [eva] tests/value/bitwise_pointer.i:18: Assigning imprecise value to p.
-41,43c39
-< [eva] tests/value/bitwise_pointer.i:22: 
-<   Assigning imprecise value to p1.
-<   The imprecision originates from Arithmetic {tests/value/bitwise_pointer.i:22}
----
-> [eva] tests/value/bitwise_pointer.i:22: Assigning imprecise value to p1.
-diff tests/value/oracle/logic_ptr_cast.res.oracle tests/value/oracle_bitwise/logic_ptr_cast.res.oracle
-8,10c8
-< [eva] tests/value/logic_ptr_cast.i:8: 
-<   Assigning imprecise value to p.
-<   The imprecision originates from Arithmetic {tests/value/logic_ptr_cast.i:8}
----
-> [eva] tests/value/logic_ptr_cast.i:8: Assigning imprecise value to p.
-Only in tests/value/oracle: unit_tests.res.oracle
diff --git a/tests/value/diff_equalities b/tests/value/diff_equalities
deleted file mode 100644
index f07475f33aa61831526cdf8a686726438a8e2707..0000000000000000000000000000000000000000
--- a/tests/value/diff_equalities
+++ /dev/null
@@ -1,870 +0,0 @@
-diff tests/value/oracle/CruiseControl.res.oracle tests/value/oracle_equalities/CruiseControl.res.oracle
-980c980
-<        [0]._C4_ThrottleCmd._I0_Regul_ON ∈ {0; 1}
----
->        [0]._C4_ThrottleCmd._I0_Regul_ON ∈ {1}
-1018c1018
-<        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._C0_SaturateThrottle{._I0_ThrottleIn; ._O0_ThrottleOut} ∈
----
->        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._C0_SaturateThrottle._I0_ThrottleIn ∈
-1019a1020,1021
->        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._C0_SaturateThrottle._O0_ThrottleOut ∈
->        [-0.0000000000000000 .. 1.9999998807907104*2^127]
-1033c1035
-<        [-1.9999998807907104*2^127 .. 1.9999998807907104*2^127]
----
->        [-0.0000000000000000 .. 1.9999998807907104*2^127]
-1218c1220
-<        [0]._C4_ThrottleCmd._I0_Regul_ON ∈ {0; 1}
----
->        [0]._C4_ThrottleCmd._I0_Regul_ON ∈ {1}
-1230c1232,1236
-<        [0]._C4_ThrottleCmd._C0_ThrottleRegulation{._I1_CruiseSpeed; ._I2_VehiculeSpeed; ._O0_Throttle; ._L1_CruiseControl; ._L2_CruiseControl; ._L3_CruiseControl} ∈
----
->        [0]._C4_ThrottleCmd._C0_ThrottleRegulation{._I1_CruiseSpeed; ._I2_VehiculeSpeed} ∈
->        [-1.9999998807907104*2^127 .. 1.9999998807907104*2^127]
->        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._O0_Throttle ∈
->        [-0.0000000000000000 .. 1.9999998807907104*2^127]
->        [0]._C4_ThrottleCmd._C0_ThrottleRegulation{._L1_CruiseControl; ._L2_CruiseControl; ._L3_CruiseControl} ∈
-1248c1254
-<        [0]._C4_ThrottleCmd._C0_ThrottleRegulation{._L4_CruiseControl; ._L13_CruiseControl} ∈
----
->        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._L4_CruiseControl ∈
-1249a1256,1257
->        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._L13_CruiseControl ∈
->        [-0.0000000000000000 .. 1.9999998807907104*2^127]
-1256c1264
-<        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._C0_SaturateThrottle{._I0_ThrottleIn; ._O0_ThrottleOut} ∈
----
->        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._C0_SaturateThrottle._I0_ThrottleIn ∈
-1257a1266,1267
->        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._C0_SaturateThrottle._O0_ThrottleOut ∈
->        [-0.0000000000000000 .. 1.9999998807907104*2^127]
-1271c1281
-<        [-1.9999998807907104*2^127 .. 1.9999998807907104*2^127]
----
->        [-0.0000000000000000 .. 1.9999998807907104*2^127]
-diff tests/value/oracle/addition.res.oracle tests/value/oracle_equalities/addition.res.oracle
-138,141d137
-< [eva:alarm] tests/value/addition.i:61: Warning: 
-<   signed overflow. assert -2147483648 ≤ (int)*((char *)(&q1)) + 2;
-< [eva:alarm] tests/value/addition.i:61: Warning: 
-<   signed overflow. assert (int)*((char *)(&q1)) + 2 ≤ 2147483647;
-168c164
-< [scope:rm_asserts] removing 9 assertion(s)
----
-> [scope:rm_asserts] removing 7 assertion(s)
-407,410d402
-< [eva:alarm] tests/value/addition.i:61: Warning: 
-<   signed overflow. assert -2147483648 ≤ (int)*((char *)(&q1)) + 2;
-< [eva:alarm] tests/value/addition.i:61: Warning: 
-<   signed overflow. assert (int)*((char *)(&q1)) + 2 ≤ 2147483647;
-433c425
-< [scope:rm_asserts] removing 9 assertion(s)
----
-> [scope:rm_asserts] removing 7 assertion(s)
-diff tests/value/oracle/alias.0.res.oracle tests/value/oracle_equalities/alias.0.res.oracle
-103,104c103,104
-<   t ∈ {1; 2; 4}
-<   u ∈ {2; 3; 4; 5}
----
->   t ∈ {4}
->   u ∈ {5}
-110c110
-<   t2 ∈ {0; 3; 6}
----
->   t2 ∈ {6}
-diff tests/value/oracle/alias.1.res.oracle tests/value/oracle_equalities/alias.1.res.oracle
-85c85
-<   z ∈ {0; 1; 2}
----
->   z ∈ {0; 2}
-87,88c87,88
-<   v2 ∈ {-1; 0; 1; 2; 3; 4}
-<   PTR1 ∈ {{ &p2{[0], [1], [2]} }}
----
->   v2 ∈ {0; 1; 2}
->   PTR1 ∈ {{ &p2{[0], [1]} }}
-90c90
-<   PTR3 ∈ {{ &p2{[1], [2], [4]} }}
----
->   PTR3 ∈ {{ &p2{[1], [2]} }}
-110c110
-<   t2 FROM p2[0..2]; c
----
->   t2 FROM p2[0..1]; c
-diff tests/value/oracle/alias.2.res.oracle tests/value/oracle_equalities/alias.2.res.oracle
-76c76
-<   z ∈ {-5; -4; -3; -2; -1; 0; 1; 1000}
----
->   z ∈ {-2; -1; 0; 1000}
-diff tests/value/oracle/alias.3.res.oracle tests/value/oracle_equalities/alias.3.res.oracle
-67c67
-<   z ∈ {0; 1; 2}
----
->   z ∈ {0; 2}
-diff tests/value/oracle/alias.4.res.oracle tests/value/oracle_equalities/alias.4.res.oracle
-81c81
-<   y ∈ {0; 3; 77}
----
->   y ∈ {77}
-diff tests/value/oracle/alias.5.res.oracle tests/value/oracle_equalities/alias.5.res.oracle
-59a60
-> [eva] tests/value/alias.i:260: starting to merge loop iterations
-170c171
-<   y ∈ {0; 3; 77}
----
->   y ∈ {77}
-diff tests/value/oracle/alias.6.res.oracle tests/value/oracle_equalities/alias.6.res.oracle
-86c86
-<   x ∈ {0; 4; 33}
----
->   x ∈ {33}
-diff tests/value/oracle/auto_loop_unroll.0.res.oracle tests/value/oracle_equalities/auto_loop_unroll.0.res.oracle
-81c81,84
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-90c93,96
-< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
----
-> [eva] computing for function incr <- various_loops <- main.
->   Called from tests/value/auto_loop_unroll.c:101.
-> [eva] Recording results for incr
-> [eva] Done for function incr
-diff tests/value/oracle/backward_add_ptr.res.oracle tests/value/oracle_equalities/backward_add_ptr.res.oracle
-12c12
-<   Frama_C_show_each_only_a: {0; 1}, {{ &a }}, {0}
----
->   Frama_C_show_each_only_a: {0}, {{ &a }}, {0}
-93c93,96
-< [eva] tests/value/backward_add_ptr.c:110: Reusing old results for call to gm
----
-> [eva] computing for function gm <- main3 <- main.
->   Called from tests/value/backward_add_ptr.c:110.
-> [eva] Recording results for gm
-> [eva] Done for function gm
-107c110,113
-< [eva] tests/value/backward_add_ptr.c:125: Reusing old results for call to gm
----
-> [eva] computing for function gm <- main3 <- main.
->   Called from tests/value/backward_add_ptr.c:125.
-> [eva] Recording results for gm
-> [eva] Done for function gm
-119c125
-<   (origin: Arithmetic {tests/value/backward_add_ptr.c:68}) }},
----
->   (origin: Arithmetic Bottom) }},
-157,160c163,167
-<   {{ garbled mix of &{b}
-<   (origin: Arithmetic {tests/value/backward_add_ptr.c:68}) }},
-<   [0..4294967295]
-< [eva] tests/value/backward_add_ptr.c:160: Reusing old results for call to gm
----
->   {{ garbled mix of &{b} (origin: Arithmetic Bottom) }}, [0..4294967295]
-> [eva] computing for function gm <- main4 <- main.
->   Called from tests/value/backward_add_ptr.c:160.
-> [eva] Recording results for gm
-> [eva] Done for function gm
-178c185
-<   (origin: Arithmetic {tests/value/backward_add_ptr.c:68}) }},
----
->   (origin: Arithmetic Bottom) }},
-180c187
-<   (origin: Arithmetic {tests/value/backward_add_ptr.c:68}) }}
----
->   (origin: Arithmetic Bottom) }}
-188c195
-<   (origin: Arithmetic {tests/value/backward_add_ptr.c:68}) }}
----
->   (origin: Arithmetic Bottom) }}
-194c201
-<   (origin: Arithmetic {tests/value/backward_add_ptr.c:68}) }},
----
->   (origin: Arithmetic Bottom) }},
-211a219,222
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:33}) }}
->   {{ garbled mix of &{a}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:33}) }}
->   {{ garbled mix of &{b}
-232a244,245
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:106}) }}
-234a248,251
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:107}) }}
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:115}) }}
-238c255,257
-<     (origin: Arithmetic {tests/value/backward_add_ptr.c:115}) }}
----
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:116}) }}
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:121}) }}
-240a260,263
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:122}) }}
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:130}) }}
-242a266,267
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:136}) }}
-245a271,272
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:137}) }}
->   {{ garbled mix of &{a; b}
-246a274,275
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:145}) }}
-248a278,285
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:150}) }}
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:151}) }}
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:156}) }}
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:157}) }}
-250a288,311
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:165}) }}
->   {{ garbled mix of &{b; c}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:165}) }}
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:166}) }}
->   {{ garbled mix of &{b; c}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:166}) }}
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:171}) }}
->   {{ garbled mix of &{b; c}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:171}) }}
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:172}) }}
->   {{ garbled mix of &{b; c}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:172}) }}
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:177}) }}
->   {{ garbled mix of &{b; c}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:177}) }}
->   {{ garbled mix of &{a; b}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:178}) }}
->   {{ garbled mix of &{b; c}
->     (origin: Arithmetic {tests/value/backward_add_ptr.c:178}) }}
-diff tests/value/oracle/bitfield.res.oracle tests/value/oracle_equalities/bitfield.res.oracle
-138a139,141
-> [eva] tests/value/bitfield.i:71: 
->   Frama_C_show_each:
->   {{ garbled mix of &{b} (origin: Misaligned {tests/value/bitfield.i:70}) }}
-diff tests/value/oracle/bitwise_pointer.res.oracle tests/value/oracle_equalities/bitwise_pointer.res.oracle
-62c62
-<   x ∈ [0..9]
----
->   x ∈ {5}
-75c75
-<   x1 ∈ [0..9]
----
->   x1 ∈ {5}
-diff tests/value/oracle/call_simple.res.oracle tests/value/oracle_equalities/call_simple.res.oracle
-28c28
-<   c ∈ [--..--]
----
->   c ∈ [-2147483648..2147483646]
-diff tests/value/oracle/case_analysis.res.oracle tests/value/oracle_equalities/case_analysis.res.oracle
-11a12,15
-> [eva] tests/value/case_analysis.i:18: 
->   The evaluation of the expression r * r
->   led to bottom without alarms:
->   at this point the product of states has no possible concretization.
-18c22
-<   rq ∈ [-0.0000000000000000 .. 100.0000000000000000]
----
->   rq ∈ [0.0000000000000000 .. 100.0000000000000000]
-diff tests/value/oracle/descending.res.oracle tests/value/oracle_equalities/descending.res.oracle
-42c42
-<   i ∈ {31; 32}
----
->   i ∈ {31}
-diff tests/value/oracle/domains_function.res.oracle tests/value/oracle_equalities/domains_function.res.oracle
-19,20c19
-< [eva] tests/value/domains_function.c:92: 
-<   Frama_C_show_each_top: [-2147483648..2147483647]
----
-> [eva] tests/value/domains_function.c:92: Frama_C_show_each_top: {3}
-28,29c27
-< [eva] tests/value/domains_function.c:77: 
-<   Frama_C_show_each_top: [-2147483648..2147483647]
----
-> [eva] tests/value/domains_function.c:77: Frama_C_show_each_top: {1}
-32,33c30
-< [eva] tests/value/domains_function.c:96: 
-<   Frama_C_show_each_top: [-2147483648..2147483647]
----
-> [eva] tests/value/domains_function.c:96: Frama_C_show_each_top: {1}
-36,37c33
-< [eva] tests/value/domains_function.c:84: 
-<   Frama_C_show_each_top: [-2147483648..2147483647]
----
-> [eva] tests/value/domains_function.c:84: Frama_C_show_each_top: {2}
-40,41c36
-< [eva] tests/value/domains_function.c:98: 
-<   Frama_C_show_each_top: [-2147483648..2147483647]
----
-> [eva] tests/value/domains_function.c:98: Frama_C_show_each_top: {2}
-60,61c55
-< [eva] tests/value/domains_function.c:84: 
-<   Frama_C_show_each_top: [-2147483648..2147483647]
----
-> [eva] tests/value/domains_function.c:84: Frama_C_show_each_top: {2}
-64,65c58
-< [eva] tests/value/domains_function.c:113: 
-<   Frama_C_show_each_top: [-2147483648..2147483647]
----
-> [eva] tests/value/domains_function.c:113: Frama_C_show_each_top: {2}
-78,79c71
-< [eva] tests/value/domains_function.c:55: 
-<   Frama_C_show_each_top: [-2147483648..2147483647]
----
-> [eva] tests/value/domains_function.c:55: Frama_C_show_each_top: {42}
-108,109c100
-< [eva] tests/value/domains_function.c:64: 
-<   Frama_C_show_each_top: [-2147483648..2147483647]
----
-> [eva] tests/value/domains_function.c:64: Frama_C_show_each_top: {42}
-116c107
-<   result ∈ [--..--]
----
->   result ∈ {2}
-130c121
-<   result ∈ [--..--]
----
->   result ∈ {1}
-135c126
-<   result ∈ [--..--]
----
->   result ∈ {2}
-138c129
-<   result ∈ [--..--]
----
->   result ∈ {2}
-diff tests/value/oracle/downcast.2.res.oracle tests/value/oracle_equalities/downcast.2.res.oracle
-114c114
-<   ux ∈ [--..--]
----
->   ux ∈ [0..65535]
-157c157
-<   ux ∈ [--..--]
----
->   ux ∈ [0..65535]
-diff tests/value/oracle/fptr.1.res.oracle tests/value/oracle_equalities/fptr.1.res.oracle
-55,57d54
-< [eva] tests/value/fptr.i:67: 
-<   Frama_C_show_each_F: {{ NULL + [0..4294967295] ; &h ; &hh }}
-< [eva] tests/value/fptr.i:68: Reusing old results for call to f
-69c66
-<   n ∈ {0; 1; 2}
----
->   n ∈ {0; 1}
-diff tests/value/oracle/from_call.0.res.oracle tests/value/oracle_equalities/from_call.0.res.oracle
-68c68,73
-< [eva] tests/value/from_call.i:20: Reusing old results for call to g
----
-> [eva] computing for function g <- f <- main.
->   Called from tests/value/from_call.i:20.
-> [eva] Recording results for g
-> [from] Computing for function g
-> [from] Done for function g
-> [eva] Done for function g
-78c83,88
-< [eva] tests/value/from_call.i:20: Reusing old results for call to g
----
-> [eva] computing for function g <- f <- main.
->   Called from tests/value/from_call.i:20.
-> [eva] Recording results for g
-> [from] Computing for function g
-> [from] Done for function g
-> [eva] Done for function g
-diff tests/value/oracle/from_call.1.res.oracle tests/value/oracle_equalities/from_call.1.res.oracle
-64c64,67
-< [eva] tests/value/from_call.i:20: Reusing old results for call to g
----
-> [eva] computing for function g <- f <- main.
->   Called from tests/value/from_call.i:20.
-> [eva] Recording results for g
-> [eva] Done for function g
-72c75,78
-< [eva] tests/value/from_call.i:20: Reusing old results for call to g
----
-> [eva] computing for function g <- f <- main.
->   Called from tests/value/from_call.i:20.
-> [eva] Recording results for g
-> [eva] Done for function g
-diff tests/value/oracle/from_termin.res.oracle tests/value/oracle_equalities/from_termin.res.oracle
-9a10
-> [eva] tests/value/from_termin.i:8: starting to merge loop iterations
-diff tests/value/oracle/imprecise_invalid_write.res.oracle tests/value/oracle_equalities/imprecise_invalid_write.res.oracle
-29a30,31
-> [kernel] tests/value/imprecise_invalid_write.i:9: 
->   imprecise size for variable main1 (Undefined sizeof on a function.)
-diff tests/value/oracle/incompatible_states.res.oracle tests/value/oracle_equalities/incompatible_states.res.oracle
-14a15,18
-> [eva] tests/value/incompatible_states.c:24: 
->   The evaluation of the expression x * x
->   led to bottom without alarms:
->   at this point the product of states has no possible concretization.
-27,29c31,34
-< [eva:alarm] tests/value/incompatible_states.c:41: Warning: 
-<   accessing uninitialized left-value.
-<   assert \initialized(&t[(int)((int)(2 * i) / 2)]);
----
-> [eva] tests/value/incompatible_states.c:41: 
->   The evaluation of the expression t[(2 * i) / 2]
->   led to bottom without alarms:
->   at this point the product of states has no possible concretization.
-41,42d45
-< [eva:alarm] tests/value/incompatible_states.c:53: Warning: 
-<   division by zero. assert t[i] ≢ 0;
-47,49d49
-< [eva] tests/value/incompatible_states.c:41: 
-<   assertion 'Eva,initialization' got final status invalid.
-< [scope:rm_asserts] removing 2 assertion(s)
-55c55
-<   z ∈ [-3..100]
----
->   z ∈ {-3; -2}
-58c58
-<   t[0] ∈ {0; 1}
----
->   t[0] ∈ {0}
-diff tests/value/oracle/library.res.oracle tests/value/oracle_equalities/library.res.oracle
-129,132d128
-< [eva:alarm] tests/value/library.i:44: Warning: 
-<   non-finite float value. assert \is_finite(*pf);
-< [eva:alarm] tests/value/library.i:44: Warning: 
-<   non-finite float value. assert \is_finite(\add_float(*pf, *pf));
-diff tests/value/oracle/long_const.0.res.oracle tests/value/oracle_equalities/long_const.0.res.oracle
-19c19,22
-< [eva] tests/value/long_const.i:25: Reusing old results for call to LL_ABS
----
-> [eva] computing for function LL_ABS <- div64 <- main.
->   Called from tests/value/long_const.i:25.
-> [eva] Recording results for LL_ABS
-> [eva] Done for function LL_ABS
-diff tests/value/oracle/long_const.1.res.oracle tests/value/oracle_equalities/long_const.1.res.oracle
-19c19,22
-< [eva] tests/value/long_const.i:25: Reusing old results for call to LL_ABS
----
-> [eva] computing for function LL_ABS <- div64 <- main.
->   Called from tests/value/long_const.i:25.
-> [eva] Recording results for LL_ABS
-> [eva] Done for function LL_ABS
-diff tests/value/oracle/modulo.res.oracle tests/value/oracle_equalities/modulo.res.oracle
-40a41,119
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [-9..-1], [-8..0]
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [1..9], [-8..0]
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [-9..-1], [0..8]
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [1..9], [0..8]
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {-8; -7; -6; -5; -4; -3; -2; -1},
->   {-7; -6; -5; -4; -3; -2; -1},
->   {-6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {-8; -7; -6; -5; -4; -3; -2; -1},
->   {1; 2; 3; 4; 5; 6; 7},
->   {-6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {1; 2; 3; 4; 5; 6; 7; 8}, {1; 2; 3; 4; 5; 6; 7}, {0; 1; 2; 3; 4; 5; 6}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {1; 2; 3; 4; 5; 6; 7}, {1; 2; 3; 4; 5; 6}, {0; 1; 2; 3; 4; 5}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {-7; -6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {1; 2; 3; 4; 5; 6; 7}, {-6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {-7; -6; -5; -4; -3; -2; -1},
->   {-6; -5; -4; -3; -2; -1},
->   {-5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {-6; -5; -4; -3; -2; -1}, {-5; -4; -3; -2; -1}, {-4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {-6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5}, {-4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1}, {0; 1; 2; 3; 4}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {1; 2; 3; 4; 5; 6}, {1; 2; 3; 4; 5}, {0; 1; 2; 3; 4}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {1; 2; 3; 4; 5}, {1; 2; 3; 4}, {0; 1; 2; 3}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {-5; -4; -3; -2; -1}, {1; 2; 3; 4}, {-3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {1; 2; 3; 4; 5}, {-4; -3; -2; -1}, {0; 1; 2; 3}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {-5; -4; -3; -2; -1}, {-4; -3; -2; -1}, {-3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {-4; -3; -2; -1}, {-3; -2; -1}, {-2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {-4; -3; -2; -1}, {1; 2; 3}, {-2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {1; 2; 3; 4}, {-3; -2; -1}, {0; 1; 2}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {1; 2; 3; 4}, {1; 2; 3}, {0; 1; 2}
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {1; 2; 3}, {1; 2}, {0; 1}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {-3; -2; -1}, {1; 2}, {-1; 0}
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {1; 2; 3}, {-2; -1}, {0; 1}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {-3; -2; -1}, {-2; -1}, {-1; 0}
-50a130,208
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [1..9], [-8..0]
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [-9..-1], [-8..0]
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [1..9], [0..8]
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [-9..-1], [0..8]
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {-8; -7; -6; -5; -4; -3; -2; -1},
->   {1; 2; 3; 4; 5; 6; 7},
->   {-6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {-8; -7; -6; -5; -4; -3; -2; -1},
->   {-7; -6; -5; -4; -3; -2; -1},
->   {-6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {1; 2; 3; 4; 5; 6; 7; 8}, {1; 2; 3; 4; 5; 6; 7}, {0; 1; 2; 3; 4; 5; 6}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {-7; -6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {1; 2; 3; 4; 5; 6; 7}, {1; 2; 3; 4; 5; 6}, {0; 1; 2; 3; 4; 5}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {-7; -6; -5; -4; -3; -2; -1},
->   {-6; -5; -4; -3; -2; -1},
->   {-5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {1; 2; 3; 4; 5; 6; 7}, {-6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {-6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5}, {-4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {-6; -5; -4; -3; -2; -1}, {-5; -4; -3; -2; -1}, {-4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {1; 2; 3; 4; 5; 6}, {1; 2; 3; 4; 5}, {0; 1; 2; 3; 4}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1}, {0; 1; 2; 3; 4}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {-5; -4; -3; -2; -1}, {1; 2; 3; 4}, {-3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {1; 2; 3; 4; 5}, {1; 2; 3; 4}, {0; 1; 2; 3}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {-5; -4; -3; -2; -1}, {-4; -3; -2; -1}, {-3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {1; 2; 3; 4; 5}, {-4; -3; -2; -1}, {0; 1; 2; 3}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {-4; -3; -2; -1}, {1; 2; 3}, {-2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {-4; -3; -2; -1}, {-3; -2; -1}, {-2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {1; 2; 3; 4}, {1; 2; 3}, {0; 1; 2}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {1; 2; 3; 4}, {-3; -2; -1}, {0; 1; 2}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {-3; -2; -1}, {1; 2}, {-1; 0}
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {1; 2; 3}, {1; 2}, {0; 1}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {-3; -2; -1}, {-2; -1}, {-1; 0}
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {1; 2; 3}, {-2; -1}, {0; 1}
-60a219,231
-> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-10..10], [-9..9], [-8..8]
-> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-9..9], [-8..8], [-7..7]
-> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-8..8], [-7..7], [-6..6]
-> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-7..7], [-6..6], [-5..5]
-> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-6..6], [-5..5], [-4..4]
-> [eva] tests/value/modulo.i:64: 
->   Frama_C_show_each_3:
->   [-5..5], {-4; -3; -2; -1; 1; 2; 3; 4}, {-3; -2; -1; 0; 1; 2; 3}
-> [eva] tests/value/modulo.i:64: 
->   Frama_C_show_each_3:
->   {-4; -3; -2; -1; 1; 2; 3; 4}, {-3; -2; -1; 1; 2; 3}, {-2; -1; 0; 1; 2}
-> [eva] tests/value/modulo.i:64: 
->   Frama_C_show_each_3: {-3; -2; -1; 1; 2; 3}, {-2; -1; 1; 2}, {-1; 0; 1}
-diff tests/value/oracle/non_natural.res.oracle tests/value/oracle_equalities/non_natural.res.oracle
-58a59,60
-> [kernel] tests/value/non_natural.i:30: 
->   more than 200(12500) elements to enumerate. Approximating.
-65a68,71
-> [kernel] tests/value/non_natural.i:23: 
->   more than 200(12500) elements to enumerate. Approximating.
-> [kernel] tests/value/non_natural.i:23: 
->   more than 200(12501) elements to enumerate. Approximating.
-70a77,80
-> [kernel] tests/value/non_natural.i:24: 
->   more than 200(12500) elements to enumerate. Approximating.
-> [kernel] tests/value/non_natural.i:24: 
->   more than 200(12501) elements to enumerate. Approximating.
-78a89,90
-> [kernel] tests/value/non_natural.i:25: 
->   more than 200(12500) elements to enumerate. Approximating.
-86a99,100
-> [kernel] tests/value/non_natural.i:26: 
->   more than 200(12500) elements to enumerate. Approximating.
-94a109,110
-> [kernel] tests/value/non_natural.i:27: 
->   more than 200(12500) elements to enumerate. Approximating.
-102a119,120
-> [kernel] tests/value/non_natural.i:28: 
->   more than 200(12500) elements to enumerate. Approximating.
-110a129,130
-> [kernel] tests/value/non_natural.i:29: 
->   more than 200(12500) elements to enumerate. Approximating.
-127,146d146
-< [kernel] tests/value/non_natural.i:23: 
-<   more than 200(12501) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:23: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:24: 
-<   more than 200(12501) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:24: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:25: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:26: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:27: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:28: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:29: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:30: 
-<   more than 200(12500) elements to enumerate. Approximating.
-199a200,201
-> [kernel] tests/value/non_natural.i:39: 
->   more than 200(12500) elements to enumerate. Approximating.
-diff tests/value/oracle/nonlin.res.oracle tests/value/oracle_equalities/nonlin.res.oracle
-194c194
-<   q ∈ {{ &x + [-400..400],0%4 }}
----
->   q ∈ {{ &x }}
-diff tests/value/oracle/octagons.res.oracle tests/value/oracle_equalities/octagons.res.oracle
-29c29
-<   Frama_C_show_each_unreduced_unsigned: [0..4294967295], [0..4294967295]
----
->   Frama_C_show_each_unreduced_unsigned: [0..4294967295], [6..4294967295]
-255c255
-<   t ∈ [--..--] or UNINITIALIZED
----
->   t ∈ [6..4294967295] or UNINITIALIZED
-diff tests/value/oracle/offsetmap.0.res.oracle tests/value/oracle_equalities/offsetmap.0.res.oracle
-40d39
-< [eva] Recording results for g
-42a42
-> [eva] Recording results for g
-diff tests/value/oracle/offsetmap.1.res.oracle tests/value/oracle_equalities/offsetmap.1.res.oracle
-40d39
-< [eva] Recording results for g
-42a42
-> [eva] Recording results for g
-diff tests/value/oracle/origin.0.res.oracle tests/value/oracle_equalities/origin.0.res.oracle
-249,250c249
-<   pm2[bits 0 to 15]# ∈ {{ (? *)&a }}%32, bits 16 to 31 
-<      [bits 16 to 31]# ∈ {{ (? *)&b }}%32, bits 0 to 15 
----
->   pm2 ∈ {{ &a + {-4} ; &b + {-4} }}
-289,290c288
-<   pm2[bits 0 to 15]# ∈ {{ (? *)&a }}%32, bits 16 to 31 
-<      [bits 16 to 31]# ∈ {{ (? *)&b }}%32, bits 0 to 15 
----
->   pm2 ∈ {{ &a + {-4} ; &b + {-4} }}
-diff tests/value/oracle/period.res.oracle tests/value/oracle_equalities/period.res.oracle
-88,94d87
-< [eva:alarm] tests/value/period.c:53: Warning: 
-<   pointer downcast. assert (unsigned int)(&g) ≤ 2147483647;
-< [eva] tests/value/period.c:53: 
-<   Assigning imprecise value to p.
-<   The imprecision originates from Arithmetic {tests/value/period.c:53}
-< [eva:alarm] tests/value/period.c:54: Warning: 
-<   out of bounds read. assert \valid_read(p);
-99d91
-< [scope:rm_asserts] removing 1 assertion(s)
-diff tests/value/oracle/plevel.res.oracle tests/value/oracle_equalities/plevel.res.oracle
-12d11
-< [eva] Recording results for main
-14a14
-> [eva] Recording results for main
-diff tests/value/oracle/pointer_comp.res.oracle tests/value/oracle_equalities/pointer_comp.res.oracle
-30a31,34
-> [kernel] tests/value/pointer_comp.c:43: 
->   imprecise size for variable g (Undefined sizeof on a function.)
-> [kernel] tests/value/pointer_comp.c:43: 
->   imprecise size for variable f (Undefined sizeof on a function.)
-diff tests/value/oracle/ptr_relation.0.res.oracle tests/value/oracle_equalities/ptr_relation.0.res.oracle
-23c23
-<   i ∈ {0; 77; 333}
----
->   i ∈ {77}
-diff tests/value/oracle/redundant_alarms.res.oracle tests/value/oracle_equalities/redundant_alarms.res.oracle
-10,13d9
-< [eva:alarm] tests/value/redundant_alarms.c:11: Warning: 
-<   accessing uninitialized left-value. assert \initialized(p);
-< [eva:alarm] tests/value/redundant_alarms.c:12: Warning: 
-<   accessing uninitialized left-value. assert \initialized(p);
-24,25d19
-< [eva:alarm] tests/value/redundant_alarms.c:21: Warning: 
-<   accessing uninitialized left-value. assert \initialized(&t[i]);
-63,65c57
-< [scope:rm_asserts] removing 3 assertion(s)
-< [scope:rm_asserts] tests/value/redundant_alarms.c:12: 
-<   removing redundant assert Eva: initialization: \initialized(p);
----
-> [scope:rm_asserts] removing 2 assertion(s)
-108d99
-<   /*@ assert Eva: initialization: \initialized(p); */
-110d100
-<   /*@ assert Eva: initialization: \initialized(p); */
-127d116
-<   /*@ assert Eva: initialization: \initialized(&t[i]); */
-196a186
->   int z;
-199,201d188
-<   *p = 1;
-<   int z = *p + 1;
-<   int w = *p + 2;
-diff tests/value/oracle/relation_reduction.res.oracle tests/value/oracle_equalities/relation_reduction.res.oracle
-24,27d23
-< [eva:alarm] tests/value/relation_reduction.i:20: Warning: 
-<   accessing out of bounds index. assert 0 ≤ y;
-< [eva:alarm] tests/value/relation_reduction.i:20: Warning: 
-<   accessing out of bounds index. assert y < 9;
-34,37c30,33
-<   R1 ∈ [-2147483648..2147483637]
-<   R2 ∈ [-2147483638..2147483647]
-<   R3 ∈ [--..--]
-<   R4 ∈ {0; 1; 2; 3; 4; 5}
----
->   R1 ∈ {0; 2}
->   R2 ∈ {0; 12}
->   R3 ∈ {0; 7}
->   R4 ∈ {0; 2}
-48c44
-<   R4 FROM tab[0..8]; x (and SELF)
----
->   R4 FROM tab[0..5]; x (and SELF)
-53c49
-<     y; t; tab[0..8]
----
->     y; t; tab[0..5]
-diff tests/value/oracle/relation_shift.res.oracle tests/value/oracle_equalities/relation_shift.res.oracle
-35,36c35,36
-<   x ∈ [-2147483647..2147483647]
-<   y ∈ [-2147483648..2147483646]
----
->   x ∈ [-2147483647..2147483642]
->   y ∈ [-2147483648..2147483645]
-53,54c53,54
-<   x ∈ [-2147483647..2147483647]
-<   y ∈ [-2147483648..2147483646]
----
->   x ∈ [-2147483647..2147483642]
->   y ∈ [-2147483648..2147483645]
-diff tests/value/oracle/relations.res.oracle tests/value/oracle_equalities/relations.res.oracle
-60,61c60
-<   u[0] ∈ [-2147483648..2147483646]
-<    [1] ∈ [--..--]
----
->   u[0..1] ∈ [-2147483648..2147483646]
-67,70c66,69
-<   R1 ∈ [--..--]
-<   R2 ∈ [--..--]
-<   R3 ∈ [-2147483648..2147483646]
-<   R4 ∈ [--..--]
----
->   R1 ∈ {0; 3}
->   R2 ∈ {0; 3}
->   R3 ∈ {0; 2}
->   R4 ∈ {0; 2}
-diff tests/value/oracle/relations2.res.oracle tests/value/oracle_equalities/relations2.res.oracle
-59c59
-<   n ∈ [0..512]
----
->   n ∈ [1..512]
-133d132
-< [eva] tests/value/relations2.i:57: Frama_C_show_each_NO2:
-diff tests/value/oracle/struct2.res.oracle tests/value/oracle_equalities/struct2.res.oracle
-55a56,57
-> [kernel] tests/value/struct2.i:78: Warning: 
->   all target addresses were invalid. This path is assumed to be dead.
-59,60d60
-<   accessing out of bounds index. assert 0 ≤ (int)(tab2[i] + j);
-< [eva:alarm] tests/value/struct2.i:82: Warning: 
-83,84d82
-<   accessing out of bounds index. assert (int)(i + j) < 2;
-< [eva:alarm] tests/value/struct2.i:185: Warning: 
-106c104
-< [scope:rm_asserts] removing 2 assertion(s)
----
-> [scope:rm_asserts] removing 1 assertion(s)
-143,145c141,143
-<   tab3[0..1] ∈ [--..--]
-<   tab4[0] ∈ {0; 2}
-<       [1] ∈ {0}
----
->   tab3[0] ∈ {0; 1}
->       [1] ∈ [--..--]
->   tab4[0..1] ∈ {0}
-148c146,147
-<   tab6[0..1] ∈ {0; 2}
----
->   tab6[0] ∈ {0}
->       [1] ∈ {2}
-219c218
-<            [9].a}; s1; s2; s5.e[0].b; s6.b; s8; tabl[0..1]; tab1[0..1];
----
->            [9].a}; s1; s2; s5.e[0].b; s6.b; s8; tabl[0..1]; tab1[0];
-Only in tests/value/oracle: unit_tests.res.oracle
diff --git a/tests/value/diff_gauges b/tests/value/diff_gauges
deleted file mode 100644
index f6010fb62ca6b8e732c4cdfb986167352b43e100..0000000000000000000000000000000000000000
--- a/tests/value/diff_gauges
+++ /dev/null
@@ -1,1284 +0,0 @@
-diff tests/value/oracle/alias.5.res.oracle tests/value/oracle_gauges/alias.5.res.oracle
-59a60
-> [eva] tests/value/alias.i:260: starting to merge loop iterations
-diff tests/value/oracle/auto_loop_unroll.0.res.oracle tests/value/oracle_gauges/auto_loop_unroll.0.res.oracle
-11,13c11
-< [eva:alarm] tests/value/auto_loop_unroll.c:25: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:27: Frama_C_show_each_auto: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:27: Frama_C_show_each_auto: {100}
-15,18c13
-< [eva:alarm] tests/value/auto_loop_unroll.c:31: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:33: 
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:33: Frama_C_show_each_imprecise: {1000}
-20,23c15
-< [eva:alarm] tests/value/auto_loop_unroll.c:39: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:41: 
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:41: Frama_C_show_each_imprecise: {100}
-32,34c24
-< [eva:alarm] tests/value/auto_loop_unroll.c:58: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:59: Frama_C_show_each_64: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:59: Frama_C_show_each_64: {64}
-36,38c26
-< [eva:alarm] tests/value/auto_loop_unroll.c:63: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:64: Frama_C_show_each_40: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:64: Frama_C_show_each_40: {40}
-40,42c28
-< [eva:alarm] tests/value/auto_loop_unroll.c:69: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:72: Frama_C_show_each_80: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:72: Frama_C_show_each_80: {80}
-44,47c30
-< [eva:alarm] tests/value/auto_loop_unroll.c:76: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:82: 
-<   Frama_C_show_each_32_80: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:82: Frama_C_show_each_32_80: [32..83]
-55,56d37
-< [eva:alarm] tests/value/auto_loop_unroll.c:88: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-58c39
-<   Frama_C_show_each_40_50: [0..2147483647]
----
->   Frama_C_show_each_40_50: [40..1073741861]
-133,136c114
-< [eva:alarm] tests/value/auto_loop_unroll.c:120: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:122: 
-<   Frama_C_show_each_32_64: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:122: Frama_C_show_each_32_64: [32..65]
-185,188c163
-< [eva:alarm] tests/value/auto_loop_unroll.c:173: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:175: 
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:175: Frama_C_show_each_imprecise: [1..9]
-190,191d164
-< [eva:alarm] tests/value/auto_loop_unroll.c:181: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-195c168
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
->   Frama_C_show_each_imprecise: [64..2147483647]
-201,203c174
-< [eva:alarm] tests/value/auto_loop_unroll.c:193: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:195: Frama_C_show_each_11: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:195: Frama_C_show_each_11: {11}
-205,207c176
-< [eva:alarm] tests/value/auto_loop_unroll.c:198: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:200: Frama_C_show_each_12: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:200: Frama_C_show_each_12: {12}
-209,210d177
-< [eva:alarm] tests/value/auto_loop_unroll.c:204: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-212a180,181
-> [eva:alarm] tests/value/auto_loop_unroll.c:204: Warning: 
->   signed overflow. assert res + 1 ≤ 2147483647;
-216,217d184
-< [eva:alarm] tests/value/auto_loop_unroll.c:209: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-219a187,188
-> [eva:alarm] tests/value/auto_loop_unroll.c:209: Warning: 
->   signed overflow. assert res + 1 ≤ 2147483647;
-223,224d191
-< [eva:alarm] tests/value/auto_loop_unroll.c:217: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-228,231c195
-< [eva:alarm] tests/value/auto_loop_unroll.c:222: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:226: 
-<   Frama_C_show_each_11_111: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:226: Frama_C_show_each_11_111: [11..111]
-239,241c203
-< [eva:alarm] tests/value/auto_loop_unroll.c:236: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:238: Frama_C_show_each_20: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:238: Frama_C_show_each_20: [20..2147483646]
-243,244d204
-< [eva:alarm] tests/value/auto_loop_unroll.c:241: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-247c207,209
-< [eva] tests/value/auto_loop_unroll.c:243: Frama_C_show_each_21: [0..2147483647]
----
-> [eva:alarm] tests/value/auto_loop_unroll.c:241: Warning: 
->   signed overflow. assert res + 1 ≤ 2147483647;
-> [eva] tests/value/auto_loop_unroll.c:243: Frama_C_show_each_21: {21}
-253,255c215,216
-< [eva:alarm] tests/value/auto_loop_unroll.c:250: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:254: Frama_C_show_each_30: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:254: Frama_C_show_each_30: {30}
-> [eva] tests/value/auto_loop_unroll.c:258: starting to merge loop iterations
-258d218
-< [eva] tests/value/auto_loop_unroll.c:258: starting to merge loop iterations
-261,263c221
-< [eva:alarm] tests/value/auto_loop_unroll.c:267: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:272: Frama_C_show_each_32: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:272: Frama_C_show_each_32: {32}
-diff tests/value/oracle/auto_loop_unroll.1.res.oracle tests/value/oracle_gauges/auto_loop_unroll.1.res.oracle
-15,18c15
-< [eva:alarm] tests/value/auto_loop_unroll.c:31: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:33: 
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:33: Frama_C_show_each_imprecise: {1000}
-20,23c17
-< [eva:alarm] tests/value/auto_loop_unroll.c:39: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:41: 
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:41: Frama_C_show_each_imprecise: {100}
-329,332c323
-< [eva:alarm] tests/value/auto_loop_unroll.c:173: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-< [eva] tests/value/auto_loop_unroll.c:175: 
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
-> [eva] tests/value/auto_loop_unroll.c:175: Frama_C_show_each_imprecise: [1..9]
-334,335d324
-< [eva:alarm] tests/value/auto_loop_unroll.c:181: Warning: 
-<   signed overflow. assert res + 1 ≤ 2147483647;
-339c328
-<   Frama_C_show_each_imprecise: [0..2147483647]
----
->   Frama_C_show_each_imprecise: [64..2147483647]
-385a375,458
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 200 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 300 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 400 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 500 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 600 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 700 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 800 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 900 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 1000 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 1100 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 1200 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 1300 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 1400 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 1500 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 1600 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 1700 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 1800 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 1900 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 2000 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 2100 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 2200 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 2300 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 2400 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 2500 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 2600 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 2700 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 2800 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 2900 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 3000 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 3100 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 3200 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 3300 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 3400 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 3500 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 3600 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 3700 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 3800 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 3900 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 4000 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 4100 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 4200 states
-> [eva] tests/value/auto_loop_unroll.c:276: 
->   Trace partitioning superposing up to 4300 states
-diff tests/value/oracle/bad_loop.res.oracle tests/value/oracle_gauges/bad_loop.res.oracle
-6a7
-> [eva] tests/value/bad_loop.i:12: starting to merge loop iterations
-diff tests/value/oracle/bitfield.res.oracle tests/value/oracle_gauges/bitfield.res.oracle
-138a139,153
-> [eva] tests/value/bitfield.i:71: 
->   Frama_C_show_each:
->   {{ garbled mix of &{b} (origin: Misaligned {tests/value/bitfield.i:70}) }}
-> [eva] tests/value/bitfield.i:73: 
->   Frama_C_show_each:
->   {{ garbled mix of &{b} (origin: Misaligned {tests/value/bitfield.i:70}) }}
-> [eva] computing for function leaf <- imprecise_bts_1671 <- main.
->   Called from tests/value/bitfield.i:70.
-> [eva] Done for function leaf
-> [eva] tests/value/bitfield.i:71: 
->   Frama_C_show_each:
->   {{ garbled mix of &{b} (origin: Misaligned {tests/value/bitfield.i:70}) }}
-> [eva] tests/value/bitfield.i:73: 
->   Frama_C_show_each:
->   {{ garbled mix of &{b} (origin: Misaligned {tests/value/bitfield.i:70}) }}
-diff tests/value/oracle/cast2.res.oracle tests/value/oracle_gauges/cast2.res.oracle
-26a27
-> [eva] tests/value/cast2.i:24: starting to merge loop iterations
-diff tests/value/oracle/for_loops.1.res.oracle tests/value/oracle_gauges/for_loops.1.res.oracle
-39,41c39
-< [eva:alarm] tests/value/for_loops.c:16: Warning: 
-<   signed overflow. assert w + 1 ≤ 2147483647;
-< [eva] tests/value/for_loops.c:17: Frama_C_show_each_F: [0..2147483647]
----
-> [eva] tests/value/for_loops.c:17: Frama_C_show_each_F: [0..100]
-diff tests/value/oracle/for_loops.2.res.oracle tests/value/oracle_gauges/for_loops.2.res.oracle
-37,39c37
-< [eva:alarm] tests/value/for_loops.c:42: Warning: 
-<   signed overflow. assert w + T[j] ≤ 2147483647;
-< [eva] tests/value/for_loops.c:43: Frama_C_show_each: [0..2147483647]
----
-> [eva] tests/value/for_loops.c:43: Frama_C_show_each: [0..1000]
-diff tests/value/oracle/from_termin.res.oracle tests/value/oracle_gauges/from_termin.res.oracle
-9a10
-> [eva] tests/value/from_termin.i:8: starting to merge loop iterations
-diff tests/value/oracle/gauges.res.oracle tests/value/oracle_gauges/gauges.res.oracle
-25,26d24
-< [eva:alarm] tests/value/gauges.c:23: Warning: 
-<   signed overflow. assert -2147483648 ≤ j - 4;
-38,39d35
-< [eva:alarm] tests/value/gauges.c:26: Warning: 
-<   signed overflow. assert l + 1 ≤ 2147483647;
-57,58d52
-< [eva:alarm] tests/value/gauges.c:45: Warning: 
-<   signed overflow. assert -2147483648 ≤ j - 4;
-61a56,57
-> [eva:alarm] tests/value/gauges.c:45: Warning: 
->   signed overflow. assert -2147483648 ≤ j - 4;
-70,71d65
-< [eva:alarm] tests/value/gauges.c:48: Warning: 
-<   signed overflow. assert l + 1 ≤ 2147483647;
-83,84d76
-< [eva:alarm] tests/value/gauges.c:58: Warning: 
-<   accessing out of bounds index. assert j < 38;
-97,101d88
-< [eva:alarm] tests/value/gauges.c:71: Warning: 
-<   out of bounds write. assert \valid(tmp);
-<                        (tmp from p++)
-< [eva] tests/value/gauges.c:72: Frama_C_show_each:
-< [eva] tests/value/gauges.c:72: Frama_C_show_each:
-113,114d99
-< [eva:alarm] tests/value/gauges.c:81: Warning: 
-<   signed overflow. assert k + 1 ≤ 2147483647;
-116,117d100
-< [eva:alarm] tests/value/gauges.c:84: Warning: 
-<   signed overflow. assert k + 1 ≤ 2147483647;
-125c108
-< [eva] tests/value/gauges.c:86: Frama_C_show_each: [0..2147483647]
----
-> [eva] tests/value/gauges.c:86: Frama_C_show_each: {390}
-139,140d121
-< [eva:alarm] tests/value/gauges.c:99: Warning: 
-<   signed overflow. assert c + 1 ≤ 2147483647;
-178,181c159,162
-< [eva] tests/value/gauges.c:129: Frama_C_show_each: {{ &y + [4..36],0%4 }}
-< [eva] tests/value/gauges.c:129: Frama_C_show_each: {{ &y + [4..40],0%4 }}
-< [eva:alarm] tests/value/gauges.c:130: Warning: 
-<   out of bounds write. assert \valid(p);
----
-> [eva] tests/value/gauges.c:129: 
->   Frama_C_show_each: {{ &y + {4; 8; 12; 16; 20; 24} }}
-> [eva] tests/value/gauges.c:129: 
->   Frama_C_show_each: {{ &y + {4; 8; 12; 16; 20; 24} }}
-187,188d167
-< [eva:alarm] tests/value/gauges.c:140: Warning: 
-<   signed overflow. assert j + 1 ≤ 2147483647;
-206,208d184
-< [eva:alarm] tests/value/gauges.c:158: Warning: 
-<   out of bounds write. assert \valid(tmp);
-<                        (tmp from p--)
-227,231c203,205
-< [eva] tests/value/gauges.c:172: Frama_C_show_each: [2147483646..4294967294]
-< [eva] tests/value/gauges.c:172: Frama_C_show_each: [1..4294967294]
-< [eva] tests/value/gauges.c:172: Frama_C_show_each: [1..4294967294]
-< [eva] tests/value/gauges.c:172: Frama_C_show_each: [1..4294967294]
-< [eva] tests/value/gauges.c:172: Frama_C_show_each: [1..4294967294]
----
-> [eva] tests/value/gauges.c:172: Frama_C_show_each: [2147483647..4294967294]
-> [eva] tests/value/gauges.c:172: Frama_C_show_each: [2147483647..4294967294]
-> [eva] tests/value/gauges.c:172: Frama_C_show_each: [2147483647..4294967294]
-235c209,210
-< [eva] tests/value/gauges.c:172: Frama_C_show_each: [1..4294967294]
----
-> [eva] tests/value/gauges.c:172: Frama_C_show_each: [2147483647..4294967294]
-> [eva] tests/value/gauges.c:172: Frama_C_show_each: [2147483647..4294967294]
-259,262d233
-< [eva:alarm] tests/value/gauges.c:192: Warning: 
-<   out of bounds write. assert \valid(p);
-< [eva:alarm] tests/value/gauges.c:193: Warning: 
-<   out of bounds write. assert \valid(q);
-270,275d240
-< [eva:alarm] tests/value/gauges.c:202: Warning: 
-<   out of bounds read. assert \valid_read(tmp);
-<                       (tmp from A++)
-< [eva:alarm] tests/value/gauges.c:202: Warning: 
-<   out of bounds read. assert \valid_read(tmp_0);
-<                       (tmp_0 from B++)
-303,304d267
-< [eva:alarm] tests/value/gauges.c:220: Warning: 
-<   signed overflow. assert -2147483648 ≤ n - 1;
-319,322c282
-< [eva:alarm] tests/value/gauges.c:240: Warning: 
-<   signed overflow. assert j + 1 ≤ 2147483647;
-< [eva] tests/value/gauges.c:242: 
-<   Frama_C_show_each: {45; 46; 47; 48; 49; 50; 51}, [0..2147483647]
----
-> [eva] tests/value/gauges.c:242: Frama_C_show_each: {47; 48}, {6}
-328,329d287
-< [eva:alarm] tests/value/gauges.c:251: Warning: 
-<   signed overflow. assert j + 1 ≤ 2147483647;
-331c289
-<   Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, [0..2147483647]
----
->   Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, {6; 7}
-337,340c295
-< [eva:alarm] tests/value/gauges.c:263: Warning: 
-<   signed overflow. assert j + 1 ≤ 2147483647;
-< [eva] tests/value/gauges.c:265: 
-<   Frama_C_show_each: {-59; -58; -57; -56; -55; -54; -53}, [0..2147483647]
----
-> [eva] tests/value/gauges.c:265: Frama_C_show_each: {-58; -57}, {9}
-346,347d300
-< [eva:alarm] tests/value/gauges.c:274: Warning: 
-<   signed overflow. assert j + 1 ≤ 2147483647;
-349c302
-<   Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, [0..2147483647]
----
->   Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, {9; 10}
-357,358d309
-< [eva:alarm] tests/value/gauges.c:293: Warning: 
-<   signed overflow. assert j + 1 ≤ 2147483647;
-360c311
-<   Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..2147483647]
----
->   Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [99..119]
-422a374,377
->   # Gauges domain:
->   V: [{[ p -> {{ &x }}
->          i -> {1} ]}]
->   s398: λ(0)
-482a438,441
->   # Gauges domain:
->   V: [{[ i -> {1} ]}]
->   s398: λ([0 .. 1])
->         {[ i -> {1} ]}
-541a501,504
->   # Gauges domain:
->   V: [{[ i -> {1} ]}]
->   s398: λ([0 .. 2])
->         {[ i -> {1} ]}
-600a564,567
->   # Gauges domain:
->   V: [{[ i -> {1} ]}]
->   s398: λ([0 .. 10])
->         {[ i -> {1} ]}
-665a633,637
->   # Gauges domain:
->   V: [{[ p -> {{ &a }}
->          i -> {2} ]}]
->   s412: λ(0)
->   s411: λ(0)
-726a699,703
->   # Gauges domain:
->   V: [{[ i -> {2} ]}]
->   s412: λ(0)
->   s411: λ([0 .. 1])
->         {[ i -> {0} ]}
-728a706,833
-> [eva] tests/value/gauges.c:325: 
->   Frama_C_dump_each:
->   # Cvalue domain:
->   __fc_heap_status ∈ [--..--]
->   __fc_random_counter ∈ [--..--]
->   __fc_rand_max ∈ {32767}
->   __fc_random48_init ∈ {0}
->   __fc_random48_counter[0..2] ∈ [--..--]
->   __fc_p_random48_counter ∈ {{ &__fc_random48_counter[0] }}
->   __fc_env[0] ∈ {{ NULL ; &S_0___fc_env[0] }}
->           [1] ∈ {{ NULL ; &S_1___fc_env[0] }}
->           [2..4095] ∈ {{ NULL ; &S_0___fc_env[0] ; &S_1___fc_env[0] }}
->   __fc_mblen_state ∈ [--..--]
->   __fc_mbtowc_state ∈ [--..--]
->   __fc_wctomb_state ∈ [--..--]
->   v ∈ [--..--]
->   t[0..4] ∈ {0}
->    [5] ∈ [0..48],0%3
->    [6] ∈ {0}
->    [7] ∈ [0..48],0%3
->    [8] ∈ {0}
->    [9] ∈ [0..48],0%3
->    [10] ∈ {0}
->    [11] ∈ [0..48],0%3
->    [12] ∈ {0}
->    [13] ∈ [0..48],0%3
->    [14] ∈ {0}
->    [15] ∈ [0..48],0%3
->    [16] ∈ {0}
->    [17] ∈ [0..48],0%3
->    [18] ∈ {0}
->    [19] ∈ [0..48],0%3
->    [20] ∈ {0}
->    [21] ∈ [0..48],0%3
->    [22] ∈ {0}
->    [23] ∈ [0..48],0%3
->    [24] ∈ {0}
->    [25] ∈ [0..48],0%3
->    [26] ∈ {0}
->    [27] ∈ [0..48],0%3
->    [28] ∈ {0}
->    [29] ∈ [0..48],0%3
->    [30] ∈ {0}
->    [31] ∈ [0..48],0%3
->    [32] ∈ {0}
->    [33] ∈ [0..48],0%3
->    [34] ∈ {0}
->    [35] ∈ [0..48],0%3
->    [36] ∈ {0}
->    [37] ∈ [0..48],0%3
->   u[0..99] ∈ [0..100]
->   T[0..99] ∈ [--..--]
->   a ∈ {1}
->   b ∈ {0}
->   p ∈ {{ &a ; &b }}
->   i ∈ {2}
->   S_0___fc_env[0..1] ∈ [--..--]
->   S_1___fc_env[0..1] ∈ [--..--]
->   # Gauges domain:
->   V: [{[ i -> {2} ]}]
->   s412: λ(0)
->   s411: λ([0 .. 2])
->         {[ i -> {0} ]}
->   ==END OF DUMP==
-> [eva] tests/value/gauges.c:325: 
->   Frama_C_dump_each:
->   # Cvalue domain:
->   __fc_heap_status ∈ [--..--]
->   __fc_random_counter ∈ [--..--]
->   __fc_rand_max ∈ {32767}
->   __fc_random48_init ∈ {0}
->   __fc_random48_counter[0..2] ∈ [--..--]
->   __fc_p_random48_counter ∈ {{ &__fc_random48_counter[0] }}
->   __fc_env[0] ∈ {{ NULL ; &S_0___fc_env[0] }}
->           [1] ∈ {{ NULL ; &S_1___fc_env[0] }}
->           [2..4095] ∈ {{ NULL ; &S_0___fc_env[0] ; &S_1___fc_env[0] }}
->   __fc_mblen_state ∈ [--..--]
->   __fc_mbtowc_state ∈ [--..--]
->   __fc_wctomb_state ∈ [--..--]
->   v ∈ [--..--]
->   t[0..4] ∈ {0}
->    [5] ∈ [0..48],0%3
->    [6] ∈ {0}
->    [7] ∈ [0..48],0%3
->    [8] ∈ {0}
->    [9] ∈ [0..48],0%3
->    [10] ∈ {0}
->    [11] ∈ [0..48],0%3
->    [12] ∈ {0}
->    [13] ∈ [0..48],0%3
->    [14] ∈ {0}
->    [15] ∈ [0..48],0%3
->    [16] ∈ {0}
->    [17] ∈ [0..48],0%3
->    [18] ∈ {0}
->    [19] ∈ [0..48],0%3
->    [20] ∈ {0}
->    [21] ∈ [0..48],0%3
->    [22] ∈ {0}
->    [23] ∈ [0..48],0%3
->    [24] ∈ {0}
->    [25] ∈ [0..48],0%3
->    [26] ∈ {0}
->    [27] ∈ [0..48],0%3
->    [28] ∈ {0}
->    [29] ∈ [0..48],0%3
->    [30] ∈ {0}
->    [31] ∈ [0..48],0%3
->    [32] ∈ {0}
->    [33] ∈ [0..48],0%3
->    [34] ∈ {0}
->    [35] ∈ [0..48],0%3
->    [36] ∈ {0}
->    [37] ∈ [0..48],0%3
->   u[0..99] ∈ [0..100]
->   T[0..99] ∈ [--..--]
->   a ∈ {1}
->   b ∈ {0}
->   p ∈ {{ &a ; &b }}
->   i ∈ {2}
->   S_0___fc_env[0..1] ∈ [--..--]
->   S_1___fc_env[0..1] ∈ [--..--]
->   # Gauges domain:
->   V: [{[ i -> {2} ]}]
->   s412: λ(0)
->   s411: λ([0 .. +oo])
->         {[ i -> {0} ]}
->   ==END OF DUMP==
-736a842,843
-> [eva] tests/value/gauges.c:343: Call to builtin malloc
-> [eva] tests/value/gauges.c:343: Call to builtin malloc
-789,790c896,897
-<   A ∈ {{ &A + [0..--],0%4 }}
-<   B ∈ {{ &B + [0..--],0%4 }}
----
->   A ∈ {{ &A + [0..36],0%4 }}
->   B ∈ {{ &B + [0..36],0%4 }}
-802c909
-<   n ∈ [-2147483648..99]
----
->   n ∈ [-2147483547..99]
-808c915
-<   i ∈ {45; 46; 47; 48; 49; 50; 51}
----
->   i ∈ {45; 46; 47; 48}
-814c921
-<   i ∈ {-59; -58; -57; -56; -55; -54; -53}
----
->   i ∈ {-58; -57; -56; -55; -54; -53}
-834c941
-<   p ∈ {{ &u + [0..--],0%4 }}
----
->   p ∈ {{ &u + [0..400],0%4 }}
-836c943
-<   k ∈ [0..2147483647]
----
->   k ∈ [0..390]
-841c948
-<   i ∈ [0..2147483647]
----
->   i ∈ [0..21]
-852,853c959,961
-<    [1..9] ∈ {4; 5; 6; 7; 8; 9} or UNINITIALIZED
-<   p ∈ {{ &y + [4..40],0%4 }}
----
->    [1..6] ∈ {4; 5; 6; 7; 8; 9} or UNINITIALIZED
->    [7..9] ∈ UNINITIALIZED
->   p ∈ {{ &y[7] }}
-864c972
-<   p ∈ {{ &T + [--..396],0%4 }}
----
->   p ∈ {{ &T + [-4..396],0%4 }}
-869,873c977
-<   n ∈ {0}
-<   arr[0] ∈ {0}
-<      [1] ∈ {-1}
-<      [2..65535] ∈ [--..--] or UNINITIALIZED
-<   p ∈ {{ &arr + [12..--],0%4 }}
----
->   NON TERMINATING FUNCTION
-976a1081
-> [from] Non-terminating function main8_aux (no dependencies)
-999,1000c1104,1105
-<   p FROM p; A; B; n; p; A[0..9]; B[0..9] (and SELF)
-<   \result FROM p; A; B; n; p; A[0..9]; B[0..9]
----
->   p FROM p; A; B; n; p; A[0..8]; B[0..8] (and SELF)
->   \result FROM p; A; B; n; p; A[0..8]; B[0..8]
-1044c1149
-<   NO EFFECTS
----
->   NON TERMINATING - NO EFFECTS
-1078c1183
-<     p; A[0..9]; B[0..9]
----
->     p; A[0..8]; B[0..8]
-diff tests/value/oracle/hierarchical_convergence.res.oracle tests/value/oracle_gauges/hierarchical_convergence.res.oracle
-15a16
-> [eva] tests/value/hierarchical_convergence.c:10: Frama_C_show_each: {1}, {0}
-diff tests/value/oracle/infinite.res.oracle tests/value/oracle_gauges/infinite.res.oracle
-12a13,22
-> [eva] tests/value/infinite.i:6: starting to merge loop iterations
-> [eva] computing for function pause <- main.
->   Called from tests/value/infinite.i:9.
-> [eva] Done for function pause
-> [eva] computing for function pause <- main.
->   Called from tests/value/infinite.i:9.
-> [eva] Done for function pause
-> [eva] computing for function pause <- main.
->   Called from tests/value/infinite.i:9.
-> [eva] Done for function pause
-diff tests/value/oracle/inout.2.res.oracle tests/value/oracle_gauges/inout.2.res.oracle
-22a23
-> [eva] tests/value/inout.i:50: starting to merge loop iterations
-diff tests/value/oracle/inout.3.res.oracle tests/value/oracle_gauges/inout.3.res.oracle
-22a23
-> [eva] tests/value/inout.i:60: starting to merge loop iterations
-diff tests/value/oracle/inout.4.res.oracle tests/value/oracle_gauges/inout.4.res.oracle
-24a25
-> [eva] tests/value/inout.i:60: starting to merge loop iterations
-diff tests/value/oracle/local_slevel.res.oracle tests/value/oracle_gauges/local_slevel.res.oracle
-13,15c13,15
-< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1}
-< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0; 1}
-< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1; 2}
----
-> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
-> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0}
-> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
-18c18
-<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3}
----
->   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3}
-22c22
-<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3; 4}
----
->   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3; 4}
-26,34c26
-<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483647]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483647]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483648]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483648]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {1}, [1..79],1%2, [0..4294967295]
----
->   Frama_C_show_each: {1}, [1..79],1%2, [1..79]
-36c28
-<   Frama_C_show_each: {-1}, [0..78],0%2, [0..4294967295]
----
->   Frama_C_show_each: {-1}, [0..78],0%2, [0..78]
-152c144
-<   r ∈ [--..--]
----
->   r ∈ [0..2147483647]
-393,395c385,387
-< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1}
-< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0; 1}
-< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1; 2}
----
-> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
-> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0}
-> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
-398c390
-<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3}
----
->   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3}
-402c394
-<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3; 4}
----
->   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3; 4}
-406,414c398
-<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483647]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483647]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483648]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483648]
-< [eva] tests/value/local_slevel.i:18: 
-<   Frama_C_show_each: {1}, [1..79],1%2, [0..4294967295]
----
->   Frama_C_show_each: {1}, [1..79],1%2, [1..79]
-416c400
-<   Frama_C_show_each: {-1}, [0..78],0%2, [0..4294967295]
----
->   Frama_C_show_each: {-1}, [0..78],0%2, [0..78]
-532c516
-<   r ∈ [--..--]
----
->   r ∈ [0..2147483647]
-diff tests/value/oracle/loop_no_var.res.oracle tests/value/oracle_gauges/loop_no_var.res.oracle
-6a7
-> [eva] tests/value/loop_no_var.i:3: starting to merge loop iterations
-diff tests/value/oracle/loop_wvar.1.res.oracle tests/value/oracle_gauges/loop_wvar.1.res.oracle
-27,28c27
-< [eva] tests/value/loop_wvar.i:71: Frama_C_show_each: [0..9], [0..17], [0..11]
-< [eva] tests/value/loop_wvar.i:71: Frama_C_show_each: [0..9], [0..18], [0..12]
----
-> [eva] tests/value/loop_wvar.i:71: Frama_C_show_each: [0..9], [0..9], [0..9]
-37,38c36,37
-<   j ∈ [0..18]
-<   k ∈ [0..12]
----
->   j ∈ [0..17]
->   k ∈ [0..11]
-diff tests/value/oracle/loopfun.1.res.oracle tests/value/oracle_gauges/loopfun.1.res.oracle
-9a10,12
-> [eva] tests/value/loopfun.i:23: starting to merge loop iterations
-> [eva:loop-unroll] tests/value/loopfun.i:25: loop not completely unrolled
-> [eva] tests/value/loopfun.i:25: starting to merge loop iterations
-11a15
-> [eva] tests/value/loopfun.i:26: starting to merge loop iterations
-13a18
-> [eva] tests/value/loopfun.i:27: starting to merge loop iterations
-diff tests/value/oracle/memexec.res.oracle tests/value/oracle_gauges/memexec.res.oracle
-101a102
-> [eva] tests/value/memexec.c:98: starting to merge loop iterations
-diff tests/value/oracle/modulo.res.oracle tests/value/oracle_gauges/modulo.res.oracle
-40a41,123
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [-9..-1], [-8..0]
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [1..9], [-8..0]
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [-9..-1], [0..8]
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [1..9], [0..8]
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {-8; -7; -6; -5; -4; -3; -2; -1},
->   {-7; -6; -5; -4; -3; -2; -1},
->   {-6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {-8; -7; -6; -5; -4; -3; -2; -1},
->   {1; 2; 3; 4; 5; 6; 7},
->   {-6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {1; 2; 3; 4; 5; 6; 7; 8}, {1; 2; 3; 4; 5; 6; 7}, {0; 1; 2; 3; 4; 5; 6}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {1; 2; 3; 4; 5; 6; 7}, {1; 2; 3; 4; 5; 6}, {0; 1; 2; 3; 4; 5}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {-7; -6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {1; 2; 3; 4; 5; 6; 7}, {-6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {-7; -6; -5; -4; -3; -2; -1},
->   {-6; -5; -4; -3; -2; -1},
->   {-5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {-6; -5; -4; -3; -2; -1}, {-5; -4; -3; -2; -1}, {-4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {-6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5}, {-4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1}, {0; 1; 2; 3; 4}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {1; 2; 3; 4; 5; 6}, {1; 2; 3; 4; 5}, {0; 1; 2; 3; 4}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {1; 2; 3; 4; 5}, {1; 2; 3; 4}, {0; 1; 2; 3}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {-5; -4; -3; -2; -1}, {1; 2; 3; 4}, {-3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {1; 2; 3; 4; 5}, {-4; -3; -2; -1}, {0; 1; 2; 3}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {-5; -4; -3; -2; -1}, {-4; -3; -2; -1}, {-3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {-4; -3; -2; -1}, {-3; -2; -1}, {-2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {-4; -3; -2; -1}, {1; 2; 3}, {-2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {1; 2; 3; 4}, {-3; -2; -1}, {0; 1; 2}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {1; 2; 3; 4}, {1; 2; 3}, {0; 1; 2}
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {1; 2; 3}, {1; 2}, {0; 1}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {-3; -2; -1}, {1; 2}, {-1; 0}
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {1; 2; 3}, {-2; -1}, {0; 1}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1: {-3; -2; -1}, {-2; -1}, {-1; 0}
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {-2; -1}, {-1}, {0}
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {-2; -1}, {1}, {0}
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {1; 2}, {-1}, {0}
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {1; 2}, {1}, {0}
-50a134,216
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [1..9], [-8..0]
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [-9..-1], [-8..0]
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [1..9], [0..8]
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [-9..-1], [0..8]
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {-8; -7; -6; -5; -4; -3; -2; -1},
->   {1; 2; 3; 4; 5; 6; 7},
->   {-6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {-8; -7; -6; -5; -4; -3; -2; -1},
->   {-7; -6; -5; -4; -3; -2; -1},
->   {-6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {1; 2; 3; 4; 5; 6; 7; 8}, {1; 2; 3; 4; 5; 6; 7}, {0; 1; 2; 3; 4; 5; 6}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {-7; -6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {1; 2; 3; 4; 5; 6; 7}, {1; 2; 3; 4; 5; 6}, {0; 1; 2; 3; 4; 5}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {-7; -6; -5; -4; -3; -2; -1},
->   {-6; -5; -4; -3; -2; -1},
->   {-5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {1; 2; 3; 4; 5; 6; 7}, {-6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {-6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5}, {-4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {-6; -5; -4; -3; -2; -1}, {-5; -4; -3; -2; -1}, {-4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {1; 2; 3; 4; 5; 6}, {1; 2; 3; 4; 5}, {0; 1; 2; 3; 4}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1}, {0; 1; 2; 3; 4}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {-5; -4; -3; -2; -1}, {1; 2; 3; 4}, {-3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {1; 2; 3; 4; 5}, {1; 2; 3; 4}, {0; 1; 2; 3}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {-5; -4; -3; -2; -1}, {-4; -3; -2; -1}, {-3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {1; 2; 3; 4; 5}, {-4; -3; -2; -1}, {0; 1; 2; 3}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {-4; -3; -2; -1}, {1; 2; 3}, {-2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {-4; -3; -2; -1}, {-3; -2; -1}, {-2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {1; 2; 3; 4}, {1; 2; 3}, {0; 1; 2}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {1; 2; 3; 4}, {-3; -2; -1}, {0; 1; 2}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {-3; -2; -1}, {1; 2}, {-1; 0}
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {1; 2; 3}, {1; 2}, {0; 1}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2: {-3; -2; -1}, {-2; -1}, {-1; 0}
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {1; 2; 3}, {-2; -1}, {0; 1}
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {-2; -1}, {1}, {0}
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {-2; -1}, {-1}, {0}
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {1; 2}, {1}, {0}
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {1; 2}, {-1}, {0}
-60a227,240
-> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-10..10], [-9..9], [-8..8]
-> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-9..9], [-8..8], [-7..7]
-> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-8..8], [-7..7], [-6..6]
-> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-7..7], [-6..6], [-5..5]
-> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-6..6], [-5..5], [-4..4]
-> [eva] tests/value/modulo.i:64: 
->   Frama_C_show_each_3:
->   [-5..5], {-4; -3; -2; -1; 1; 2; 3; 4}, {-3; -2; -1; 0; 1; 2; 3}
-> [eva] tests/value/modulo.i:64: 
->   Frama_C_show_each_3:
->   {-4; -3; -2; -1; 1; 2; 3; 4}, {-3; -2; -1; 1; 2; 3}, {-2; -1; 0; 1; 2}
-> [eva] tests/value/modulo.i:64: 
->   Frama_C_show_each_3: {-3; -2; -1; 1; 2; 3}, {-2; -1; 1; 2}, {-1; 0; 1}
-> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: {-2; -1; 1; 2}, {-1; 1}, {0}
-81a262,263
-> [eva] tests/value/modulo.i:95: starting to merge loop iterations
-> [eva] tests/value/modulo.i:82: starting to merge loop iterations
-diff tests/value/oracle/non_natural.res.oracle tests/value/oracle_gauges/non_natural.res.oracle
-60,63c60
-<   Frama_C_show_each: {{ &p2 + [0..400000],0%32 }}
-< [eva:alarm] tests/value/non_natural.i:23: Warning: 
-<   out of bounds write. assert \valid(tmp);
-<                        (tmp from to++)
----
->   Frama_C_show_each: {{ &p2 + [0..399968],0%32 }}
-66,68d62
-< [eva:alarm] tests/value/non_natural.i:24: Warning: 
-<   out of bounds write. assert \valid(tmp_1);
-<                        (tmp_1 from to++)
-71,76d64
-< [eva:alarm] tests/value/non_natural.i:25: Warning: 
-<   out of bounds write. assert \valid(tmp_3);
-<                        (tmp_3 from to++)
-< [eva:alarm] tests/value/non_natural.i:25: Warning: 
-<   out of bounds read. assert \valid_read(tmp_4);
-<                       (tmp_4 from from++)
-79,84d66
-< [eva:alarm] tests/value/non_natural.i:26: Warning: 
-<   out of bounds write. assert \valid(tmp_5);
-<                        (tmp_5 from to++)
-< [eva:alarm] tests/value/non_natural.i:26: Warning: 
-<   out of bounds read. assert \valid_read(tmp_6);
-<                       (tmp_6 from from++)
-87,92d68
-< [eva:alarm] tests/value/non_natural.i:27: Warning: 
-<   out of bounds write. assert \valid(tmp_7);
-<                        (tmp_7 from to++)
-< [eva:alarm] tests/value/non_natural.i:27: Warning: 
-<   out of bounds read. assert \valid_read(tmp_8);
-<                       (tmp_8 from from++)
-95,100d70
-< [eva:alarm] tests/value/non_natural.i:28: Warning: 
-<   out of bounds write. assert \valid(tmp_9);
-<                        (tmp_9 from to++)
-< [eva:alarm] tests/value/non_natural.i:28: Warning: 
-<   out of bounds read. assert \valid_read(tmp_10);
-<                       (tmp_10 from from++)
-103,108d72
-< [eva:alarm] tests/value/non_natural.i:29: Warning: 
-<   out of bounds write. assert \valid(tmp_11);
-<                        (tmp_11 from to++)
-< [eva:alarm] tests/value/non_natural.i:29: Warning: 
-<   out of bounds read. assert \valid_read(tmp_12);
-<                       (tmp_12 from from++)
-111,125d74
-< [eva:alarm] tests/value/non_natural.i:30: Warning: 
-<   out of bounds write. assert \valid(tmp_13);
-<                        (tmp_13 from to++)
-< [eva:alarm] tests/value/non_natural.i:30: Warning: 
-<   out of bounds read. assert \valid_read(tmp_14);
-<                       (tmp_14 from from++)
-< [eva] tests/value/non_natural.i:22: 
-<   Frama_C_show_each: {{ &p2 + [0..400032],0%32 }}
-< [eva:alarm] tests/value/non_natural.i:23: Warning: 
-<   out of bounds read. assert \valid_read(tmp_0);
-<                       (tmp_0 from from++)
-< [eva:alarm] tests/value/non_natural.i:24: Warning: 
-<   out of bounds read. assert \valid_read(tmp_2);
-<                       (tmp_2 from from++)
-< [eva] tests/value/non_natural.i:22: Frama_C_show_each: {{ &p2 + [0..--],0%32 }}
-128,129d76
-<   more than 200(12501) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:23: 
-132,133d78
-<   more than 200(12501) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:24: 
-194,197c139
-<   Frama_C_show_each: {{ &p2 + [0..400000],0%32 }}
-< [eva:alarm] tests/value/non_natural.i:39: Warning: 
-<   out of bounds write. assert \valid(tmp);
-<                        (tmp from to++)
----
->   Frama_C_show_each: {{ &p2 + [0..399968],0%32 }}
-200,202d141
-< [eva:alarm] tests/value/non_natural.i:40: Warning: 
-<   out of bounds write. assert \valid(tmp_1);
-<                        (tmp_1 from to++)
-205,210d143
-< [eva:alarm] tests/value/non_natural.i:41: Warning: 
-<   out of bounds write. assert \valid(tmp_3);
-<                        (tmp_3 from to++)
-< [eva:alarm] tests/value/non_natural.i:41: Warning: 
-<   out of bounds read. assert \valid_read(tmp_4);
-<                       (tmp_4 from from++)
-213,218d145
-< [eva:alarm] tests/value/non_natural.i:42: Warning: 
-<   out of bounds write. assert \valid(tmp_5);
-<                        (tmp_5 from to++)
-< [eva:alarm] tests/value/non_natural.i:42: Warning: 
-<   out of bounds read. assert \valid_read(tmp_6);
-<                       (tmp_6 from from++)
-221,226d147
-< [eva:alarm] tests/value/non_natural.i:43: Warning: 
-<   out of bounds write. assert \valid(tmp_7);
-<                        (tmp_7 from to++)
-< [eva:alarm] tests/value/non_natural.i:43: Warning: 
-<   out of bounds read. assert \valid_read(tmp_8);
-<                       (tmp_8 from from++)
-229,234d149
-< [eva:alarm] tests/value/non_natural.i:44: Warning: 
-<   out of bounds write. assert \valid(tmp_9);
-<                        (tmp_9 from to++)
-< [eva:alarm] tests/value/non_natural.i:44: Warning: 
-<   out of bounds read. assert \valid_read(tmp_10);
-<                       (tmp_10 from from++)
-237,242d151
-< [eva:alarm] tests/value/non_natural.i:45: Warning: 
-<   out of bounds write. assert \valid(tmp_11);
-<                        (tmp_11 from to++)
-< [eva:alarm] tests/value/non_natural.i:45: Warning: 
-<   out of bounds read. assert \valid_read(tmp_12);
-<                       (tmp_12 from from++)
-245,259d153
-< [eva:alarm] tests/value/non_natural.i:46: Warning: 
-<   out of bounds write. assert \valid(tmp_13);
-<                        (tmp_13 from to++)
-< [eva:alarm] tests/value/non_natural.i:46: Warning: 
-<   out of bounds read. assert \valid_read(tmp_14);
-<                       (tmp_14 from from++)
-< [eva] tests/value/non_natural.i:38: 
-<   Frama_C_show_each: {{ &p2 + [0..400032],0%32 }}
-< [eva:alarm] tests/value/non_natural.i:39: Warning: 
-<   out of bounds read. assert \valid_read(tmp_0);
-<                       (tmp_0 from from++)
-< [eva:alarm] tests/value/non_natural.i:40: Warning: 
-<   out of bounds read. assert \valid_read(tmp_2);
-<                       (tmp_2 from from++)
-< [eva] tests/value/non_natural.i:38: Frama_C_show_each: {{ &p2 + [0..--],0%32 }}
-268,269c162,163
-<   to ∈ {{ &p2 + [32..--],0%32 }}
-<   from ∈ {{ &p1 + [32..--],0%32 }}
----
->   to ∈ {{ &p2 + [32..400000],0%32 }}
->   from ∈ {{ &p1 + [32..400000],0%32 }}
-273,274c167,168
-<   to ∈ {{ &p2 + [32..--],0%32 }}
-<   from ∈ {{ &p1 + [32..--],0%32 }}
----
->   to ∈ {{ &p2 + [32..400000],0%32 }}
->   from ∈ {{ &p1 + [32..400000],0%32 }}
-330,332c224,232
-<   p2[0] FROM to; from; count; p1[0..100000] (and SELF)
-<     [1..99992] FROM to; from; count; p1[0..100001] (and SELF)
-<     [99993] FROM to; from; count; p1[1..100001] (and SELF)
----
->   p2[0] FROM to; from; count; p1[0..99992] (and SELF)
->     [1] FROM to; from; count; p1[0..99993] (and SELF)
->     [2] FROM to; from; count; p1[0..99994] (and SELF)
->     [3] FROM to; from; count; p1[0..99995] (and SELF)
->     [4] FROM to; from; count; p1[0..99996] (and SELF)
->     [5] FROM to; from; count; p1[0..99997] (and SELF)
->     [6] FROM to; from; count; p1[0..99998] (and SELF)
->     [7..99992] FROM to; from; count; p1[0..99999] (and SELF)
->     [99993] FROM to; from; count; p1[1..99999] (and SELF)
-340,342c240,248
-<   p2[0] FROM to; from; count; p1[0..100000] (and SELF)
-<     [1..99992] FROM to; from; count; p1[0..100001] (and SELF)
-<     [99993] FROM to; from; count; p1[1..100001] (and SELF)
----
->   p2[0] FROM to; from; count; p1[0..99992] (and SELF)
->     [1] FROM to; from; count; p1[0..99993] (and SELF)
->     [2] FROM to; from; count; p1[0..99994] (and SELF)
->     [3] FROM to; from; count; p1[0..99995] (and SELF)
->     [4] FROM to; from; count; p1[0..99996] (and SELF)
->     [5] FROM to; from; count; p1[0..99997] (and SELF)
->     [6] FROM to; from; count; p1[0..99998] (and SELF)
->     [7..99992] FROM to; from; count; p1[0..99999] (and SELF)
->     [99993] FROM to; from; count; p1[1..99999] (and SELF)
-360c266
-<     p1[0..100001]
----
->     p1[0..99999]
-365c271
-<     p1[0..100001]
----
->     p1[0..99999]
-diff tests/value/oracle/noreturn.res.oracle tests/value/oracle_gauges/noreturn.res.oracle
-8a9
-> [eva] tests/value/noreturn.i:20: starting to merge loop iterations
-16a18
-> [eva] tests/value/noreturn.i:16: starting to merge loop iterations
-32a35
-> [eva] tests/value/noreturn.i:7: starting to merge loop iterations
-36a40
-> [eva] tests/value/noreturn.i:13: starting to merge loop iterations
-diff tests/value/oracle/octagons.res.oracle tests/value/oracle_gauges/octagons.res.oracle
-121,128d120
-< [eva:alarm] tests/value/octagons.c:107: Warning: 
-<   signed overflow. assert a + 2 ≤ 2147483647;
-< [eva:alarm] tests/value/octagons.c:108: Warning: 
-<   signed overflow. assert b + 2 ≤ 2147483647;
-< [eva:alarm] tests/value/octagons.c:110: Warning: 
-<   signed overflow. assert a + k ≤ 2147483647;
-< [eva:alarm] tests/value/octagons.c:113: Warning: 
-<   signed overflow. assert -2147483648 ≤ c - a;
-130c122
-< [eva] tests/value/octagons.c:116: Frama_C_show_each_imprecise: [-2147483648..1]
----
-> [eva] tests/value/octagons.c:116: Frama_C_show_each_imprecise: [-2468..1]
-270,273c262,265
-<   a ∈ [-1024..2147483647]
-<   b ∈ [-1023..2147483647]
-<   c ∈ [-1023..2147483647]
-<   d ∈ [-1032..2147483647]
----
->   a ∈ [-182..1866]
->   b ∈ [-181..1867]
->   c ∈ [-602..1446]
->   d ∈ [-190..1874]
-275c267
-<   d2 ∈ [-2147483648..1]
----
->   d2 ∈ [-2468..1]
-diff tests/value/oracle/reduce_formals.res.oracle tests/value/oracle_gauges/reduce_formals.res.oracle
-10a11
-> [eva] tests/value/reduce_formals.i:5: starting to merge loop iterations
-diff tests/value/oracle/redundant_alarms.res.oracle tests/value/oracle_gauges/redundant_alarms.res.oracle
-47a48
-> [eva] tests/value/redundant_alarms.c:39: starting to merge loop iterations
-diff tests/value/oracle/reevaluate_alarms.res.oracle tests/value/oracle_gauges/reevaluate_alarms.res.oracle
-14,16d13
-< [eva:alarm] tests/value/reevaluate_alarms.i:14: Warning: 
-<   out of bounds write. assert \valid(tmp);
-<                        (tmp from p++)
-59c56
-<   p ∈ {{ &T + [0..--],0%4 }}
----
->   p ∈ {{ &T{[0], [1], [2], [3], [4], [5]} }}
-124,125d120
-< [    -    ] Assertion 'Eva,mem_access' (file tests/value/reevaluate_alarms.i, line 14)
-<             tried with Eva.
-144,145c139,140
-<      4 To be validated
-<      4 Total
----
->      3 To be validated
->      3 Total
-182,183d176
-< [eva] tests/value/reevaluate_alarms.i:14: 
-<   assertion 'Eva,mem_access' got final status valid.
-274,275d266
-< [  Valid  ] Assertion 'Eva,mem_access' (file tests/value/reevaluate_alarms.i, line 14)
-<             by Eva (v2).
-294,295c285,286
-<      4 Completely validated
-<      4 Total
----
->      3 Completely validated
->      3 Total
-diff tests/value/oracle/semaphore.res.oracle tests/value/oracle_gauges/semaphore.res.oracle
-24a25,33
-> [eva] computing for function V <- g.
->   Called from tests/value/semaphore.i:31.
-> [eva] Done for function V
-> [eva] computing for function V <- g.
->   Called from tests/value/semaphore.i:31.
-> [eva] Done for function V
-> [eva] computing for function V <- g.
->   Called from tests/value/semaphore.i:31.
-> [eva] Done for function V
-diff tests/value/oracle/symbolic_locs.res.oracle tests/value/oracle_gauges/symbolic_locs.res.oracle
-135a136
-> [eva] tests/value/symbolic_locs.i:93: starting to merge loop iterations
-diff tests/value/oracle/undefined_sequence.0.res.oracle tests/value/oracle_gauges/undefined_sequence.0.res.oracle
-97a98
-> [eva] tests/value/undefined_sequence.i:43: starting to merge loop iterations
-101a103
-> [eva] tests/value/undefined_sequence.i:49: starting to merge loop iterations
-Only in tests/value/oracle: unit_tests.res.oracle
-diff tests/value/oracle/unroll.res.oracle tests/value/oracle_gauges/unroll.res.oracle
-13,14d12
-< [eva:alarm] tests/value/unroll.i:34: Warning: 
-<   signed overflow. assert -2147483648 ≤ j - 1;
-16a15
-> [eva] tests/value/unroll.i:39: starting to merge loop iterations
-26c25
-<   j ∈ [-2147483648..-123]
----
->   j ∈ {-238}
-diff tests/value/oracle/unroll_simple.res.oracle tests/value/oracle_gauges/unroll_simple.res.oracle
-8,9d7
-< [eva:alarm] tests/value/unroll_simple.i:11: Warning: 
-<   signed overflow. assert -2147483648 ≤ j - 1;
-11a10
-> [eva] tests/value/unroll_simple.i:16: starting to merge loop iterations
-21c20
-<   j ∈ [-2147483648..-126]
----
->   j ∈ {-250}
-diff tests/value/oracle/va_list2.0.res.oracle tests/value/oracle_gauges/va_list2.0.res.oracle
-50a51,62
-> [eva] tests/value/va_list2.c:16: 
->   Frama_C_show_each_i:
->   {{ garbled mix of &{S_0_S___va_params; S_1_S___va_params} (origin: Well) }}
-> [eva] tests/value/va_list2.c:21: 
->   Frama_C_show_each_f:
->   {{ garbled mix of &{S_0_S___va_params; S_1_S___va_params} (origin: Well) }}
-> [eva] tests/value/va_list2.c:16: 
->   Frama_C_show_each_i:
->   {{ garbled mix of &{S_0_S___va_params; S_1_S___va_params} (origin: Well) }}
-> [eva] tests/value/va_list2.c:21: 
->   Frama_C_show_each_f:
->   {{ garbled mix of &{S_0_S___va_params; S_1_S___va_params} (origin: Well) }}
-diff tests/value/oracle/va_list2.1.res.oracle tests/value/oracle_gauges/va_list2.1.res.oracle
-40a41,52
-> [eva] computing for function __builtin_va_arg <- main.
->   Called from tests/value/va_list2.c:15.
-> [eva] Done for function __builtin_va_arg
-> [eva] computing for function __builtin_va_arg <- main.
->   Called from tests/value/va_list2.c:20.
-> [eva] Done for function __builtin_va_arg
-> [eva] computing for function __builtin_va_arg <- main.
->   Called from tests/value/va_list2.c:15.
-> [eva] Done for function __builtin_va_arg
-> [eva] computing for function __builtin_va_arg <- main.
->   Called from tests/value/va_list2.c:20.
-> [eva] Done for function __builtin_va_arg
-diff tests/value/oracle/widen_on_non_monotonic.res.oracle tests/value/oracle_gauges/widen_on_non_monotonic.res.oracle
-25a26,27
-> [eva] tests/value/widen_on_non_monotonic.i:21: starting to merge loop iterations
-> [eva] tests/value/widen_on_non_monotonic.i:18: starting to merge loop iterations
-diff tests/value/oracle/widen_overflow.res.oracle tests/value/oracle_gauges/widen_overflow.res.oracle
-31a32,34
-> [eva] computing for function u <- main.
->   Called from tests/value/widen_overflow.i:9.
-> [eva] Done for function u
diff --git a/tests/value/diff_octagons b/tests/value/diff_octagons
deleted file mode 100644
index 60823ae538cd11a1439e74d6916dda01dca0c8c1..0000000000000000000000000000000000000000
--- a/tests/value/diff_octagons
+++ /dev/null
@@ -1,413 +0,0 @@
-diff tests/value/oracle/alias.1.res.oracle tests/value/oracle_octagons/alias.1.res.oracle
-85c85
-<   z ∈ {0; 1; 2}
----
->   z ∈ {0; 2}
-diff tests/value/oracle/alias.2.res.oracle tests/value/oracle_octagons/alias.2.res.oracle
-76c76
-<   z ∈ {-5; -4; -3; -2; -1; 0; 1; 1000}
----
->   z ∈ {-2; -1; 0; 1000}
-diff tests/value/oracle/alias.3.res.oracle tests/value/oracle_octagons/alias.3.res.oracle
-67c67
-<   z ∈ {0; 1; 2}
----
->   z ∈ {0; 2}
-diff tests/value/oracle/alias.5.res.oracle tests/value/oracle_octagons/alias.5.res.oracle
-59a60
-> [eva] tests/value/alias.i:260: starting to merge loop iterations
-diff tests/value/oracle/alias.6.res.oracle tests/value/oracle_octagons/alias.6.res.oracle
-82c82
-<   t ∈ {4; 5; 6}
----
->   t ∈ {5}
-87c87
-<   y ∈ {0; 1}
----
->   y ∈ {1}
-94,96c94,96
-<   tz1 ∈ {0; 1}
-<   tz2 ∈ {0; 1}
-<   tz3 ∈ {0; 1}
----
->   tz1 ∈ {1}
->   tz2 ∈ {1}
->   tz3 ∈ {1}
-diff tests/value/oracle/auto_loop_unroll.0.res.oracle tests/value/oracle_octagons/auto_loop_unroll.0.res.oracle
-211,212d210
-< [eva:alarm] tests/value/auto_loop_unroll.c:203: Warning: 
-<   signed overflow. assert -2147483648 ≤ i_0 - 1;
-218,219d215
-< [eva:alarm] tests/value/auto_loop_unroll.c:208: Warning: 
-<   signed overflow. assert -2147483648 ≤ i_1 - 1;
-245,246d240
-< [eva:alarm] tests/value/auto_loop_unroll.c:240: Warning: 
-<   signed overflow. assert -2147483648 ≤ i - 1;
-306c300
-<   i ∈ [-2147483648..20]
----
->   i ∈ {-1}
-diff tests/value/oracle/bitfield.res.oracle tests/value/oracle_octagons/bitfield.res.oracle
-138a139,141
-> [eva] tests/value/bitfield.i:71: 
->   Frama_C_show_each:
->   {{ garbled mix of &{b} (origin: Misaligned {tests/value/bitfield.i:70}) }}
-diff tests/value/oracle/builtins_split.res.oracle tests/value/oracle_octagons/builtins_split.res.oracle
-70a71,84
-> [eva] tests/value/builtins_split.c:104: 
->   Call to builtin Frama_C_builtin_split_all
-> [eva] tests/value/builtins_split.c:104: 
->   Call to builtin Frama_C_builtin_split_all
-> [eva] tests/value/builtins_split.c:104: 
->   Call to builtin Frama_C_builtin_split_all
-> [eva] tests/value/builtins_split.c:104: 
->   Call to builtin Frama_C_builtin_split_all
-> [eva] tests/value/builtins_split.c:104: 
->   Call to builtin Frama_C_builtin_split_all
-> [eva] tests/value/builtins_split.c:104: 
->   Call to builtin Frama_C_builtin_split_all
-> [eva] tests/value/builtins_split.c:104: 
->   Call to builtin Frama_C_builtin_split_all
-81a96,109
-> [eva] tests/value/builtins_split.c:112: 
->   Call to builtin Frama_C_builtin_split_all
-> [eva] tests/value/builtins_split.c:112: 
->   Call to builtin Frama_C_builtin_split_all
-> [eva] tests/value/builtins_split.c:112: 
->   Call to builtin Frama_C_builtin_split_all
-> [eva] tests/value/builtins_split.c:112: 
->   Call to builtin Frama_C_builtin_split_all
-> [eva] tests/value/builtins_split.c:112: 
->   Call to builtin Frama_C_builtin_split_all
-> [eva] tests/value/builtins_split.c:112: 
->   Call to builtin Frama_C_builtin_split_all
-> [eva] tests/value/builtins_split.c:112: 
->   Call to builtin Frama_C_builtin_split_all
-diff tests/value/oracle/call_simple.res.oracle tests/value/oracle_octagons/call_simple.res.oracle
-28c28
-<   c ∈ [--..--]
----
->   c ∈ [-2147483648..2147483646]
-diff tests/value/oracle/descending.res.oracle tests/value/oracle_octagons/descending.res.oracle
-42c42
-<   i ∈ {31; 32}
----
->   i ∈ {31}
-diff tests/value/oracle/downcast.1.res.oracle tests/value/oracle_octagons/downcast.1.res.oracle
-61c61
-<   [100000..2147483647], [100145..2147483647], [100145..2147483647]
----
->   [100000..2147483502], [100145..2147483647], [100145..2147483647]
-166c166
-<   x_0 ∈ [100000..2147483647]
----
->   x_0 ∈ [100000..2147483502]
-diff tests/value/oracle/equality.res.oracle tests/value/oracle_octagons/equality.res.oracle
-29,30c29,30
-<   y ∈ [0..42] or UNINITIALIZED
-<   w ∈ [0..42] or UNINITIALIZED
----
->   y ∈ [0..42]
->   w ∈ [0..42]
-diff tests/value/oracle/find_ivaltop.res.oracle tests/value/oracle_octagons/find_ivaltop.res.oracle
-32,33c32,33
-<   j ∈ {0; 1; 2; 3; 4; 5; 6; 7}
-<   X ∈ {1; 2; 3; 4; 5; 6; 7; 8}
----
->   j ∈ {7}
->   X ∈ {8}
-39c39
-<   \result FROM t[0..7]
----
->   \result FROM t[7]
-44c44
-<     t[0..7]
----
->     t[7]
-diff tests/value/oracle/for_loops.3.res.oracle tests/value/oracle_octagons/for_loops.3.res.oracle
-20c20
-<   v ∈ [0..2147483647]
----
->   v ∈ [5..2147483647]
-diff tests/value/oracle/gauges.res.oracle tests/value/oracle_octagons/gauges.res.oracle
-209,210d208
-< [eva:alarm] tests/value/gauges.c:156: Warning: 
-<   signed overflow. assert -2147483648 ≤ toCopy - 1;
-276,277d273
-< [eva:alarm] tests/value/gauges.c:201: Warning: 
-<   signed overflow. assert -2147483648 ≤ numNonZero - 1;
-300,304d295
-< [eva] tests/value/gauges.c:218: Frama_C_show_each:
-< [eva] tests/value/gauges.c:218: Frama_C_show_each:
-< [eva] tests/value/gauges.c:218: Frama_C_show_each:
-< [eva:alarm] tests/value/gauges.c:220: Warning: 
-<   signed overflow. assert -2147483648 ≤ n - 1;
-791c782
-<   numNonZero ∈ [-2147483648..8]
----
->   numNonZero ∈ {-1}
-802c793
-<   n ∈ [-2147483648..99]
----
->   n ∈ {-1}
-863c854
-<   toCopy ∈ [-2147483648..99]
----
->   toCopy ∈ {-1}
-diff tests/value/oracle/loop.res.oracle tests/value/oracle_octagons/loop.res.oracle
-26c26
-<   r ∈ [0..2147483646],0%2
----
->   r ∈ [46..2147483646],0%2
-diff tests/value/oracle/loop_wvar.1.res.oracle tests/value/oracle_octagons/loop_wvar.1.res.oracle
-12,13d11
-< [eva:alarm] tests/value/loop_wvar.i:57: Warning: 
-<   signed overflow. assert next + 1 ≤ 2147483647;
-41c39
-<   next ∈ [0..2147483647]
----
->   next ∈ [0..25]
-diff tests/value/oracle/modulo.res.oracle tests/value/oracle_octagons/modulo.res.oracle
-40a41,56
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [-9..-1], [-8..0]
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [1..9], [-8..0]
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [-9..-1], [0..8]
-> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [1..9], [0..8]
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
-> [eva] tests/value/modulo.i:41: 
->   Frama_C_show_each_1:
->   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
-50a67,82
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [1..9], [-8..0]
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [-9..-1], [-8..0]
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [1..9], [0..8]
-> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [-9..-1], [0..8]
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
-> [eva] tests/value/modulo.i:53: 
->   Frama_C_show_each_2:
->   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
-60a93,94
-> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-10..10], [-9..9], [-8..8]
-> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-9..9], [-8..8], [-7..7]
-diff tests/value/oracle/non_natural.res.oracle tests/value/oracle_octagons/non_natural.res.oracle
-58a59,60
-> [kernel] tests/value/non_natural.i:30: 
->   more than 200(12500) elements to enumerate. Approximating.
-65a68,69
-> [kernel] tests/value/non_natural.i:23: 
->   more than 200(12500) elements to enumerate. Approximating.
-70a75,76
-> [kernel] tests/value/non_natural.i:24: 
->   more than 200(12500) elements to enumerate. Approximating.
-78a85,86
-> [kernel] tests/value/non_natural.i:25: 
->   more than 200(12500) elements to enumerate. Approximating.
-86a95,96
-> [kernel] tests/value/non_natural.i:26: 
->   more than 200(12500) elements to enumerate. Approximating.
-94a105,106
-> [kernel] tests/value/non_natural.i:27: 
->   more than 200(12500) elements to enumerate. Approximating.
-102a115,116
-> [kernel] tests/value/non_natural.i:28: 
->   more than 200(12500) elements to enumerate. Approximating.
-110a125,126
-> [kernel] tests/value/non_natural.i:29: 
->   more than 200(12500) elements to enumerate. Approximating.
-129,130d144
-< [kernel] tests/value/non_natural.i:23: 
-<   more than 200(12500) elements to enumerate. Approximating.
-133,146d146
-< [kernel] tests/value/non_natural.i:24: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:25: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:26: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:27: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:28: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:29: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:30: 
-<   more than 200(12500) elements to enumerate. Approximating.
-199a200,201
-> [kernel] tests/value/non_natural.i:39: 
->   more than 200(12500) elements to enumerate. Approximating.
-diff tests/value/oracle/nonlin.res.oracle tests/value/oracle_octagons/nonlin.res.oracle
-113a114,115
-> [eva:nonlin] tests/value/nonlin.c:71: non-linear 'x * x', lv 'x'
-> [eva:nonlin] tests/value/nonlin.c:71: subdividing on x
-116a119,121
-> [eva:nonlin] tests/value/nonlin.c:72: subdividing on x
-> [eva:nonlin] tests/value/nonlin.c:72: non-linear 'y * y', lv 'y'
-> [eva:nonlin] tests/value/nonlin.c:72: subdividing on y
-119a125,126
-> [eva:nonlin] tests/value/nonlin.c:74: non-linear 'z * x + x * y', lv 'x'
-> [eva:nonlin] tests/value/nonlin.c:74: subdividing on x
-157a165,166
-> [eva:nonlin] tests/value/nonlin.c:118: non-linear 'x * x', lv 'x'
-> [eva:nonlin] tests/value/nonlin.c:118: subdividing on x
-160a170
-> [eva:nonlin] tests/value/nonlin.c:119: subdividing on x
-161a172
-> [eva:nonlin] tests/value/nonlin.c:121: subdividing on x
-diff tests/value/oracle/plevel.res.oracle tests/value/oracle_octagons/plevel.res.oracle
-12d11
-< [eva] Recording results for main
-14a14
-> [eva] Recording results for main
-diff tests/value/oracle/ptr_relation.1.res.oracle tests/value/oracle_octagons/ptr_relation.1.res.oracle
-24c24
-<   j ∈ {-1; 0; 1}
----
->   j ∈ {0}
-diff tests/value/oracle/relation_reduction.res.oracle tests/value/oracle_octagons/relation_reduction.res.oracle
-24,27d23
-< [eva:alarm] tests/value/relation_reduction.i:20: Warning: 
-<   accessing out of bounds index. assert 0 ≤ y;
-< [eva:alarm] tests/value/relation_reduction.i:20: Warning: 
-<   accessing out of bounds index. assert y < 9;
-34,37c30,33
-<   R1 ∈ [-2147483648..2147483637]
-<   R2 ∈ [-2147483638..2147483647]
-<   R3 ∈ [--..--]
-<   R4 ∈ {0; 1; 2; 3; 4; 5}
----
->   R1 ∈ {0; 2}
->   R2 ∈ {0; 12}
->   R3 ∈ {0; 7}
->   R4 ∈ {0; 2}
-48c44
-<   R4 FROM tab[0..8]; x (and SELF)
----
->   R4 FROM tab[0..5]; x (and SELF)
-53c49
-<     y; t; tab[0..8]
----
->     y; t; tab[0..5]
-diff tests/value/oracle/relation_shift.res.oracle tests/value/oracle_octagons/relation_shift.res.oracle
-18,25d17
-< [eva:alarm] tests/value/relation_shift.i:15: Warning: 
-<   signed overflow. assert -2147483648 ≤ x - y;
-< [eva:alarm] tests/value/relation_shift.i:15: Warning: 
-<   signed overflow. assert x - y ≤ 2147483647;
-< [eva:alarm] tests/value/relation_shift.i:16: Warning: 
-<   signed overflow. assert -2147483648 ≤ z - y;
-< [eva:alarm] tests/value/relation_shift.i:16: Warning: 
-<   signed overflow. assert z - y ≤ 2147483647;
-31,32c23,24
-<   r1 ∈ [--..--]
-<   r2 ∈ [--..--]
----
->   r1 ∈ {2}
->   r2 ∈ {7}
-35,37c27,29
-<   x ∈ [-2147483647..2147483647]
-<   y ∈ [-2147483648..2147483646]
-<   z ∈ [-2147483642..2147483647]
----
->   x ∈ [-2147483646..2147483642]
->   y ∈ [-2147483648..2147483640]
->   z ∈ [-2147483641..2147483647]
-49,50c41,42
-<   r1 ∈ [--..--]
-<   r2 ∈ [--..--]
----
->   r1 ∈ {2}
->   r2 ∈ {7}
-53,55c45,47
-<   x ∈ [-2147483647..2147483647]
-<   y ∈ [-2147483648..2147483646]
-<   z ∈ [-2147483642..2147483647]
----
->   x ∈ [-2147483646..2147483642]
->   y ∈ [-2147483648..2147483640]
->   z ∈ [-2147483641..2147483647]
-diff tests/value/oracle/relations.res.oracle tests/value/oracle_octagons/relations.res.oracle
-80,81c80,82
-<   e ∈ [--..--]
-<   f ∈ [--..--]
----
->   e ∈ {1}
->   f[bits 0 to 7] ∈ {1; 4}
->    [bits 8 to 31] ∈ [--..--]
-diff tests/value/oracle/relations2.res.oracle tests/value/oracle_octagons/relations2.res.oracle
-25c25
-<   len ∈ [--..--]
----
->   len ∈ [0..1023]
-36,37c36
-< [eva] tests/value/relations2.i:17: 
-<   Frama_C_show_each_end: [0..4294967295], [0..64]
----
-> [eva] tests/value/relations2.i:17: Frama_C_show_each_end: [0..1023], [0..64]
-59c58
-<   n ∈ [0..512]
----
->   n ∈ [1..512]
-69,71d67
-< [eva:alarm] tests/value/relations2.i:34: Warning: 
-<   accessing out of bounds index.
-<   assert (unsigned int)(i - (unsigned int)(t + 1)) < 514;
-80c76
-<   n ∈ [0..512]
----
->   n ∈ [1..512]
-97c93
-<   n ∈ [0..512]
----
->   n ∈ [1..512]
-140c136
-<   len ∈ [--..--]
----
->   len ∈ [0..1023]
-diff tests/value/oracle/semaphore.res.oracle tests/value/oracle_octagons/semaphore.res.oracle
-65c65
-<   c ∈ {-26; -1}
----
->   c ∈ {-1}
-diff tests/value/oracle/struct2.res.oracle tests/value/oracle_octagons/struct2.res.oracle
-81,84d80
-<   accessing out of bounds index. assert 0 ≤ (int)(i + j);
-< [eva:alarm] tests/value/struct2.i:185: Warning: 
-<   accessing out of bounds index. assert (int)(i + j) < 2;
-< [eva:alarm] tests/value/struct2.i:185: Warning: 
-106d101
-< [scope:rm_asserts] removing 2 assertion(s)
-diff tests/value/oracle/test.0.res.oracle tests/value/oracle_octagons/test.0.res.oracle
-17,18d16
-< [eva:alarm] tests/value/test.i:11: Warning: 
-<   signed overflow. assert j + ecart ≤ 2147483647;
-29c27
-<   j ∈ [-1073741822..1]
----
->   j ∈ {-1; 0; 1}
-Only in tests/value/oracle: unit_tests.res.oracle
-diff tests/value/oracle/unroll.res.oracle tests/value/oracle_octagons/unroll.res.oracle
-22c22
-<   G ∈ [17739..2147483647]
----
->   G ∈ [17854..2147483647]
-diff tests/value/oracle/unroll_simple.res.oracle tests/value/oracle_octagons/unroll_simple.res.oracle
-17c17
-<   G ∈ [8772..2147483647]
----
->   G ∈ [8896..2147483647]
diff --git a/tests/value/diff_symblocs b/tests/value/diff_symblocs
deleted file mode 100644
index a03b0b46bdb9405bb44d74b683245c7fc1b0b4a3..0000000000000000000000000000000000000000
--- a/tests/value/diff_symblocs
+++ /dev/null
@@ -1,329 +0,0 @@
-diff tests/value/oracle/alias.0.res.oracle tests/value/oracle_symblocs/alias.0.res.oracle
-103,104c103,104
-<   t ∈ {1; 2; 4}
-<   u ∈ {2; 3; 4; 5}
----
->   t ∈ {4}
->   u ∈ {5}
-110c110
-<   t2 ∈ {0; 3; 6}
----
->   t2 ∈ {6}
-diff tests/value/oracle/alias.4.res.oracle tests/value/oracle_symblocs/alias.4.res.oracle
-81c81
-<   y ∈ {0; 3; 77}
----
->   y ∈ {77}
-diff tests/value/oracle/alias.5.res.oracle tests/value/oracle_symblocs/alias.5.res.oracle
-170c170
-<   y ∈ {0; 3; 77}
----
->   y ∈ {77}
-diff tests/value/oracle/alias.6.res.oracle tests/value/oracle_symblocs/alias.6.res.oracle
-86c86
-<   x ∈ {0; 4; 33}
----
->   x ∈ {33}
-diff tests/value/oracle/bitwise_pointer.res.oracle tests/value/oracle_symblocs/bitwise_pointer.res.oracle
-62c62
-<   x ∈ [0..9]
----
->   x ∈ {5}
-75c75
-<   x1 ∈ [0..9]
----
->   x1 ∈ {5}
-diff tests/value/oracle/bitwise_reduction.res.oracle tests/value/oracle_symblocs/bitwise_reduction.res.oracle
-20c20
-<   {0; 1}, {0; 1; 0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
----
->   {0; 1}, {0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
-23c23
-<   {0; 1}, {0; 1; 0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
----
->   {0; 1}, {0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
-30c30
-<   {{ &t + {0; 4} }}, {0; 1; 0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
----
->   {{ &t + {0; 4} }}, {0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
-33c33
-<   {0; 1}, {0; 1; 0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
----
->   {0; 1}, {0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
-diff tests/value/oracle/domains_function.res.oracle tests/value/oracle_symblocs/domains_function.res.oracle
-19,20c19
-< [eva] tests/value/domains_function.c:92: 
-<   Frama_C_show_each_top: [-2147483648..2147483647]
----
-> [eva] tests/value/domains_function.c:92: Frama_C_show_each_top: {3}
-28,29c27
-< [eva] tests/value/domains_function.c:77: 
-<   Frama_C_show_each_top: [-2147483648..2147483647]
----
-> [eva] tests/value/domains_function.c:77: Frama_C_show_each_top: {1}
-32,33c30
-< [eva] tests/value/domains_function.c:96: 
-<   Frama_C_show_each_top: [-2147483648..2147483647]
----
-> [eva] tests/value/domains_function.c:96: Frama_C_show_each_top: {1}
-52,56c49,50
-< [eva] computing for function not_enabled <- recursively_enabled <- main.
-<   Called from tests/value/domains_function.c:110.
-< [eva] tests/value/domains_function.c:77: Frama_C_show_each_top: {1}
-< [eva] Recording results for not_enabled
-< [eva] Done for function not_enabled
----
-> [eva] tests/value/domains_function.c:110: 
->   Reusing old results for call to not_enabled
-58,63c52,53
-< [eva] computing for function disabled <- recursively_enabled <- main.
-<   Called from tests/value/domains_function.c:112.
-< [eva] tests/value/domains_function.c:84: 
-<   Frama_C_show_each_top: [-2147483648..2147483647]
-< [eva] Recording results for disabled
-< [eva] Done for function disabled
----
-> [eva] tests/value/domains_function.c:112: 
->   Reusing old results for call to disabled
-130c120
-<   result ∈ [--..--]
----
->   result ∈ {1}
-diff tests/value/oracle/incompatible_states.res.oracle tests/value/oracle_symblocs/incompatible_states.res.oracle
-41,42d40
-< [eva:alarm] tests/value/incompatible_states.c:53: Warning: 
-<   division by zero. assert t[i] ≢ 0;
-49c47
-< [scope:rm_asserts] removing 2 assertion(s)
----
-> [scope:rm_asserts] removing 1 assertion(s)
-diff tests/value/oracle/library.res.oracle tests/value/oracle_symblocs/library.res.oracle
-129,132d128
-< [eva:alarm] tests/value/library.i:44: Warning: 
-<   non-finite float value. assert \is_finite(*pf);
-< [eva:alarm] tests/value/library.i:44: Warning: 
-<   non-finite float value. assert \is_finite(\add_float(*pf, *pf));
-diff tests/value/oracle/non_natural.res.oracle tests/value/oracle_symblocs/non_natural.res.oracle
-58a59,60
-> [kernel] tests/value/non_natural.i:30: 
->   more than 200(12500) elements to enumerate. Approximating.
-65a68,71
-> [kernel] tests/value/non_natural.i:23: 
->   more than 200(12501) elements to enumerate. Approximating.
-> [kernel] tests/value/non_natural.i:23: 
->   more than 200(12500) elements to enumerate. Approximating.
-70a77,80
-> [kernel] tests/value/non_natural.i:24: 
->   more than 200(12501) elements to enumerate. Approximating.
-> [kernel] tests/value/non_natural.i:24: 
->   more than 200(12500) elements to enumerate. Approximating.
-78a89,90
-> [kernel] tests/value/non_natural.i:25: 
->   more than 200(12500) elements to enumerate. Approximating.
-86a99,100
-> [kernel] tests/value/non_natural.i:26: 
->   more than 200(12500) elements to enumerate. Approximating.
-94a109,110
-> [kernel] tests/value/non_natural.i:27: 
->   more than 200(12500) elements to enumerate. Approximating.
-102a119,120
-> [kernel] tests/value/non_natural.i:28: 
->   more than 200(12500) elements to enumerate. Approximating.
-110a129,130
-> [kernel] tests/value/non_natural.i:29: 
->   more than 200(12500) elements to enumerate. Approximating.
-127,146d146
-< [kernel] tests/value/non_natural.i:23: 
-<   more than 200(12501) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:23: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:24: 
-<   more than 200(12501) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:24: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:25: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:26: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:27: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:28: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:29: 
-<   more than 200(12500) elements to enumerate. Approximating.
-< [kernel] tests/value/non_natural.i:30: 
-<   more than 200(12500) elements to enumerate. Approximating.
-199a200,201
-> [kernel] tests/value/non_natural.i:39: 
->   more than 200(12500) elements to enumerate. Approximating.
-diff tests/value/oracle/offsetmap.0.res.oracle tests/value/oracle_symblocs/offsetmap.0.res.oracle
-40d39
-< [eva] Recording results for g
-42a42
-> [eva] Recording results for g
-diff tests/value/oracle/offsetmap.1.res.oracle tests/value/oracle_symblocs/offsetmap.1.res.oracle
-40d39
-< [eva] Recording results for g
-42a42
-> [eva] Recording results for g
-diff tests/value/oracle/plevel.res.oracle tests/value/oracle_symblocs/plevel.res.oracle
-12d11
-< [eva] Recording results for main
-14a14
-> [eva] Recording results for main
-diff tests/value/oracle/ptr_relation.0.res.oracle tests/value/oracle_symblocs/ptr_relation.0.res.oracle
-23c23
-<   i ∈ {0; 77; 333}
----
->   i ∈ {77}
-diff tests/value/oracle/redundant_alarms.res.oracle tests/value/oracle_symblocs/redundant_alarms.res.oracle
-10,13d9
-< [eva:alarm] tests/value/redundant_alarms.c:11: Warning: 
-<   accessing uninitialized left-value. assert \initialized(p);
-< [eva:alarm] tests/value/redundant_alarms.c:12: Warning: 
-<   accessing uninitialized left-value. assert \initialized(p);
-24,27d19
-< [eva:alarm] tests/value/redundant_alarms.c:21: Warning: 
-<   accessing uninitialized left-value. assert \initialized(&t[i]);
-< [eva:alarm] tests/value/redundant_alarms.c:22: Warning: 
-<   accessing uninitialized left-value. assert \initialized(&t[i]);
-38,41d29
-< [eva:alarm] tests/value/redundant_alarms.c:32: Warning: 
-<   accessing uninitialized left-value. assert \initialized(&t[j]);
-< [eva:alarm] tests/value/redundant_alarms.c:33: Warning: 
-<   accessing uninitialized left-value. assert \initialized(&t[i]);
-63,69d50
-< [scope:rm_asserts] removing 3 assertion(s)
-< [scope:rm_asserts] tests/value/redundant_alarms.c:12: 
-<   removing redundant assert Eva: initialization: \initialized(p);
-< [scope:rm_asserts] tests/value/redundant_alarms.c:32: 
-<   removing redundant assert Eva: initialization: \initialized(&t[j]);
-< [scope:rm_asserts] tests/value/redundant_alarms.c:33: 
-<   removing redundant assert Eva: initialization: \initialized(&t[i]);
-108d88
-<   /*@ assert Eva: initialization: \initialized(p); */
-110d89
-<   /*@ assert Eva: initialization: \initialized(p); */
-127d105
-<   /*@ assert Eva: initialization: \initialized(&t[i]); */
-129d106
-<   /*@ assert Eva: initialization: \initialized(&t[i]); */
-142d118
-<     /*@ assert Eva: initialization: \initialized(&t[j]); */
-144d119
-<     /*@ assert Eva: initialization: \initialized(&t[i]); */
-196a172
->   int z;
-199,201d174
-<   *p = 1;
-<   int z = *p + 1;
-<   int w = *p + 2;
-diff tests/value/oracle/relations2.res.oracle tests/value/oracle_symblocs/relations2.res.oracle
-133d132
-< [eva] tests/value/relations2.i:57: Frama_C_show_each_NO2:
-diff tests/value/oracle/struct2.res.oracle tests/value/oracle_symblocs/struct2.res.oracle
-55a56,57
-> [kernel] tests/value/struct2.i:78: Warning: 
->   all target addresses were invalid. This path is assumed to be dead.
-59,60d60
-<   accessing out of bounds index. assert 0 ≤ (int)(tab2[i] + j);
-< [eva:alarm] tests/value/struct2.i:82: Warning: 
-83,84d82
-<   accessing out of bounds index. assert (int)(i + j) < 2;
-< [eva:alarm] tests/value/struct2.i:185: Warning: 
-106c104
-< [scope:rm_asserts] removing 2 assertion(s)
----
-> [scope:rm_asserts] removing 1 assertion(s)
-144,145c142
-<   tab4[0] ∈ {0; 2}
-<       [1] ∈ {0}
----
->   tab4[0..1] ∈ {0}
-148c145,146
-<   tab6[0..1] ∈ {0; 2}
----
->   tab6[0] ∈ {0}
->       [1] ∈ {2}
-219c217
-<            [9].a}; s1; s2; s5.e[0].b; s6.b; s8; tabl[0..1]; tab1[0..1];
----
->            [9].a}; s1; s2; s5.e[0].b; s6.b; s8; tabl[0..1]; tab1[0];
-diff tests/value/oracle/symbolic_locs.res.oracle tests/value/oracle_symblocs/symbolic_locs.res.oracle
-20a21,26
->   # Symbolic locations domain:
->   V: {[ t[i] -> {4} ]}
->   Z: {[ t[i] -> t[0..8]; i ]}
->   I: {[ t -> {t[i]}
->         i -> {t[i]} ]}
->   S: {[ i -> {t[i]} ]}
-31a38,42
->   # Symbolic locations domain:
->   V: {[  ]}
->   Z: {[  ]}
->   I: {[  ]}
->   S: {[  ]}
-48a60,65
->   # Symbolic locations domain:
->   V: {[ t[i] -> {4} ]}
->   Z: {[ t[i] -> t[0..8]; i ]}
->   I: {[ t -> {t[i]}
->         i -> {t[i]} ]}
->   S: {[ i -> {t[i]} ]}
-59a77,81
->   # Symbolic locations domain:
->   V: {[  ]}
->   Z: {[  ]}
->   I: {[  ]}
->   S: {[  ]}
-79a102,108
->   # Symbolic locations domain:
->   V: {[ t[i] -> {{ &x }} ]}
->   Z: {[ t[i] -> t[0..8]; i ]}
->   I: {[ t -> {t[i]}
->         i -> {t[i]} ]}
->   S: {[ i -> {t[i]}
->         x -> {t[i]} ]}
-92a122,126
->   # Symbolic locations domain:
->   V: {[  ]}
->   Z: {[  ]}
->   I: {[  ]}
->   S: {[  ]}
-108a143,148
->   # Symbolic locations domain:
->   V: {[ t[i] -> {1} ]}
->   Z: {[ t[i] -> t[0..8]; i ]}
->   I: {[ t -> {t[i]}
->         i -> {t[i]} ]}
->   S: {[ i -> {t[i]} ]}
-117a158,162
->   # Symbolic locations domain:
->   V: {[  ]}
->   Z: {[  ]}
->   I: {[  ]}
->   S: {[  ]}
-134a180,184
->   # Symbolic locations domain:
->   V: {[  ]}
->   Z: {[  ]}
->   I: {[  ]}
->   S: {[  ]}
-141,143c191
-< [eva:alarm] tests/value/symbolic_locs.i:111: Warning: 
-<   signed overflow. assert *p + 1 ≤ 2147483647;
-< [eva] tests/value/symbolic_locs.i:113: Frama_C_show_each: [0..2147483647]
----
-> [eva] tests/value/symbolic_locs.i:113: Frama_C_show_each: [10001..2147483647]
-152a201,205
->   # Symbolic locations domain:
->   V: {[  ]}
->   Z: {[  ]}
->   I: {[  ]}
->   S: {[  ]}
-diff tests/value/oracle/test.0.res.oracle tests/value/oracle_symblocs/test.0.res.oracle
-31c31
-<   tmp ∈ [--..--] or UNINITIALIZED
----
->   tmp ∈ [-2147483647..2147483647] or UNINITIALIZED
-Only in tests/value/oracle: unit_tests.res.oracle
diff --git a/tests/value/oracle_apron/alias.1.res.oracle b/tests/value/oracle_apron/alias.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..aaa1d8228100a2a23d9e68f2d441b2743e0accba
--- /dev/null
+++ b/tests/value/oracle_apron/alias.1.res.oracle
@@ -0,0 +1,4 @@
+85c85
+<   z ∈ {0; 1; 2}
+---
+>   z ∈ {0; 2}
diff --git a/tests/value/oracle_apron/alias.2.res.oracle b/tests/value/oracle_apron/alias.2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..62a4c928c5f07363d10d06a14440222d3f72b373
--- /dev/null
+++ b/tests/value/oracle_apron/alias.2.res.oracle
@@ -0,0 +1,4 @@
+76c76
+<   z ∈ {-5; -4; -3; -2; -1; 0; 1; 1000}
+---
+>   z ∈ {-1; 1000}
diff --git a/tests/value/oracle_apron/alias.3.res.oracle b/tests/value/oracle_apron/alias.3.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..e14f1380123bfd42bbd395f88c728c05558d44b3
--- /dev/null
+++ b/tests/value/oracle_apron/alias.3.res.oracle
@@ -0,0 +1,4 @@
+67c67
+<   z ∈ {0; 1; 2}
+---
+>   z ∈ {0; 2}
diff --git a/tests/value/oracle_apron/alias.6.res.oracle b/tests/value/oracle_apron/alias.6.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..580aafe92347b82302efe8945c3977725ac84e5e
--- /dev/null
+++ b/tests/value/oracle_apron/alias.6.res.oracle
@@ -0,0 +1,4 @@
+82c82
+<   t ∈ {4; 5; 6}
+---
+>   t ∈ {5}
diff --git a/tests/value/oracle_apron/array_degenerating_loop.res.oracle b/tests/value/oracle_apron/array_degenerating_loop.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..09d1cc74c0334cddc7c42aedcfcdf45b2d344cc7
--- /dev/null
+++ b/tests/value/oracle_apron/array_degenerating_loop.res.oracle
@@ -0,0 +1,7 @@
+11,12d10
+< [eva:alarm] tests/value/array_degenerating_loop.i:9: Warning: 
+<   signed overflow. assert G + t[i] ≤ 2147483647;
+14c12
+<   Frama_C_show_each: [55..2147483647], [-2147483648..99]
+---
+>   Frama_C_show_each: [55..155], [-2147483648..99]
diff --git a/tests/value/oracle_apron/audit.res.oracle b/tests/value/oracle_apron/audit.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9ff41db248872519df6d5b9ea95483fc420a1ff1
--- /dev/null
+++ b/tests/value/oracle_apron/audit.res.oracle
@@ -0,0 +1,11 @@
+1,8d0
+< [kernel:audit] Warning: 
+<   different hashes for tests/value/audit.c: got 08f73691217888d926a0ee15cbe18159, expected 01010101010101010101010101010101
+< [kernel:audit] Warning: 
+<   different hashes for tests/value/audit_included_but_not_listed.h: got c2cc488143a476f69cf2ed04c3439e6e, expected <none> (not in list)
+< [kernel:audit] Warning: 
+<   missing files:
+<   tests/value/non_existing_file.h
+< [kernel] Audit: sources list written to: tests/value/result/audit-out.json
+34d25
+< [kernel] Wrote: tests/value/result/audit-out.json
diff --git a/tests/value/oracle_apron/auto_loop_unroll.0.res.oracle b/tests/value/oracle_apron/auto_loop_unroll.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..a327adacc6b58b32c198364c25748edc883450ae
--- /dev/null
+++ b/tests/value/oracle_apron/auto_loop_unroll.0.res.oracle
@@ -0,0 +1,325 @@
+11,13c11
+< [eva:alarm] tests/value/auto_loop_unroll.c:25: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:27: Frama_C_show_each_auto: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:27: Frama_C_show_each_auto: {100}
+15,18c13
+< [eva:alarm] tests/value/auto_loop_unroll.c:31: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:33: 
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:33: Frama_C_show_each_imprecise: {1000}
+20,23c15
+< [eva:alarm] tests/value/auto_loop_unroll.c:39: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:41: 
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:41: Frama_C_show_each_imprecise: {100}
+32,34c24
+< [eva:alarm] tests/value/auto_loop_unroll.c:58: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:59: Frama_C_show_each_64: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:59: Frama_C_show_each_64: {64}
+36,38c26
+< [eva:alarm] tests/value/auto_loop_unroll.c:63: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:64: Frama_C_show_each_40: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:64: Frama_C_show_each_40: [0..120]
+40,42c28
+< [eva:alarm] tests/value/auto_loop_unroll.c:69: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:72: Frama_C_show_each_80: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:72: Frama_C_show_each_80: [0..160]
+44,47c30
+< [eva:alarm] tests/value/auto_loop_unroll.c:76: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:82: 
+<   Frama_C_show_each_32_80: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:82: Frama_C_show_each_32_80: [0..164]
+55,56d37
+< [eva:alarm] tests/value/auto_loop_unroll.c:88: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+60,62c41
+< [eva:alarm] tests/value/auto_loop_unroll.c:93: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:95: Frama_C_show_each_101: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:95: Frama_C_show_each_101: {101}
+71c50,53
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+81c63,66
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+90c75,78
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+107c95,98
+< [eva] tests/value/auto_loop_unroll.c:100: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:100.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+114,115d104
+< [eva:alarm] tests/value/auto_loop_unroll.c:14: Warning: 
+<   signed overflow. assert g + 1 ≤ 2147483647;
+118c107,110
+< [eva] tests/value/auto_loop_unroll.c:100: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:100.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+121,122d112
+< [eva:alarm] tests/value/auto_loop_unroll.c:18: Warning: 
+<   signed overflow. assert i + 1 ≤ 2147483647;
+125c115
+< [eva] tests/value/auto_loop_unroll.c:103: Frama_C_show_each_25: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:103: Frama_C_show_each_25: {25}
+131c121,122
+< [eva] tests/value/auto_loop_unroll.c:112: Frama_C_show_each_120: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:112: 
+>   Frama_C_show_each_120: [15..2147483647]
+133,136c124
+< [eva:alarm] tests/value/auto_loop_unroll.c:120: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:122: 
+<   Frama_C_show_each_32_64: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:122: Frama_C_show_each_32_64: [0..65]
+138,141c126
+< [eva:alarm] tests/value/auto_loop_unroll.c:130: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:132: 
+<   Frama_C_show_each_1_28: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:132: Frama_C_show_each_1_28: [0..29]
+145c130
+< [eva] tests/value/auto_loop_unroll.c:141: Frama_C_show_each_top: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:141: Frama_C_show_each_top: [3..2147483647]
+161,162d145
+< [eva:alarm] tests/value/auto_loop_unroll.c:164: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+169c152
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+>   Frama_C_show_each_imprecise: [10..2147483647]
+187,192c170,178
+< [eva] tests/value/auto_loop_unroll.c:181: Reusing old results for call to incr_g
+< [eva] tests/value/auto_loop_unroll.c:181: Reusing old results for call to incr_g
+< [eva:alarm] tests/value/auto_loop_unroll.c:183: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:185: 
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+> [eva] computing for function incr_g <- complex_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:181.
+> [eva] Recording results for incr_g
+> [eva] Done for function incr_g
+> [eva] computing for function incr_g <- complex_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:181.
+> [eva] Recording results for incr_g
+> [eva] Done for function incr_g
+> [eva] tests/value/auto_loop_unroll.c:185: Frama_C_show_each_imprecise: [0..64]
+194,197c180
+< [eva:alarm] tests/value/auto_loop_unroll.c:192: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:194: 
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:194: Frama_C_show_each_imprecise: [0..9]
+199,200d181
+< [eva:alarm] tests/value/auto_loop_unroll.c:200: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+204c185
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+>   Frama_C_show_each_imprecise: [64..2147483647]
+210,212c191
+< [eva:alarm] tests/value/auto_loop_unroll.c:212: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:214: Frama_C_show_each_11: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:214: Frama_C_show_each_11: {11}
+214,216c193
+< [eva:alarm] tests/value/auto_loop_unroll.c:217: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:219: Frama_C_show_each_12: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:219: Frama_C_show_each_12: {12}
+218,219d194
+< [eva:alarm] tests/value/auto_loop_unroll.c:223: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+221a197,198
+> [eva:alarm] tests/value/auto_loop_unroll.c:223: Warning: 
+>   signed overflow. assert res + 1 ≤ 2147483647;
+225,226d201
+< [eva:alarm] tests/value/auto_loop_unroll.c:228: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+228a204,205
+> [eva:alarm] tests/value/auto_loop_unroll.c:228: Warning: 
+>   signed overflow. assert res + 1 ≤ 2147483647;
+232,233d208
+< [eva:alarm] tests/value/auto_loop_unroll.c:236: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+237,240c212
+< [eva:alarm] tests/value/auto_loop_unroll.c:241: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:245: 
+<   Frama_C_show_each_11_111: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:245: Frama_C_show_each_11_111: [11..111]
+242,244c214
+< [eva:alarm] tests/value/auto_loop_unroll.c:251: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:253: Frama_C_show_each_16: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:253: Frama_C_show_each_16: [16..2147483647]
+252,254c222
+< [eva:alarm] tests/value/auto_loop_unroll.c:263: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:265: Frama_C_show_each_20: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:265: Frama_C_show_each_20: [20..2147483646]
+256,257d223
+< [eva:alarm] tests/value/auto_loop_unroll.c:268: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+260,262c226
+< [eva] tests/value/auto_loop_unroll.c:270: Frama_C_show_each_21: [0..2147483647]
+< [eva] tests/value/auto_loop_unroll.c:272: starting to merge loop iterations
+< [eva:alarm] tests/value/auto_loop_unroll.c:274: Warning: 
+---
+> [eva:alarm] tests/value/auto_loop_unroll.c:268: Warning: 
+264,266c228,230
+< [eva:alarm] tests/value/auto_loop_unroll.c:272: Warning: 
+<   signed overflow. assert i + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:276: Frama_C_show_each_22: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:270: Frama_C_show_each_21: {21}
+> [eva] tests/value/auto_loop_unroll.c:272: starting to merge loop iterations
+> [eva] tests/value/auto_loop_unroll.c:276: Frama_C_show_each_22: {21; 22}
+268,272c232
+< [eva:alarm] tests/value/auto_loop_unroll.c:282: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva:alarm] tests/value/auto_loop_unroll.c:279: Warning: 
+<   signed overflow. assert i + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:284: Frama_C_show_each_23: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:284: Frama_C_show_each_23: {22; 23}
+276,278c236,237
+< [eva:alarm] tests/value/auto_loop_unroll.c:287: Warning: 
+<   signed overflow. assert i + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:292: Frama_C_show_each_top: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:292: 
+>   Frama_C_show_each_top: [23..2147483647]
+284,286c243,244
+< [eva:alarm] tests/value/auto_loop_unroll.c:299: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:303: Frama_C_show_each_30: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:303: Frama_C_show_each_30: {30}
+> [eva] tests/value/auto_loop_unroll.c:307: starting to merge loop iterations
+289,290c247,248
+< [eva] tests/value/auto_loop_unroll.c:307: starting to merge loop iterations
+< [eva] tests/value/auto_loop_unroll.c:312: Frama_C_show_each_top: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:312: 
+>   Frama_C_show_each_top: [31..2147483647]
+292,294c250
+< [eva:alarm] tests/value/auto_loop_unroll.c:316: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:321: Frama_C_show_each_32: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:321: Frama_C_show_each_32: {32}
+299c255
+<   Frama_C_show_each_33_inf: [0..2147483647]
+---
+>   Frama_C_show_each_33_inf: [33..2147483647]
+303,304d258
+< [eva:alarm] tests/value/auto_loop_unroll.c:332: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+307,310c261
+< [eva:alarm] tests/value/auto_loop_unroll.c:343: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:345: 
+<   Frama_C_show_each_0_35: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:345: Frama_C_show_each_0_35: [0..35]
+313,314d263
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva:alarm] tests/value/auto_loop_unroll.c:348: Warning: 
+316,318c265
+< [eva] tests/value/auto_loop_unroll.c:352: Frama_C_show_each_36: [0..2147483647]
+< [eva] tests/value/auto_loop_unroll.c:355: starting to merge loop iterations
+< [eva:alarm] tests/value/auto_loop_unroll.c:358: Warning: 
+---
+> [eva:alarm] tests/value/auto_loop_unroll.c:348: Warning: 
+320c267,269
+< [eva] tests/value/auto_loop_unroll.c:360: Frama_C_show_each_27: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:352: Frama_C_show_each_36: {36}
+> [eva] tests/value/auto_loop_unroll.c:355: starting to merge loop iterations
+> [eva] tests/value/auto_loop_unroll.c:360: Frama_C_show_each_27: [0..37]
+325,327c274
+< [eva:alarm] tests/value/auto_loop_unroll.c:371: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:375: Frama_C_show_each_50: [1..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:375: Frama_C_show_each_50: {50}
+330,331d276
+< [eva:alarm] tests/value/auto_loop_unroll.c:380: Warning: 
+<   signed overflow. assert -2147483648 ≤ i - 1;
+339,342d283
+< [eva:alarm] tests/value/auto_loop_unroll.c:392: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+< [eva:alarm] tests/value/auto_loop_unroll.c:396: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+344c285
+< [eva] tests/value/auto_loop_unroll.c:398: Frama_C_show_each_30: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:398: Frama_C_show_each_30: {30}
+346,349d286
+< [eva:alarm] tests/value/auto_loop_unroll.c:403: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+< [eva:alarm] tests/value/auto_loop_unroll.c:407: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+351c288
+< [eva] tests/value/auto_loop_unroll.c:412: Frama_C_show_each_30: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:412: Frama_C_show_each_30: {30}
+361c298
+<   __retres ∈ [1..2147483647]
+---
+>   __retres ∈ [1..25]
+363c300
+<   g ∈ [1..2147483647]
+---
+>   g ∈ [1..126]
+391c328
+<   k ∈ [22..2147483647]
+---
+>   k ∈ {22}
diff --git a/tests/value/oracle_apron/auto_loop_unroll.1.res.oracle b/tests/value/oracle_apron/auto_loop_unroll.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..702df814fedff678c3b0b1c0cf8476d6a588c359
--- /dev/null
+++ b/tests/value/oracle_apron/auto_loop_unroll.1.res.oracle
@@ -0,0 +1,310 @@
+15,18c15
+< [eva:alarm] tests/value/auto_loop_unroll.c:31: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:33: 
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:33: Frama_C_show_each_imprecise: {1000}
+20,23c17
+< [eva:alarm] tests/value/auto_loop_unroll.c:39: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:41: 
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:41: Frama_C_show_each_imprecise: {100}
+58c52,55
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+67c64,67
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+76c76,79
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+85c88,91
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+94c100,103
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+103c112,115
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+112c124,127
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+121c136,139
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+130c148,151
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+139c160,163
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+148c172,175
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+157c184,187
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+166c196,199
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+175c208,211
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+184c220,223
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+193c232,235
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+202c244,247
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+211c256,259
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+220c268,271
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+229c280,283
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+238c292,295
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+247c304,307
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+256c316,319
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+265c328,331
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+274c340,343
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+286c355
+< [eva] tests/value/auto_loop_unroll.c:141: Frama_C_show_each_top: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:141: Frama_C_show_each_top: [3..2147483647]
+302,303d370
+< [eva:alarm] tests/value/auto_loop_unroll.c:164: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+310c377
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+>   Frama_C_show_each_imprecise: [10..2147483647]
+328,333c395,403
+< [eva] tests/value/auto_loop_unroll.c:181: Reusing old results for call to incr_g
+< [eva] tests/value/auto_loop_unroll.c:181: Reusing old results for call to incr_g
+< [eva:alarm] tests/value/auto_loop_unroll.c:183: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:185: 
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+> [eva] computing for function incr_g <- complex_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:181.
+> [eva] Recording results for incr_g
+> [eva] Done for function incr_g
+> [eva] computing for function incr_g <- complex_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:181.
+> [eva] Recording results for incr_g
+> [eva] Done for function incr_g
+> [eva] tests/value/auto_loop_unroll.c:185: Frama_C_show_each_imprecise: [0..64]
+335,338c405
+< [eva:alarm] tests/value/auto_loop_unroll.c:192: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:194: 
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:194: Frama_C_show_each_imprecise: [0..9]
+340,341d406
+< [eva:alarm] tests/value/auto_loop_unroll.c:200: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+345c410
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+>   Frama_C_show_each_imprecise: [64..2147483647]
+350c415
+< [eva:loop-unroll] tests/value/auto_loop_unroll.c:211: Automatic loop unrolling.
+---
+> [eva] tests/value/auto_loop_unroll.c:211: starting to merge loop iterations
+352c417
+< [eva:loop-unroll] tests/value/auto_loop_unroll.c:216: Automatic loop unrolling.
+---
+> [eva] tests/value/auto_loop_unroll.c:216: starting to merge loop iterations
+354,359c419,435
+< [eva:loop-unroll] tests/value/auto_loop_unroll.c:222: Automatic loop unrolling.
+< [eva] tests/value/auto_loop_unroll.c:225: Frama_C_show_each_0_13: [0..13]
+< [eva:loop-unroll] tests/value/auto_loop_unroll.c:227: Automatic loop unrolling.
+< [eva] tests/value/auto_loop_unroll.c:230: Frama_C_show_each_0_14: [0..14]
+< [eva:loop-unroll] tests/value/auto_loop_unroll.c:233: Automatic loop unrolling.
+< [eva] tests/value/auto_loop_unroll.c:238: Frama_C_show_each_0_15: [0..15]
+---
+> [eva] tests/value/auto_loop_unroll.c:222: starting to merge loop iterations
+> [eva:alarm] tests/value/auto_loop_unroll.c:222: Warning: 
+>   signed overflow. assert -2147483648 ≤ i_0 - 1;
+> [eva:alarm] tests/value/auto_loop_unroll.c:223: Warning: 
+>   signed overflow. assert res + 1 ≤ 2147483647;
+> [eva] tests/value/auto_loop_unroll.c:225: 
+>   Frama_C_show_each_0_13: [0..2147483647]
+> [eva] tests/value/auto_loop_unroll.c:227: starting to merge loop iterations
+> [eva:alarm] tests/value/auto_loop_unroll.c:227: Warning: 
+>   signed overflow. assert -2147483648 ≤ i_1 - 1;
+> [eva:alarm] tests/value/auto_loop_unroll.c:228: Warning: 
+>   signed overflow. assert res + 1 ≤ 2147483647;
+> [eva] tests/value/auto_loop_unroll.c:230: 
+>   Frama_C_show_each_0_14: [0..2147483647]
+> [eva] tests/value/auto_loop_unroll.c:233: starting to merge loop iterations
+> [eva] tests/value/auto_loop_unroll.c:238: 
+>   Frama_C_show_each_0_15: [0..2147483647]
+372c448,452
+< [eva:loop-unroll] tests/value/auto_loop_unroll.c:267: Automatic loop unrolling.
+---
+> [eva] tests/value/auto_loop_unroll.c:267: starting to merge loop iterations
+> [eva:alarm] tests/value/auto_loop_unroll.c:267: Warning: 
+>   signed overflow. assert -2147483648 ≤ i - 1;
+> [eva:alarm] tests/value/auto_loop_unroll.c:268: Warning: 
+>   signed overflow. assert res + 1 ≤ 2147483647;
+381,383c461,462
+< [eva:alarm] tests/value/auto_loop_unroll.c:287: Warning: 
+<   signed overflow. assert i + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:292: Frama_C_show_each_top: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:292: 
+>   Frama_C_show_each_top: [23..2147483647]
+408,409d486
+< [eva:alarm] tests/value/auto_loop_unroll.c:332: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+413c490,494
+< [eva:loop-unroll] tests/value/auto_loop_unroll.c:348: Automatic loop unrolling.
+---
+> [eva] tests/value/auto_loop_unroll.c:348: starting to merge loop iterations
+> [eva:alarm] tests/value/auto_loop_unroll.c:348: Warning: 
+>   signed overflow. assert -2147483648 ≤ i - 1;
+> [eva:alarm] tests/value/auto_loop_unroll.c:348: Warning: 
+>   signed overflow. assert res + 1 ≤ 2147483647;
+423,424c504,507
+< [eva:loop-unroll] tests/value/auto_loop_unroll.c:379: Automatic loop unrolling.
+< [eva] tests/value/auto_loop_unroll.c:383: Frama_C_show_each_1_51: [1..51]
+---
+> [eva:alarm] tests/value/auto_loop_unroll.c:379: Warning: 
+>   signed overflow. assert res + 1 ≤ 2147483647;
+> [eva] tests/value/auto_loop_unroll.c:383: 
+>   Frama_C_show_each_1_51: [1..2147483647]
+434c517
+< [eva] tests/value/auto_loop_unroll.c:412: Frama_C_show_each_30: [15..45]
+---
+> [eva] tests/value/auto_loop_unroll.c:412: Frama_C_show_each_30: {30}
+442c525
+<   j ∈ [15..45]
+---
+>   j ∈ [15..30]
+467c550
+<   i ∈ [-1..50]
+---
+>   i ∈ [-2147483648..50]
diff --git a/tests/value/oracle_apron/backward_add_ptr.res.oracle b/tests/value/oracle_apron/backward_add_ptr.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9cfc4f655242e4a5e4a2076eddedd13f8d46063e
--- /dev/null
+++ b/tests/value/oracle_apron/backward_add_ptr.res.oracle
@@ -0,0 +1,28 @@
+71c71,74
+< [eva] tests/value/backward_add_ptr.c:91: Reusing old results for call to gm
+---
+> [eva] computing for function gm <- main3 <- main.
+>   Called from tests/value/backward_add_ptr.c:91.
+> [eva] Recording results for gm
+> [eva] Done for function gm
+93c96,99
+< [eva] tests/value/backward_add_ptr.c:110: Reusing old results for call to gm
+---
+> [eva] computing for function gm <- main3 <- main.
+>   Called from tests/value/backward_add_ptr.c:110.
+> [eva] Recording results for gm
+> [eva] Done for function gm
+107c113,116
+< [eva] tests/value/backward_add_ptr.c:125: Reusing old results for call to gm
+---
+> [eva] computing for function gm <- main3 <- main.
+>   Called from tests/value/backward_add_ptr.c:125.
+> [eva] Recording results for gm
+> [eva] Done for function gm
+160c169,172
+< [eva] tests/value/backward_add_ptr.c:160: Reusing old results for call to gm
+---
+> [eva] computing for function gm <- main4 <- main.
+>   Called from tests/value/backward_add_ptr.c:160.
+> [eva] Recording results for gm
+> [eva] Done for function gm
diff --git a/tests/value/oracle_apron/call_simple.res.oracle b/tests/value/oracle_apron/call_simple.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..74d12f1f99b9b00efad1a5bf4a6df343d225573b
--- /dev/null
+++ b/tests/value/oracle_apron/call_simple.res.oracle
@@ -0,0 +1,4 @@
+28c28
+<   c ∈ [--..--]
+---
+>   c ∈ [-2147483648..2147483646]
diff --git a/tests/value/oracle_apron/deps_compose.res.oracle b/tests/value/oracle_apron/deps_compose.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..53ff902043053d4e1e937cf51bd636179de7d56b
--- /dev/null
+++ b/tests/value/oracle_apron/deps_compose.res.oracle
@@ -0,0 +1,7 @@
+24c24,27
+< [eva] tests/value/deps_compose.i:26: Reusing old results for call to f
+---
+> [eva] computing for function f <- main.
+>   Called from tests/value/deps_compose.i:26.
+> [eva] Recording results for f
+> [eva] Done for function f
diff --git a/tests/value/oracle_apron/divneg.res.oracle b/tests/value/oracle_apron/divneg.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..0659695fb37c75fe814602fcd2d6abf316155eb7
--- /dev/null
+++ b/tests/value/oracle_apron/divneg.res.oracle
@@ -0,0 +1,4 @@
+57c57
+<   vic ∈ {4294967295}
+---
+>   vic ∈ {-1}
diff --git a/tests/value/oracle_apron/domains_function.res.oracle b/tests/value/oracle_apron/domains_function.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..95e35bbc16b3fb6b619df1e1b3ac170c7ded23e7
--- /dev/null
+++ b/tests/value/oracle_apron/domains_function.res.oracle
@@ -0,0 +1,7 @@
+107c107,110
+< [eva] tests/value/domains_function.c:63: Reusing old results for call to use
+---
+> [eva] computing for function use <- test_propagation <- main.
+>   Called from tests/value/domains_function.c:63.
+> [eva] Recording results for use
+> [eva] Done for function use
diff --git a/tests/value/oracle_apron/downcast.1.res.oracle b/tests/value/oracle_apron/downcast.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..da0da7ba8ec0d7c8cab89dd60e854fea4fa0081c
--- /dev/null
+++ b/tests/value/oracle_apron/downcast.1.res.oracle
@@ -0,0 +1,4 @@
+61c61
+<   [100000..2147483647], [100145..2147483647], [100145..2147483647]
+---
+>   [100000..2147483502], [100145..2147483647], [100145..2147483647]
diff --git a/tests/value/oracle_apron/dur.res.oracle b/tests/value/oracle_apron/dur.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..eef642ec07f500457a57d22d48f9c2c45761596b
--- /dev/null
+++ b/tests/value/oracle_apron/dur.res.oracle
@@ -0,0 +1,4 @@
+310c310
+<   V6 ∈ [--..--] or UNINITIALIZED
+---
+>   V6 ∈ [0..32767] or UNINITIALIZED
diff --git a/tests/value/oracle_apron/find_ivaltop.res.oracle b/tests/value/oracle_apron/find_ivaltop.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..78a0a85a73a96bc5f8330e16c4fd3409e09df7d0
--- /dev/null
+++ b/tests/value/oracle_apron/find_ivaltop.res.oracle
@@ -0,0 +1,14 @@
+32,33c32,33
+<   j ∈ {0; 1; 2; 3; 4; 5; 6; 7}
+<   X ∈ {1; 2; 3; 4; 5; 6; 7; 8}
+---
+>   j ∈ {7}
+>   X ∈ {8}
+39c39
+<   \result FROM t[0..7]
+---
+>   \result FROM t[7]
+44c44
+<     t[0..7]
+---
+>     t[7]
diff --git a/tests/value/oracle_apron/for_loops.1.res.oracle b/tests/value/oracle_apron/for_loops.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..2fcfc6f4a9b6b14b3f0a8bb46d613e0c4fb366df
--- /dev/null
+++ b/tests/value/oracle_apron/for_loops.1.res.oracle
@@ -0,0 +1,10 @@
+39,41c39
+< [eva:alarm] tests/value/for_loops.c:16: Warning: 
+<   signed overflow. assert w + 1 ≤ 2147483647;
+< [eva] tests/value/for_loops.c:17: Frama_C_show_each_F: [0..2147483647]
+---
+> [eva] tests/value/for_loops.c:17: Frama_C_show_each_F: [0..100]
+47c45
+<   j ∈ [0..2147483647]
+---
+>   j ∈ [0..100]
diff --git a/tests/value/oracle_apron/for_loops.2.res.oracle b/tests/value/oracle_apron/for_loops.2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..07bdb32470ea74358c823be33bb122db954e445b
--- /dev/null
+++ b/tests/value/oracle_apron/for_loops.2.res.oracle
@@ -0,0 +1,6 @@
+37,39c37
+< [eva:alarm] tests/value/for_loops.c:42: Warning: 
+<   signed overflow. assert w + T[j] ≤ 2147483647;
+< [eva] tests/value/for_loops.c:43: Frama_C_show_each: [0..2147483647]
+---
+> [eva] tests/value/for_loops.c:43: Frama_C_show_each: [0..1000]
diff --git a/tests/value/oracle_apron/fptr.0.res.oracle b/tests/value/oracle_apron/fptr.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..b4a1d24056f4b755a18da16b744420d21a875e9a
--- /dev/null
+++ b/tests/value/oracle_apron/fptr.0.res.oracle
@@ -0,0 +1,34 @@
+57c57,60
+< [eva] tests/value/fptr.i:9: Reusing old results for call to h
+---
+> [eva] computing for function h <- f <- main.
+>   Called from tests/value/fptr.i:9.
+> [eva] Recording results for h
+> [eva] Done for function h
+66,67c69,76
+< [eva] tests/value/fptr.i:9: Reusing old results for call to hh
+< [eva] tests/value/fptr.i:9: Reusing old results for call to h
+---
+> [eva] computing for function hh <- f <- main.
+>   Called from tests/value/fptr.i:9.
+> [eva] Recording results for hh
+> [eva] Done for function hh
+> [eva] computing for function h <- f <- main.
+>   Called from tests/value/fptr.i:9.
+> [eva] Recording results for h
+> [eva] Done for function h
+72c81,92
+< [eva] tests/value/fptr.i:52: Reusing old results for call to f
+---
+> [eva] computing for function f <- main.
+>   Called from tests/value/fptr.i:52.
+> [eva] computing for function hh <- f <- main.
+>   Called from tests/value/fptr.i:9.
+> [eva] Recording results for hh
+> [eva] Done for function hh
+> [eva] computing for function h <- f <- main.
+>   Called from tests/value/fptr.i:9.
+> [eva] Recording results for h
+> [eva] Done for function h
+> [eva] Recording results for f
+> [eva] Done for function f
diff --git a/tests/value/oracle_apron/fptr.1.res.oracle b/tests/value/oracle_apron/fptr.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..ef5c888bc42d1698012afc10855720adcdd87fa6
--- /dev/null
+++ b/tests/value/oracle_apron/fptr.1.res.oracle
@@ -0,0 +1,34 @@
+42c42,45
+< [eva] tests/value/fptr.i:9: Reusing old results for call to h
+---
+> [eva] computing for function h <- f <- main_uninit.
+>   Called from tests/value/fptr.i:9.
+> [eva] Recording results for h
+> [eva] Done for function h
+51,52c54,61
+< [eva] tests/value/fptr.i:9: Reusing old results for call to hh
+< [eva] tests/value/fptr.i:9: Reusing old results for call to h
+---
+> [eva] computing for function hh <- f <- main_uninit.
+>   Called from tests/value/fptr.i:9.
+> [eva] Recording results for hh
+> [eva] Done for function hh
+> [eva] computing for function h <- f <- main_uninit.
+>   Called from tests/value/fptr.i:9.
+> [eva] Recording results for h
+> [eva] Done for function h
+57c66,77
+< [eva] tests/value/fptr.i:68: Reusing old results for call to f
+---
+> [eva] computing for function f <- main_uninit.
+>   Called from tests/value/fptr.i:68.
+> [eva] computing for function hh <- f <- main_uninit.
+>   Called from tests/value/fptr.i:9.
+> [eva] Recording results for hh
+> [eva] Done for function hh
+> [eva] computing for function h <- f <- main_uninit.
+>   Called from tests/value/fptr.i:9.
+> [eva] Recording results for h
+> [eva] Done for function h
+> [eva] Recording results for f
+> [eva] Done for function f
diff --git a/tests/value/oracle_apron/from_call.0.res.oracle b/tests/value/oracle_apron/from_call.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..3d8eeb435b4d2b6eb56557ded9416d85b007927c
--- /dev/null
+++ b/tests/value/oracle_apron/from_call.0.res.oracle
@@ -0,0 +1,34 @@
+68c68,73
+< [eva] tests/value/from_call.i:20: Reusing old results for call to g
+---
+> [eva] computing for function g <- f <- main.
+>   Called from tests/value/from_call.i:20.
+> [eva] Recording results for g
+> [from] Computing for function g
+> [from] Done for function g
+> [eva] Done for function g
+78c83,88
+< [eva] tests/value/from_call.i:20: Reusing old results for call to g
+---
+> [eva] computing for function g <- f <- main.
+>   Called from tests/value/from_call.i:20.
+> [eva] Recording results for g
+> [from] Computing for function g
+> [from] Done for function g
+> [eva] Done for function g
+149,150c159,170
+< [eva] tests/value/from_call.i:44: Reusing old results for call to return_A1
+< [eva] tests/value/from_call.i:44: Reusing old results for call to return_A2
+---
+> [eva] computing for function return_A1 <- dispatcher2 <- call_dispatcher2 <- main.
+>   Called from tests/value/from_call.i:44.
+> [eva] Recording results for return_A1
+> [from] Computing for function return_A1
+> [from] Done for function return_A1
+> [eva] Done for function return_A1
+> [eva] computing for function return_A2 <- dispatcher2 <- call_dispatcher2 <- main.
+>   Called from tests/value/from_call.i:44.
+> [eva] Recording results for return_A2
+> [from] Computing for function return_A2
+> [from] Done for function return_A2
+> [eva] Done for function return_A2
diff --git a/tests/value/oracle_apron/from_call.1.res.oracle b/tests/value/oracle_apron/from_call.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..0e9481c4b676d532f34c58eb79c6556512a6ffad
--- /dev/null
+++ b/tests/value/oracle_apron/from_call.1.res.oracle
@@ -0,0 +1,26 @@
+64c64,67
+< [eva] tests/value/from_call.i:20: Reusing old results for call to g
+---
+> [eva] computing for function g <- f <- main.
+>   Called from tests/value/from_call.i:20.
+> [eva] Recording results for g
+> [eva] Done for function g
+72c75,78
+< [eva] tests/value/from_call.i:20: Reusing old results for call to g
+---
+> [eva] computing for function g <- f <- main.
+>   Called from tests/value/from_call.i:20.
+> [eva] Recording results for g
+> [eva] Done for function g
+123,124c129,136
+< [eva] tests/value/from_call.i:44: Reusing old results for call to return_A1
+< [eva] tests/value/from_call.i:44: Reusing old results for call to return_A2
+---
+> [eva] computing for function return_A1 <- dispatcher2 <- call_dispatcher2 <- main.
+>   Called from tests/value/from_call.i:44.
+> [eva] Recording results for return_A1
+> [eva] Done for function return_A1
+> [eva] computing for function return_A2 <- dispatcher2 <- call_dispatcher2 <- main.
+>   Called from tests/value/from_call.i:44.
+> [eva] Recording results for return_A2
+> [eva] Done for function return_A2
diff --git a/tests/value/oracle_apron/fun_ptr.0.res.oracle b/tests/value/oracle_apron/fun_ptr.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..24772453b039cd2100d2b0e65f481b2487dbcdf4
--- /dev/null
+++ b/tests/value/oracle_apron/fun_ptr.0.res.oracle
@@ -0,0 +1,7 @@
+39c39,42
+< [eva] tests/value/fun_ptr.i:33: Reusing old results for call to f
+---
+> [eva] computing for function f <- test2 <- main.
+>   Called from tests/value/fun_ptr.i:33.
+> [eva] Recording results for f
+> [eva] Done for function f
diff --git a/tests/value/oracle_apron/fun_ptr.1.res.oracle b/tests/value/oracle_apron/fun_ptr.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..56cb49b5839f028e46d51acaddbcea7277b47f47
--- /dev/null
+++ b/tests/value/oracle_apron/fun_ptr.1.res.oracle
@@ -0,0 +1,7 @@
+43c43,46
+< [eva] tests/value/fun_ptr.i:33: Reusing old results for call to f
+---
+> [eva] computing for function f <- test2 <- main.
+>   Called from tests/value/fun_ptr.i:33.
+> [eva] Recording results for f
+> [eva] Done for function f
diff --git a/tests/value/oracle_apron/gauges.res.oracle b/tests/value/oracle_apron/gauges.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..825a3cf2f13e3266cc6128b5bc0d17dd3b01175e
--- /dev/null
+++ b/tests/value/oracle_apron/gauges.res.oracle
@@ -0,0 +1,77 @@
+38,39d37
+< [eva:alarm] tests/value/gauges.c:26: Warning: 
+<   signed overflow. assert l + 1 ≤ 2147483647;
+70,71d67
+< [eva:alarm] tests/value/gauges.c:48: Warning: 
+<   signed overflow. assert l + 1 ≤ 2147483647;
+113,114d108
+< [eva:alarm] tests/value/gauges.c:81: Warning: 
+<   signed overflow. assert k + 1 ≤ 2147483647;
+116,117d109
+< [eva:alarm] tests/value/gauges.c:84: Warning: 
+<   signed overflow. assert k + 1 ≤ 2147483647;
+123a116,117
+> [eva:alarm] tests/value/gauges.c:81: Warning: 
+>   signed overflow. assert k + 1 ≤ 2147483647;
+125c119,121
+< [eva] tests/value/gauges.c:86: Frama_C_show_each: [0..2147483647]
+---
+> [eva:alarm] tests/value/gauges.c:84: Warning: 
+>   signed overflow. assert k + 1 ≤ 2147483647;
+> [eva] tests/value/gauges.c:86: Frama_C_show_each: [15..2147483647]
+139,140d134
+< [eva:alarm] tests/value/gauges.c:99: Warning: 
+<   signed overflow. assert c + 1 ≤ 2147483647;
+187,188d180
+< [eva:alarm] tests/value/gauges.c:140: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+303,304d294
+< [eva:alarm] tests/value/gauges.c:220: Warning: 
+<   signed overflow. assert -2147483648 ≤ n - 1;
+319,320d308
+< [eva:alarm] tests/value/gauges.c:240: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+322c310
+<   Frama_C_show_each: {45; 46; 47; 48; 49; 50; 51}, [0..2147483647]
+---
+>   Frama_C_show_each: {45; 46; 47; 48; 49; 50; 51}, [0..46]
+328,329d315
+< [eva:alarm] tests/value/gauges.c:251: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+331c317
+<   Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, [0..2147483647]
+---
+>   Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, [0..49]
+337,338d322
+< [eva:alarm] tests/value/gauges.c:263: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+340c324
+<   Frama_C_show_each: {-59; -58; -57; -56; -55; -54; -53}, [0..2147483647]
+---
+>   Frama_C_show_each: {-59; -58; -57; -56; -55; -54; -53}, [0..65]
+346,347d329
+< [eva:alarm] tests/value/gauges.c:274: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+349c331
+<   Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, [0..2147483647]
+---
+>   Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, [0..70]
+357,358d338
+< [eva:alarm] tests/value/gauges.c:293: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+360c340
+<   Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..2147483647]
+---
+>   Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..598]
+802c782
+<   n ∈ [-2147483648..99]
+---
+>   n ∈ [-2147483547..99]
+805c785
+<   i ∈ [0..2147483647]
+---
+>   i ∈ [10..2147483647]
+841c821
+<   i ∈ [0..2147483647]
+---
+>   i ∈ [0..21]
diff --git a/tests/value/oracle_apron/ghost.res.oracle b/tests/value/oracle_apron/ghost.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..42a7812e6b5a26ac707cc80b1e8417fa8c0adbc4
--- /dev/null
+++ b/tests/value/oracle_apron/ghost.res.oracle
@@ -0,0 +1,3 @@
+10,11d9
+< [eva:alarm] tests/value/ghost.i:17: Warning: 
+<   signed overflow. assert G + 1 ≤ 2147483647;
diff --git a/tests/value/oracle_apron/hierarchical_convergence.res.oracle b/tests/value/oracle_apron/hierarchical_convergence.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..5cdb7e6916303fb4d6186bde4586b19fa7a9bdc4
--- /dev/null
+++ b/tests/value/oracle_apron/hierarchical_convergence.res.oracle
@@ -0,0 +1,4 @@
+40c40
+<   j ∈ [0..2147483647]
+---
+>   j ∈ [0..99]
diff --git a/tests/value/oracle_apron/initialized_copy.1.res.oracle b/tests/value/oracle_apron/initialized_copy.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..56eb883de0b0f6e180cb58988a8bbb59da0a24ed
--- /dev/null
+++ b/tests/value/oracle_apron/initialized_copy.1.res.oracle
@@ -0,0 +1,14 @@
+24,27c24
+<   c_0[bits 0 to 7] ∈ {1} or UNINITIALIZED
+<      [bits 8 to 15] ∈ {2}
+<      [bits 16 to 23] ∈ {3}
+<      [bits 24 to 31] ∈ {4}
+---
+>   c_0 ∈ {67305985} or UNINITIALIZED
+29,32c26
+<   a_2[bits 0 to 7] ∈ {1} or UNINITIALIZED
+<      [bits 8 to 15] ∈ {2}
+<      [bits 16 to 23] ∈ {3}
+<      [bits 24 to 31] ∈ {4}
+---
+>   a_2 ∈ {67305985} or UNINITIALIZED
diff --git a/tests/value/oracle_apron/invalid_loc_return.res.oracle b/tests/value/oracle_apron/invalid_loc_return.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..765f50eb8f5d23405bbe8401010aa80aac28b5cc
--- /dev/null
+++ b/tests/value/oracle_apron/invalid_loc_return.res.oracle
@@ -0,0 +1,7 @@
+70c70,73
+< [eva] tests/value/invalid_loc_return.i:17: Reusing old results for call to foo
+---
+> [eva] computing for function foo <- main <- main2.
+>   Called from tests/value/invalid_loc_return.i:17.
+> [eva] Recording results for foo
+> [eva] Done for function foo
diff --git a/tests/value/oracle_apron/local.res.oracle b/tests/value/oracle_apron/local.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..186171b423caa117ac5250e76bce53370a79675a
--- /dev/null
+++ b/tests/value/oracle_apron/local.res.oracle
@@ -0,0 +1,7 @@
+22c22,25
+< [eva] tests/value/local.i:13: Reusing old results for call to f
+---
+> [eva] computing for function f <- g <- main.
+>   Called from tests/value/local.i:13.
+> [eva] Recording results for f
+> [eva] Done for function f
diff --git a/tests/value/oracle_apron/local_slevel.res.oracle b/tests/value/oracle_apron/local_slevel.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..3329f131e3c9ff467f4c369b90394fcfd7cca6e9
--- /dev/null
+++ b/tests/value/oracle_apron/local_slevel.res.oracle
@@ -0,0 +1,72 @@
+13,15c13,15
+< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1}
+< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0; 1}
+< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1; 2}
+---
+> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
+> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0}
+> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
+18c18
+<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3}
+---
+>   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3}
+22c22
+<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3; 4}
+---
+>   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3; 4}
+26,34c26
+<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483647]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483647]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483648]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483648]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {1}, [1..79],1%2, [0..4294967295]
+---
+>   Frama_C_show_each: {1}, [1..79],1%2, [1..79]
+36c28
+<   Frama_C_show_each: {-1}, [0..78],0%2, [0..4294967295]
+---
+>   Frama_C_show_each: {-1}, [0..78],0%2, [0..78]
+152c144
+<   r ∈ [--..--]
+---
+>   r ∈ [0..2147483647]
+393,395c385,387
+< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1}
+< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0; 1}
+< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1; 2}
+---
+> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
+> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0}
+> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
+398c390
+<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3}
+---
+>   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3}
+402c394
+<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3; 4}
+---
+>   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3; 4}
+406,414c398
+<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483647]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483647]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483648]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483648]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {1}, [1..79],1%2, [0..4294967295]
+---
+>   Frama_C_show_each: {1}, [1..79],1%2, [1..79]
+416c400
+<   Frama_C_show_each: {-1}, [0..78],0%2, [0..4294967295]
+---
+>   Frama_C_show_each: {-1}, [0..78],0%2, [0..78]
+532c516
+<   r ∈ [--..--]
+---
+>   r ∈ [0..2147483647]
diff --git a/tests/value/oracle_apron/logicdeps.res.oracle b/tests/value/oracle_apron/logicdeps.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..4879c530f7e9cedc73eec56e84b23b4e91a828ec
--- /dev/null
+++ b/tests/value/oracle_apron/logicdeps.res.oracle
@@ -0,0 +1,24 @@
+31c31,39
+< [eva] tests/value/logicdeps.i:25: Reusing old results for call to g
+---
+> [eva] computing for function g <- main.
+>   Called from tests/value/logicdeps.i:25.
+> [eva] computing for function f <- g <- main.
+>   Called from tests/value/logicdeps.i:13.
+> [eva] Done for function f
+> [eva] Recording results for g
+> [from] Computing for function g
+> [from] Done for function g
+> [eva] Done for function g
+51c59,67
+< [eva] tests/value/logicdeps.i:32: Reusing old results for call to g
+---
+> [eva] computing for function g <- main.
+>   Called from tests/value/logicdeps.i:32.
+> [eva] computing for function f <- g <- main.
+>   Called from tests/value/logicdeps.i:13.
+> [eva] Done for function f
+> [eva] Recording results for g
+> [from] Computing for function g
+> [from] Done for function g
+> [eva] Done for function g
diff --git a/tests/value/oracle_apron/long.res.oracle b/tests/value/oracle_apron/long.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..fdb82bba58bf7fc73e93ffa1d4f3b71a9466782e
--- /dev/null
+++ b/tests/value/oracle_apron/long.res.oracle
@@ -0,0 +1,17 @@
+15,17c15,26
+< [eva] tests/value/long.i:12: Reusing old results for call to f
+< [eva] tests/value/long.i:12: Reusing old results for call to f
+< [eva] tests/value/long.i:12: Reusing old results for call to f
+---
+> [eva] computing for function f <- main.
+>   Called from tests/value/long.i:12.
+> [eva] Recording results for f
+> [eva] Done for function f
+> [eva] computing for function f <- main.
+>   Called from tests/value/long.i:12.
+> [eva] Recording results for f
+> [eva] Done for function f
+> [eva] computing for function f <- main.
+>   Called from tests/value/long.i:12.
+> [eva] Recording results for f
+> [eva] Done for function f
diff --git a/tests/value/oracle_apron/long_const.0.res.oracle b/tests/value/oracle_apron/long_const.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9bc5f2d7083802aa0ac216e8eaeca4c1be79eeb8
--- /dev/null
+++ b/tests/value/oracle_apron/long_const.0.res.oracle
@@ -0,0 +1,7 @@
+19c19,22
+< [eva] tests/value/long_const.i:25: Reusing old results for call to LL_ABS
+---
+> [eva] computing for function LL_ABS <- div64 <- main.
+>   Called from tests/value/long_const.i:25.
+> [eva] Recording results for LL_ABS
+> [eva] Done for function LL_ABS
diff --git a/tests/value/oracle_apron/long_const.1.res.oracle b/tests/value/oracle_apron/long_const.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9bc5f2d7083802aa0ac216e8eaeca4c1be79eeb8
--- /dev/null
+++ b/tests/value/oracle_apron/long_const.1.res.oracle
@@ -0,0 +1,7 @@
+19c19,22
+< [eva] tests/value/long_const.i:25: Reusing old results for call to LL_ABS
+---
+> [eva] computing for function LL_ABS <- div64 <- main.
+>   Called from tests/value/long_const.i:25.
+> [eva] Recording results for LL_ABS
+> [eva] Done for function LL_ABS
diff --git a/tests/value/oracle_apron/loop_wvar.1.res.oracle b/tests/value/oracle_apron/loop_wvar.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..0c4aca8c1c61882da6109c316bd9371ec74c9e96
--- /dev/null
+++ b/tests/value/oracle_apron/loop_wvar.1.res.oracle
@@ -0,0 +1,18 @@
+12,13d11
+< [eva:alarm] tests/value/loop_wvar.i:57: Warning: 
+<   signed overflow. assert next + 1 ≤ 2147483647;
+27,28c25
+< [eva] tests/value/loop_wvar.i:71: Frama_C_show_each: [0..9], [0..17], [0..11]
+< [eva] tests/value/loop_wvar.i:71: Frama_C_show_each: [0..9], [0..18], [0..12]
+---
+> [eva] tests/value/loop_wvar.i:71: Frama_C_show_each: [0..9], [0..9], [0..9]
+37,38c34,35
+<   j ∈ [0..18]
+<   k ∈ [0..12]
+---
+>   j ∈ [0..17]
+>   k ∈ [0..11]
+41c38
+<   next ∈ [0..2147483647]
+---
+>   next ∈ [0..25]
diff --git a/tests/value/oracle_apron/loopinv.res.oracle b/tests/value/oracle_apron/loopinv.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..8e4e968968ea74c0a60914628ebec36d9b6f3bec
--- /dev/null
+++ b/tests/value/oracle_apron/loopinv.res.oracle
@@ -0,0 +1,30 @@
+51,53c51
+< [eva:alarm] tests/value/loopinv.c:45: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+< [eva] tests/value/loopinv.c:46: Frama_C_show_each: [0..99], [0..2147483647]
+---
+> [eva] tests/value/loopinv.c:46: Frama_C_show_each: [0..99], [0..100]
+72,74c70
+< [eva:alarm] tests/value/loopinv.c:69: Warning: 
+<   loop invariant got status unknown.
+< [eva] tests/value/loopinv.c:71: Frama_C_show_each: {0; 2; 4; 6; 8}, [1..107]
+---
+> [eva] tests/value/loopinv.c:71: Frama_C_show_each: {0; 2; 4; 6; 8}, [1..106]
+79,80c75,76
+< [eva:alarm] tests/value/loopinv.c:73: Warning: 
+<   signed overflow. assert i + 1 ≤ 2147483647;
+---
+> [eva:alarm] tests/value/loopinv.c:69: Warning: 
+>   loop invariant got status unknown.
+157,158d152
+< [    -    ] Assertion 'Eva,signed_overflow' (file tests/value/loopinv.c, line 45)
+<             tried with Eva.
+175,176d168
+< [    -    ] Assertion 'Eva,signed_overflow' (file tests/value/loopinv.c, line 73)
+<             tried with Eva.
+182,183c174,175
+<      7 To be validated
+<     16 Total
+---
+>      5 To be validated
+>     14 Total
diff --git a/tests/value/oracle_apron/memexec.res.oracle b/tests/value/oracle_apron/memexec.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..1c00f6524f1de1838e0b23c8a26c697b19a30f96
--- /dev/null
+++ b/tests/value/oracle_apron/memexec.res.oracle
@@ -0,0 +1,53 @@
+27,32c27,50
+< [eva] tests/value/memexec.c:13: Reusing old results for call to f11
+< [eva] tests/value/memexec.c:14: Reusing old results for call to f11
+< [eva] tests/value/memexec.c:16: Reusing old results for call to f11
+< [eva] tests/value/memexec.c:18: Reusing old results for call to f11
+< [eva] tests/value/memexec.c:20: Reusing old results for call to f11
+< [eva] tests/value/memexec.c:21: Reusing old results for call to f11
+---
+> [eva] computing for function f11 <- f1 <- main.
+>   Called from tests/value/memexec.c:13.
+> [eva] Recording results for f11
+> [eva] Done for function f11
+> [eva] computing for function f11 <- f1 <- main.
+>   Called from tests/value/memexec.c:14.
+> [eva] Recording results for f11
+> [eva] Done for function f11
+> [eva] computing for function f11 <- f1 <- main.
+>   Called from tests/value/memexec.c:16.
+> [eva] Recording results for f11
+> [eva] Done for function f11
+> [eva] computing for function f11 <- f1 <- main.
+>   Called from tests/value/memexec.c:18.
+> [eva] Recording results for f11
+> [eva] Done for function f11
+> [eva] computing for function f11 <- f1 <- main.
+>   Called from tests/value/memexec.c:20.
+> [eva] Recording results for f11
+> [eva] Done for function f11
+> [eva] computing for function f11 <- f1 <- main.
+>   Called from tests/value/memexec.c:21.
+> [eva] Recording results for f11
+> [eva] Done for function f11
+106c124,127
+< [eva] tests/value/memexec.c:113: Reusing old results for call to f5_aux
+---
+> [eva] computing for function f5_aux <- f5 <- main.
+>   Called from tests/value/memexec.c:113.
+> [eva] Recording results for f5_aux
+> [eva] Done for function f5_aux
+129c150,153
+< [eva] tests/value/memexec.c:137: Reusing old results for call to f7_1
+---
+> [eva] computing for function f7_1 <- f7 <- main.
+>   Called from tests/value/memexec.c:137.
+> [eva] Recording results for f7_1
+> [eva] Done for function f7_1
+144c168,171
+< [eva] tests/value/memexec.c:150: Reusing old results for call to f8_1
+---
+> [eva] computing for function f8_1 <- f8 <- main.
+>   Called from tests/value/memexec.c:150.
+> [eva] Recording results for f8_1
+> [eva] Done for function f8_1
diff --git a/tests/value/oracle_apron/modulo.res.oracle b/tests/value/oracle_apron/modulo.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..259659e1d2da747f512c0ae26cc36ad63584e2fb
--- /dev/null
+++ b/tests/value/oracle_apron/modulo.res.oracle
@@ -0,0 +1,53 @@
+40a41,64
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [-9..-1], [-8..0]
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [1..9], [-8..0]
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [-9..-1], [0..8]
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [1..9], [0..8]
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {-8; -7; -6; -5; -4; -3; -2; -1},
+>   {1; 2; 3; 4; 5; 6; 7},
+>   {-6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6}
+50a75,98
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [1..9], [-8..0]
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [-9..-1], [-8..0]
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [1..9], [0..8]
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [-9..-1], [0..8]
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {-8; -7; -6; -5; -4; -3; -2; -1},
+>   {1; 2; 3; 4; 5; 6; 7},
+>   {-6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6}
+60a109,110
+> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-10..10], [-9..9], [-8..8]
+> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-9..9], [-8..8], [-7..7]
diff --git a/tests/value/oracle_apron/octagons.res.oracle b/tests/value/oracle_apron/octagons.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..b2debaf8695f5a2c207525d7fdc6463d64bce544
--- /dev/null
+++ b/tests/value/oracle_apron/octagons.res.oracle
@@ -0,0 +1,10 @@
+284,287c284,287
+<   a ∈ [-1024..2147483647]
+<   b ∈ [-1023..2147483647]
+<   c ∈ [-1023..2147483647]
+<   d ∈ [-1032..2147483647]
+---
+>   a ∈ [-603..2147483646]
+>   b ∈ [-602..2147483647]
+>   c ∈ [-602..1446]
+>   d ∈ [-611..2147483647]
diff --git a/tests/value/oracle_apron/offsetmap.0.res.oracle b/tests/value/oracle_apron/offsetmap.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..b718988fd802984280c4771c59c8b41e0e5ecdad
--- /dev/null
+++ b/tests/value/oracle_apron/offsetmap.0.res.oracle
@@ -0,0 +1,20 @@
+64,65c64
+<   a[bits 0 to 7] ∈ {1; 6}
+<    [bits 8 to 31]# ∈ {6}%32, bits 8 to 31 
+---
+>   a ∈ {1; 6}
+67,68c66
+<   a7[bits 0 to 7] ∈ {1}
+<     [bits 8 to 31]# ∈ {97}%32, bits 8 to 31 
+---
+>   a7 ∈ {1}
+108,109c106
+<   a[bits 0 to 7] ∈ {1; 6}
+<    [bits 8 to 31]# ∈ {6}%32, bits 8 to 31 
+---
+>   a ∈ {1; 6}
+111,112c108
+<   a7[bits 0 to 7] ∈ {1}
+<     [bits 8 to 31]# ∈ {97}%32, bits 8 to 31 
+---
+>   a7 ∈ {1}
diff --git a/tests/value/oracle_apron/offsetmap.1.res.oracle b/tests/value/oracle_apron/offsetmap.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..0ee129ee029e2c43453bd395a1a897d6f865e4ba
--- /dev/null
+++ b/tests/value/oracle_apron/offsetmap.1.res.oracle
@@ -0,0 +1,22 @@
+64,69c64,66
+<   a[bits 0 to 7] ∈ {1; 6}
+<    [bits 8 to 31]# ∈ {6}%32, bits 8 to 31 
+<   b[bits 0 to 7] ∈ {0; 1}
+<    [bits 8 to 31]# ∈ {0; 6}%32, bits 8 to 31 
+<   a7[bits 0 to 7] ∈ {1}
+<     [bits 8 to 31]# ∈ {97}%32, bits 8 to 31 
+---
+>   a ∈ {1; 6}
+>   b ∈ {0; 1}
+>   a7 ∈ {1}
+109,114c106,108
+<   a[bits 0 to 7] ∈ {1; 6}
+<    [bits 8 to 31]# ∈ {6}%32, bits 8 to 31 
+<   b[bits 0 to 7] ∈ {0; 1}
+<    [bits 8 to 31]# ∈ {0; 6}%32, bits 8 to 31 
+<   a7[bits 0 to 7] ∈ {1}
+<     [bits 8 to 31]# ∈ {97}%32, bits 8 to 31 
+---
+>   a ∈ {1; 6}
+>   b ∈ {0; 1}
+>   a7 ∈ {1}
diff --git a/tests/value/oracle_apron/partitioning-annots.4.res.oracle b/tests/value/oracle_apron/partitioning-annots.4.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..e8c8ec067fbaeaf4919872ca4b7ef6cea71ca8a7
--- /dev/null
+++ b/tests/value/oracle_apron/partitioning-annots.4.res.oracle
@@ -0,0 +1,3 @@
+15,16d14
+< [eva:alarm] tests/value/partitioning-annots.c:138: Warning: 
+<   division by zero. assert j ≢ 0;
diff --git a/tests/value/oracle_apron/precise_locations.res.oracle b/tests/value/oracle_apron/precise_locations.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..fad75e80f0d40493c17189020828c02a3ab6a5cd
--- /dev/null
+++ b/tests/value/oracle_apron/precise_locations.res.oracle
@@ -0,0 +1,106 @@
+32,35c32,47
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+---
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+37,42c49,72
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+---
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+520,529c550,589
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+< [eva] tests/value/precise_locations.i:39: Reusing old results for call to ct
+---
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
+> [eva] computing for function ct <- main.
+>   Called from tests/value/precise_locations.i:39.
+> [eva] Recording results for ct
+> [eva] Done for function ct
diff --git a/tests/value/oracle_apron/precond.res.oracle b/tests/value/oracle_apron/precond.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..e9e5aa280befeb765512ad4f2043f043cb2d00df
--- /dev/null
+++ b/tests/value/oracle_apron/precond.res.oracle
@@ -0,0 +1,8 @@
+49a50,51
+> [eva] computing for function f <- main.
+>   Called from tests/value/precond.c:39.
+53c55,56
+< [eva] tests/value/precond.c:39: Reusing old results for call to f
+---
+> [eva] Recording results for f
+> [eva] Done for function f
diff --git a/tests/value/oracle_apron/ptr_relation.1.res.oracle b/tests/value/oracle_apron/ptr_relation.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..2b931b79b7eb642356a750a916774a05631d63bb
--- /dev/null
+++ b/tests/value/oracle_apron/ptr_relation.1.res.oracle
@@ -0,0 +1,4 @@
+24c24
+<   j ∈ {-1; 0; 1}
+---
+>   j ∈ {0}
diff --git a/tests/value/oracle_apron/raz.res.oracle b/tests/value/oracle_apron/raz.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..e135ecf403947eb07fe9af8c42e3577ec011e672
--- /dev/null
+++ b/tests/value/oracle_apron/raz.res.oracle
@@ -0,0 +1,4 @@
+14c14
+<   i ∈ [0..2147483647]
+---
+>   i ∈ [0..10]
diff --git a/tests/value/oracle_apron/reevaluate_alarms.res.oracle b/tests/value/oracle_apron/reevaluate_alarms.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9c93050ef018ef8c77a6fc249da627c8c271d34c
--- /dev/null
+++ b/tests/value/oracle_apron/reevaluate_alarms.res.oracle
@@ -0,0 +1,4 @@
+61c61
+<   S ∈ [0..2147483647]
+---
+>   S ∈ [4..2147483647]
diff --git a/tests/value/oracle_apron/relation_reduction.res.oracle b/tests/value/oracle_apron/relation_reduction.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9bfeb567c0d6833ff86e580dae9006b064846079
--- /dev/null
+++ b/tests/value/oracle_apron/relation_reduction.res.oracle
@@ -0,0 +1,15 @@
+24,27d23
+< [eva:alarm] tests/value/relation_reduction.i:20: Warning: 
+<   accessing out of bounds index. assert 0 ≤ y;
+< [eva:alarm] tests/value/relation_reduction.i:20: Warning: 
+<   accessing out of bounds index. assert y < 9;
+34,37c30,33
+<   R1 ∈ [-2147483648..2147483637]
+<   R2 ∈ [-2147483638..2147483647]
+<   R3 ∈ [--..--]
+<   R4 ∈ {0; 1; 2; 3; 4; 5}
+---
+>   R1 ∈ {0; 2}
+>   R2 ∈ {0; 12}
+>   R3 ∈ {0; 7}
+>   R4 ∈ {0; 2}
diff --git a/tests/value/oracle_apron/relation_shift.res.oracle b/tests/value/oracle_apron/relation_shift.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..16d854a8b29cf9462b051aad9bad76f83c76e705
--- /dev/null
+++ b/tests/value/oracle_apron/relation_shift.res.oracle
@@ -0,0 +1,28 @@
+31,32c31,32
+<   r1 ∈ [--..--]
+<   r2 ∈ [--..--]
+---
+>   r1 ∈ {2}
+>   r2 ∈ {7}
+35,37c35,37
+<   x ∈ [-2147483647..2147483647]
+<   y ∈ [-2147483648..2147483646]
+<   z ∈ [-2147483642..2147483647]
+---
+>   x ∈ [-2147483646..2147483642]
+>   y ∈ [-2147483648..2147483640]
+>   z ∈ [-2147483641..2147483647]
+49,50c49,50
+<   r1 ∈ [--..--]
+<   r2 ∈ [--..--]
+---
+>   r1 ∈ {2}
+>   r2 ∈ {7}
+53,55c53,55
+<   x ∈ [-2147483647..2147483647]
+<   y ∈ [-2147483648..2147483646]
+<   z ∈ [-2147483642..2147483647]
+---
+>   x ∈ [-2147483646..2147483642]
+>   y ∈ [-2147483648..2147483640]
+>   z ∈ [-2147483641..2147483647]
diff --git a/tests/value/oracle_apron/relations.res.oracle b/tests/value/oracle_apron/relations.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..74aca336ba48970545ced8311cee9097bd21f1ef
--- /dev/null
+++ b/tests/value/oracle_apron/relations.res.oracle
@@ -0,0 +1,7 @@
+80,81c80,82
+<   e ∈ [--..--]
+<   f ∈ [--..--]
+---
+>   e ∈ {1}
+>   f[bits 0 to 7] ∈ {1; 4}
+>    [bits 8 to 31] ∈ [--..--]
diff --git a/tests/value/oracle_apron/relations2.res.oracle b/tests/value/oracle_apron/relations2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..01e8d4b6749042abe69d3c06ea00158564f343f2
--- /dev/null
+++ b/tests/value/oracle_apron/relations2.res.oracle
@@ -0,0 +1,20 @@
+25c25
+<   len ∈ [--..--]
+---
+>   len ∈ [0..1023]
+36,37c36
+< [eva] tests/value/relations2.i:17: 
+<   Frama_C_show_each_end: [0..4294967295], [0..64]
+---
+> [eva] tests/value/relations2.i:17: Frama_C_show_each_end: [0..1023], [0..64]
+69,71d67
+< [eva:alarm] tests/value/relations2.i:34: Warning: 
+<   accessing out of bounds index.
+<   assert (unsigned int)(i - (unsigned int)(t + 1)) < 514;
+124,125d119
+< [eva:alarm] tests/value/relations2.i:35: Warning: 
+<   signed overflow. assert s + b3 ≤ 2147483647;
+140c134
+<   len ∈ [--..--]
+---
+>   len ∈ [0..1023]
diff --git a/tests/value/oracle_apron/return.res.oracle b/tests/value/oracle_apron/return.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9285012971e62acf39f2a9620f5188393b5edb40
--- /dev/null
+++ b/tests/value/oracle_apron/return.res.oracle
@@ -0,0 +1,7 @@
+12c12,15
+< [eva] tests/value/return.i:19: Reusing old results for call to f
+---
+> [eva] computing for function f <- main.
+>   Called from tests/value/return.i:19.
+> [eva] Recording results for f
+> [eva] Done for function f
diff --git a/tests/value/oracle_apron/static.res.oracle b/tests/value/oracle_apron/static.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..232c8244c68fff369a2935e82bfda616df0e6888
--- /dev/null
+++ b/tests/value/oracle_apron/static.res.oracle
@@ -0,0 +1,7 @@
+22c22,25
+< [eva] tests/value/static.i:20: Reusing old results for call to f
+---
+> [eva] computing for function f <- main.
+>   Called from tests/value/static.i:20.
+> [eva] Recording results for f
+> [eva] Done for function f
diff --git a/tests/value/oracle_apron/struct2.res.oracle b/tests/value/oracle_apron/struct2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..05366bda0b93542585afa553b8faf05b2837e67a
--- /dev/null
+++ b/tests/value/oracle_apron/struct2.res.oracle
@@ -0,0 +1,7 @@
+81,84d80
+<   accessing out of bounds index. assert 0 ≤ (int)(i + j);
+< [eva:alarm] tests/value/struct2.i:185: Warning: 
+<   accessing out of bounds index. assert (int)(i + j) < 2;
+< [eva:alarm] tests/value/struct2.i:185: Warning: 
+106d101
+< [scope:rm_asserts] removing 2 assertion(s)
diff --git a/tests/value/oracle_apron/test.0.res.oracle b/tests/value/oracle_apron/test.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..f66a4ffbc827dd29a6aff34a24e9810cd6ef38a9
--- /dev/null
+++ b/tests/value/oracle_apron/test.0.res.oracle
@@ -0,0 +1,4 @@
+29c29
+<   j ∈ [-1073741822..1]
+---
+>   j ∈ {-1; 0; 1}
diff --git a/tests/value/oracle_apron/undefined_sequence.1.res.oracle b/tests/value/oracle_apron/undefined_sequence.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..26f6ea18342861747aad8601963b5b7bb6980529
--- /dev/null
+++ b/tests/value/oracle_apron/undefined_sequence.1.res.oracle
@@ -0,0 +1,7 @@
+33c33,36
+< [eva] tests/value/undefined_sequence.i:54: Reusing old results for call to g
+---
+> [eva] computing for function g <- main.
+>   Called from tests/value/undefined_sequence.i:54.
+> [eva] Recording results for g
+> [eva] Done for function g
diff --git a/tests/value/oracle_apron/unroll.res.oracle b/tests/value/oracle_apron/unroll.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..13268e7993a1a80c58456f768a3bfeffbd2e32d6
--- /dev/null
+++ b/tests/value/oracle_apron/unroll.res.oracle
@@ -0,0 +1,7 @@
+13,14d12
+< [eva:alarm] tests/value/unroll.i:34: Warning: 
+<   signed overflow. assert -2147483648 ≤ j - 1;
+26c24
+<   j ∈ [-2147483648..-123]
+---
+>   j ∈ {-238}
diff --git a/tests/value/oracle_apron/unroll_simple.res.oracle b/tests/value/oracle_apron/unroll_simple.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..74276a0046c1d0dff1a947e75ce192585bb72382
--- /dev/null
+++ b/tests/value/oracle_apron/unroll_simple.res.oracle
@@ -0,0 +1,7 @@
+8,9d7
+< [eva:alarm] tests/value/unroll_simple.i:11: Warning: 
+<   signed overflow. assert -2147483648 ≤ j - 1;
+21c19
+<   j ∈ [-2147483648..-126]
+---
+>   j ∈ {-250}
diff --git a/tests/value/oracle_apron/widen_on_non_monotonic.res.oracle b/tests/value/oracle_apron/widen_on_non_monotonic.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..ba132d1be2b75a02b29e500ae257799a93b60e8f
--- /dev/null
+++ b/tests/value/oracle_apron/widen_on_non_monotonic.res.oracle
@@ -0,0 +1,2 @@
+25a26
+> [eva] tests/value/widen_on_non_monotonic.i:21: starting to merge loop iterations
diff --git a/tests/value/oracle_apron/with_comment.res.oracle b/tests/value/oracle_apron/with_comment.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..c1f964e991acdb2e9d3d88c570cc8f261f3d3b1f
--- /dev/null
+++ b/tests/value/oracle_apron/with_comment.res.oracle
@@ -0,0 +1,3 @@
+9,10d8
+< [eva:alarm] tests/value/with_comment.i:21: Warning: 
+<   signed overflow. assert G + 1 ≤ 2147483647;
diff --git a/tests/value/oracle_bitwise/addition.res.oracle b/tests/value/oracle_bitwise/addition.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..0fb9f7cc36e71f5de337cc13693c28244baae41a
--- /dev/null
+++ b/tests/value/oracle_bitwise/addition.res.oracle
@@ -0,0 +1,24 @@
+121,123c121
+< [eva] tests/value/addition.i:52: 
+<   Assigning imprecise value to p10.
+<   The imprecision originates from Arithmetic {tests/value/addition.i:52}
+---
+> [eva] tests/value/addition.i:52: Assigning imprecise value to p10.
+163a162
+>   {{ garbled mix of &{p1} (origin: Misaligned {tests/value/addition.i:52}) }}
+165a165
+>   {{ garbled mix of &{p2} (origin: Misaligned {tests/value/addition.i:56}) }}
+201,203c201
+<   p10 ∈
+<      {{ garbled mix of &{p1}
+<       (origin: Arithmetic {tests/value/addition.i:52}) }}
+---
+>   p10 ∈ {{ garbled mix of &{p1} }}
+428a427
+>   {{ garbled mix of &{p1} (origin: Misaligned {tests/value/addition.i:52}) }}
+467,469c466
+<   p10 ∈
+<      {{ garbled mix of &{p1}
+<       (origin: Arithmetic {tests/value/addition.i:52}) }}
+---
+>   p10 ∈ {{ garbled mix of &{p1} }}
diff --git a/tests/value/oracle_bitwise/audit.res.oracle b/tests/value/oracle_bitwise/audit.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9ff41db248872519df6d5b9ea95483fc420a1ff1
--- /dev/null
+++ b/tests/value/oracle_bitwise/audit.res.oracle
@@ -0,0 +1,11 @@
+1,8d0
+< [kernel:audit] Warning: 
+<   different hashes for tests/value/audit.c: got 08f73691217888d926a0ee15cbe18159, expected 01010101010101010101010101010101
+< [kernel:audit] Warning: 
+<   different hashes for tests/value/audit_included_but_not_listed.h: got c2cc488143a476f69cf2ed04c3439e6e, expected <none> (not in list)
+< [kernel:audit] Warning: 
+<   missing files:
+<   tests/value/non_existing_file.h
+< [kernel] Audit: sources list written to: tests/value/result/audit-out.json
+34d25
+< [kernel] Wrote: tests/value/result/audit-out.json
diff --git a/tests/value/oracle_bitwise/bitwise.res.oracle b/tests/value/oracle_bitwise/bitwise.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..420d63ba3e2c66c9bea300df12d78206be5812cb
--- /dev/null
+++ b/tests/value/oracle_bitwise/bitwise.res.oracle
@@ -0,0 +1,7 @@
+98c98,101
+< [eva] tests/value/bitwise.i:158: Frama_C_show_each_dead: {0}
+---
+> [eva] tests/value/bitwise.i:156: 
+>   The evaluation of the expression x & 2
+>   led to bottom without alarms:
+>   at this point the product of states has no possible concretization.
diff --git a/tests/value/oracle_bitwise/bitwise_pointer.res.oracle b/tests/value/oracle_bitwise/bitwise_pointer.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..33e549730224dc9e27ef09b0143734b2862bc00a
--- /dev/null
+++ b/tests/value/oracle_bitwise/bitwise_pointer.res.oracle
@@ -0,0 +1,12 @@
+34,36c34
+< [eva] tests/value/bitwise_pointer.i:18: 
+<   Assigning imprecise value to p.
+<   The imprecision originates from Arithmetic {tests/value/bitwise_pointer.i:18}
+---
+> [eva] tests/value/bitwise_pointer.i:18: Assigning imprecise value to p.
+41,43c39
+< [eva] tests/value/bitwise_pointer.i:22: 
+<   Assigning imprecise value to p1.
+<   The imprecision originates from Arithmetic {tests/value/bitwise_pointer.i:22}
+---
+> [eva] tests/value/bitwise_pointer.i:22: Assigning imprecise value to p1.
diff --git a/tests/value/oracle_bitwise/logic_ptr_cast.res.oracle b/tests/value/oracle_bitwise/logic_ptr_cast.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..e6c9e4bde2fce0cc8f8c52e8bf1c589157065eb8
--- /dev/null
+++ b/tests/value/oracle_bitwise/logic_ptr_cast.res.oracle
@@ -0,0 +1,6 @@
+8,10c8
+< [eva] tests/value/logic_ptr_cast.i:8: 
+<   Assigning imprecise value to p.
+<   The imprecision originates from Arithmetic {tests/value/logic_ptr_cast.i:8}
+---
+> [eva] tests/value/logic_ptr_cast.i:8: Assigning imprecise value to p.
diff --git a/tests/value/oracle_equalities/CruiseControl.res.oracle b/tests/value/oracle_equalities/CruiseControl.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..977bd6ffca38f631eb8c630e89d3709078392599
--- /dev/null
+++ b/tests/value/oracle_equalities/CruiseControl.res.oracle
@@ -0,0 +1,45 @@
+980c980
+<        [0]._C4_ThrottleCmd._I0_Regul_ON ∈ {0; 1}
+---
+>        [0]._C4_ThrottleCmd._I0_Regul_ON ∈ {1}
+1018c1018
+<        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._C0_SaturateThrottle{._I0_ThrottleIn; ._O0_ThrottleOut} ∈
+---
+>        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._C0_SaturateThrottle._I0_ThrottleIn ∈
+1019a1020,1021
+>        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._C0_SaturateThrottle._O0_ThrottleOut ∈
+>        [-0.0000000000000000 .. 1.9999998807907104*2^127]
+1033c1035
+<        [-1.9999998807907104*2^127 .. 1.9999998807907104*2^127]
+---
+>        [-0.0000000000000000 .. 1.9999998807907104*2^127]
+1218c1220
+<        [0]._C4_ThrottleCmd._I0_Regul_ON ∈ {0; 1}
+---
+>        [0]._C4_ThrottleCmd._I0_Regul_ON ∈ {1}
+1230c1232,1236
+<        [0]._C4_ThrottleCmd._C0_ThrottleRegulation{._I1_CruiseSpeed; ._I2_VehiculeSpeed; ._O0_Throttle; ._L1_CruiseControl; ._L2_CruiseControl; ._L3_CruiseControl} ∈
+---
+>        [0]._C4_ThrottleCmd._C0_ThrottleRegulation{._I1_CruiseSpeed; ._I2_VehiculeSpeed} ∈
+>        [-1.9999998807907104*2^127 .. 1.9999998807907104*2^127]
+>        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._O0_Throttle ∈
+>        [-0.0000000000000000 .. 1.9999998807907104*2^127]
+>        [0]._C4_ThrottleCmd._C0_ThrottleRegulation{._L1_CruiseControl; ._L2_CruiseControl; ._L3_CruiseControl} ∈
+1248c1254
+<        [0]._C4_ThrottleCmd._C0_ThrottleRegulation{._L4_CruiseControl; ._L13_CruiseControl} ∈
+---
+>        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._L4_CruiseControl ∈
+1249a1256,1257
+>        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._L13_CruiseControl ∈
+>        [-0.0000000000000000 .. 1.9999998807907104*2^127]
+1256c1264
+<        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._C0_SaturateThrottle{._I0_ThrottleIn; ._O0_ThrottleOut} ∈
+---
+>        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._C0_SaturateThrottle._I0_ThrottleIn ∈
+1257a1266,1267
+>        [0]._C4_ThrottleCmd._C0_ThrottleRegulation._C0_SaturateThrottle._O0_ThrottleOut ∈
+>        [-0.0000000000000000 .. 1.9999998807907104*2^127]
+1271c1281
+<        [-1.9999998807907104*2^127 .. 1.9999998807907104*2^127]
+---
+>        [-0.0000000000000000 .. 1.9999998807907104*2^127]
diff --git a/tests/value/oracle_equalities/addition.res.oracle b/tests/value/oracle_equalities/addition.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..98c7d2372434290cc2f334cddcb6bc9466e6ac7f
--- /dev/null
+++ b/tests/value/oracle_equalities/addition.res.oracle
@@ -0,0 +1,18 @@
+138,141d137
+< [eva:alarm] tests/value/addition.i:61: Warning: 
+<   signed overflow. assert -2147483648 ≤ (int)*((char *)(&q1)) + 2;
+< [eva:alarm] tests/value/addition.i:61: Warning: 
+<   signed overflow. assert (int)*((char *)(&q1)) + 2 ≤ 2147483647;
+168c164
+< [scope:rm_asserts] removing 9 assertion(s)
+---
+> [scope:rm_asserts] removing 7 assertion(s)
+407,410d402
+< [eva:alarm] tests/value/addition.i:61: Warning: 
+<   signed overflow. assert -2147483648 ≤ (int)*((char *)(&q1)) + 2;
+< [eva:alarm] tests/value/addition.i:61: Warning: 
+<   signed overflow. assert (int)*((char *)(&q1)) + 2 ≤ 2147483647;
+433c425
+< [scope:rm_asserts] removing 9 assertion(s)
+---
+> [scope:rm_asserts] removing 7 assertion(s)
diff --git a/tests/value/oracle_equalities/alias.0.res.oracle b/tests/value/oracle_equalities/alias.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..c234ab23c2ef7ade7fb11fd8bd401d1a710a0a37
--- /dev/null
+++ b/tests/value/oracle_equalities/alias.0.res.oracle
@@ -0,0 +1,10 @@
+103,104c103,104
+<   t ∈ {1; 2; 4}
+<   u ∈ {2; 3; 4; 5}
+---
+>   t ∈ {4}
+>   u ∈ {5}
+110c110
+<   t2 ∈ {0; 3; 6}
+---
+>   t2 ∈ {6}
diff --git a/tests/value/oracle_equalities/alias.1.res.oracle b/tests/value/oracle_equalities/alias.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..83f51b9015d62efe57f3906b3efd2228b99697ea
--- /dev/null
+++ b/tests/value/oracle_equalities/alias.1.res.oracle
@@ -0,0 +1,18 @@
+85c85
+<   z ∈ {0; 1; 2}
+---
+>   z ∈ {0; 2}
+87,88c87,88
+<   v2 ∈ {-1; 0; 1; 2; 3; 4}
+<   PTR1 ∈ {{ &p2{[0], [1], [2]} }}
+---
+>   v2 ∈ {0; 1; 2}
+>   PTR1 ∈ {{ &p2{[0], [1]} }}
+90c90
+<   PTR3 ∈ {{ &p2{[1], [2], [4]} }}
+---
+>   PTR3 ∈ {{ &p2{[1], [2]} }}
+110c110
+<   t2 FROM p2[0..2]; c
+---
+>   t2 FROM p2[0..1]; c
diff --git a/tests/value/oracle_equalities/alias.2.res.oracle b/tests/value/oracle_equalities/alias.2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..686417eb7ea8aabf15bf58576ecd3afcd58780e1
--- /dev/null
+++ b/tests/value/oracle_equalities/alias.2.res.oracle
@@ -0,0 +1,4 @@
+76c76
+<   z ∈ {-5; -4; -3; -2; -1; 0; 1; 1000}
+---
+>   z ∈ {-2; -1; 0; 1000}
diff --git a/tests/value/oracle_equalities/alias.3.res.oracle b/tests/value/oracle_equalities/alias.3.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..e14f1380123bfd42bbd395f88c728c05558d44b3
--- /dev/null
+++ b/tests/value/oracle_equalities/alias.3.res.oracle
@@ -0,0 +1,4 @@
+67c67
+<   z ∈ {0; 1; 2}
+---
+>   z ∈ {0; 2}
diff --git a/tests/value/oracle_equalities/alias.4.res.oracle b/tests/value/oracle_equalities/alias.4.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..f45634e31c8c1322a448c5a229319212361daf9f
--- /dev/null
+++ b/tests/value/oracle_equalities/alias.4.res.oracle
@@ -0,0 +1,4 @@
+81c81
+<   y ∈ {0; 3; 77}
+---
+>   y ∈ {77}
diff --git a/tests/value/oracle_equalities/alias.5.res.oracle b/tests/value/oracle_equalities/alias.5.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..e34839d5f87a29da21a6edffc596a85c576e8f31
--- /dev/null
+++ b/tests/value/oracle_equalities/alias.5.res.oracle
@@ -0,0 +1,6 @@
+59a60
+> [eva] tests/value/alias.i:260: starting to merge loop iterations
+170c171
+<   y ∈ {0; 3; 77}
+---
+>   y ∈ {77}
diff --git a/tests/value/oracle_equalities/alias.6.res.oracle b/tests/value/oracle_equalities/alias.6.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..a7dfd3031756c0781ca8579ae7e21c2b0a65e1c0
--- /dev/null
+++ b/tests/value/oracle_equalities/alias.6.res.oracle
@@ -0,0 +1,4 @@
+86c86
+<   x ∈ {0; 4; 33}
+---
+>   x ∈ {33}
diff --git a/tests/value/oracle_equalities/audit.res.oracle b/tests/value/oracle_equalities/audit.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9ff41db248872519df6d5b9ea95483fc420a1ff1
--- /dev/null
+++ b/tests/value/oracle_equalities/audit.res.oracle
@@ -0,0 +1,11 @@
+1,8d0
+< [kernel:audit] Warning: 
+<   different hashes for tests/value/audit.c: got 08f73691217888d926a0ee15cbe18159, expected 01010101010101010101010101010101
+< [kernel:audit] Warning: 
+<   different hashes for tests/value/audit_included_but_not_listed.h: got c2cc488143a476f69cf2ed04c3439e6e, expected <none> (not in list)
+< [kernel:audit] Warning: 
+<   missing files:
+<   tests/value/non_existing_file.h
+< [kernel] Audit: sources list written to: tests/value/result/audit-out.json
+34d25
+< [kernel] Wrote: tests/value/result/audit-out.json
diff --git a/tests/value/oracle_equalities/auto_loop_unroll.0.res.oracle b/tests/value/oracle_equalities/auto_loop_unroll.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..c4e3470add3e62e659d9d62f21c25c615c1a7e87
--- /dev/null
+++ b/tests/value/oracle_equalities/auto_loop_unroll.0.res.oracle
@@ -0,0 +1,14 @@
+81c81,84
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
+90c93,96
+< [eva] tests/value/auto_loop_unroll.c:101: Reusing old results for call to incr
+---
+> [eva] computing for function incr <- various_loops <- main.
+>   Called from tests/value/auto_loop_unroll.c:101.
+> [eva] Recording results for incr
+> [eva] Done for function incr
diff --git a/tests/value/oracle_equalities/backward_add_ptr.res.oracle b/tests/value/oracle_equalities/backward_add_ptr.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..6d66348323e4bca303cc34ee043db630877b4540
--- /dev/null
+++ b/tests/value/oracle_equalities/backward_add_ptr.res.oracle
@@ -0,0 +1,116 @@
+12c12
+<   Frama_C_show_each_only_a: {0; 1}, {{ &a }}, {0}
+---
+>   Frama_C_show_each_only_a: {0}, {{ &a }}, {0}
+93c93,96
+< [eva] tests/value/backward_add_ptr.c:110: Reusing old results for call to gm
+---
+> [eva] computing for function gm <- main3 <- main.
+>   Called from tests/value/backward_add_ptr.c:110.
+> [eva] Recording results for gm
+> [eva] Done for function gm
+107c110,113
+< [eva] tests/value/backward_add_ptr.c:125: Reusing old results for call to gm
+---
+> [eva] computing for function gm <- main3 <- main.
+>   Called from tests/value/backward_add_ptr.c:125.
+> [eva] Recording results for gm
+> [eva] Done for function gm
+119c125
+<   (origin: Arithmetic {tests/value/backward_add_ptr.c:68}) }},
+---
+>   (origin: Arithmetic Bottom) }},
+157,160c163,167
+<   {{ garbled mix of &{b}
+<   (origin: Arithmetic {tests/value/backward_add_ptr.c:68}) }},
+<   [0..4294967295]
+< [eva] tests/value/backward_add_ptr.c:160: Reusing old results for call to gm
+---
+>   {{ garbled mix of &{b} (origin: Arithmetic Bottom) }}, [0..4294967295]
+> [eva] computing for function gm <- main4 <- main.
+>   Called from tests/value/backward_add_ptr.c:160.
+> [eva] Recording results for gm
+> [eva] Done for function gm
+178c185
+<   (origin: Arithmetic {tests/value/backward_add_ptr.c:68}) }},
+---
+>   (origin: Arithmetic Bottom) }},
+180c187
+<   (origin: Arithmetic {tests/value/backward_add_ptr.c:68}) }}
+---
+>   (origin: Arithmetic Bottom) }}
+188c195
+<   (origin: Arithmetic {tests/value/backward_add_ptr.c:68}) }}
+---
+>   (origin: Arithmetic Bottom) }}
+194c201
+<   (origin: Arithmetic {tests/value/backward_add_ptr.c:68}) }},
+---
+>   (origin: Arithmetic Bottom) }},
+211a219,222
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:33}) }}
+>   {{ garbled mix of &{a}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:33}) }}
+>   {{ garbled mix of &{b}
+232a244,245
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:106}) }}
+234a248,251
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:107}) }}
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:115}) }}
+238c255,257
+<     (origin: Arithmetic {tests/value/backward_add_ptr.c:115}) }}
+---
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:116}) }}
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:121}) }}
+240a260,263
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:122}) }}
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:130}) }}
+242a266,267
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:136}) }}
+245a271,272
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:137}) }}
+>   {{ garbled mix of &{a; b}
+246a274,275
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:145}) }}
+248a278,285
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:150}) }}
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:151}) }}
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:156}) }}
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:157}) }}
+250a288,311
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:165}) }}
+>   {{ garbled mix of &{b; c}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:165}) }}
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:166}) }}
+>   {{ garbled mix of &{b; c}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:166}) }}
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:171}) }}
+>   {{ garbled mix of &{b; c}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:171}) }}
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:172}) }}
+>   {{ garbled mix of &{b; c}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:172}) }}
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:177}) }}
+>   {{ garbled mix of &{b; c}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:177}) }}
+>   {{ garbled mix of &{a; b}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:178}) }}
+>   {{ garbled mix of &{b; c}
+>     (origin: Arithmetic {tests/value/backward_add_ptr.c:178}) }}
diff --git a/tests/value/oracle_equalities/bitfield.res.oracle b/tests/value/oracle_equalities/bitfield.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..199dae9e57a2dd302735cfae290ce5e5f5788679
--- /dev/null
+++ b/tests/value/oracle_equalities/bitfield.res.oracle
@@ -0,0 +1,4 @@
+138a139,141
+> [eva] tests/value/bitfield.i:71: 
+>   Frama_C_show_each:
+>   {{ garbled mix of &{b} (origin: Misaligned {tests/value/bitfield.i:70}) }}
diff --git a/tests/value/oracle_equalities/bitwise_pointer.res.oracle b/tests/value/oracle_equalities/bitwise_pointer.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..f04f7077977a5a61ea7d346c6ff6f90a2e4237e4
--- /dev/null
+++ b/tests/value/oracle_equalities/bitwise_pointer.res.oracle
@@ -0,0 +1,8 @@
+62c62
+<   x ∈ [0..9]
+---
+>   x ∈ {5}
+75c75
+<   x1 ∈ [0..9]
+---
+>   x1 ∈ {5}
diff --git a/tests/value/oracle_equalities/call_simple.res.oracle b/tests/value/oracle_equalities/call_simple.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..74d12f1f99b9b00efad1a5bf4a6df343d225573b
--- /dev/null
+++ b/tests/value/oracle_equalities/call_simple.res.oracle
@@ -0,0 +1,4 @@
+28c28
+<   c ∈ [--..--]
+---
+>   c ∈ [-2147483648..2147483646]
diff --git a/tests/value/oracle_equalities/case_analysis.res.oracle b/tests/value/oracle_equalities/case_analysis.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..85985d3ff7dc7596f41c4a3b51f1614b76c5cfdb
--- /dev/null
+++ b/tests/value/oracle_equalities/case_analysis.res.oracle
@@ -0,0 +1,9 @@
+11a12,15
+> [eva] tests/value/case_analysis.i:18: 
+>   The evaluation of the expression r * r
+>   led to bottom without alarms:
+>   at this point the product of states has no possible concretization.
+18c22
+<   rq ∈ [-0.0000000000000000 .. 100.0000000000000000]
+---
+>   rq ∈ [0.0000000000000000 .. 100.0000000000000000]
diff --git a/tests/value/oracle_equalities/descending.res.oracle b/tests/value/oracle_equalities/descending.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..4f7f74dacd94a03077b450e88028ef39d7764628
--- /dev/null
+++ b/tests/value/oracle_equalities/descending.res.oracle
@@ -0,0 +1,4 @@
+42c42
+<   i ∈ {31; 32}
+---
+>   i ∈ {31}
diff --git a/tests/value/oracle_equalities/domains_function.res.oracle b/tests/value/oracle_equalities/domains_function.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..a6b3f21d9de7b40fead8b5aea5d48b5e5c5fa4ba
--- /dev/null
+++ b/tests/value/oracle_equalities/domains_function.res.oracle
@@ -0,0 +1,61 @@
+19,20c19
+< [eva] tests/value/domains_function.c:92: 
+<   Frama_C_show_each_top: [-2147483648..2147483647]
+---
+> [eva] tests/value/domains_function.c:92: Frama_C_show_each_top: {3}
+28,29c27
+< [eva] tests/value/domains_function.c:77: 
+<   Frama_C_show_each_top: [-2147483648..2147483647]
+---
+> [eva] tests/value/domains_function.c:77: Frama_C_show_each_top: {1}
+32,33c30
+< [eva] tests/value/domains_function.c:96: 
+<   Frama_C_show_each_top: [-2147483648..2147483647]
+---
+> [eva] tests/value/domains_function.c:96: Frama_C_show_each_top: {1}
+36,37c33
+< [eva] tests/value/domains_function.c:84: 
+<   Frama_C_show_each_top: [-2147483648..2147483647]
+---
+> [eva] tests/value/domains_function.c:84: Frama_C_show_each_top: {2}
+40,41c36
+< [eva] tests/value/domains_function.c:98: 
+<   Frama_C_show_each_top: [-2147483648..2147483647]
+---
+> [eva] tests/value/domains_function.c:98: Frama_C_show_each_top: {2}
+60,61c55
+< [eva] tests/value/domains_function.c:84: 
+<   Frama_C_show_each_top: [-2147483648..2147483647]
+---
+> [eva] tests/value/domains_function.c:84: Frama_C_show_each_top: {2}
+64,65c58
+< [eva] tests/value/domains_function.c:113: 
+<   Frama_C_show_each_top: [-2147483648..2147483647]
+---
+> [eva] tests/value/domains_function.c:113: Frama_C_show_each_top: {2}
+78,79c71
+< [eva] tests/value/domains_function.c:55: 
+<   Frama_C_show_each_top: [-2147483648..2147483647]
+---
+> [eva] tests/value/domains_function.c:55: Frama_C_show_each_top: {42}
+108,109c100
+< [eva] tests/value/domains_function.c:64: 
+<   Frama_C_show_each_top: [-2147483648..2147483647]
+---
+> [eva] tests/value/domains_function.c:64: Frama_C_show_each_top: {42}
+116c107
+<   result ∈ [--..--]
+---
+>   result ∈ {2}
+130c121
+<   result ∈ [--..--]
+---
+>   result ∈ {1}
+135c126
+<   result ∈ [--..--]
+---
+>   result ∈ {2}
+138c129
+<   result ∈ [--..--]
+---
+>   result ∈ {2}
diff --git a/tests/value/oracle_equalities/downcast.2.res.oracle b/tests/value/oracle_equalities/downcast.2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..3aac066cc202967755f0dd520cfe9db775c84554
--- /dev/null
+++ b/tests/value/oracle_equalities/downcast.2.res.oracle
@@ -0,0 +1,8 @@
+114c114
+<   ux ∈ [--..--]
+---
+>   ux ∈ [0..65535]
+157c157
+<   ux ∈ [--..--]
+---
+>   ux ∈ [0..65535]
diff --git a/tests/value/oracle_equalities/fptr.1.res.oracle b/tests/value/oracle_equalities/fptr.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..ce2032c08e6534394dd65b70b6f5af021684d613
--- /dev/null
+++ b/tests/value/oracle_equalities/fptr.1.res.oracle
@@ -0,0 +1,8 @@
+55,57d54
+< [eva] tests/value/fptr.i:67: 
+<   Frama_C_show_each_F: {{ NULL + [0..4294967295] ; &h ; &hh }}
+< [eva] tests/value/fptr.i:68: Reusing old results for call to f
+69c66
+<   n ∈ {0; 1; 2}
+---
+>   n ∈ {0; 1}
diff --git a/tests/value/oracle_equalities/from_call.0.res.oracle b/tests/value/oracle_equalities/from_call.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..112d7de0bf83f985282dc85dcc11b8f3fa2f6ae5
--- /dev/null
+++ b/tests/value/oracle_equalities/from_call.0.res.oracle
@@ -0,0 +1,18 @@
+68c68,73
+< [eva] tests/value/from_call.i:20: Reusing old results for call to g
+---
+> [eva] computing for function g <- f <- main.
+>   Called from tests/value/from_call.i:20.
+> [eva] Recording results for g
+> [from] Computing for function g
+> [from] Done for function g
+> [eva] Done for function g
+78c83,88
+< [eva] tests/value/from_call.i:20: Reusing old results for call to g
+---
+> [eva] computing for function g <- f <- main.
+>   Called from tests/value/from_call.i:20.
+> [eva] Recording results for g
+> [from] Computing for function g
+> [from] Done for function g
+> [eva] Done for function g
diff --git a/tests/value/oracle_equalities/from_call.1.res.oracle b/tests/value/oracle_equalities/from_call.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9affe79cca9f4bf6f13817bdc5a9b1ae11fc72ea
--- /dev/null
+++ b/tests/value/oracle_equalities/from_call.1.res.oracle
@@ -0,0 +1,14 @@
+64c64,67
+< [eva] tests/value/from_call.i:20: Reusing old results for call to g
+---
+> [eva] computing for function g <- f <- main.
+>   Called from tests/value/from_call.i:20.
+> [eva] Recording results for g
+> [eva] Done for function g
+72c75,78
+< [eva] tests/value/from_call.i:20: Reusing old results for call to g
+---
+> [eva] computing for function g <- f <- main.
+>   Called from tests/value/from_call.i:20.
+> [eva] Recording results for g
+> [eva] Done for function g
diff --git a/tests/value/oracle_equalities/from_termin.res.oracle b/tests/value/oracle_equalities/from_termin.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..a29f1796862a617621451045df13187bf62b6a6d
--- /dev/null
+++ b/tests/value/oracle_equalities/from_termin.res.oracle
@@ -0,0 +1,2 @@
+9a10
+> [eva] tests/value/from_termin.i:8: starting to merge loop iterations
diff --git a/tests/value/oracle_equalities/imprecise_invalid_write.res.oracle b/tests/value/oracle_equalities/imprecise_invalid_write.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..911514fc0b77252b400c11e7c5c9d44daef55de9
--- /dev/null
+++ b/tests/value/oracle_equalities/imprecise_invalid_write.res.oracle
@@ -0,0 +1,3 @@
+29a30,31
+> [kernel] tests/value/imprecise_invalid_write.i:9: 
+>   imprecise size for variable main1 (Undefined sizeof on a function.)
diff --git a/tests/value/oracle_equalities/incompatible_states.res.oracle b/tests/value/oracle_equalities/incompatible_states.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..7126073f2df44b792e5e3436846684d856469863
--- /dev/null
+++ b/tests/value/oracle_equalities/incompatible_states.res.oracle
@@ -0,0 +1,29 @@
+14a15,18
+> [eva] tests/value/incompatible_states.c:24: 
+>   The evaluation of the expression x * x
+>   led to bottom without alarms:
+>   at this point the product of states has no possible concretization.
+27,29c31,34
+< [eva:alarm] tests/value/incompatible_states.c:41: Warning: 
+<   accessing uninitialized left-value.
+<   assert \initialized(&t[(int)((int)(2 * i) / 2)]);
+---
+> [eva] tests/value/incompatible_states.c:41: 
+>   The evaluation of the expression t[(2 * i) / 2]
+>   led to bottom without alarms:
+>   at this point the product of states has no possible concretization.
+41,42d45
+< [eva:alarm] tests/value/incompatible_states.c:53: Warning: 
+<   division by zero. assert t[i] ≢ 0;
+47,49d49
+< [eva] tests/value/incompatible_states.c:41: 
+<   assertion 'Eva,initialization' got final status invalid.
+< [scope:rm_asserts] removing 2 assertion(s)
+55c55
+<   z ∈ [-3..100]
+---
+>   z ∈ {-3; -2}
+58c58
+<   t[0] ∈ {0; 1}
+---
+>   t[0] ∈ {0}
diff --git a/tests/value/oracle_equalities/library.res.oracle b/tests/value/oracle_equalities/library.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..263da140a44605a2369da667c8975a15feee5d56
--- /dev/null
+++ b/tests/value/oracle_equalities/library.res.oracle
@@ -0,0 +1,5 @@
+129,132d128
+< [eva:alarm] tests/value/library.i:44: Warning: 
+<   non-finite float value. assert \is_finite(*pf);
+< [eva:alarm] tests/value/library.i:44: Warning: 
+<   non-finite float value. assert \is_finite(\add_float(*pf, *pf));
diff --git a/tests/value/oracle_equalities/long_const.0.res.oracle b/tests/value/oracle_equalities/long_const.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9bc5f2d7083802aa0ac216e8eaeca4c1be79eeb8
--- /dev/null
+++ b/tests/value/oracle_equalities/long_const.0.res.oracle
@@ -0,0 +1,7 @@
+19c19,22
+< [eva] tests/value/long_const.i:25: Reusing old results for call to LL_ABS
+---
+> [eva] computing for function LL_ABS <- div64 <- main.
+>   Called from tests/value/long_const.i:25.
+> [eva] Recording results for LL_ABS
+> [eva] Done for function LL_ABS
diff --git a/tests/value/oracle_equalities/long_const.1.res.oracle b/tests/value/oracle_equalities/long_const.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9bc5f2d7083802aa0ac216e8eaeca4c1be79eeb8
--- /dev/null
+++ b/tests/value/oracle_equalities/long_const.1.res.oracle
@@ -0,0 +1,7 @@
+19c19,22
+< [eva] tests/value/long_const.i:25: Reusing old results for call to LL_ABS
+---
+> [eva] computing for function LL_ABS <- div64 <- main.
+>   Called from tests/value/long_const.i:25.
+> [eva] Recording results for LL_ABS
+> [eva] Done for function LL_ABS
diff --git a/tests/value/oracle_equalities/modulo.res.oracle b/tests/value/oracle_equalities/modulo.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..750dc4d69d0be5d70fb5ddd65b953ecba6b8837a
--- /dev/null
+++ b/tests/value/oracle_equalities/modulo.res.oracle
@@ -0,0 +1,174 @@
+40a41,119
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [-9..-1], [-8..0]
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [1..9], [-8..0]
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [-9..-1], [0..8]
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [1..9], [0..8]
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {-8; -7; -6; -5; -4; -3; -2; -1},
+>   {-7; -6; -5; -4; -3; -2; -1},
+>   {-6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {-8; -7; -6; -5; -4; -3; -2; -1},
+>   {1; 2; 3; 4; 5; 6; 7},
+>   {-6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {1; 2; 3; 4; 5; 6; 7; 8}, {1; 2; 3; 4; 5; 6; 7}, {0; 1; 2; 3; 4; 5; 6}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {1; 2; 3; 4; 5; 6; 7}, {1; 2; 3; 4; 5; 6}, {0; 1; 2; 3; 4; 5}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {-7; -6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {1; 2; 3; 4; 5; 6; 7}, {-6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {-7; -6; -5; -4; -3; -2; -1},
+>   {-6; -5; -4; -3; -2; -1},
+>   {-5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {-6; -5; -4; -3; -2; -1}, {-5; -4; -3; -2; -1}, {-4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {-6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5}, {-4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1}, {0; 1; 2; 3; 4}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {1; 2; 3; 4; 5; 6}, {1; 2; 3; 4; 5}, {0; 1; 2; 3; 4}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {1; 2; 3; 4; 5}, {1; 2; 3; 4}, {0; 1; 2; 3}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {-5; -4; -3; -2; -1}, {1; 2; 3; 4}, {-3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {1; 2; 3; 4; 5}, {-4; -3; -2; -1}, {0; 1; 2; 3}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {-5; -4; -3; -2; -1}, {-4; -3; -2; -1}, {-3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {-4; -3; -2; -1}, {-3; -2; -1}, {-2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {-4; -3; -2; -1}, {1; 2; 3}, {-2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {1; 2; 3; 4}, {-3; -2; -1}, {0; 1; 2}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {1; 2; 3; 4}, {1; 2; 3}, {0; 1; 2}
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {1; 2; 3}, {1; 2}, {0; 1}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {-3; -2; -1}, {1; 2}, {-1; 0}
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {1; 2; 3}, {-2; -1}, {0; 1}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {-3; -2; -1}, {-2; -1}, {-1; 0}
+50a130,208
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [1..9], [-8..0]
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [-9..-1], [-8..0]
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [1..9], [0..8]
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [-9..-1], [0..8]
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {-8; -7; -6; -5; -4; -3; -2; -1},
+>   {1; 2; 3; 4; 5; 6; 7},
+>   {-6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {-8; -7; -6; -5; -4; -3; -2; -1},
+>   {-7; -6; -5; -4; -3; -2; -1},
+>   {-6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {1; 2; 3; 4; 5; 6; 7; 8}, {1; 2; 3; 4; 5; 6; 7}, {0; 1; 2; 3; 4; 5; 6}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {-7; -6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {1; 2; 3; 4; 5; 6; 7}, {1; 2; 3; 4; 5; 6}, {0; 1; 2; 3; 4; 5}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {-7; -6; -5; -4; -3; -2; -1},
+>   {-6; -5; -4; -3; -2; -1},
+>   {-5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {1; 2; 3; 4; 5; 6; 7}, {-6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {-6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5}, {-4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {-6; -5; -4; -3; -2; -1}, {-5; -4; -3; -2; -1}, {-4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {1; 2; 3; 4; 5; 6}, {1; 2; 3; 4; 5}, {0; 1; 2; 3; 4}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1}, {0; 1; 2; 3; 4}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {-5; -4; -3; -2; -1}, {1; 2; 3; 4}, {-3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {1; 2; 3; 4; 5}, {1; 2; 3; 4}, {0; 1; 2; 3}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {-5; -4; -3; -2; -1}, {-4; -3; -2; -1}, {-3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {1; 2; 3; 4; 5}, {-4; -3; -2; -1}, {0; 1; 2; 3}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {-4; -3; -2; -1}, {1; 2; 3}, {-2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {-4; -3; -2; -1}, {-3; -2; -1}, {-2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {1; 2; 3; 4}, {1; 2; 3}, {0; 1; 2}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {1; 2; 3; 4}, {-3; -2; -1}, {0; 1; 2}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {-3; -2; -1}, {1; 2}, {-1; 0}
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {1; 2; 3}, {1; 2}, {0; 1}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {-3; -2; -1}, {-2; -1}, {-1; 0}
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {1; 2; 3}, {-2; -1}, {0; 1}
+60a219,231
+> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-10..10], [-9..9], [-8..8]
+> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-9..9], [-8..8], [-7..7]
+> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-8..8], [-7..7], [-6..6]
+> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-7..7], [-6..6], [-5..5]
+> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-6..6], [-5..5], [-4..4]
+> [eva] tests/value/modulo.i:64: 
+>   Frama_C_show_each_3:
+>   [-5..5], {-4; -3; -2; -1; 1; 2; 3; 4}, {-3; -2; -1; 0; 1; 2; 3}
+> [eva] tests/value/modulo.i:64: 
+>   Frama_C_show_each_3:
+>   {-4; -3; -2; -1; 1; 2; 3; 4}, {-3; -2; -1; 1; 2; 3}, {-2; -1; 0; 1; 2}
+> [eva] tests/value/modulo.i:64: 
+>   Frama_C_show_each_3: {-3; -2; -1; 1; 2; 3}, {-2; -1; 1; 2}, {-1; 0; 1}
diff --git a/tests/value/oracle_equalities/non_natural.res.oracle b/tests/value/oracle_equalities/non_natural.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..e2a7857fd096431f5c785683670a882ab38da5c1
--- /dev/null
+++ b/tests/value/oracle_equalities/non_natural.res.oracle
@@ -0,0 +1,52 @@
+58a59,60
+> [kernel] tests/value/non_natural.i:30: 
+>   more than 200(12500) elements to enumerate. Approximating.
+65a68,71
+> [kernel] tests/value/non_natural.i:23: 
+>   more than 200(12500) elements to enumerate. Approximating.
+> [kernel] tests/value/non_natural.i:23: 
+>   more than 200(12501) elements to enumerate. Approximating.
+70a77,80
+> [kernel] tests/value/non_natural.i:24: 
+>   more than 200(12500) elements to enumerate. Approximating.
+> [kernel] tests/value/non_natural.i:24: 
+>   more than 200(12501) elements to enumerate. Approximating.
+78a89,90
+> [kernel] tests/value/non_natural.i:25: 
+>   more than 200(12500) elements to enumerate. Approximating.
+86a99,100
+> [kernel] tests/value/non_natural.i:26: 
+>   more than 200(12500) elements to enumerate. Approximating.
+94a109,110
+> [kernel] tests/value/non_natural.i:27: 
+>   more than 200(12500) elements to enumerate. Approximating.
+102a119,120
+> [kernel] tests/value/non_natural.i:28: 
+>   more than 200(12500) elements to enumerate. Approximating.
+110a129,130
+> [kernel] tests/value/non_natural.i:29: 
+>   more than 200(12500) elements to enumerate. Approximating.
+127,146d146
+< [kernel] tests/value/non_natural.i:23: 
+<   more than 200(12501) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:23: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:24: 
+<   more than 200(12501) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:24: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:25: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:26: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:27: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:28: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:29: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:30: 
+<   more than 200(12500) elements to enumerate. Approximating.
+199a200,201
+> [kernel] tests/value/non_natural.i:39: 
+>   more than 200(12500) elements to enumerate. Approximating.
diff --git a/tests/value/oracle_equalities/nonlin.res.oracle b/tests/value/oracle_equalities/nonlin.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..6dd8e0102fc2e3d478beda8f9230a92167ddc615
--- /dev/null
+++ b/tests/value/oracle_equalities/nonlin.res.oracle
@@ -0,0 +1,4 @@
+194c194
+<   q ∈ {{ &x + [-400..400],0%4 }}
+---
+>   q ∈ {{ &x }}
diff --git a/tests/value/oracle_equalities/octagons.res.oracle b/tests/value/oracle_equalities/octagons.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..8e32fb27d1dae1fdc6f8a36f2913f5e370871108
--- /dev/null
+++ b/tests/value/oracle_equalities/octagons.res.oracle
@@ -0,0 +1,8 @@
+29c29
+<   Frama_C_show_each_unreduced_unsigned: [0..4294967295], [0..4294967295]
+---
+>   Frama_C_show_each_unreduced_unsigned: [0..4294967295], [6..4294967295]
+269c269
+<   t ∈ [--..--] or UNINITIALIZED
+---
+>   t ∈ [6..4294967295] or UNINITIALIZED
diff --git a/tests/value/oracle_equalities/offsetmap.0.res.oracle b/tests/value/oracle_equalities/offsetmap.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..6bebb89e738e4c6703b3d8b869f9d852e34a9e44
--- /dev/null
+++ b/tests/value/oracle_equalities/offsetmap.0.res.oracle
@@ -0,0 +1,4 @@
+40d39
+< [eva] Recording results for g
+42a42
+> [eva] Recording results for g
diff --git a/tests/value/oracle_equalities/offsetmap.1.res.oracle b/tests/value/oracle_equalities/offsetmap.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..6bebb89e738e4c6703b3d8b869f9d852e34a9e44
--- /dev/null
+++ b/tests/value/oracle_equalities/offsetmap.1.res.oracle
@@ -0,0 +1,4 @@
+40d39
+< [eva] Recording results for g
+42a42
+> [eva] Recording results for g
diff --git a/tests/value/oracle_equalities/origin.0.res.oracle b/tests/value/oracle_equalities/origin.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..29915b28f57735ddab40f6179e5b5b12fe8a68b6
--- /dev/null
+++ b/tests/value/oracle_equalities/origin.0.res.oracle
@@ -0,0 +1,10 @@
+249,250c249
+<   pm2[bits 0 to 15]# ∈ {{ (? *)&a }}%32, bits 16 to 31 
+<      [bits 16 to 31]# ∈ {{ (? *)&b }}%32, bits 0 to 15 
+---
+>   pm2 ∈ {{ &a + {-4} ; &b + {-4} }}
+289,290c288
+<   pm2[bits 0 to 15]# ∈ {{ (? *)&a }}%32, bits 16 to 31 
+<      [bits 16 to 31]# ∈ {{ (? *)&b }}%32, bits 0 to 15 
+---
+>   pm2 ∈ {{ &a + {-4} ; &b + {-4} }}
diff --git a/tests/value/oracle_equalities/period.res.oracle b/tests/value/oracle_equalities/period.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..99204176fa41dc5a9ee1e72337d2436541654499
--- /dev/null
+++ b/tests/value/oracle_equalities/period.res.oracle
@@ -0,0 +1,10 @@
+88,94d87
+< [eva:alarm] tests/value/period.c:53: Warning: 
+<   pointer downcast. assert (unsigned int)(&g) ≤ 2147483647;
+< [eva] tests/value/period.c:53: 
+<   Assigning imprecise value to p.
+<   The imprecision originates from Arithmetic {tests/value/period.c:53}
+< [eva:alarm] tests/value/period.c:54: Warning: 
+<   out of bounds read. assert \valid_read(p);
+99d91
+< [scope:rm_asserts] removing 1 assertion(s)
diff --git a/tests/value/oracle_equalities/plevel.res.oracle b/tests/value/oracle_equalities/plevel.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..d19a038f2cb62353c97e3e6ede7f83a949ef654e
--- /dev/null
+++ b/tests/value/oracle_equalities/plevel.res.oracle
@@ -0,0 +1,4 @@
+12d11
+< [eva] Recording results for main
+14a14
+> [eva] Recording results for main
diff --git a/tests/value/oracle_equalities/pointer_comp.res.oracle b/tests/value/oracle_equalities/pointer_comp.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..d0e8bccda7d9e05b4aaebb9ccadc7b173769c729
--- /dev/null
+++ b/tests/value/oracle_equalities/pointer_comp.res.oracle
@@ -0,0 +1,5 @@
+30a31,34
+> [kernel] tests/value/pointer_comp.c:43: 
+>   imprecise size for variable g (Undefined sizeof on a function.)
+> [kernel] tests/value/pointer_comp.c:43: 
+>   imprecise size for variable f (Undefined sizeof on a function.)
diff --git a/tests/value/oracle_equalities/ptr_relation.0.res.oracle b/tests/value/oracle_equalities/ptr_relation.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..0ae744ec7d6e6fcde013d15696dcf66e9f1424b5
--- /dev/null
+++ b/tests/value/oracle_equalities/ptr_relation.0.res.oracle
@@ -0,0 +1,4 @@
+23c23
+<   i ∈ {0; 77; 333}
+---
+>   i ∈ {77}
diff --git a/tests/value/oracle_equalities/redundant_alarms.res.oracle b/tests/value/oracle_equalities/redundant_alarms.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..f5e5f009673c3c5e27ad9ea5cad16f50d7658123
--- /dev/null
+++ b/tests/value/oracle_equalities/redundant_alarms.res.oracle
@@ -0,0 +1,26 @@
+10,13d9
+< [eva:alarm] tests/value/redundant_alarms.c:11: Warning: 
+<   accessing uninitialized left-value. assert \initialized(p);
+< [eva:alarm] tests/value/redundant_alarms.c:12: Warning: 
+<   accessing uninitialized left-value. assert \initialized(p);
+24,25d19
+< [eva:alarm] tests/value/redundant_alarms.c:21: Warning: 
+<   accessing uninitialized left-value. assert \initialized(&t[i]);
+63,65c57
+< [scope:rm_asserts] removing 3 assertion(s)
+< [scope:rm_asserts] tests/value/redundant_alarms.c:12: 
+<   removing redundant assert Eva: initialization: \initialized(p);
+---
+> [scope:rm_asserts] removing 2 assertion(s)
+108d99
+<   /*@ assert Eva: initialization: \initialized(p); */
+110d100
+<   /*@ assert Eva: initialization: \initialized(p); */
+127d116
+<   /*@ assert Eva: initialization: \initialized(&t[i]); */
+196a186
+>   int z;
+199,201d188
+<   *p = 1;
+<   int z = *p + 1;
+<   int w = *p + 2;
diff --git a/tests/value/oracle_equalities/relation_reduction.res.oracle b/tests/value/oracle_equalities/relation_reduction.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..652ddf13af23bbb7e14fe2d38db7906e17bb7743
--- /dev/null
+++ b/tests/value/oracle_equalities/relation_reduction.res.oracle
@@ -0,0 +1,23 @@
+24,27d23
+< [eva:alarm] tests/value/relation_reduction.i:20: Warning: 
+<   accessing out of bounds index. assert 0 ≤ y;
+< [eva:alarm] tests/value/relation_reduction.i:20: Warning: 
+<   accessing out of bounds index. assert y < 9;
+34,37c30,33
+<   R1 ∈ [-2147483648..2147483637]
+<   R2 ∈ [-2147483638..2147483647]
+<   R3 ∈ [--..--]
+<   R4 ∈ {0; 1; 2; 3; 4; 5}
+---
+>   R1 ∈ {0; 2}
+>   R2 ∈ {0; 12}
+>   R3 ∈ {0; 7}
+>   R4 ∈ {0; 2}
+48c44
+<   R4 FROM tab[0..8]; x (and SELF)
+---
+>   R4 FROM tab[0..5]; x (and SELF)
+53c49
+<     y; t; tab[0..8]
+---
+>     y; t; tab[0..5]
diff --git a/tests/value/oracle_equalities/relation_shift.res.oracle b/tests/value/oracle_equalities/relation_shift.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..7176e3f6955ca3876a5937202f9c1229c5a22c32
--- /dev/null
+++ b/tests/value/oracle_equalities/relation_shift.res.oracle
@@ -0,0 +1,12 @@
+35,36c35,36
+<   x ∈ [-2147483647..2147483647]
+<   y ∈ [-2147483648..2147483646]
+---
+>   x ∈ [-2147483647..2147483642]
+>   y ∈ [-2147483648..2147483645]
+53,54c53,54
+<   x ∈ [-2147483647..2147483647]
+<   y ∈ [-2147483648..2147483646]
+---
+>   x ∈ [-2147483647..2147483642]
+>   y ∈ [-2147483648..2147483645]
diff --git a/tests/value/oracle_equalities/relations.res.oracle b/tests/value/oracle_equalities/relations.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..4617cf21e379162224ce9806eb48d3cb6c53028c
--- /dev/null
+++ b/tests/value/oracle_equalities/relations.res.oracle
@@ -0,0 +1,15 @@
+60,61c60
+<   u[0] ∈ [-2147483648..2147483646]
+<    [1] ∈ [--..--]
+---
+>   u[0..1] ∈ [-2147483648..2147483646]
+67,70c66,69
+<   R1 ∈ [--..--]
+<   R2 ∈ [--..--]
+<   R3 ∈ [-2147483648..2147483646]
+<   R4 ∈ [--..--]
+---
+>   R1 ∈ {0; 3}
+>   R2 ∈ {0; 3}
+>   R3 ∈ {0; 2}
+>   R4 ∈ {0; 2}
diff --git a/tests/value/oracle_equalities/relations2.res.oracle b/tests/value/oracle_equalities/relations2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..32e93421cc32a6ba5dcb1abdc57227c321db7b1c
--- /dev/null
+++ b/tests/value/oracle_equalities/relations2.res.oracle
@@ -0,0 +1,6 @@
+59c59
+<   n ∈ [0..512]
+---
+>   n ∈ [1..512]
+133d132
+< [eva] tests/value/relations2.i:57: Frama_C_show_each_NO2:
diff --git a/tests/value/oracle_equalities/struct2.res.oracle b/tests/value/oracle_equalities/struct2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..61281ee76d0343a86e10d8bc79ed11be6a380d1a
--- /dev/null
+++ b/tests/value/oracle_equalities/struct2.res.oracle
@@ -0,0 +1,30 @@
+55a56,57
+> [kernel] tests/value/struct2.i:78: Warning: 
+>   all target addresses were invalid. This path is assumed to be dead.
+59,60d60
+<   accessing out of bounds index. assert 0 ≤ (int)(tab2[i] + j);
+< [eva:alarm] tests/value/struct2.i:82: Warning: 
+83,84d82
+<   accessing out of bounds index. assert (int)(i + j) < 2;
+< [eva:alarm] tests/value/struct2.i:185: Warning: 
+106c104
+< [scope:rm_asserts] removing 2 assertion(s)
+---
+> [scope:rm_asserts] removing 1 assertion(s)
+143,145c141,143
+<   tab3[0..1] ∈ [--..--]
+<   tab4[0] ∈ {0; 2}
+<       [1] ∈ {0}
+---
+>   tab3[0] ∈ {0; 1}
+>       [1] ∈ [--..--]
+>   tab4[0..1] ∈ {0}
+148c146,147
+<   tab6[0..1] ∈ {0; 2}
+---
+>   tab6[0] ∈ {0}
+>       [1] ∈ {2}
+219c218
+<            [9].a}; s1; s2; s5.e[0].b; s6.b; s8; tabl[0..1]; tab1[0..1];
+---
+>            [9].a}; s1; s2; s5.e[0].b; s6.b; s8; tabl[0..1]; tab1[0];
diff --git a/tests/value/oracle_gauges/alias.5.res.oracle b/tests/value/oracle_gauges/alias.5.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..3136d5f1ef82f0f21af779e1e32866f2f1cfd502
--- /dev/null
+++ b/tests/value/oracle_gauges/alias.5.res.oracle
@@ -0,0 +1,2 @@
+59a60
+> [eva] tests/value/alias.i:260: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/audit.res.oracle b/tests/value/oracle_gauges/audit.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9ff41db248872519df6d5b9ea95483fc420a1ff1
--- /dev/null
+++ b/tests/value/oracle_gauges/audit.res.oracle
@@ -0,0 +1,11 @@
+1,8d0
+< [kernel:audit] Warning: 
+<   different hashes for tests/value/audit.c: got 08f73691217888d926a0ee15cbe18159, expected 01010101010101010101010101010101
+< [kernel:audit] Warning: 
+<   different hashes for tests/value/audit_included_but_not_listed.h: got c2cc488143a476f69cf2ed04c3439e6e, expected <none> (not in list)
+< [kernel:audit] Warning: 
+<   missing files:
+<   tests/value/non_existing_file.h
+< [kernel] Audit: sources list written to: tests/value/result/audit-out.json
+34d25
+< [kernel] Wrote: tests/value/result/audit-out.json
diff --git a/tests/value/oracle_gauges/auto_loop_unroll.0.res.oracle b/tests/value/oracle_gauges/auto_loop_unroll.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..b53899a72738a7c9f35605d4cba511a0cb611d45
--- /dev/null
+++ b/tests/value/oracle_gauges/auto_loop_unroll.0.res.oracle
@@ -0,0 +1,195 @@
+11,13c11
+< [eva:alarm] tests/value/auto_loop_unroll.c:25: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:27: Frama_C_show_each_auto: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:27: Frama_C_show_each_auto: {100}
+15,18c13
+< [eva:alarm] tests/value/auto_loop_unroll.c:31: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:33: 
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:33: Frama_C_show_each_imprecise: {1000}
+20,23c15
+< [eva:alarm] tests/value/auto_loop_unroll.c:39: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:41: 
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:41: Frama_C_show_each_imprecise: {100}
+32,34c24
+< [eva:alarm] tests/value/auto_loop_unroll.c:58: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:59: Frama_C_show_each_64: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:59: Frama_C_show_each_64: {64}
+36,38c26
+< [eva:alarm] tests/value/auto_loop_unroll.c:63: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:64: Frama_C_show_each_40: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:64: Frama_C_show_each_40: {40}
+40,42c28
+< [eva:alarm] tests/value/auto_loop_unroll.c:69: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:72: Frama_C_show_each_80: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:72: Frama_C_show_each_80: {80}
+44,47c30
+< [eva:alarm] tests/value/auto_loop_unroll.c:76: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:82: 
+<   Frama_C_show_each_32_80: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:82: Frama_C_show_each_32_80: [32..83]
+55,56d37
+< [eva:alarm] tests/value/auto_loop_unroll.c:88: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+58c39
+<   Frama_C_show_each_40_50: [0..2147483647]
+---
+>   Frama_C_show_each_40_50: [40..1073741861]
+133,136c114
+< [eva:alarm] tests/value/auto_loop_unroll.c:120: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:122: 
+<   Frama_C_show_each_32_64: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:122: Frama_C_show_each_32_64: [32..65]
+194,197c172
+< [eva:alarm] tests/value/auto_loop_unroll.c:192: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:194: 
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:194: Frama_C_show_each_imprecise: [1..9]
+199,200d173
+< [eva:alarm] tests/value/auto_loop_unroll.c:200: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+204c177
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+>   Frama_C_show_each_imprecise: [64..2147483647]
+210,212c183
+< [eva:alarm] tests/value/auto_loop_unroll.c:212: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:214: Frama_C_show_each_11: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:214: Frama_C_show_each_11: {11}
+214,216c185
+< [eva:alarm] tests/value/auto_loop_unroll.c:217: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:219: Frama_C_show_each_12: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:219: Frama_C_show_each_12: {12}
+218,219d186
+< [eva:alarm] tests/value/auto_loop_unroll.c:223: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+221a189,190
+> [eva:alarm] tests/value/auto_loop_unroll.c:223: Warning: 
+>   signed overflow. assert res + 1 ≤ 2147483647;
+225,226d193
+< [eva:alarm] tests/value/auto_loop_unroll.c:228: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+228a196,197
+> [eva:alarm] tests/value/auto_loop_unroll.c:228: Warning: 
+>   signed overflow. assert res + 1 ≤ 2147483647;
+232,233d200
+< [eva:alarm] tests/value/auto_loop_unroll.c:236: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+237,240c204
+< [eva:alarm] tests/value/auto_loop_unroll.c:241: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:245: 
+<   Frama_C_show_each_11_111: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:245: Frama_C_show_each_11_111: [11..111]
+242,244c206
+< [eva:alarm] tests/value/auto_loop_unroll.c:251: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:253: Frama_C_show_each_16: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:253: Frama_C_show_each_16: [16..2147483647]
+252,254c214
+< [eva:alarm] tests/value/auto_loop_unroll.c:263: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:265: Frama_C_show_each_20: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:265: Frama_C_show_each_20: [20..2147483646]
+256,257d215
+< [eva:alarm] tests/value/auto_loop_unroll.c:268: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+260c218,220
+< [eva] tests/value/auto_loop_unroll.c:270: Frama_C_show_each_21: [0..2147483647]
+---
+> [eva:alarm] tests/value/auto_loop_unroll.c:268: Warning: 
+>   signed overflow. assert res + 1 ≤ 2147483647;
+> [eva] tests/value/auto_loop_unroll.c:270: Frama_C_show_each_21: {21}
+264,265d223
+< [eva:alarm] tests/value/auto_loop_unroll.c:272: Warning: 
+<   signed overflow. assert i + 1 ≤ 2147483647;
+270,271d227
+< [eva:alarm] tests/value/auto_loop_unroll.c:279: Warning: 
+<   signed overflow. assert i + 1 ≤ 2147483647;
+276,277d231
+< [eva:alarm] tests/value/auto_loop_unroll.c:287: Warning: 
+<   signed overflow. assert i + 1 ≤ 2147483647;
+284,286c238,239
+< [eva:alarm] tests/value/auto_loop_unroll.c:299: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:303: Frama_C_show_each_30: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:303: Frama_C_show_each_30: {30}
+> [eva] tests/value/auto_loop_unroll.c:307: starting to merge loop iterations
+289d241
+< [eva] tests/value/auto_loop_unroll.c:307: starting to merge loop iterations
+292,294c244
+< [eva:alarm] tests/value/auto_loop_unroll.c:316: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:321: Frama_C_show_each_32: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:321: Frama_C_show_each_32: {32}
+307,310c257
+< [eva:alarm] tests/value/auto_loop_unroll.c:343: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:345: 
+<   Frama_C_show_each_0_35: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:345: Frama_C_show_each_0_35: [0..35]
+313,314d259
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva:alarm] tests/value/auto_loop_unroll.c:348: Warning: 
+316c261,263
+< [eva] tests/value/auto_loop_unroll.c:352: Frama_C_show_each_36: [0..2147483647]
+---
+> [eva:alarm] tests/value/auto_loop_unroll.c:348: Warning: 
+>   signed overflow. assert res + 1 ≤ 2147483647;
+> [eva] tests/value/auto_loop_unroll.c:352: Frama_C_show_each_36: {36}
+325,327c272
+< [eva:alarm] tests/value/auto_loop_unroll.c:371: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:375: Frama_C_show_each_50: [1..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:375: Frama_C_show_each_50: {50}
+330,331d274
+< [eva:alarm] tests/value/auto_loop_unroll.c:380: Warning: 
+<   signed overflow. assert -2147483648 ≤ i - 1;
+339,342d281
+< [eva:alarm] tests/value/auto_loop_unroll.c:392: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+< [eva:alarm] tests/value/auto_loop_unroll.c:396: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+344c283
+< [eva] tests/value/auto_loop_unroll.c:398: Frama_C_show_each_30: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:398: Frama_C_show_each_30: {30}
+346,349d284
+< [eva:alarm] tests/value/auto_loop_unroll.c:403: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+< [eva:alarm] tests/value/auto_loop_unroll.c:407: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+351c286
+< [eva] tests/value/auto_loop_unroll.c:412: Frama_C_show_each_30: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:412: Frama_C_show_each_30: [15..45]
diff --git a/tests/value/oracle_gauges/auto_loop_unroll.1.res.oracle b/tests/value/oracle_gauges/auto_loop_unroll.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..69c5d75fdc9b168fb5e84a39b225b0e6a9ac2f9f
--- /dev/null
+++ b/tests/value/oracle_gauges/auto_loop_unroll.1.res.oracle
@@ -0,0 +1,31 @@
+15,18c15
+< [eva:alarm] tests/value/auto_loop_unroll.c:31: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:33: 
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:33: Frama_C_show_each_imprecise: {1000}
+20,23c17
+< [eva:alarm] tests/value/auto_loop_unroll.c:39: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:41: 
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:41: Frama_C_show_each_imprecise: {100}
+335,338c329
+< [eva:alarm] tests/value/auto_loop_unroll.c:192: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+< [eva] tests/value/auto_loop_unroll.c:194: 
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+> [eva] tests/value/auto_loop_unroll.c:194: Frama_C_show_each_imprecise: [1..9]
+340,341d330
+< [eva:alarm] tests/value/auto_loop_unroll.c:200: Warning: 
+<   signed overflow. assert res + 1 ≤ 2147483647;
+345c334
+<   Frama_C_show_each_imprecise: [0..2147483647]
+---
+>   Frama_C_show_each_imprecise: [64..2147483647]
+381,382d369
+< [eva:alarm] tests/value/auto_loop_unroll.c:287: Warning: 
+<   signed overflow. assert i + 1 ≤ 2147483647;
diff --git a/tests/value/oracle_gauges/bad_loop.res.oracle b/tests/value/oracle_gauges/bad_loop.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..0801a0331945b646c64cf36e95d84db91bd5e2ce
--- /dev/null
+++ b/tests/value/oracle_gauges/bad_loop.res.oracle
@@ -0,0 +1,2 @@
+6a7
+> [eva] tests/value/bad_loop.i:12: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/bitfield.res.oracle b/tests/value/oracle_gauges/bitfield.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..1ac37a479977ef3745e516936e77bfb7d93dc33c
--- /dev/null
+++ b/tests/value/oracle_gauges/bitfield.res.oracle
@@ -0,0 +1,16 @@
+138a139,153
+> [eva] tests/value/bitfield.i:71: 
+>   Frama_C_show_each:
+>   {{ garbled mix of &{b} (origin: Misaligned {tests/value/bitfield.i:70}) }}
+> [eva] tests/value/bitfield.i:73: 
+>   Frama_C_show_each:
+>   {{ garbled mix of &{b} (origin: Misaligned {tests/value/bitfield.i:70}) }}
+> [eva] computing for function leaf <- imprecise_bts_1671 <- main.
+>   Called from tests/value/bitfield.i:70.
+> [eva] Done for function leaf
+> [eva] tests/value/bitfield.i:71: 
+>   Frama_C_show_each:
+>   {{ garbled mix of &{b} (origin: Misaligned {tests/value/bitfield.i:70}) }}
+> [eva] tests/value/bitfield.i:73: 
+>   Frama_C_show_each:
+>   {{ garbled mix of &{b} (origin: Misaligned {tests/value/bitfield.i:70}) }}
diff --git a/tests/value/oracle_gauges/cast2.res.oracle b/tests/value/oracle_gauges/cast2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..ba548cab66284dc6d1633823aafdae6fae261f51
--- /dev/null
+++ b/tests/value/oracle_gauges/cast2.res.oracle
@@ -0,0 +1,2 @@
+26a27
+> [eva] tests/value/cast2.i:24: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/for_loops.1.res.oracle b/tests/value/oracle_gauges/for_loops.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..a688cad743d26765cdaf73e9a3eaace9e54b19d3
--- /dev/null
+++ b/tests/value/oracle_gauges/for_loops.1.res.oracle
@@ -0,0 +1,6 @@
+39,41c39
+< [eva:alarm] tests/value/for_loops.c:16: Warning: 
+<   signed overflow. assert w + 1 ≤ 2147483647;
+< [eva] tests/value/for_loops.c:17: Frama_C_show_each_F: [0..2147483647]
+---
+> [eva] tests/value/for_loops.c:17: Frama_C_show_each_F: [0..100]
diff --git a/tests/value/oracle_gauges/for_loops.2.res.oracle b/tests/value/oracle_gauges/for_loops.2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..07bdb32470ea74358c823be33bb122db954e445b
--- /dev/null
+++ b/tests/value/oracle_gauges/for_loops.2.res.oracle
@@ -0,0 +1,6 @@
+37,39c37
+< [eva:alarm] tests/value/for_loops.c:42: Warning: 
+<   signed overflow. assert w + T[j] ≤ 2147483647;
+< [eva] tests/value/for_loops.c:43: Frama_C_show_each: [0..2147483647]
+---
+> [eva] tests/value/for_loops.c:43: Frama_C_show_each: [0..1000]
diff --git a/tests/value/oracle_gauges/from_termin.res.oracle b/tests/value/oracle_gauges/from_termin.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..a29f1796862a617621451045df13187bf62b6a6d
--- /dev/null
+++ b/tests/value/oracle_gauges/from_termin.res.oracle
@@ -0,0 +1,2 @@
+9a10
+> [eva] tests/value/from_termin.i:8: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/gauges.res.oracle b/tests/value/oracle_gauges/gauges.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..a34023e43fe99cbd16db6f50c76ba68a7996f94f
--- /dev/null
+++ b/tests/value/oracle_gauges/gauges.res.oracle
@@ -0,0 +1,348 @@
+25,26d24
+< [eva:alarm] tests/value/gauges.c:23: Warning: 
+<   signed overflow. assert -2147483648 ≤ j - 4;
+38,39d35
+< [eva:alarm] tests/value/gauges.c:26: Warning: 
+<   signed overflow. assert l + 1 ≤ 2147483647;
+57,58d52
+< [eva:alarm] tests/value/gauges.c:45: Warning: 
+<   signed overflow. assert -2147483648 ≤ j - 4;
+61a56,57
+> [eva:alarm] tests/value/gauges.c:45: Warning: 
+>   signed overflow. assert -2147483648 ≤ j - 4;
+70,71d65
+< [eva:alarm] tests/value/gauges.c:48: Warning: 
+<   signed overflow. assert l + 1 ≤ 2147483647;
+83,84d76
+< [eva:alarm] tests/value/gauges.c:58: Warning: 
+<   accessing out of bounds index. assert j < 38;
+97,101d88
+< [eva:alarm] tests/value/gauges.c:71: Warning: 
+<   out of bounds write. assert \valid(tmp);
+<                        (tmp from p++)
+< [eva] tests/value/gauges.c:72: Frama_C_show_each:
+< [eva] tests/value/gauges.c:72: Frama_C_show_each:
+113,114d99
+< [eva:alarm] tests/value/gauges.c:81: Warning: 
+<   signed overflow. assert k + 1 ≤ 2147483647;
+116,117d100
+< [eva:alarm] tests/value/gauges.c:84: Warning: 
+<   signed overflow. assert k + 1 ≤ 2147483647;
+125c108
+< [eva] tests/value/gauges.c:86: Frama_C_show_each: [0..2147483647]
+---
+> [eva] tests/value/gauges.c:86: Frama_C_show_each: {390}
+139,140d121
+< [eva:alarm] tests/value/gauges.c:99: Warning: 
+<   signed overflow. assert c + 1 ≤ 2147483647;
+178,181c159,162
+< [eva] tests/value/gauges.c:129: Frama_C_show_each: {{ &y + [4..36],0%4 }}
+< [eva] tests/value/gauges.c:129: Frama_C_show_each: {{ &y + [4..40],0%4 }}
+< [eva:alarm] tests/value/gauges.c:130: Warning: 
+<   out of bounds write. assert \valid(p);
+---
+> [eva] tests/value/gauges.c:129: 
+>   Frama_C_show_each: {{ &y + {4; 8; 12; 16; 20; 24} }}
+> [eva] tests/value/gauges.c:129: 
+>   Frama_C_show_each: {{ &y + {4; 8; 12; 16; 20; 24} }}
+187,188d167
+< [eva:alarm] tests/value/gauges.c:140: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+206,208d184
+< [eva:alarm] tests/value/gauges.c:158: Warning: 
+<   out of bounds write. assert \valid(tmp);
+<                        (tmp from p--)
+227,231c203,205
+< [eva] tests/value/gauges.c:172: Frama_C_show_each: [2147483646..4294967294]
+< [eva] tests/value/gauges.c:172: Frama_C_show_each: [1..4294967294]
+< [eva] tests/value/gauges.c:172: Frama_C_show_each: [1..4294967294]
+< [eva] tests/value/gauges.c:172: Frama_C_show_each: [1..4294967294]
+< [eva] tests/value/gauges.c:172: Frama_C_show_each: [1..4294967294]
+---
+> [eva] tests/value/gauges.c:172: Frama_C_show_each: [2147483647..4294967294]
+> [eva] tests/value/gauges.c:172: Frama_C_show_each: [2147483647..4294967294]
+> [eva] tests/value/gauges.c:172: Frama_C_show_each: [2147483647..4294967294]
+235c209,210
+< [eva] tests/value/gauges.c:172: Frama_C_show_each: [1..4294967294]
+---
+> [eva] tests/value/gauges.c:172: Frama_C_show_each: [2147483647..4294967294]
+> [eva] tests/value/gauges.c:172: Frama_C_show_each: [2147483647..4294967294]
+259,262d233
+< [eva:alarm] tests/value/gauges.c:192: Warning: 
+<   out of bounds write. assert \valid(p);
+< [eva:alarm] tests/value/gauges.c:193: Warning: 
+<   out of bounds write. assert \valid(q);
+270,275d240
+< [eva:alarm] tests/value/gauges.c:202: Warning: 
+<   out of bounds read. assert \valid_read(tmp);
+<                       (tmp from A++)
+< [eva:alarm] tests/value/gauges.c:202: Warning: 
+<   out of bounds read. assert \valid_read(tmp_0);
+<                       (tmp_0 from B++)
+303,304d267
+< [eva:alarm] tests/value/gauges.c:220: Warning: 
+<   signed overflow. assert -2147483648 ≤ n - 1;
+319,322c282
+< [eva:alarm] tests/value/gauges.c:240: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+< [eva] tests/value/gauges.c:242: 
+<   Frama_C_show_each: {45; 46; 47; 48; 49; 50; 51}, [0..2147483647]
+---
+> [eva] tests/value/gauges.c:242: Frama_C_show_each: {47; 48}, {6}
+328,329d287
+< [eva:alarm] tests/value/gauges.c:251: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+331c289
+<   Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, [0..2147483647]
+---
+>   Frama_C_show_each: {48; 49; 50; 51; 52; 53; 54}, {6; 7}
+337,340c295
+< [eva:alarm] tests/value/gauges.c:263: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+< [eva] tests/value/gauges.c:265: 
+<   Frama_C_show_each: {-59; -58; -57; -56; -55; -54; -53}, [0..2147483647]
+---
+> [eva] tests/value/gauges.c:265: Frama_C_show_each: {-58; -57}, {9}
+346,347d300
+< [eva:alarm] tests/value/gauges.c:274: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+349c302
+<   Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, [0..2147483647]
+---
+>   Frama_C_show_each: {-64; -63; -62; -61; -60; -59; -58}, {9; 10}
+357,358d309
+< [eva:alarm] tests/value/gauges.c:293: Warning: 
+<   signed overflow. assert j + 1 ≤ 2147483647;
+360c311
+<   Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..2147483647]
+---
+>   Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [99..119]
+422a374,377
+>   # Gauges domain:
+>   V: [{[ p -> {{ &x }}
+>          i -> {1} ]}]
+>   s398: λ(0)
+482a438,441
+>   # Gauges domain:
+>   V: [{[ i -> {1} ]}]
+>   s398: λ([0 .. 1])
+>         {[ i -> {1} ]}
+541a501,504
+>   # Gauges domain:
+>   V: [{[ i -> {1} ]}]
+>   s398: λ([0 .. 2])
+>         {[ i -> {1} ]}
+600a564,567
+>   # Gauges domain:
+>   V: [{[ i -> {1} ]}]
+>   s398: λ([0 .. 10])
+>         {[ i -> {1} ]}
+665a633,637
+>   # Gauges domain:
+>   V: [{[ p -> {{ &a }}
+>          i -> {2} ]}]
+>   s412: λ(0)
+>   s411: λ(0)
+726a699,703
+>   # Gauges domain:
+>   V: [{[ i -> {2} ]}]
+>   s412: λ(0)
+>   s411: λ([0 .. 1])
+>         {[ i -> {0} ]}
+728a706,833
+> [eva] tests/value/gauges.c:325: 
+>   Frama_C_dump_each:
+>   # Cvalue domain:
+>   __fc_heap_status ∈ [--..--]
+>   __fc_random_counter ∈ [--..--]
+>   __fc_rand_max ∈ {32767}
+>   __fc_random48_init ∈ {0}
+>   __fc_random48_counter[0..2] ∈ [--..--]
+>   __fc_p_random48_counter ∈ {{ &__fc_random48_counter[0] }}
+>   __fc_env[0] ∈ {{ NULL ; &S_0___fc_env[0] }}
+>           [1] ∈ {{ NULL ; &S_1___fc_env[0] }}
+>           [2..4095] ∈ {{ NULL ; &S_0___fc_env[0] ; &S_1___fc_env[0] }}
+>   __fc_mblen_state ∈ [--..--]
+>   __fc_mbtowc_state ∈ [--..--]
+>   __fc_wctomb_state ∈ [--..--]
+>   v ∈ [--..--]
+>   t[0..4] ∈ {0}
+>    [5] ∈ [0..48],0%3
+>    [6] ∈ {0}
+>    [7] ∈ [0..48],0%3
+>    [8] ∈ {0}
+>    [9] ∈ [0..48],0%3
+>    [10] ∈ {0}
+>    [11] ∈ [0..48],0%3
+>    [12] ∈ {0}
+>    [13] ∈ [0..48],0%3
+>    [14] ∈ {0}
+>    [15] ∈ [0..48],0%3
+>    [16] ∈ {0}
+>    [17] ∈ [0..48],0%3
+>    [18] ∈ {0}
+>    [19] ∈ [0..48],0%3
+>    [20] ∈ {0}
+>    [21] ∈ [0..48],0%3
+>    [22] ∈ {0}
+>    [23] ∈ [0..48],0%3
+>    [24] ∈ {0}
+>    [25] ∈ [0..48],0%3
+>    [26] ∈ {0}
+>    [27] ∈ [0..48],0%3
+>    [28] ∈ {0}
+>    [29] ∈ [0..48],0%3
+>    [30] ∈ {0}
+>    [31] ∈ [0..48],0%3
+>    [32] ∈ {0}
+>    [33] ∈ [0..48],0%3
+>    [34] ∈ {0}
+>    [35] ∈ [0..48],0%3
+>    [36] ∈ {0}
+>    [37] ∈ [0..48],0%3
+>   u[0..99] ∈ [0..100]
+>   T[0..99] ∈ [--..--]
+>   a ∈ {1}
+>   b ∈ {0}
+>   p ∈ {{ &a ; &b }}
+>   i ∈ {2}
+>   S_0___fc_env[0..1] ∈ [--..--]
+>   S_1___fc_env[0..1] ∈ [--..--]
+>   # Gauges domain:
+>   V: [{[ i -> {2} ]}]
+>   s412: λ(0)
+>   s411: λ([0 .. 2])
+>         {[ i -> {0} ]}
+>   ==END OF DUMP==
+> [eva] tests/value/gauges.c:325: 
+>   Frama_C_dump_each:
+>   # Cvalue domain:
+>   __fc_heap_status ∈ [--..--]
+>   __fc_random_counter ∈ [--..--]
+>   __fc_rand_max ∈ {32767}
+>   __fc_random48_init ∈ {0}
+>   __fc_random48_counter[0..2] ∈ [--..--]
+>   __fc_p_random48_counter ∈ {{ &__fc_random48_counter[0] }}
+>   __fc_env[0] ∈ {{ NULL ; &S_0___fc_env[0] }}
+>           [1] ∈ {{ NULL ; &S_1___fc_env[0] }}
+>           [2..4095] ∈ {{ NULL ; &S_0___fc_env[0] ; &S_1___fc_env[0] }}
+>   __fc_mblen_state ∈ [--..--]
+>   __fc_mbtowc_state ∈ [--..--]
+>   __fc_wctomb_state ∈ [--..--]
+>   v ∈ [--..--]
+>   t[0..4] ∈ {0}
+>    [5] ∈ [0..48],0%3
+>    [6] ∈ {0}
+>    [7] ∈ [0..48],0%3
+>    [8] ∈ {0}
+>    [9] ∈ [0..48],0%3
+>    [10] ∈ {0}
+>    [11] ∈ [0..48],0%3
+>    [12] ∈ {0}
+>    [13] ∈ [0..48],0%3
+>    [14] ∈ {0}
+>    [15] ∈ [0..48],0%3
+>    [16] ∈ {0}
+>    [17] ∈ [0..48],0%3
+>    [18] ∈ {0}
+>    [19] ∈ [0..48],0%3
+>    [20] ∈ {0}
+>    [21] ∈ [0..48],0%3
+>    [22] ∈ {0}
+>    [23] ∈ [0..48],0%3
+>    [24] ∈ {0}
+>    [25] ∈ [0..48],0%3
+>    [26] ∈ {0}
+>    [27] ∈ [0..48],0%3
+>    [28] ∈ {0}
+>    [29] ∈ [0..48],0%3
+>    [30] ∈ {0}
+>    [31] ∈ [0..48],0%3
+>    [32] ∈ {0}
+>    [33] ∈ [0..48],0%3
+>    [34] ∈ {0}
+>    [35] ∈ [0..48],0%3
+>    [36] ∈ {0}
+>    [37] ∈ [0..48],0%3
+>   u[0..99] ∈ [0..100]
+>   T[0..99] ∈ [--..--]
+>   a ∈ {1}
+>   b ∈ {0}
+>   p ∈ {{ &a ; &b }}
+>   i ∈ {2}
+>   S_0___fc_env[0..1] ∈ [--..--]
+>   S_1___fc_env[0..1] ∈ [--..--]
+>   # Gauges domain:
+>   V: [{[ i -> {2} ]}]
+>   s412: λ(0)
+>   s411: λ([0 .. +oo])
+>         {[ i -> {0} ]}
+>   ==END OF DUMP==
+736a842,843
+> [eva] tests/value/gauges.c:343: Call to builtin malloc
+> [eva] tests/value/gauges.c:343: Call to builtin malloc
+789,790c896,897
+<   A ∈ {{ &A + [0..--],0%4 }}
+<   B ∈ {{ &B + [0..--],0%4 }}
+---
+>   A ∈ {{ &A + [0..36],0%4 }}
+>   B ∈ {{ &B + [0..36],0%4 }}
+802c909
+<   n ∈ [-2147483648..99]
+---
+>   n ∈ [-2147483547..99]
+808c915
+<   i ∈ {45; 46; 47; 48; 49; 50; 51}
+---
+>   i ∈ {45; 46; 47; 48}
+814c921
+<   i ∈ {-59; -58; -57; -56; -55; -54; -53}
+---
+>   i ∈ {-58; -57; -56; -55; -54; -53}
+834c941
+<   p ∈ {{ &u + [0..--],0%4 }}
+---
+>   p ∈ {{ &u + [0..400],0%4 }}
+836c943
+<   k ∈ [0..2147483647]
+---
+>   k ∈ [0..390]
+841c948
+<   i ∈ [0..2147483647]
+---
+>   i ∈ [0..21]
+852,853c959,961
+<    [1..9] ∈ {4; 5; 6; 7; 8; 9} or UNINITIALIZED
+<   p ∈ {{ &y + [4..40],0%4 }}
+---
+>    [1..6] ∈ {4; 5; 6; 7; 8; 9} or UNINITIALIZED
+>    [7..9] ∈ UNINITIALIZED
+>   p ∈ {{ &y[7] }}
+864c972
+<   p ∈ {{ &T + [--..396],0%4 }}
+---
+>   p ∈ {{ &T + [-4..396],0%4 }}
+869,873c977
+<   n ∈ {0}
+<   arr[0] ∈ {0}
+<      [1] ∈ {-1}
+<      [2..65535] ∈ [--..--] or UNINITIALIZED
+<   p ∈ {{ &arr + [12..--],0%4 }}
+---
+>   NON TERMINATING FUNCTION
+976a1081
+> [from] Non-terminating function main8_aux (no dependencies)
+999,1000c1104,1105
+<   p FROM p; A; B; n; p; A[0..9]; B[0..9] (and SELF)
+<   \result FROM p; A; B; n; p; A[0..9]; B[0..9]
+---
+>   p FROM p; A; B; n; p; A[0..8]; B[0..8] (and SELF)
+>   \result FROM p; A; B; n; p; A[0..8]; B[0..8]
+1044c1149
+<   NO EFFECTS
+---
+>   NON TERMINATING - NO EFFECTS
+1078c1183
+<     p; A[0..9]; B[0..9]
+---
+>     p; A[0..8]; B[0..8]
diff --git a/tests/value/oracle_gauges/hierarchical_convergence.res.oracle b/tests/value/oracle_gauges/hierarchical_convergence.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..dfe4a55a8d5655bd3e9b1c913be588bdf10ac87c
--- /dev/null
+++ b/tests/value/oracle_gauges/hierarchical_convergence.res.oracle
@@ -0,0 +1,2 @@
+15a16
+> [eva] tests/value/hierarchical_convergence.c:10: Frama_C_show_each: {1}, {0}
diff --git a/tests/value/oracle_gauges/infinite.res.oracle b/tests/value/oracle_gauges/infinite.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..4acec0b99e24e8dc0e6f48456b2475191ac9831a
--- /dev/null
+++ b/tests/value/oracle_gauges/infinite.res.oracle
@@ -0,0 +1,11 @@
+12a13,22
+> [eva] tests/value/infinite.i:6: starting to merge loop iterations
+> [eva] computing for function pause <- main.
+>   Called from tests/value/infinite.i:9.
+> [eva] Done for function pause
+> [eva] computing for function pause <- main.
+>   Called from tests/value/infinite.i:9.
+> [eva] Done for function pause
+> [eva] computing for function pause <- main.
+>   Called from tests/value/infinite.i:9.
+> [eva] Done for function pause
diff --git a/tests/value/oracle_gauges/inout.2.res.oracle b/tests/value/oracle_gauges/inout.2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..fdad47271b2c2f0231b62d27778cea169de9e3c2
--- /dev/null
+++ b/tests/value/oracle_gauges/inout.2.res.oracle
@@ -0,0 +1,2 @@
+22a23
+> [eva] tests/value/inout.i:50: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/inout.3.res.oracle b/tests/value/oracle_gauges/inout.3.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..c2d0b9893381f3f084603b0a50cc3c73e4f9c840
--- /dev/null
+++ b/tests/value/oracle_gauges/inout.3.res.oracle
@@ -0,0 +1,2 @@
+22a23
+> [eva] tests/value/inout.i:60: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/inout.4.res.oracle b/tests/value/oracle_gauges/inout.4.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..3b6b4fc2ae125a92e0abfe0e3b7bb65dd7e6d523
--- /dev/null
+++ b/tests/value/oracle_gauges/inout.4.res.oracle
@@ -0,0 +1,2 @@
+24a25
+> [eva] tests/value/inout.i:60: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/local_slevel.res.oracle b/tests/value/oracle_gauges/local_slevel.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..3329f131e3c9ff467f4c369b90394fcfd7cca6e9
--- /dev/null
+++ b/tests/value/oracle_gauges/local_slevel.res.oracle
@@ -0,0 +1,72 @@
+13,15c13,15
+< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1}
+< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0; 1}
+< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1; 2}
+---
+> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
+> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0}
+> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
+18c18
+<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3}
+---
+>   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3}
+22c22
+<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3; 4}
+---
+>   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3; 4}
+26,34c26
+<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483647]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483647]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483648]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483648]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {1}, [1..79],1%2, [0..4294967295]
+---
+>   Frama_C_show_each: {1}, [1..79],1%2, [1..79]
+36c28
+<   Frama_C_show_each: {-1}, [0..78],0%2, [0..4294967295]
+---
+>   Frama_C_show_each: {-1}, [0..78],0%2, [0..78]
+152c144
+<   r ∈ [--..--]
+---
+>   r ∈ [0..2147483647]
+393,395c385,387
+< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1}
+< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0; 1}
+< [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {0; 1; 2}
+---
+> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
+> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {-1}, {0}, {0}
+> [eva] tests/value/local_slevel.i:18: Frama_C_show_each: {1}, {1}, {1}
+398c390
+<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3}
+---
+>   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3}
+402c394
+<   Frama_C_show_each: {1}, [1..79],1%2, {0; 1; 2; 3; 4}
+---
+>   Frama_C_show_each: {1}, [1..79],1%2, {1; 2; 3; 4}
+406,414c398
+<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483647]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483647]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {1}, [1..79],1%2, [0..2147483648]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {-1}, [0..78],0%2, [0..2147483648]
+< [eva] tests/value/local_slevel.i:18: 
+<   Frama_C_show_each: {1}, [1..79],1%2, [0..4294967295]
+---
+>   Frama_C_show_each: {1}, [1..79],1%2, [1..79]
+416c400
+<   Frama_C_show_each: {-1}, [0..78],0%2, [0..4294967295]
+---
+>   Frama_C_show_each: {-1}, [0..78],0%2, [0..78]
+532c516
+<   r ∈ [--..--]
+---
+>   r ∈ [0..2147483647]
diff --git a/tests/value/oracle_gauges/loop_no_var.res.oracle b/tests/value/oracle_gauges/loop_no_var.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..13d459a97d0afd893e1fcc8004d26061c0c3374e
--- /dev/null
+++ b/tests/value/oracle_gauges/loop_no_var.res.oracle
@@ -0,0 +1,2 @@
+6a7
+> [eva] tests/value/loop_no_var.i:3: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/loop_wvar.1.res.oracle b/tests/value/oracle_gauges/loop_wvar.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..3cbd56d943b6f61678b7adcf19d622740d6de48c
--- /dev/null
+++ b/tests/value/oracle_gauges/loop_wvar.1.res.oracle
@@ -0,0 +1,11 @@
+27,28c27
+< [eva] tests/value/loop_wvar.i:71: Frama_C_show_each: [0..9], [0..17], [0..11]
+< [eva] tests/value/loop_wvar.i:71: Frama_C_show_each: [0..9], [0..18], [0..12]
+---
+> [eva] tests/value/loop_wvar.i:71: Frama_C_show_each: [0..9], [0..9], [0..9]
+37,38c36,37
+<   j ∈ [0..18]
+<   k ∈ [0..12]
+---
+>   j ∈ [0..17]
+>   k ∈ [0..11]
diff --git a/tests/value/oracle_gauges/loopfun.1.res.oracle b/tests/value/oracle_gauges/loopfun.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..4096faa0f9f092b7604436dd52ab6fd629a1d229
--- /dev/null
+++ b/tests/value/oracle_gauges/loopfun.1.res.oracle
@@ -0,0 +1,8 @@
+9a10,12
+> [eva] tests/value/loopfun.i:23: starting to merge loop iterations
+> [eva:loop-unroll] tests/value/loopfun.i:25: loop not completely unrolled
+> [eva] tests/value/loopfun.i:25: starting to merge loop iterations
+11a15
+> [eva] tests/value/loopfun.i:26: starting to merge loop iterations
+13a18
+> [eva] tests/value/loopfun.i:27: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/loopinv.res.oracle b/tests/value/oracle_gauges/loopinv.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..e109e23df9c3fac971ea0f2322245e6f87748f00
--- /dev/null
+++ b/tests/value/oracle_gauges/loopinv.res.oracle
@@ -0,0 +1,21 @@
+72,74c72
+< [eva:alarm] tests/value/loopinv.c:69: Warning: 
+<   loop invariant got status unknown.
+< [eva] tests/value/loopinv.c:71: Frama_C_show_each: {0; 2; 4; 6; 8}, [1..107]
+---
+> [eva] tests/value/loopinv.c:71: Frama_C_show_each: {0; 2; 4; 6; 8}, [1..106]
+79,80c77,78
+< [eva:alarm] tests/value/loopinv.c:73: Warning: 
+<   signed overflow. assert i + 1 ≤ 2147483647;
+---
+> [eva:alarm] tests/value/loopinv.c:69: Warning: 
+>   loop invariant got status unknown.
+175,176d172
+< [    -    ] Assertion 'Eva,signed_overflow' (file tests/value/loopinv.c, line 73)
+<             tried with Eva.
+182,183c178,179
+<      7 To be validated
+<     16 Total
+---
+>      6 To be validated
+>     15 Total
diff --git a/tests/value/oracle_gauges/memexec.res.oracle b/tests/value/oracle_gauges/memexec.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..b06de9e7bb50aba248ba8582c53d7fa6804d6e6a
--- /dev/null
+++ b/tests/value/oracle_gauges/memexec.res.oracle
@@ -0,0 +1,2 @@
+101a102
+> [eva] tests/value/memexec.c:98: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/modulo.res.oracle b/tests/value/oracle_gauges/modulo.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..385e0e184c17b3aec284e3d184fed36779f83a92
--- /dev/null
+++ b/tests/value/oracle_gauges/modulo.res.oracle
@@ -0,0 +1,186 @@
+40a41,123
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [-9..-1], [-8..0]
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [1..9], [-8..0]
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [-9..-1], [0..8]
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [1..9], [0..8]
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {-8; -7; -6; -5; -4; -3; -2; -1},
+>   {-7; -6; -5; -4; -3; -2; -1},
+>   {-6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {-8; -7; -6; -5; -4; -3; -2; -1},
+>   {1; 2; 3; 4; 5; 6; 7},
+>   {-6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {1; 2; 3; 4; 5; 6; 7; 8}, {1; 2; 3; 4; 5; 6; 7}, {0; 1; 2; 3; 4; 5; 6}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {1; 2; 3; 4; 5; 6; 7}, {1; 2; 3; 4; 5; 6}, {0; 1; 2; 3; 4; 5}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {-7; -6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {1; 2; 3; 4; 5; 6; 7}, {-6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {-7; -6; -5; -4; -3; -2; -1},
+>   {-6; -5; -4; -3; -2; -1},
+>   {-5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {-6; -5; -4; -3; -2; -1}, {-5; -4; -3; -2; -1}, {-4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {-6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5}, {-4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1}, {0; 1; 2; 3; 4}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {1; 2; 3; 4; 5; 6}, {1; 2; 3; 4; 5}, {0; 1; 2; 3; 4}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {1; 2; 3; 4; 5}, {1; 2; 3; 4}, {0; 1; 2; 3}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {-5; -4; -3; -2; -1}, {1; 2; 3; 4}, {-3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {1; 2; 3; 4; 5}, {-4; -3; -2; -1}, {0; 1; 2; 3}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {-5; -4; -3; -2; -1}, {-4; -3; -2; -1}, {-3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {-4; -3; -2; -1}, {-3; -2; -1}, {-2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {-4; -3; -2; -1}, {1; 2; 3}, {-2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {1; 2; 3; 4}, {-3; -2; -1}, {0; 1; 2}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {1; 2; 3; 4}, {1; 2; 3}, {0; 1; 2}
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {1; 2; 3}, {1; 2}, {0; 1}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {-3; -2; -1}, {1; 2}, {-1; 0}
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {1; 2; 3}, {-2; -1}, {0; 1}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1: {-3; -2; -1}, {-2; -1}, {-1; 0}
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {-2; -1}, {-1}, {0}
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {-2; -1}, {1}, {0}
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {1; 2}, {-1}, {0}
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: {1; 2}, {1}, {0}
+50a134,216
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [1..9], [-8..0]
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [-9..-1], [-8..0]
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [1..9], [0..8]
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [-9..-1], [0..8]
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {-8; -7; -6; -5; -4; -3; -2; -1},
+>   {1; 2; 3; 4; 5; 6; 7},
+>   {-6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {-8; -7; -6; -5; -4; -3; -2; -1},
+>   {-7; -6; -5; -4; -3; -2; -1},
+>   {-6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {1; 2; 3; 4; 5; 6; 7; 8}, {1; 2; 3; 4; 5; 6; 7}, {0; 1; 2; 3; 4; 5; 6}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {-7; -6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {1; 2; 3; 4; 5; 6; 7}, {1; 2; 3; 4; 5; 6}, {0; 1; 2; 3; 4; 5}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {-7; -6; -5; -4; -3; -2; -1},
+>   {-6; -5; -4; -3; -2; -1},
+>   {-5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {1; 2; 3; 4; 5; 6; 7}, {-6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {-6; -5; -4; -3; -2; -1}, {1; 2; 3; 4; 5}, {-4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {-6; -5; -4; -3; -2; -1}, {-5; -4; -3; -2; -1}, {-4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {1; 2; 3; 4; 5; 6}, {1; 2; 3; 4; 5}, {0; 1; 2; 3; 4}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   {1; 2; 3; 4; 5; 6}, {-5; -4; -3; -2; -1}, {0; 1; 2; 3; 4}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {-5; -4; -3; -2; -1}, {1; 2; 3; 4}, {-3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {1; 2; 3; 4; 5}, {1; 2; 3; 4}, {0; 1; 2; 3}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {-5; -4; -3; -2; -1}, {-4; -3; -2; -1}, {-3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {1; 2; 3; 4; 5}, {-4; -3; -2; -1}, {0; 1; 2; 3}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {-4; -3; -2; -1}, {1; 2; 3}, {-2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {-4; -3; -2; -1}, {-3; -2; -1}, {-2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {1; 2; 3; 4}, {1; 2; 3}, {0; 1; 2}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {1; 2; 3; 4}, {-3; -2; -1}, {0; 1; 2}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {-3; -2; -1}, {1; 2}, {-1; 0}
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {1; 2; 3}, {1; 2}, {0; 1}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2: {-3; -2; -1}, {-2; -1}, {-1; 0}
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {1; 2; 3}, {-2; -1}, {0; 1}
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {-2; -1}, {1}, {0}
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {-2; -1}, {-1}, {0}
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {1; 2}, {1}, {0}
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: {1; 2}, {-1}, {0}
+60a227,240
+> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-10..10], [-9..9], [-8..8]
+> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-9..9], [-8..8], [-7..7]
+> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-8..8], [-7..7], [-6..6]
+> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-7..7], [-6..6], [-5..5]
+> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-6..6], [-5..5], [-4..4]
+> [eva] tests/value/modulo.i:64: 
+>   Frama_C_show_each_3:
+>   [-5..5], {-4; -3; -2; -1; 1; 2; 3; 4}, {-3; -2; -1; 0; 1; 2; 3}
+> [eva] tests/value/modulo.i:64: 
+>   Frama_C_show_each_3:
+>   {-4; -3; -2; -1; 1; 2; 3; 4}, {-3; -2; -1; 1; 2; 3}, {-2; -1; 0; 1; 2}
+> [eva] tests/value/modulo.i:64: 
+>   Frama_C_show_each_3: {-3; -2; -1; 1; 2; 3}, {-2; -1; 1; 2}, {-1; 0; 1}
+> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: {-2; -1; 1; 2}, {-1; 1}, {0}
+81a262,263
+> [eva] tests/value/modulo.i:95: starting to merge loop iterations
+> [eva] tests/value/modulo.i:82: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/non_natural.res.oracle b/tests/value/oracle_gauges/non_natural.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..bc1e48d293fd33ea035d51d8740f9d028f0eee40
--- /dev/null
+++ b/tests/value/oracle_gauges/non_natural.res.oracle
@@ -0,0 +1,178 @@
+60,63c60
+<   Frama_C_show_each: {{ &p2 + [0..400000],0%32 }}
+< [eva:alarm] tests/value/non_natural.i:23: Warning: 
+<   out of bounds write. assert \valid(tmp);
+<                        (tmp from to++)
+---
+>   Frama_C_show_each: {{ &p2 + [0..399968],0%32 }}
+66,68d62
+< [eva:alarm] tests/value/non_natural.i:24: Warning: 
+<   out of bounds write. assert \valid(tmp_1);
+<                        (tmp_1 from to++)
+71,76d64
+< [eva:alarm] tests/value/non_natural.i:25: Warning: 
+<   out of bounds write. assert \valid(tmp_3);
+<                        (tmp_3 from to++)
+< [eva:alarm] tests/value/non_natural.i:25: Warning: 
+<   out of bounds read. assert \valid_read(tmp_4);
+<                       (tmp_4 from from++)
+79,84d66
+< [eva:alarm] tests/value/non_natural.i:26: Warning: 
+<   out of bounds write. assert \valid(tmp_5);
+<                        (tmp_5 from to++)
+< [eva:alarm] tests/value/non_natural.i:26: Warning: 
+<   out of bounds read. assert \valid_read(tmp_6);
+<                       (tmp_6 from from++)
+87,92d68
+< [eva:alarm] tests/value/non_natural.i:27: Warning: 
+<   out of bounds write. assert \valid(tmp_7);
+<                        (tmp_7 from to++)
+< [eva:alarm] tests/value/non_natural.i:27: Warning: 
+<   out of bounds read. assert \valid_read(tmp_8);
+<                       (tmp_8 from from++)
+95,100d70
+< [eva:alarm] tests/value/non_natural.i:28: Warning: 
+<   out of bounds write. assert \valid(tmp_9);
+<                        (tmp_9 from to++)
+< [eva:alarm] tests/value/non_natural.i:28: Warning: 
+<   out of bounds read. assert \valid_read(tmp_10);
+<                       (tmp_10 from from++)
+103,108d72
+< [eva:alarm] tests/value/non_natural.i:29: Warning: 
+<   out of bounds write. assert \valid(tmp_11);
+<                        (tmp_11 from to++)
+< [eva:alarm] tests/value/non_natural.i:29: Warning: 
+<   out of bounds read. assert \valid_read(tmp_12);
+<                       (tmp_12 from from++)
+111,125d74
+< [eva:alarm] tests/value/non_natural.i:30: Warning: 
+<   out of bounds write. assert \valid(tmp_13);
+<                        (tmp_13 from to++)
+< [eva:alarm] tests/value/non_natural.i:30: Warning: 
+<   out of bounds read. assert \valid_read(tmp_14);
+<                       (tmp_14 from from++)
+< [eva] tests/value/non_natural.i:22: 
+<   Frama_C_show_each: {{ &p2 + [0..400032],0%32 }}
+< [eva:alarm] tests/value/non_natural.i:23: Warning: 
+<   out of bounds read. assert \valid_read(tmp_0);
+<                       (tmp_0 from from++)
+< [eva:alarm] tests/value/non_natural.i:24: Warning: 
+<   out of bounds read. assert \valid_read(tmp_2);
+<                       (tmp_2 from from++)
+< [eva] tests/value/non_natural.i:22: Frama_C_show_each: {{ &p2 + [0..--],0%32 }}
+128,129d76
+<   more than 200(12501) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:23: 
+132,133d78
+<   more than 200(12501) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:24: 
+194,197c139
+<   Frama_C_show_each: {{ &p2 + [0..400000],0%32 }}
+< [eva:alarm] tests/value/non_natural.i:39: Warning: 
+<   out of bounds write. assert \valid(tmp);
+<                        (tmp from to++)
+---
+>   Frama_C_show_each: {{ &p2 + [0..399968],0%32 }}
+200,202d141
+< [eva:alarm] tests/value/non_natural.i:40: Warning: 
+<   out of bounds write. assert \valid(tmp_1);
+<                        (tmp_1 from to++)
+205,210d143
+< [eva:alarm] tests/value/non_natural.i:41: Warning: 
+<   out of bounds write. assert \valid(tmp_3);
+<                        (tmp_3 from to++)
+< [eva:alarm] tests/value/non_natural.i:41: Warning: 
+<   out of bounds read. assert \valid_read(tmp_4);
+<                       (tmp_4 from from++)
+213,218d145
+< [eva:alarm] tests/value/non_natural.i:42: Warning: 
+<   out of bounds write. assert \valid(tmp_5);
+<                        (tmp_5 from to++)
+< [eva:alarm] tests/value/non_natural.i:42: Warning: 
+<   out of bounds read. assert \valid_read(tmp_6);
+<                       (tmp_6 from from++)
+221,226d147
+< [eva:alarm] tests/value/non_natural.i:43: Warning: 
+<   out of bounds write. assert \valid(tmp_7);
+<                        (tmp_7 from to++)
+< [eva:alarm] tests/value/non_natural.i:43: Warning: 
+<   out of bounds read. assert \valid_read(tmp_8);
+<                       (tmp_8 from from++)
+229,234d149
+< [eva:alarm] tests/value/non_natural.i:44: Warning: 
+<   out of bounds write. assert \valid(tmp_9);
+<                        (tmp_9 from to++)
+< [eva:alarm] tests/value/non_natural.i:44: Warning: 
+<   out of bounds read. assert \valid_read(tmp_10);
+<                       (tmp_10 from from++)
+237,242d151
+< [eva:alarm] tests/value/non_natural.i:45: Warning: 
+<   out of bounds write. assert \valid(tmp_11);
+<                        (tmp_11 from to++)
+< [eva:alarm] tests/value/non_natural.i:45: Warning: 
+<   out of bounds read. assert \valid_read(tmp_12);
+<                       (tmp_12 from from++)
+245,259d153
+< [eva:alarm] tests/value/non_natural.i:46: Warning: 
+<   out of bounds write. assert \valid(tmp_13);
+<                        (tmp_13 from to++)
+< [eva:alarm] tests/value/non_natural.i:46: Warning: 
+<   out of bounds read. assert \valid_read(tmp_14);
+<                       (tmp_14 from from++)
+< [eva] tests/value/non_natural.i:38: 
+<   Frama_C_show_each: {{ &p2 + [0..400032],0%32 }}
+< [eva:alarm] tests/value/non_natural.i:39: Warning: 
+<   out of bounds read. assert \valid_read(tmp_0);
+<                       (tmp_0 from from++)
+< [eva:alarm] tests/value/non_natural.i:40: Warning: 
+<   out of bounds read. assert \valid_read(tmp_2);
+<                       (tmp_2 from from++)
+< [eva] tests/value/non_natural.i:38: Frama_C_show_each: {{ &p2 + [0..--],0%32 }}
+268,269c162,163
+<   to ∈ {{ &p2 + [32..--],0%32 }}
+<   from ∈ {{ &p1 + [32..--],0%32 }}
+---
+>   to ∈ {{ &p2 + [32..400000],0%32 }}
+>   from ∈ {{ &p1 + [32..400000],0%32 }}
+273,274c167,168
+<   to ∈ {{ &p2 + [32..--],0%32 }}
+<   from ∈ {{ &p1 + [32..--],0%32 }}
+---
+>   to ∈ {{ &p2 + [32..400000],0%32 }}
+>   from ∈ {{ &p1 + [32..400000],0%32 }}
+330,332c224,232
+<   p2[0] FROM to; from; count; p1[0..100000] (and SELF)
+<     [1..99992] FROM to; from; count; p1[0..100001] (and SELF)
+<     [99993] FROM to; from; count; p1[1..100001] (and SELF)
+---
+>   p2[0] FROM to; from; count; p1[0..99992] (and SELF)
+>     [1] FROM to; from; count; p1[0..99993] (and SELF)
+>     [2] FROM to; from; count; p1[0..99994] (and SELF)
+>     [3] FROM to; from; count; p1[0..99995] (and SELF)
+>     [4] FROM to; from; count; p1[0..99996] (and SELF)
+>     [5] FROM to; from; count; p1[0..99997] (and SELF)
+>     [6] FROM to; from; count; p1[0..99998] (and SELF)
+>     [7..99992] FROM to; from; count; p1[0..99999] (and SELF)
+>     [99993] FROM to; from; count; p1[1..99999] (and SELF)
+340,342c240,248
+<   p2[0] FROM to; from; count; p1[0..100000] (and SELF)
+<     [1..99992] FROM to; from; count; p1[0..100001] (and SELF)
+<     [99993] FROM to; from; count; p1[1..100001] (and SELF)
+---
+>   p2[0] FROM to; from; count; p1[0..99992] (and SELF)
+>     [1] FROM to; from; count; p1[0..99993] (and SELF)
+>     [2] FROM to; from; count; p1[0..99994] (and SELF)
+>     [3] FROM to; from; count; p1[0..99995] (and SELF)
+>     [4] FROM to; from; count; p1[0..99996] (and SELF)
+>     [5] FROM to; from; count; p1[0..99997] (and SELF)
+>     [6] FROM to; from; count; p1[0..99998] (and SELF)
+>     [7..99992] FROM to; from; count; p1[0..99999] (and SELF)
+>     [99993] FROM to; from; count; p1[1..99999] (and SELF)
+360c266
+<     p1[0..100001]
+---
+>     p1[0..99999]
+365c271
+<     p1[0..100001]
+---
+>     p1[0..99999]
diff --git a/tests/value/oracle_gauges/noreturn.res.oracle b/tests/value/oracle_gauges/noreturn.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..2f5c57570724a6b5ec84cc978235676a03e61149
--- /dev/null
+++ b/tests/value/oracle_gauges/noreturn.res.oracle
@@ -0,0 +1,8 @@
+8a9
+> [eva] tests/value/noreturn.i:20: starting to merge loop iterations
+16a18
+> [eva] tests/value/noreturn.i:16: starting to merge loop iterations
+32a35
+> [eva] tests/value/noreturn.i:7: starting to merge loop iterations
+36a40
+> [eva] tests/value/noreturn.i:13: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/octagons.res.oracle b/tests/value/oracle_gauges/octagons.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..49fefa1dc489947ad79cb8b973f9804fbb184331
--- /dev/null
+++ b/tests/value/oracle_gauges/octagons.res.oracle
@@ -0,0 +1,27 @@
+121,128d120
+< [eva:alarm] tests/value/octagons.c:107: Warning: 
+<   signed overflow. assert a + 2 ≤ 2147483647;
+< [eva:alarm] tests/value/octagons.c:108: Warning: 
+<   signed overflow. assert b + 2 ≤ 2147483647;
+< [eva:alarm] tests/value/octagons.c:110: Warning: 
+<   signed overflow. assert a + k ≤ 2147483647;
+< [eva:alarm] tests/value/octagons.c:113: Warning: 
+<   signed overflow. assert -2147483648 ≤ c - a;
+130c122
+< [eva] tests/value/octagons.c:116: Frama_C_show_each_imprecise: [-2147483648..1]
+---
+> [eva] tests/value/octagons.c:116: Frama_C_show_each_imprecise: [-2468..1]
+284,287c276,279
+<   a ∈ [-1024..2147483647]
+<   b ∈ [-1023..2147483647]
+<   c ∈ [-1023..2147483647]
+<   d ∈ [-1032..2147483647]
+---
+>   a ∈ [-182..1866]
+>   b ∈ [-181..1867]
+>   c ∈ [-602..1446]
+>   d ∈ [-190..1874]
+289c281
+<   d2 ∈ [-2147483648..1]
+---
+>   d2 ∈ [-2468..1]
diff --git a/tests/value/oracle_gauges/reduce_formals.res.oracle b/tests/value/oracle_gauges/reduce_formals.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..5d51c9b163e4132a3b20e36f9f4086a1d28e95bc
--- /dev/null
+++ b/tests/value/oracle_gauges/reduce_formals.res.oracle
@@ -0,0 +1,2 @@
+10a11
+> [eva] tests/value/reduce_formals.i:5: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/redundant_alarms.res.oracle b/tests/value/oracle_gauges/redundant_alarms.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..6fb7421de9d4f5ed067d020701cefc81b86b6bb6
--- /dev/null
+++ b/tests/value/oracle_gauges/redundant_alarms.res.oracle
@@ -0,0 +1,2 @@
+47a48
+> [eva] tests/value/redundant_alarms.c:39: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/reevaluate_alarms.res.oracle b/tests/value/oracle_gauges/reevaluate_alarms.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..5ba638098acab6f3f08565ae63fb433b1e37acd8
--- /dev/null
+++ b/tests/value/oracle_gauges/reevaluate_alarms.res.oracle
@@ -0,0 +1,29 @@
+14,16d13
+< [eva:alarm] tests/value/reevaluate_alarms.i:14: Warning: 
+<   out of bounds write. assert \valid(tmp);
+<                        (tmp from p++)
+59c56
+<   p ∈ {{ &T + [0..--],0%4 }}
+---
+>   p ∈ {{ &T{[0], [1], [2], [3], [4], [5]} }}
+124,125d120
+< [    -    ] Assertion 'Eva,mem_access' (file tests/value/reevaluate_alarms.i, line 14)
+<             tried with Eva.
+144,145c139,140
+<      4 To be validated
+<      4 Total
+---
+>      3 To be validated
+>      3 Total
+182,183d176
+< [eva] tests/value/reevaluate_alarms.i:14: 
+<   assertion 'Eva,mem_access' got final status valid.
+274,275d266
+< [  Valid  ] Assertion 'Eva,mem_access' (file tests/value/reevaluate_alarms.i, line 14)
+<             by Eva (v2).
+294,295c285,286
+<      4 Completely validated
+<      4 Total
+---
+>      3 Completely validated
+>      3 Total
diff --git a/tests/value/oracle_gauges/semaphore.res.oracle b/tests/value/oracle_gauges/semaphore.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..3e2b1b2c86f6b84c4ccd64937b28643eadd26672
--- /dev/null
+++ b/tests/value/oracle_gauges/semaphore.res.oracle
@@ -0,0 +1,10 @@
+24a25,33
+> [eva] computing for function V <- g.
+>   Called from tests/value/semaphore.i:31.
+> [eva] Done for function V
+> [eva] computing for function V <- g.
+>   Called from tests/value/semaphore.i:31.
+> [eva] Done for function V
+> [eva] computing for function V <- g.
+>   Called from tests/value/semaphore.i:31.
+> [eva] Done for function V
diff --git a/tests/value/oracle_gauges/symbolic_locs.res.oracle b/tests/value/oracle_gauges/symbolic_locs.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..7f734f6794dabb1fc73daf16cccb1bcb7381e1dc
--- /dev/null
+++ b/tests/value/oracle_gauges/symbolic_locs.res.oracle
@@ -0,0 +1,2 @@
+135a136
+> [eva] tests/value/symbolic_locs.i:93: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/undefined_sequence.0.res.oracle b/tests/value/oracle_gauges/undefined_sequence.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..e8f776c30713951ab4bd75cb835f4ed1b39e20c5
--- /dev/null
+++ b/tests/value/oracle_gauges/undefined_sequence.0.res.oracle
@@ -0,0 +1,4 @@
+97a98
+> [eva] tests/value/undefined_sequence.i:43: starting to merge loop iterations
+101a103
+> [eva] tests/value/undefined_sequence.i:49: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/unroll.res.oracle b/tests/value/oracle_gauges/unroll.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..81a921960fb00c34b0d1f0636d2361c61db51ca0
--- /dev/null
+++ b/tests/value/oracle_gauges/unroll.res.oracle
@@ -0,0 +1,9 @@
+13,14d12
+< [eva:alarm] tests/value/unroll.i:34: Warning: 
+<   signed overflow. assert -2147483648 ≤ j - 1;
+16a15
+> [eva] tests/value/unroll.i:39: starting to merge loop iterations
+26c25
+<   j ∈ [-2147483648..-123]
+---
+>   j ∈ {-238}
diff --git a/tests/value/oracle_gauges/unroll_simple.res.oracle b/tests/value/oracle_gauges/unroll_simple.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..d9b0a864fe0371b8a883a85446d84ef7b97c7ad4
--- /dev/null
+++ b/tests/value/oracle_gauges/unroll_simple.res.oracle
@@ -0,0 +1,9 @@
+8,9d7
+< [eva:alarm] tests/value/unroll_simple.i:11: Warning: 
+<   signed overflow. assert -2147483648 ≤ j - 1;
+11a10
+> [eva] tests/value/unroll_simple.i:16: starting to merge loop iterations
+21c20
+<   j ∈ [-2147483648..-126]
+---
+>   j ∈ {-250}
diff --git a/tests/value/oracle_gauges/va_list2.0.res.oracle b/tests/value/oracle_gauges/va_list2.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..8149f19c0d3eb1c14afbece52086636c015c3f3d
--- /dev/null
+++ b/tests/value/oracle_gauges/va_list2.0.res.oracle
@@ -0,0 +1,13 @@
+50a51,62
+> [eva] tests/value/va_list2.c:16: 
+>   Frama_C_show_each_i:
+>   {{ garbled mix of &{S_0_S___va_params; S_1_S___va_params} (origin: Well) }}
+> [eva] tests/value/va_list2.c:21: 
+>   Frama_C_show_each_f:
+>   {{ garbled mix of &{S_0_S___va_params; S_1_S___va_params} (origin: Well) }}
+> [eva] tests/value/va_list2.c:16: 
+>   Frama_C_show_each_i:
+>   {{ garbled mix of &{S_0_S___va_params; S_1_S___va_params} (origin: Well) }}
+> [eva] tests/value/va_list2.c:21: 
+>   Frama_C_show_each_f:
+>   {{ garbled mix of &{S_0_S___va_params; S_1_S___va_params} (origin: Well) }}
diff --git a/tests/value/oracle_gauges/va_list2.1.res.oracle b/tests/value/oracle_gauges/va_list2.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..6af1df391437f951baaad48f4a545991f74459f3
--- /dev/null
+++ b/tests/value/oracle_gauges/va_list2.1.res.oracle
@@ -0,0 +1,13 @@
+40a41,52
+> [eva] computing for function __builtin_va_arg <- main.
+>   Called from tests/value/va_list2.c:15.
+> [eva] Done for function __builtin_va_arg
+> [eva] computing for function __builtin_va_arg <- main.
+>   Called from tests/value/va_list2.c:20.
+> [eva] Done for function __builtin_va_arg
+> [eva] computing for function __builtin_va_arg <- main.
+>   Called from tests/value/va_list2.c:15.
+> [eva] Done for function __builtin_va_arg
+> [eva] computing for function __builtin_va_arg <- main.
+>   Called from tests/value/va_list2.c:20.
+> [eva] Done for function __builtin_va_arg
diff --git a/tests/value/oracle_gauges/widen_on_non_monotonic.res.oracle b/tests/value/oracle_gauges/widen_on_non_monotonic.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..8d1b8fdc0935530652c731a1e86b7bc40e4884c3
--- /dev/null
+++ b/tests/value/oracle_gauges/widen_on_non_monotonic.res.oracle
@@ -0,0 +1,3 @@
+25a26,27
+> [eva] tests/value/widen_on_non_monotonic.i:21: starting to merge loop iterations
+> [eva] tests/value/widen_on_non_monotonic.i:18: starting to merge loop iterations
diff --git a/tests/value/oracle_gauges/widen_overflow.res.oracle b/tests/value/oracle_gauges/widen_overflow.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..3007b00b6bebdd84917aba46654bb185b25a99af
--- /dev/null
+++ b/tests/value/oracle_gauges/widen_overflow.res.oracle
@@ -0,0 +1,4 @@
+31a32,34
+> [eva] computing for function u <- main.
+>   Called from tests/value/widen_overflow.i:9.
+> [eva] Done for function u
diff --git a/tests/value/oracle_octagons/alias.1.res.oracle b/tests/value/oracle_octagons/alias.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..aaa1d8228100a2a23d9e68f2d441b2743e0accba
--- /dev/null
+++ b/tests/value/oracle_octagons/alias.1.res.oracle
@@ -0,0 +1,4 @@
+85c85
+<   z ∈ {0; 1; 2}
+---
+>   z ∈ {0; 2}
diff --git a/tests/value/oracle_octagons/alias.2.res.oracle b/tests/value/oracle_octagons/alias.2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..686417eb7ea8aabf15bf58576ecd3afcd58780e1
--- /dev/null
+++ b/tests/value/oracle_octagons/alias.2.res.oracle
@@ -0,0 +1,4 @@
+76c76
+<   z ∈ {-5; -4; -3; -2; -1; 0; 1; 1000}
+---
+>   z ∈ {-2; -1; 0; 1000}
diff --git a/tests/value/oracle_octagons/alias.3.res.oracle b/tests/value/oracle_octagons/alias.3.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..e14f1380123bfd42bbd395f88c728c05558d44b3
--- /dev/null
+++ b/tests/value/oracle_octagons/alias.3.res.oracle
@@ -0,0 +1,4 @@
+67c67
+<   z ∈ {0; 1; 2}
+---
+>   z ∈ {0; 2}
diff --git a/tests/value/oracle_octagons/alias.5.res.oracle b/tests/value/oracle_octagons/alias.5.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..3136d5f1ef82f0f21af779e1e32866f2f1cfd502
--- /dev/null
+++ b/tests/value/oracle_octagons/alias.5.res.oracle
@@ -0,0 +1,2 @@
+59a60
+> [eva] tests/value/alias.i:260: starting to merge loop iterations
diff --git a/tests/value/oracle_octagons/alias.6.res.oracle b/tests/value/oracle_octagons/alias.6.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..e2ea31a7a88a8e20d6b409da11c721d21ec6c9e0
--- /dev/null
+++ b/tests/value/oracle_octagons/alias.6.res.oracle
@@ -0,0 +1,16 @@
+82c82
+<   t ∈ {4; 5; 6}
+---
+>   t ∈ {5}
+87c87
+<   y ∈ {0; 1}
+---
+>   y ∈ {1}
+94,96c94,96
+<   tz1 ∈ {0; 1}
+<   tz2 ∈ {0; 1}
+<   tz3 ∈ {0; 1}
+---
+>   tz1 ∈ {1}
+>   tz2 ∈ {1}
+>   tz3 ∈ {1}
diff --git a/tests/value/oracle_octagons/audit.res.oracle b/tests/value/oracle_octagons/audit.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9ff41db248872519df6d5b9ea95483fc420a1ff1
--- /dev/null
+++ b/tests/value/oracle_octagons/audit.res.oracle
@@ -0,0 +1,11 @@
+1,8d0
+< [kernel:audit] Warning: 
+<   different hashes for tests/value/audit.c: got 08f73691217888d926a0ee15cbe18159, expected 01010101010101010101010101010101
+< [kernel:audit] Warning: 
+<   different hashes for tests/value/audit_included_but_not_listed.h: got c2cc488143a476f69cf2ed04c3439e6e, expected <none> (not in list)
+< [kernel:audit] Warning: 
+<   missing files:
+<   tests/value/non_existing_file.h
+< [kernel] Audit: sources list written to: tests/value/result/audit-out.json
+34d25
+< [kernel] Wrote: tests/value/result/audit-out.json
diff --git a/tests/value/oracle_octagons/auto_loop_unroll.0.res.oracle b/tests/value/oracle_octagons/auto_loop_unroll.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..88c7352194e032c8c77c2feede550015b0d8113a
--- /dev/null
+++ b/tests/value/oracle_octagons/auto_loop_unroll.0.res.oracle
@@ -0,0 +1,27 @@
+220,221d219
+< [eva:alarm] tests/value/auto_loop_unroll.c:222: Warning: 
+<   signed overflow. assert -2147483648 ≤ i_0 - 1;
+227,228d224
+< [eva:alarm] tests/value/auto_loop_unroll.c:227: Warning: 
+<   signed overflow. assert -2147483648 ≤ i_1 - 1;
+258,259d253
+< [eva:alarm] tests/value/auto_loop_unroll.c:267: Warning: 
+<   signed overflow. assert -2147483648 ≤ i - 1;
+314,315d307
+< [eva:alarm] tests/value/auto_loop_unroll.c:348: Warning: 
+<   signed overflow. assert -2147483648 ≤ i - 1;
+330,331d321
+< [eva:alarm] tests/value/auto_loop_unroll.c:380: Warning: 
+<   signed overflow. assert -2147483648 ≤ i - 1;
+384c374
+<   i ∈ [-2147483648..50]
+---
+>   i ∈ [-1..50]
+389,391c379,381
+<   i ∈ [0..2147483647]
+<   j ∈ [23..2147483647]
+<   k ∈ [22..2147483647]
+---
+>   i ∈ [23..2147483647]
+>   j ∈ [23..2147483646]
+>   k ∈ [22..2147483646]
diff --git a/tests/value/oracle_octagons/auto_loop_unroll.1.res.oracle b/tests/value/oracle_octagons/auto_loop_unroll.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..a4f29dd3292a4588e4f0cd036a44807e4997ff3b
--- /dev/null
+++ b/tests/value/oracle_octagons/auto_loop_unroll.1.res.oracle
@@ -0,0 +1,6 @@
+472,473c472,473
+<   i ∈ [0..2147483647]
+<   j ∈ [23..2147483647]
+---
+>   i ∈ [23..2147483647]
+>   j ∈ [23..2147483646]
diff --git a/tests/value/oracle_octagons/bitfield.res.oracle b/tests/value/oracle_octagons/bitfield.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..199dae9e57a2dd302735cfae290ce5e5f5788679
--- /dev/null
+++ b/tests/value/oracle_octagons/bitfield.res.oracle
@@ -0,0 +1,4 @@
+138a139,141
+> [eva] tests/value/bitfield.i:71: 
+>   Frama_C_show_each:
+>   {{ garbled mix of &{b} (origin: Misaligned {tests/value/bitfield.i:70}) }}
diff --git a/tests/value/oracle_octagons/builtins_split.res.oracle b/tests/value/oracle_octagons/builtins_split.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..db0e87eff7022241d70c67b791c2dcb2d4d4aaff
--- /dev/null
+++ b/tests/value/oracle_octagons/builtins_split.res.oracle
@@ -0,0 +1,30 @@
+70a71,84
+> [eva] tests/value/builtins_split.c:104: 
+>   Call to builtin Frama_C_builtin_split_all
+> [eva] tests/value/builtins_split.c:104: 
+>   Call to builtin Frama_C_builtin_split_all
+> [eva] tests/value/builtins_split.c:104: 
+>   Call to builtin Frama_C_builtin_split_all
+> [eva] tests/value/builtins_split.c:104: 
+>   Call to builtin Frama_C_builtin_split_all
+> [eva] tests/value/builtins_split.c:104: 
+>   Call to builtin Frama_C_builtin_split_all
+> [eva] tests/value/builtins_split.c:104: 
+>   Call to builtin Frama_C_builtin_split_all
+> [eva] tests/value/builtins_split.c:104: 
+>   Call to builtin Frama_C_builtin_split_all
+81a96,109
+> [eva] tests/value/builtins_split.c:112: 
+>   Call to builtin Frama_C_builtin_split_all
+> [eva] tests/value/builtins_split.c:112: 
+>   Call to builtin Frama_C_builtin_split_all
+> [eva] tests/value/builtins_split.c:112: 
+>   Call to builtin Frama_C_builtin_split_all
+> [eva] tests/value/builtins_split.c:112: 
+>   Call to builtin Frama_C_builtin_split_all
+> [eva] tests/value/builtins_split.c:112: 
+>   Call to builtin Frama_C_builtin_split_all
+> [eva] tests/value/builtins_split.c:112: 
+>   Call to builtin Frama_C_builtin_split_all
+> [eva] tests/value/builtins_split.c:112: 
+>   Call to builtin Frama_C_builtin_split_all
diff --git a/tests/value/oracle_octagons/call_simple.res.oracle b/tests/value/oracle_octagons/call_simple.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..74d12f1f99b9b00efad1a5bf4a6df343d225573b
--- /dev/null
+++ b/tests/value/oracle_octagons/call_simple.res.oracle
@@ -0,0 +1,4 @@
+28c28
+<   c ∈ [--..--]
+---
+>   c ∈ [-2147483648..2147483646]
diff --git a/tests/value/oracle_octagons/descending.res.oracle b/tests/value/oracle_octagons/descending.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..4f7f74dacd94a03077b450e88028ef39d7764628
--- /dev/null
+++ b/tests/value/oracle_octagons/descending.res.oracle
@@ -0,0 +1,4 @@
+42c42
+<   i ∈ {31; 32}
+---
+>   i ∈ {31}
diff --git a/tests/value/oracle_octagons/downcast.1.res.oracle b/tests/value/oracle_octagons/downcast.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..f19cd2082f61adbcc28e3ffa691016bde65af0b4
--- /dev/null
+++ b/tests/value/oracle_octagons/downcast.1.res.oracle
@@ -0,0 +1,8 @@
+61c61
+<   [100000..2147483647], [100145..2147483647], [100145..2147483647]
+---
+>   [100000..2147483502], [100145..2147483647], [100145..2147483647]
+166c166
+<   x_0 ∈ [100000..2147483647]
+---
+>   x_0 ∈ [100000..2147483502]
diff --git a/tests/value/oracle_octagons/equality.res.oracle b/tests/value/oracle_octagons/equality.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..239053b89508f58a2f4e7da51aa02dbd745df94a
--- /dev/null
+++ b/tests/value/oracle_octagons/equality.res.oracle
@@ -0,0 +1,6 @@
+29,30c29,30
+<   y ∈ [0..42] or UNINITIALIZED
+<   w ∈ [0..42] or UNINITIALIZED
+---
+>   y ∈ [0..42]
+>   w ∈ [0..42]
diff --git a/tests/value/oracle_octagons/find_ivaltop.res.oracle b/tests/value/oracle_octagons/find_ivaltop.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..78a0a85a73a96bc5f8330e16c4fd3409e09df7d0
--- /dev/null
+++ b/tests/value/oracle_octagons/find_ivaltop.res.oracle
@@ -0,0 +1,14 @@
+32,33c32,33
+<   j ∈ {0; 1; 2; 3; 4; 5; 6; 7}
+<   X ∈ {1; 2; 3; 4; 5; 6; 7; 8}
+---
+>   j ∈ {7}
+>   X ∈ {8}
+39c39
+<   \result FROM t[0..7]
+---
+>   \result FROM t[7]
+44c44
+<     t[0..7]
+---
+>     t[7]
diff --git a/tests/value/oracle_octagons/for_loops.3.res.oracle b/tests/value/oracle_octagons/for_loops.3.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..4c040c1ab0562af5c0996d2e7789a658fca6e35d
--- /dev/null
+++ b/tests/value/oracle_octagons/for_loops.3.res.oracle
@@ -0,0 +1,4 @@
+20c20
+<   v ∈ [0..2147483647]
+---
+>   v ∈ [5..2147483647]
diff --git a/tests/value/oracle_octagons/gauges.res.oracle b/tests/value/oracle_octagons/gauges.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..2b5b391aed850415332aaec12ea79eb0aa32fc54
--- /dev/null
+++ b/tests/value/oracle_octagons/gauges.res.oracle
@@ -0,0 +1,24 @@
+209,210d208
+< [eva:alarm] tests/value/gauges.c:156: Warning: 
+<   signed overflow. assert -2147483648 ≤ toCopy - 1;
+276,277d273
+< [eva:alarm] tests/value/gauges.c:201: Warning: 
+<   signed overflow. assert -2147483648 ≤ numNonZero - 1;
+300,304d295
+< [eva] tests/value/gauges.c:218: Frama_C_show_each:
+< [eva] tests/value/gauges.c:218: Frama_C_show_each:
+< [eva] tests/value/gauges.c:218: Frama_C_show_each:
+< [eva:alarm] tests/value/gauges.c:220: Warning: 
+<   signed overflow. assert -2147483648 ≤ n - 1;
+791c782
+<   numNonZero ∈ [-2147483648..8]
+---
+>   numNonZero ∈ {-1}
+802c793
+<   n ∈ [-2147483648..99]
+---
+>   n ∈ {-1}
+863c854
+<   toCopy ∈ [-2147483648..99]
+---
+>   toCopy ∈ {-1}
diff --git a/tests/value/oracle_octagons/loop.res.oracle b/tests/value/oracle_octagons/loop.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..1e6eecbe6223b34acd096cb6316cd54e301c6132
--- /dev/null
+++ b/tests/value/oracle_octagons/loop.res.oracle
@@ -0,0 +1,4 @@
+26c26
+<   r ∈ [0..2147483646],0%2
+---
+>   r ∈ [46..2147483646],0%2
diff --git a/tests/value/oracle_octagons/loop_wvar.1.res.oracle b/tests/value/oracle_octagons/loop_wvar.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9ce1dbf4e8c6388dca6198ef414c01f96d140460
--- /dev/null
+++ b/tests/value/oracle_octagons/loop_wvar.1.res.oracle
@@ -0,0 +1,7 @@
+12,13d11
+< [eva:alarm] tests/value/loop_wvar.i:57: Warning: 
+<   signed overflow. assert next + 1 ≤ 2147483647;
+41c39
+<   next ∈ [0..2147483647]
+---
+>   next ∈ [0..25]
diff --git a/tests/value/oracle_octagons/modulo.res.oracle b/tests/value/oracle_octagons/modulo.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..dbc52d1404fc8aa18bd2b63669af0b86eddd9870
--- /dev/null
+++ b/tests/value/oracle_octagons/modulo.res.oracle
@@ -0,0 +1,37 @@
+40a41,56
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [-9..-1], [-8..0]
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [-10..-1], [1..9], [-8..0]
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [-9..-1], [0..8]
+> [eva] tests/value/modulo.i:41: Frama_C_show_each_1: [1..10], [1..9], [0..8]
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
+> [eva] tests/value/modulo.i:41: 
+>   Frama_C_show_each_1:
+>   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
+50a67,82
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [1..9], [-8..0]
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [-10..-1], [-9..-1], [-8..0]
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [1..9], [0..8]
+> [eva] tests/value/modulo.i:53: Frama_C_show_each_2: [1..10], [-9..-1], [0..8]
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [-9..-1], {1; 2; 3; 4; 5; 6; 7; 8}, {-7; -6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [1..9], {1; 2; 3; 4; 5; 6; 7; 8}, {0; 1; 2; 3; 4; 5; 6; 7}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [-9..-1], {-8; -7; -6; -5; -4; -3; -2; -1}, {-7; -6; -5; -4; -3; -2; -1; 0}
+> [eva] tests/value/modulo.i:53: 
+>   Frama_C_show_each_2:
+>   [1..9], {-8; -7; -6; -5; -4; -3; -2; -1}, {0; 1; 2; 3; 4; 5; 6; 7}
+60a93,94
+> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-10..10], [-9..9], [-8..8]
+> [eva] tests/value/modulo.i:64: Frama_C_show_each_3: [-9..9], [-8..8], [-7..7]
diff --git a/tests/value/oracle_octagons/non_natural.res.oracle b/tests/value/oracle_octagons/non_natural.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..75cd2e6c320fd6d76170e90452d24aa86ddc8251
--- /dev/null
+++ b/tests/value/oracle_octagons/non_natural.res.oracle
@@ -0,0 +1,45 @@
+58a59,60
+> [kernel] tests/value/non_natural.i:30: 
+>   more than 200(12500) elements to enumerate. Approximating.
+65a68,69
+> [kernel] tests/value/non_natural.i:23: 
+>   more than 200(12500) elements to enumerate. Approximating.
+70a75,76
+> [kernel] tests/value/non_natural.i:24: 
+>   more than 200(12500) elements to enumerate. Approximating.
+78a85,86
+> [kernel] tests/value/non_natural.i:25: 
+>   more than 200(12500) elements to enumerate. Approximating.
+86a95,96
+> [kernel] tests/value/non_natural.i:26: 
+>   more than 200(12500) elements to enumerate. Approximating.
+94a105,106
+> [kernel] tests/value/non_natural.i:27: 
+>   more than 200(12500) elements to enumerate. Approximating.
+102a115,116
+> [kernel] tests/value/non_natural.i:28: 
+>   more than 200(12500) elements to enumerate. Approximating.
+110a125,126
+> [kernel] tests/value/non_natural.i:29: 
+>   more than 200(12500) elements to enumerate. Approximating.
+129,130d144
+< [kernel] tests/value/non_natural.i:23: 
+<   more than 200(12500) elements to enumerate. Approximating.
+133,146d146
+< [kernel] tests/value/non_natural.i:24: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:25: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:26: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:27: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:28: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:29: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:30: 
+<   more than 200(12500) elements to enumerate. Approximating.
+199a200,201
+> [kernel] tests/value/non_natural.i:39: 
+>   more than 200(12500) elements to enumerate. Approximating.
diff --git a/tests/value/oracle_octagons/nonlin.res.oracle b/tests/value/oracle_octagons/nonlin.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..489912e113574e639c2185e77f87f628d03cf5d7
--- /dev/null
+++ b/tests/value/oracle_octagons/nonlin.res.oracle
@@ -0,0 +1,17 @@
+113a114,115
+> [eva:nonlin] tests/value/nonlin.c:71: non-linear 'x * x', lv 'x'
+> [eva:nonlin] tests/value/nonlin.c:71: subdividing on x
+116a119,121
+> [eva:nonlin] tests/value/nonlin.c:72: subdividing on x
+> [eva:nonlin] tests/value/nonlin.c:72: non-linear 'y * y', lv 'y'
+> [eva:nonlin] tests/value/nonlin.c:72: subdividing on y
+119a125,126
+> [eva:nonlin] tests/value/nonlin.c:74: non-linear 'z * x + x * y', lv 'x'
+> [eva:nonlin] tests/value/nonlin.c:74: subdividing on x
+157a165,166
+> [eva:nonlin] tests/value/nonlin.c:118: non-linear 'x * x', lv 'x'
+> [eva:nonlin] tests/value/nonlin.c:118: subdividing on x
+160a170
+> [eva:nonlin] tests/value/nonlin.c:119: subdividing on x
+161a172
+> [eva:nonlin] tests/value/nonlin.c:121: subdividing on x
diff --git a/tests/value/oracle_octagons/plevel.res.oracle b/tests/value/oracle_octagons/plevel.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..d19a038f2cb62353c97e3e6ede7f83a949ef654e
--- /dev/null
+++ b/tests/value/oracle_octagons/plevel.res.oracle
@@ -0,0 +1,4 @@
+12d11
+< [eva] Recording results for main
+14a14
+> [eva] Recording results for main
diff --git a/tests/value/oracle_octagons/ptr_relation.1.res.oracle b/tests/value/oracle_octagons/ptr_relation.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..2b931b79b7eb642356a750a916774a05631d63bb
--- /dev/null
+++ b/tests/value/oracle_octagons/ptr_relation.1.res.oracle
@@ -0,0 +1,4 @@
+24c24
+<   j ∈ {-1; 0; 1}
+---
+>   j ∈ {0}
diff --git a/tests/value/oracle_octagons/relation_reduction.res.oracle b/tests/value/oracle_octagons/relation_reduction.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..652ddf13af23bbb7e14fe2d38db7906e17bb7743
--- /dev/null
+++ b/tests/value/oracle_octagons/relation_reduction.res.oracle
@@ -0,0 +1,23 @@
+24,27d23
+< [eva:alarm] tests/value/relation_reduction.i:20: Warning: 
+<   accessing out of bounds index. assert 0 ≤ y;
+< [eva:alarm] tests/value/relation_reduction.i:20: Warning: 
+<   accessing out of bounds index. assert y < 9;
+34,37c30,33
+<   R1 ∈ [-2147483648..2147483637]
+<   R2 ∈ [-2147483638..2147483647]
+<   R3 ∈ [--..--]
+<   R4 ∈ {0; 1; 2; 3; 4; 5}
+---
+>   R1 ∈ {0; 2}
+>   R2 ∈ {0; 12}
+>   R3 ∈ {0; 7}
+>   R4 ∈ {0; 2}
+48c44
+<   R4 FROM tab[0..8]; x (and SELF)
+---
+>   R4 FROM tab[0..5]; x (and SELF)
+53c49
+<     y; t; tab[0..8]
+---
+>     y; t; tab[0..5]
diff --git a/tests/value/oracle_octagons/relation_shift.res.oracle b/tests/value/oracle_octagons/relation_shift.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..435aef61e8e5077fa38cdac3ee0a5c44a8ab47a5
--- /dev/null
+++ b/tests/value/oracle_octagons/relation_shift.res.oracle
@@ -0,0 +1,37 @@
+18,25d17
+< [eva:alarm] tests/value/relation_shift.i:15: Warning: 
+<   signed overflow. assert -2147483648 ≤ x - y;
+< [eva:alarm] tests/value/relation_shift.i:15: Warning: 
+<   signed overflow. assert x - y ≤ 2147483647;
+< [eva:alarm] tests/value/relation_shift.i:16: Warning: 
+<   signed overflow. assert -2147483648 ≤ z - y;
+< [eva:alarm] tests/value/relation_shift.i:16: Warning: 
+<   signed overflow. assert z - y ≤ 2147483647;
+31,32c23,24
+<   r1 ∈ [--..--]
+<   r2 ∈ [--..--]
+---
+>   r1 ∈ {2}
+>   r2 ∈ {7}
+35,37c27,29
+<   x ∈ [-2147483647..2147483647]
+<   y ∈ [-2147483648..2147483646]
+<   z ∈ [-2147483642..2147483647]
+---
+>   x ∈ [-2147483646..2147483642]
+>   y ∈ [-2147483648..2147483640]
+>   z ∈ [-2147483641..2147483647]
+49,50c41,42
+<   r1 ∈ [--..--]
+<   r2 ∈ [--..--]
+---
+>   r1 ∈ {2}
+>   r2 ∈ {7}
+53,55c45,47
+<   x ∈ [-2147483647..2147483647]
+<   y ∈ [-2147483648..2147483646]
+<   z ∈ [-2147483642..2147483647]
+---
+>   x ∈ [-2147483646..2147483642]
+>   y ∈ [-2147483648..2147483640]
+>   z ∈ [-2147483641..2147483647]
diff --git a/tests/value/oracle_octagons/relations.res.oracle b/tests/value/oracle_octagons/relations.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..74aca336ba48970545ced8311cee9097bd21f1ef
--- /dev/null
+++ b/tests/value/oracle_octagons/relations.res.oracle
@@ -0,0 +1,7 @@
+80,81c80,82
+<   e ∈ [--..--]
+<   f ∈ [--..--]
+---
+>   e ∈ {1}
+>   f[bits 0 to 7] ∈ {1; 4}
+>    [bits 8 to 31] ∈ [--..--]
diff --git a/tests/value/oracle_octagons/relations2.res.oracle b/tests/value/oracle_octagons/relations2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..336fb1286049a2c995114562728531fdeaa60258
--- /dev/null
+++ b/tests/value/oracle_octagons/relations2.res.oracle
@@ -0,0 +1,29 @@
+25c25
+<   len ∈ [--..--]
+---
+>   len ∈ [0..1023]
+36,37c36
+< [eva] tests/value/relations2.i:17: 
+<   Frama_C_show_each_end: [0..4294967295], [0..64]
+---
+> [eva] tests/value/relations2.i:17: Frama_C_show_each_end: [0..1023], [0..64]
+59c58
+<   n ∈ [0..512]
+---
+>   n ∈ [1..512]
+69,71d67
+< [eva:alarm] tests/value/relations2.i:34: Warning: 
+<   accessing out of bounds index.
+<   assert (unsigned int)(i - (unsigned int)(t + 1)) < 514;
+80c76
+<   n ∈ [0..512]
+---
+>   n ∈ [1..512]
+97c93
+<   n ∈ [0..512]
+---
+>   n ∈ [1..512]
+140c136
+<   len ∈ [--..--]
+---
+>   len ∈ [0..1023]
diff --git a/tests/value/oracle_octagons/semaphore.res.oracle b/tests/value/oracle_octagons/semaphore.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..5426d75253817c8769b672f09bf4ee5539017c4a
--- /dev/null
+++ b/tests/value/oracle_octagons/semaphore.res.oracle
@@ -0,0 +1,4 @@
+65c65
+<   c ∈ {-26; -1}
+---
+>   c ∈ {-1}
diff --git a/tests/value/oracle_octagons/struct2.res.oracle b/tests/value/oracle_octagons/struct2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..05366bda0b93542585afa553b8faf05b2837e67a
--- /dev/null
+++ b/tests/value/oracle_octagons/struct2.res.oracle
@@ -0,0 +1,7 @@
+81,84d80
+<   accessing out of bounds index. assert 0 ≤ (int)(i + j);
+< [eva:alarm] tests/value/struct2.i:185: Warning: 
+<   accessing out of bounds index. assert (int)(i + j) < 2;
+< [eva:alarm] tests/value/struct2.i:185: Warning: 
+106d101
+< [scope:rm_asserts] removing 2 assertion(s)
diff --git a/tests/value/oracle_octagons/test.0.res.oracle b/tests/value/oracle_octagons/test.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..6f3c9701da4cdaeb1f78771f6d0a36e3ce41a303
--- /dev/null
+++ b/tests/value/oracle_octagons/test.0.res.oracle
@@ -0,0 +1,7 @@
+17,18d16
+< [eva:alarm] tests/value/test.i:11: Warning: 
+<   signed overflow. assert j + ecart ≤ 2147483647;
+29c27
+<   j ∈ [-1073741822..1]
+---
+>   j ∈ {-1; 0; 1}
diff --git a/tests/value/oracle_octagons/unroll.res.oracle b/tests/value/oracle_octagons/unroll.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..c774b3acf1c35db888889fb5ad8d448f5c55ac51
--- /dev/null
+++ b/tests/value/oracle_octagons/unroll.res.oracle
@@ -0,0 +1,4 @@
+22c22
+<   G ∈ [17739..2147483647]
+---
+>   G ∈ [17854..2147483647]
diff --git a/tests/value/oracle_octagons/unroll_simple.res.oracle b/tests/value/oracle_octagons/unroll_simple.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..8a48c42f84b464b622a56e6b0bdf325a1423af5f
--- /dev/null
+++ b/tests/value/oracle_octagons/unroll_simple.res.oracle
@@ -0,0 +1,4 @@
+17c17
+<   G ∈ [8772..2147483647]
+---
+>   G ∈ [8896..2147483647]
diff --git a/tests/value/oracle_symblocs/alias.0.res.oracle b/tests/value/oracle_symblocs/alias.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..c234ab23c2ef7ade7fb11fd8bd401d1a710a0a37
--- /dev/null
+++ b/tests/value/oracle_symblocs/alias.0.res.oracle
@@ -0,0 +1,10 @@
+103,104c103,104
+<   t ∈ {1; 2; 4}
+<   u ∈ {2; 3; 4; 5}
+---
+>   t ∈ {4}
+>   u ∈ {5}
+110c110
+<   t2 ∈ {0; 3; 6}
+---
+>   t2 ∈ {6}
diff --git a/tests/value/oracle_symblocs/alias.4.res.oracle b/tests/value/oracle_symblocs/alias.4.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..f45634e31c8c1322a448c5a229319212361daf9f
--- /dev/null
+++ b/tests/value/oracle_symblocs/alias.4.res.oracle
@@ -0,0 +1,4 @@
+81c81
+<   y ∈ {0; 3; 77}
+---
+>   y ∈ {77}
diff --git a/tests/value/oracle_symblocs/alias.5.res.oracle b/tests/value/oracle_symblocs/alias.5.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..10edd6543c88d248bac175c0448826552773cdee
--- /dev/null
+++ b/tests/value/oracle_symblocs/alias.5.res.oracle
@@ -0,0 +1,4 @@
+170c170
+<   y ∈ {0; 3; 77}
+---
+>   y ∈ {77}
diff --git a/tests/value/oracle_symblocs/alias.6.res.oracle b/tests/value/oracle_symblocs/alias.6.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..a7dfd3031756c0781ca8579ae7e21c2b0a65e1c0
--- /dev/null
+++ b/tests/value/oracle_symblocs/alias.6.res.oracle
@@ -0,0 +1,4 @@
+86c86
+<   x ∈ {0; 4; 33}
+---
+>   x ∈ {33}
diff --git a/tests/value/oracle_symblocs/audit.res.oracle b/tests/value/oracle_symblocs/audit.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..9ff41db248872519df6d5b9ea95483fc420a1ff1
--- /dev/null
+++ b/tests/value/oracle_symblocs/audit.res.oracle
@@ -0,0 +1,11 @@
+1,8d0
+< [kernel:audit] Warning: 
+<   different hashes for tests/value/audit.c: got 08f73691217888d926a0ee15cbe18159, expected 01010101010101010101010101010101
+< [kernel:audit] Warning: 
+<   different hashes for tests/value/audit_included_but_not_listed.h: got c2cc488143a476f69cf2ed04c3439e6e, expected <none> (not in list)
+< [kernel:audit] Warning: 
+<   missing files:
+<   tests/value/non_existing_file.h
+< [kernel] Audit: sources list written to: tests/value/result/audit-out.json
+34d25
+< [kernel] Wrote: tests/value/result/audit-out.json
diff --git a/tests/value/oracle_symblocs/bitwise_pointer.res.oracle b/tests/value/oracle_symblocs/bitwise_pointer.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..f04f7077977a5a61ea7d346c6ff6f90a2e4237e4
--- /dev/null
+++ b/tests/value/oracle_symblocs/bitwise_pointer.res.oracle
@@ -0,0 +1,8 @@
+62c62
+<   x ∈ [0..9]
+---
+>   x ∈ {5}
+75c75
+<   x1 ∈ [0..9]
+---
+>   x1 ∈ {5}
diff --git a/tests/value/oracle_symblocs/bitwise_reduction.res.oracle b/tests/value/oracle_symblocs/bitwise_reduction.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..13596efae1bad628225baa3662baad3164248fde
--- /dev/null
+++ b/tests/value/oracle_symblocs/bitwise_reduction.res.oracle
@@ -0,0 +1,16 @@
+20c20
+<   {0; 1}, {0; 1; 0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
+---
+>   {0; 1}, {0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
+23c23
+<   {0; 1}, {0; 1; 0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
+---
+>   {0; 1}, {0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
+30c30
+<   {{ &t + {0; 4} }}, {0; 1; 0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
+---
+>   {{ &t + {0; 4} }}, {0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
+33c33
+<   {0; 1}, {0; 1; 0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
+---
+>   {0; 1}, {0x3000; 0x3001; 0x3200; 0x3201; 0xF000; 0xFF00}
diff --git a/tests/value/oracle_symblocs/domains_function.res.oracle b/tests/value/oracle_symblocs/domains_function.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..8027660c48a30414d4dd0f45f1ebc54835bbf95e
--- /dev/null
+++ b/tests/value/oracle_symblocs/domains_function.res.oracle
@@ -0,0 +1,38 @@
+19,20c19
+< [eva] tests/value/domains_function.c:92: 
+<   Frama_C_show_each_top: [-2147483648..2147483647]
+---
+> [eva] tests/value/domains_function.c:92: Frama_C_show_each_top: {3}
+28,29c27
+< [eva] tests/value/domains_function.c:77: 
+<   Frama_C_show_each_top: [-2147483648..2147483647]
+---
+> [eva] tests/value/domains_function.c:77: Frama_C_show_each_top: {1}
+32,33c30
+< [eva] tests/value/domains_function.c:96: 
+<   Frama_C_show_each_top: [-2147483648..2147483647]
+---
+> [eva] tests/value/domains_function.c:96: Frama_C_show_each_top: {1}
+52,56c49,50
+< [eva] computing for function not_enabled <- recursively_enabled <- main.
+<   Called from tests/value/domains_function.c:110.
+< [eva] tests/value/domains_function.c:77: Frama_C_show_each_top: {1}
+< [eva] Recording results for not_enabled
+< [eva] Done for function not_enabled
+---
+> [eva] tests/value/domains_function.c:110: 
+>   Reusing old results for call to not_enabled
+58,63c52,53
+< [eva] computing for function disabled <- recursively_enabled <- main.
+<   Called from tests/value/domains_function.c:112.
+< [eva] tests/value/domains_function.c:84: 
+<   Frama_C_show_each_top: [-2147483648..2147483647]
+< [eva] Recording results for disabled
+< [eva] Done for function disabled
+---
+> [eva] tests/value/domains_function.c:112: 
+>   Reusing old results for call to disabled
+130c120
+<   result ∈ [--..--]
+---
+>   result ∈ {1}
diff --git a/tests/value/oracle_symblocs/incompatible_states.res.oracle b/tests/value/oracle_symblocs/incompatible_states.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..f25e47594b39d5e418b34b81dbddc46ea476db7d
--- /dev/null
+++ b/tests/value/oracle_symblocs/incompatible_states.res.oracle
@@ -0,0 +1,7 @@
+41,42d40
+< [eva:alarm] tests/value/incompatible_states.c:53: Warning: 
+<   division by zero. assert t[i] ≢ 0;
+49c47
+< [scope:rm_asserts] removing 2 assertion(s)
+---
+> [scope:rm_asserts] removing 1 assertion(s)
diff --git a/tests/value/oracle_symblocs/library.res.oracle b/tests/value/oracle_symblocs/library.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..263da140a44605a2369da667c8975a15feee5d56
--- /dev/null
+++ b/tests/value/oracle_symblocs/library.res.oracle
@@ -0,0 +1,5 @@
+129,132d128
+< [eva:alarm] tests/value/library.i:44: Warning: 
+<   non-finite float value. assert \is_finite(*pf);
+< [eva:alarm] tests/value/library.i:44: Warning: 
+<   non-finite float value. assert \is_finite(\add_float(*pf, *pf));
diff --git a/tests/value/oracle_symblocs/non_natural.res.oracle b/tests/value/oracle_symblocs/non_natural.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..5bb2115c807b021ea575ce651a33acbf81de8851
--- /dev/null
+++ b/tests/value/oracle_symblocs/non_natural.res.oracle
@@ -0,0 +1,52 @@
+58a59,60
+> [kernel] tests/value/non_natural.i:30: 
+>   more than 200(12500) elements to enumerate. Approximating.
+65a68,71
+> [kernel] tests/value/non_natural.i:23: 
+>   more than 200(12501) elements to enumerate. Approximating.
+> [kernel] tests/value/non_natural.i:23: 
+>   more than 200(12500) elements to enumerate. Approximating.
+70a77,80
+> [kernel] tests/value/non_natural.i:24: 
+>   more than 200(12501) elements to enumerate. Approximating.
+> [kernel] tests/value/non_natural.i:24: 
+>   more than 200(12500) elements to enumerate. Approximating.
+78a89,90
+> [kernel] tests/value/non_natural.i:25: 
+>   more than 200(12500) elements to enumerate. Approximating.
+86a99,100
+> [kernel] tests/value/non_natural.i:26: 
+>   more than 200(12500) elements to enumerate. Approximating.
+94a109,110
+> [kernel] tests/value/non_natural.i:27: 
+>   more than 200(12500) elements to enumerate. Approximating.
+102a119,120
+> [kernel] tests/value/non_natural.i:28: 
+>   more than 200(12500) elements to enumerate. Approximating.
+110a129,130
+> [kernel] tests/value/non_natural.i:29: 
+>   more than 200(12500) elements to enumerate. Approximating.
+127,146d146
+< [kernel] tests/value/non_natural.i:23: 
+<   more than 200(12501) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:23: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:24: 
+<   more than 200(12501) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:24: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:25: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:26: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:27: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:28: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:29: 
+<   more than 200(12500) elements to enumerate. Approximating.
+< [kernel] tests/value/non_natural.i:30: 
+<   more than 200(12500) elements to enumerate. Approximating.
+199a200,201
+> [kernel] tests/value/non_natural.i:39: 
+>   more than 200(12500) elements to enumerate. Approximating.
diff --git a/tests/value/oracle_symblocs/offsetmap.0.res.oracle b/tests/value/oracle_symblocs/offsetmap.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..6bebb89e738e4c6703b3d8b869f9d852e34a9e44
--- /dev/null
+++ b/tests/value/oracle_symblocs/offsetmap.0.res.oracle
@@ -0,0 +1,4 @@
+40d39
+< [eva] Recording results for g
+42a42
+> [eva] Recording results for g
diff --git a/tests/value/oracle_symblocs/offsetmap.1.res.oracle b/tests/value/oracle_symblocs/offsetmap.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..6bebb89e738e4c6703b3d8b869f9d852e34a9e44
--- /dev/null
+++ b/tests/value/oracle_symblocs/offsetmap.1.res.oracle
@@ -0,0 +1,4 @@
+40d39
+< [eva] Recording results for g
+42a42
+> [eva] Recording results for g
diff --git a/tests/value/oracle_symblocs/plevel.res.oracle b/tests/value/oracle_symblocs/plevel.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..d19a038f2cb62353c97e3e6ede7f83a949ef654e
--- /dev/null
+++ b/tests/value/oracle_symblocs/plevel.res.oracle
@@ -0,0 +1,4 @@
+12d11
+< [eva] Recording results for main
+14a14
+> [eva] Recording results for main
diff --git a/tests/value/oracle_symblocs/ptr_relation.0.res.oracle b/tests/value/oracle_symblocs/ptr_relation.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..0ae744ec7d6e6fcde013d15696dcf66e9f1424b5
--- /dev/null
+++ b/tests/value/oracle_symblocs/ptr_relation.0.res.oracle
@@ -0,0 +1,4 @@
+23c23
+<   i ∈ {0; 77; 333}
+---
+>   i ∈ {77}
diff --git a/tests/value/oracle_symblocs/redundant_alarms.res.oracle b/tests/value/oracle_symblocs/redundant_alarms.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..e407fdc210c632ac34c27e535cf48ac5a107e338
--- /dev/null
+++ b/tests/value/oracle_symblocs/redundant_alarms.res.oracle
@@ -0,0 +1,41 @@
+10,13d9
+< [eva:alarm] tests/value/redundant_alarms.c:11: Warning: 
+<   accessing uninitialized left-value. assert \initialized(p);
+< [eva:alarm] tests/value/redundant_alarms.c:12: Warning: 
+<   accessing uninitialized left-value. assert \initialized(p);
+24,27d19
+< [eva:alarm] tests/value/redundant_alarms.c:21: Warning: 
+<   accessing uninitialized left-value. assert \initialized(&t[i]);
+< [eva:alarm] tests/value/redundant_alarms.c:22: Warning: 
+<   accessing uninitialized left-value. assert \initialized(&t[i]);
+38,41d29
+< [eva:alarm] tests/value/redundant_alarms.c:32: Warning: 
+<   accessing uninitialized left-value. assert \initialized(&t[j]);
+< [eva:alarm] tests/value/redundant_alarms.c:33: Warning: 
+<   accessing uninitialized left-value. assert \initialized(&t[i]);
+63,69d50
+< [scope:rm_asserts] removing 3 assertion(s)
+< [scope:rm_asserts] tests/value/redundant_alarms.c:12: 
+<   removing redundant assert Eva: initialization: \initialized(p);
+< [scope:rm_asserts] tests/value/redundant_alarms.c:32: 
+<   removing redundant assert Eva: initialization: \initialized(&t[j]);
+< [scope:rm_asserts] tests/value/redundant_alarms.c:33: 
+<   removing redundant assert Eva: initialization: \initialized(&t[i]);
+108d88
+<   /*@ assert Eva: initialization: \initialized(p); */
+110d89
+<   /*@ assert Eva: initialization: \initialized(p); */
+127d105
+<   /*@ assert Eva: initialization: \initialized(&t[i]); */
+129d106
+<   /*@ assert Eva: initialization: \initialized(&t[i]); */
+142d118
+<     /*@ assert Eva: initialization: \initialized(&t[j]); */
+144d119
+<     /*@ assert Eva: initialization: \initialized(&t[i]); */
+196a172
+>   int z;
+199,201d174
+<   *p = 1;
+<   int z = *p + 1;
+<   int w = *p + 2;
diff --git a/tests/value/oracle_symblocs/relations2.res.oracle b/tests/value/oracle_symblocs/relations2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..51123dbb8456bc59e90c82a92ead8a61ea7952dd
--- /dev/null
+++ b/tests/value/oracle_symblocs/relations2.res.oracle
@@ -0,0 +1,2 @@
+133d132
+< [eva] tests/value/relations2.i:57: Frama_C_show_each_NO2:
diff --git a/tests/value/oracle_symblocs/struct2.res.oracle b/tests/value/oracle_symblocs/struct2.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..a2e06e1f458cbc483aac53882fe8ed6be12db421
--- /dev/null
+++ b/tests/value/oracle_symblocs/struct2.res.oracle
@@ -0,0 +1,27 @@
+55a56,57
+> [kernel] tests/value/struct2.i:78: Warning: 
+>   all target addresses were invalid. This path is assumed to be dead.
+59,60d60
+<   accessing out of bounds index. assert 0 ≤ (int)(tab2[i] + j);
+< [eva:alarm] tests/value/struct2.i:82: Warning: 
+83,84d82
+<   accessing out of bounds index. assert (int)(i + j) < 2;
+< [eva:alarm] tests/value/struct2.i:185: Warning: 
+106c104
+< [scope:rm_asserts] removing 2 assertion(s)
+---
+> [scope:rm_asserts] removing 1 assertion(s)
+144,145c142
+<   tab4[0] ∈ {0; 2}
+<       [1] ∈ {0}
+---
+>   tab4[0..1] ∈ {0}
+148c145,146
+<   tab6[0..1] ∈ {0; 2}
+---
+>   tab6[0] ∈ {0}
+>       [1] ∈ {2}
+219c217
+<            [9].a}; s1; s2; s5.e[0].b; s6.b; s8; tabl[0..1]; tab1[0..1];
+---
+>            [9].a}; s1; s2; s5.e[0].b; s6.b; s8; tabl[0..1]; tab1[0];
diff --git a/tests/value/oracle_symblocs/symbolic_locs.res.oracle b/tests/value/oracle_symblocs/symbolic_locs.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..6f9fd51c1da08da534c6c7218654b0546cb75176
--- /dev/null
+++ b/tests/value/oracle_symblocs/symbolic_locs.res.oracle
@@ -0,0 +1,71 @@
+20a21,26
+>   # Symbolic locations domain:
+>   V: {[ t[i] -> {4} ]}
+>   Z: {[ t[i] -> t[0..8]; i ]}
+>   I: {[ t -> {t[i]}
+>         i -> {t[i]} ]}
+>   S: {[ i -> {t[i]} ]}
+31a38,42
+>   # Symbolic locations domain:
+>   V: {[  ]}
+>   Z: {[  ]}
+>   I: {[  ]}
+>   S: {[  ]}
+48a60,65
+>   # Symbolic locations domain:
+>   V: {[ t[i] -> {4} ]}
+>   Z: {[ t[i] -> t[0..8]; i ]}
+>   I: {[ t -> {t[i]}
+>         i -> {t[i]} ]}
+>   S: {[ i -> {t[i]} ]}
+59a77,81
+>   # Symbolic locations domain:
+>   V: {[  ]}
+>   Z: {[  ]}
+>   I: {[  ]}
+>   S: {[  ]}
+79a102,108
+>   # Symbolic locations domain:
+>   V: {[ t[i] -> {{ &x }} ]}
+>   Z: {[ t[i] -> t[0..8]; i ]}
+>   I: {[ t -> {t[i]}
+>         i -> {t[i]} ]}
+>   S: {[ i -> {t[i]}
+>         x -> {t[i]} ]}
+92a122,126
+>   # Symbolic locations domain:
+>   V: {[  ]}
+>   Z: {[  ]}
+>   I: {[  ]}
+>   S: {[  ]}
+108a143,148
+>   # Symbolic locations domain:
+>   V: {[ t[i] -> {1} ]}
+>   Z: {[ t[i] -> t[0..8]; i ]}
+>   I: {[ t -> {t[i]}
+>         i -> {t[i]} ]}
+>   S: {[ i -> {t[i]} ]}
+117a158,162
+>   # Symbolic locations domain:
+>   V: {[  ]}
+>   Z: {[  ]}
+>   I: {[  ]}
+>   S: {[  ]}
+134a180,184
+>   # Symbolic locations domain:
+>   V: {[  ]}
+>   Z: {[  ]}
+>   I: {[  ]}
+>   S: {[  ]}
+141,143c191
+< [eva:alarm] tests/value/symbolic_locs.i:111: Warning: 
+<   signed overflow. assert *p + 1 ≤ 2147483647;
+< [eva] tests/value/symbolic_locs.i:113: Frama_C_show_each: [0..2147483647]
+---
+> [eva] tests/value/symbolic_locs.i:113: Frama_C_show_each: [10001..2147483647]
+152a201,205
+>   # Symbolic locations domain:
+>   V: {[  ]}
+>   Z: {[  ]}
+>   I: {[  ]}
+>   S: {[  ]}
diff --git a/tests/value/oracle_symblocs/test.0.res.oracle b/tests/value/oracle_symblocs/test.0.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..272fc4fdee900b3236d134532b18759e68232b08
--- /dev/null
+++ b/tests/value/oracle_symblocs/test.0.res.oracle
@@ -0,0 +1,4 @@
+31c31
+<   tmp ∈ [--..--] or UNINITIALIZED
+---
+>   tmp ∈ [-2147483647..2147483647] or UNINITIALIZED