diff --git a/src/plugins/wp/Cache.ml b/src/plugins/wp/Cache.ml
index 9ecfc2f038f7df0573495f82b076f41a067a8b13..efa8e17c58cc5c648477a0dcb8b9327980c95c3c 100644
--- a/src/plugins/wp/Cache.ml
+++ b/src/plugins/wp/Cache.ml
@@ -136,8 +136,11 @@ module MODE = WpContext.StaticGenerator(Datatype.Unit)
 let get_mode = MODE.get
 let set_mode m = MODE.clear () ; Wp_parameters.Cache.set (mode_name m)
 
-let is_updating () =
-  match MODE.get () with
+let is_active = function
+  | NoCache -> false
+  | Replay | Offline | Update | Rebuild | Cleanup -> true
+
+let is_updating = function
   | NoCache | Replay | Offline -> false
   | Update | Rebuild | Cleanup -> true
 
diff --git a/src/plugins/wp/Cache.mli b/src/plugins/wp/Cache.mli
index b1bfe4c451c031c6dedb1977d65f5b2fa65ade96..61665faceda1fb2d9b5f4f99750a4ad970c4a40f 100644
--- a/src/plugins/wp/Cache.mli
+++ b/src/plugins/wp/Cache.mli
@@ -30,7 +30,8 @@ val get_hits : unit -> int
 val get_miss : unit -> int
 val get_removed : unit -> int
 
-val is_updating : unit -> bool
+val is_active : mode -> bool
+val is_updating : mode -> bool
 
 val cleanup_cache : unit -> unit
 
diff --git a/src/plugins/wp/Stats.ml b/src/plugins/wp/Stats.ml
index ff81afab526f4d73567d5235c9c8dffd21f2bb6b..eeeb9c95e4c8d6f8c342c211f18fb3f5f2704a7c 100644
--- a/src/plugins/wp/Stats.ml
+++ b/src/plugins/wp/Stats.ml
@@ -40,6 +40,7 @@ type stats = {
   provers : (VCS.prover * pstats) list ;
   tactics : int ;
   proved : int ;
+  trivial : int ;
   timeout : int ;
   unknown : int ;
   noresult : int ;
@@ -102,6 +103,7 @@ let empty = {
   unknown = 0 ;
   noresult = 0 ;
   failed = 0 ;
+  trivial = 0 ;
   cached = 0 ;
 }
 
@@ -112,33 +114,33 @@ let choose_worst a b =
   if VCS.leq (snd b) (snd a) then a else b
 
 let consolidated_valid = function
-  | [] -> NoResult, 0, []
+  | [] -> NoResult, 0, 0, []
   | u::w as results ->
     let p,r = List.fold_left choose_best u w in
+    let trivial = p = Qed || VCS.is_trivial r in
     let cached =
-      p = Qed ||
-      if VCS.is_valid r then r.cached else
-        List.for_all
-          (fun (_,r) -> r.VCS.cached || not (VCS.is_verdict r))
-          results in
+      List.for_all
+        (fun (_,r) -> r.VCS.cached || not (VCS.is_verdict r))
+        results in
     r.VCS.verdict,
+    (if trivial then 1 else 0),
     (if cached then 1 else 0),
     if p = Qed then [Qed,pqed r]
     else pmerge [Qed,psolver r] [p,presult r]
 
 let valid_stats prs =
-  let verdict, cached, provers = consolidated_valid prs in
+  let verdict, trivial, cached, provers = consolidated_valid prs in
   match verdict with
   | Valid ->
-    { empty with verdict ; provers ; cached ; proved = 1 }
+    { empty with verdict ; provers ; trivial ; cached ; proved = 1 }
   | Timeout | Stepout ->
-    { empty with verdict ; provers ; cached ; timeout = 1 }
+    { empty with verdict ; provers ; trivial ; cached ; timeout = 1 }
   | Unknown ->
-    { empty with verdict ; provers ; cached ; unknown = 1 }
+    { empty with verdict ; provers ; trivial ; cached ; unknown = 1 }
   | NoResult | Computing _ ->
-    { empty with verdict ; provers ; cached ; noresult = 1 }
+    { empty with verdict ; provers ; trivial ; cached ; noresult = 1 }
   | Failed | Invalid ->
-    { empty with verdict ; provers ; cached ; failed = 1 }
+    { empty with verdict ; provers ; trivial ; cached ; failed = 1 }
 
 let results ~smoke prs =
   if not smoke then valid_stats prs
@@ -150,6 +152,9 @@ let results ~smoke prs =
     if doomed <> [] then
       valid_stats doomed
     else
+      let trivial = List.fold_left
+          (fun c (p,r) -> if p = Qed || VCS.is_trivial r then succ c else c)
+          0 passed in
       let cached = List.fold_left
           (fun c (_,r) -> if r.VCS.cached then succ c else c)
           0 passed in
@@ -167,7 +172,7 @@ let results ~smoke prs =
           | u::w -> (snd @@ List.fold_left choose_worst u w).verdict in
       let proved = List.length passed in
       let failed = List.length missing in
-      { empty with verdict ; provers ; cached ; proved ; failed }
+      { empty with verdict ; provers ; trivial ; cached ; proved ; failed }
 
 let add a b =
   if a == empty then b else
@@ -181,6 +186,7 @@ let add a b =
       unknown = a.unknown + b.unknown ;
       noresult = a.noresult + b.noresult ;
       failed = a.failed + b.failed ;
+      trivial = a.trivial + b.trivial ;
       cached = a.cached + b.cached ;
     }
 
@@ -192,7 +198,7 @@ let tactical ~qed children =
   List.fold_left add { empty with verdict ; provers ; tactics = 1 } children
 
 let script stats =
-  let cached = stats.cached = stats.proved in
+  let cached = (stats.trivial + stats.cached = stats.proved) in
   let solver = List.fold_left
       (fun t (p,s) -> if p = Qed then t +. s.time else t) 0.0 stats.provers in
   let time = List.fold_left
@@ -228,45 +234,53 @@ let pp_pstats fmt p =
           Rformat.pp_time mean
           Rformat.pp_time p.tmax
 
-let pp_stats ~shell ~updating fmt s =
-  let vp = s.proved in
-  let np = proofs s in
+let pp_stats ~shell ~cache fmt s =
+  let total = proofs s in
+  let valids = s.proved in
+  let cached = s.trivial + s.cached in
   if s.tactics > 1 then
     Format.fprintf fmt " (Tactics %d)" s.tactics
   else if s.tactics = 1 then
     Format.fprintf fmt " (Tactic)" ;
-  let print_cache =
-    0 < s.cached && List.exists (fun (p,_) -> p <> Qed) s.provers in
-  let print_perfo =
-    not shell || (print_cache && not updating && s.cached < np) in
+  let updating = Cache.is_updating cache in
+  let cache_miss = Cache.is_active cache && not updating && cached < total in
   let qed_only =
-    match s.provers with [Qed,_] -> vp = np | _ -> false in
+    match s.provers with [Qed,_] -> valids = total | _ -> false in
+  let print_cache =
+    not qed_only && Cache.is_active cache && 0 < cached in
   List.iter
     (fun (p,pr) ->
        let success = truncate pr.success in
-       let print_perfo = print_perfo && pr.time > Rformat.epsilon in
-       let print_proofs = success > 0 && np > 1 in
-       let print_qed = qed_only && s.verdict = Valid && vp = np in
-       if p != Qed || print_qed || print_perfo || print_proofs then
+       let print_perfo =
+         pr.time > Rformat.epsilon &&
+         (not shell || cache_miss) in
+       let print_proofs = success > 0 && total > 1 in
+       let print_qed = qed_only && s.verdict = Valid && valids = total in
+       if p != Qed || print_qed || print_perfo || print_proofs
+       then
          begin
            let title = VCS.title_of_prover ~version:false p in
            Format.fprintf fmt " (%s" title ;
            if print_proofs then
-             Format.fprintf fmt " %d/%d" success np ;
+             Format.fprintf fmt " %d/%d" success total ;
            if print_perfo then
              Format.fprintf fmt " %a" Rformat.pp_time pr.time ;
            Format.fprintf fmt ")"
          end
     ) s.provers ;
+  if shell && cache_miss then
+    Format.fprintf fmt " (Cache miss %d)" (total - cached)
+  else
   if print_cache then
-    if s.cached = np || updating then
-      Format.fprintf fmt " (Cached)"
-    else
-    if shell then
-      Format.fprintf fmt " (Cache miss %d)" (np - s.cached)
+    if s.trivial = total then
+      Format.fprintf fmt " (Trivial)"
     else
-      Format.fprintf fmt " (Cached %d/%d)" s.cached np
+      let cacheable = total - s.trivial in
+      if updating || s.cached = cacheable then
+        Format.fprintf fmt " (Cached)"
+      else
+        Format.fprintf fmt " (Cached %d/%d)" s.cached cacheable
 
-let pretty = pp_stats ~shell:false ~updating:false
+let pretty = pp_stats ~shell:false ~cache:NoCache
 
 (* -------------------------------------------------------------------------- *)
diff --git a/src/plugins/wp/Stats.mli b/src/plugins/wp/Stats.mli
index a5b0a21fdc9568cdecdae5a5c88329a207393b2b..3fd10260de66b58b5a0c8131c3e5c03217adccbd 100644
--- a/src/plugins/wp/Stats.mli
+++ b/src/plugins/wp/Stats.mli
@@ -34,21 +34,28 @@ type pstats = {
   success : float ; (** number of success (valid xor smoke) *)
 }
 
-(** Cumulated Stats *)
+(** Cumulated Stats
+
+    Remark: for each sub-goal, only the _best_ prover result is kept *)
 type stats = {
-  verdict : VCS.verdict ;
-  provers : (VCS.prover * pstats) list ;
-  tactics : int ;
-  proved : int ;
-  timeout : int ;
-  unknown : int ;
-  noresult : int ;
-  failed : int ;
-  cached : int ;
+  verdict : VCS.verdict ; (** global verdict *)
+  provers : (VCS.prover * pstats) list ; (** meaningfull provers *)
+  tactics : int ; (** number of tactics *)
+  proved : int ; (** number of proved sub-goals *)
+  trivial : int ; (** number of proved sub-goals with Qed or No-prover time *)
+  timeout : int ; (** number of resulting timeouts and stepouts *)
+  unknown : int ; (** number of resulting unknown *)
+  noresult : int ; (** number of no-result *)
+  failed : int ; (** number of resulting failures *)
+  cached : int ; (** number of cached (non-trivial) results *)
 }
 
 val pp_pstats : Format.formatter -> pstats -> unit
-val pp_stats : shell:bool -> updating:bool -> Format.formatter -> stats -> unit
+val pp_stats :
+  shell:bool ->
+  cache:Cache.mode ->
+  Format.formatter -> stats -> unit
+
 val pretty : Format.formatter -> stats -> unit
 
 val empty : stats
diff --git a/src/plugins/wp/VCS.ml b/src/plugins/wp/VCS.ml
index 966f598859e3a4b3db75b76034ca92e2a9321bff..fe3442257a43c4ad8481f7efd03a6343130dc768 100644
--- a/src/plugins/wp/VCS.ml
+++ b/src/plugins/wp/VCS.ml
@@ -207,8 +207,8 @@ let is_result = function
   | NoResult | Computing _ -> false
 
 let is_verdict r = is_result r.verdict
-
 let is_valid = function { verdict = Valid } -> true | _ -> false
+let is_trivial r = is_valid r && r.prover_time = 0.0
 let is_not_valid r = is_verdict r && not (is_valid r)
 let is_computing = function { verdict=Computing _ } -> true | _ -> false
 
diff --git a/src/plugins/wp/VCS.mli b/src/plugins/wp/VCS.mli
index 2a1ac1be8324684a08c48d9cada2e1977f89bd37..1270a6a0724c111dc0fc16d32646ade3c883ba70 100644
--- a/src/plugins/wp/VCS.mli
+++ b/src/plugins/wp/VCS.mli
@@ -114,6 +114,7 @@ val is_auto : prover -> bool
 val is_result : verdict -> bool
 val is_verdict : result -> bool
 val is_valid: result -> bool
+val is_trivial: result -> bool
 val is_not_valid: result -> bool
 val is_computing: result -> bool
 val is_proved: smoke:bool -> result -> bool
diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml
index e48365f094d3dd99155df0638a2536f80175e5db..0ab24ee3c0a4e316603baed9bd94b6222b58a52c 100644
--- a/src/plugins/wp/register.ml
+++ b/src/plugins/wp/register.ml
@@ -296,7 +296,7 @@ let do_wpo_result goal prover res =
   if VCS.is_verdict res && prover = VCS.Qed then
     do_progress goal "Qed"
 
-let do_report_stats ~shell ~updating ~smoke goal (stats : Stats.stats) =
+let do_report_stats ~shell ~cache ~smoke goal (stats : Stats.stats) =
   let status =
     if smoke then
       match stats.verdict with
@@ -320,10 +320,10 @@ let do_report_stats ~shell ~updating ~smoke goal (stats : Stats.stats) =
       | Stepout -> "[Stepout]"
   in if status <> "" then
     Wp_parameters.feedback "%s %s%a%a"
-      status (Wpo.get_gid goal) (Stats.pp_stats ~shell ~updating) stats
+      status (Wpo.get_gid goal) (Stats.pp_stats ~shell ~cache) stats
       pp_warnings goal
 
-let do_wpo_success ~shell ~updating goal success =
+let do_wpo_success ~shell ~cache goal success =
   if Wp_parameters.Generate.get () then
     match success with
     | None -> ()
@@ -340,7 +340,7 @@ let do_wpo_success ~shell ~updating goal success =
       if cstats.tactics > 0 then
         script_stats := Stats.add !script_stats cstats ;
       if shell || proof <> `Passed then
-        do_report_stats ~shell ~updating goal ~smoke cstats ;
+        do_report_stats ~shell ~cache goal ~smoke cstats ;
       if smoke && proof <> `Passed then
         begin
           let source = fst (Property.location target) in
@@ -367,9 +367,8 @@ let do_report_scheduled () =
             (fun g n ->
                if Wpo.is_passed g then succ n else n
             ) !session (unreachable + terminating) in
-        let mode = Cache.get_mode () in
-        let updating = Cache.is_updating () in
-        if mode <> Cache.NoCache then do_report_cache_usage mode ;
+        let cache = Cache.get_mode () in
+        if Cache.is_active cache then do_report_cache_usage cache ;
         let shell = Wp_parameters.has_dkey VCS.dkey_shell in
         let lines = ref [] in
         let none = fun _fmt -> () in
@@ -384,7 +383,7 @@ let do_report_scheduled () =
              if success > 0 || (not shell && p = Qed) then
                add_line name success (fun fmt ->
                    if p = Tactical then
-                     Stats.pp_stats ~shell ~updating fmt !script_stats
+                     Stats.pp_stats ~shell ~cache fmt !script_stats
                    else
                    if not shell then Stats.pp_pstats fmt s
                  )
@@ -441,7 +440,7 @@ let spawn_wp_proofs ~script goals =
       let server = ProverTask.server () in
       ignore (Wp_parameters.Share.get_dir "."); (* To prevent further errors *)
       let shell = Wp_parameters.has_dkey VCS.dkey_shell in
-      let updating = Cache.is_updating () in
+      let cache = Cache.get_mode () in
       Bag.iter
         (fun goal ->
            if  script.tactical
@@ -458,7 +457,7 @@ let spawn_wp_proofs ~script goals =
                ~start:do_wpo_start
                ~progress:do_progress
                ~result:do_wpo_result
-               ~success:(do_wpo_success ~shell ~updating)
+               ~success:(do_wpo_success ~shell ~cache)
                goal
            else
              Prover.spawn goal
@@ -466,7 +465,7 @@ let spawn_wp_proofs ~script goals =
                ~start:do_wpo_start
                ~progress:do_progress
                ~result:do_wpo_result
-               ~success:(do_wpo_success ~shell ~updating)
+               ~success:(do_wpo_success ~shell ~cache)
                script.provers
         ) goals ;
       Task.on_server_wait server do_wpo_wait ;
diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle
index 6ddd0931f3458a09a96cc9d6e03d60ae17d7963a..a8581030a4f0bdba4e4212b1bcfaa90fc8494e9d 100644
--- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle
+++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle
@@ -3,7 +3,7 @@
 [wp] Running WP plugin...
 [wp] Warning: Missing RTE guards
 [wp] 24 goals scheduled
-[wp] [Valid] typed_lemma_ASSOC_land_qed_ok (Alt-Ergo)
+[wp] [Valid] typed_lemma_ASSOC_land_qed_ok (Alt-Ergo) (Trivial)
 [wp] [Valid] typed_lemma_L01_lnot_qed_ok (Qed)
 [wp] [Valid] typed_lemma_L10_land_neutral_qed_ok (Qed)
 [wp] [Valid] typed_lemma_L11_land_absorbant_qed_ok (Qed)
diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle
index a5060678d1e1a42b030efd1d0e99065df6c9020b..d5cde66a39eda9a6f84656b097b80447a13c4665 100644
--- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle
+++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle
@@ -3,22 +3,22 @@
 [wp] Running WP plugin...
 [wp] Warning: Missing RTE guards
 [wp] 22 goals scheduled
-[wp] [Valid] typed_f_ensures_d0_div_pos_pos (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_d1_div_neg_pos (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_d2_div_pos_neg (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_d3_div_neg_neg (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_d4_div_x_1 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_d5_div_x_minus1 (Alt-Ergo)
+[wp] [Valid] typed_f_ensures_d0_div_pos_pos (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_d1_div_neg_pos (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_d2_div_pos_neg (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_d3_div_neg_neg (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_d4_div_x_1 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_d5_div_x_minus1 (Alt-Ergo) (Trivial)
 [wp] [Valid] typed_f_ensures_d6_div_0_x (Alt-Ergo) (Cached)
 [wp] [Valid] typed_f_ensures_sd0_div_pos_pos (Alt-Ergo) (Cached)
 [wp] [Valid] typed_f_ensures_sd1_div_neg_pos (Alt-Ergo) (Cached)
 [wp] [Valid] typed_f_ensures_sd2_div_pos_neg (Alt-Ergo) (Cached)
 [wp] [Valid] typed_f_ensures_sd3_div_neg_neg (Alt-Ergo) (Cached)
-[wp] [Valid] typed_f_ensures_m0_mod_pos_pos (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_m1_mod_neg_pos (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_m2_mod_pos_neg (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_m3_mod_neg_neg (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_m4_mod_x_1 (Alt-Ergo)
+[wp] [Valid] typed_f_ensures_m0_mod_pos_pos (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_m1_mod_neg_pos (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_m2_mod_pos_neg (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_m3_mod_neg_neg (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_m4_mod_x_1 (Alt-Ergo) (Trivial)
 [wp] [Valid] typed_f_ensures_m5_mod_x_minus1 (Alt-Ergo) (Cached)
 [wp] [Valid] typed_f_ensures_m6_mod_0_x (Alt-Ergo) (Cached)
 [wp] [Valid] typed_f_ensures_sm0_mod_pos_pos (Alt-Ergo) (Cached)
diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle
index a5060678d1e1a42b030efd1d0e99065df6c9020b..d5cde66a39eda9a6f84656b097b80447a13c4665 100644
--- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle
+++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle
@@ -3,22 +3,22 @@
 [wp] Running WP plugin...
 [wp] Warning: Missing RTE guards
 [wp] 22 goals scheduled
-[wp] [Valid] typed_f_ensures_d0_div_pos_pos (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_d1_div_neg_pos (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_d2_div_pos_neg (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_d3_div_neg_neg (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_d4_div_x_1 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_d5_div_x_minus1 (Alt-Ergo)
+[wp] [Valid] typed_f_ensures_d0_div_pos_pos (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_d1_div_neg_pos (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_d2_div_pos_neg (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_d3_div_neg_neg (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_d4_div_x_1 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_d5_div_x_minus1 (Alt-Ergo) (Trivial)
 [wp] [Valid] typed_f_ensures_d6_div_0_x (Alt-Ergo) (Cached)
 [wp] [Valid] typed_f_ensures_sd0_div_pos_pos (Alt-Ergo) (Cached)
 [wp] [Valid] typed_f_ensures_sd1_div_neg_pos (Alt-Ergo) (Cached)
 [wp] [Valid] typed_f_ensures_sd2_div_pos_neg (Alt-Ergo) (Cached)
 [wp] [Valid] typed_f_ensures_sd3_div_neg_neg (Alt-Ergo) (Cached)
-[wp] [Valid] typed_f_ensures_m0_mod_pos_pos (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_m1_mod_neg_pos (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_m2_mod_pos_neg (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_m3_mod_neg_neg (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_m4_mod_x_1 (Alt-Ergo)
+[wp] [Valid] typed_f_ensures_m0_mod_pos_pos (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_m1_mod_neg_pos (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_m2_mod_pos_neg (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_m3_mod_neg_neg (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_m4_mod_x_1 (Alt-Ergo) (Trivial)
 [wp] [Valid] typed_f_ensures_m5_mod_x_minus1 (Alt-Ergo) (Cached)
 [wp] [Valid] typed_f_ensures_m6_mod_0_x (Alt-Ergo) (Cached)
 [wp] [Valid] typed_f_ensures_sm0_mod_pos_pos (Alt-Ergo) (Cached)
diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle
index d81a58058fbfe890bfb2abe48113fa6dd32ec3ec..7220f33e5bb7edb5487a4bb9b95683216f5b4980 100644
--- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle
+++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle
@@ -3,48 +3,48 @@
 [wp] Running WP plugin...
 [wp] Warning: Missing RTE guards
 [wp] 42 goals scheduled
-[wp] [Valid] typed_f_ensures_p0 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_p1 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_p2 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_p3 (Alt-Ergo)
+[wp] [Valid] typed_f_ensures_p0 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_p1 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_p2 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_p3 (Alt-Ergo) (Trivial)
 [wp] [Valid] typed_f_ensures_p4 (Qed)
-[wp] [Valid] typed_f_ensures_p5 (Alt-Ergo)
+[wp] [Valid] typed_f_ensures_p5 (Alt-Ergo) (Trivial)
 [wp] [Valid] typed_f_ensures_p6 (Qed)
-[wp] [Valid] typed_f_ensures_p7 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_p8 (Alt-Ergo)
+[wp] [Valid] typed_f_ensures_p7 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_p8 (Alt-Ergo) (Trivial)
 [wp] [Valid] typed_f_ensures_p9 (Qed)
 [wp] [Valid] typed_f_ensures_i0 (Qed)
-[wp] [Valid] typed_f_ensures_i1 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_i2 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_i3 (Alt-Ergo)
+[wp] [Valid] typed_f_ensures_i1 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_i2 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_i3 (Alt-Ergo) (Trivial)
 [wp] [Valid] typed_f_ensures_i4 (Qed)
 [wp] [Valid] typed_f_ensures_i5 (Qed)
-[wp] [Valid] typed_f_ensures_i6 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_i7 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_i8 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_i9 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_a0 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_a1 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_a2 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_a3 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_a4 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_a5 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_a6 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_a7 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_a8 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_a9 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_o0 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_o1 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_o2 (Alt-Ergo)
+[wp] [Valid] typed_f_ensures_i6 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_i7 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_i8 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_i9 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_a0 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_a1 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_a2 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_a3 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_a4 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_a5 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_a6 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_a7 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_a8 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_a9 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_o0 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_o1 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_o2 (Alt-Ergo) (Trivial)
 [wp] [Valid] typed_f_ensures_o3 (Qed)
 [wp] [Valid] typed_f_ensures_o4 (Qed)
-[wp] [Valid] typed_f_ensures_o5 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_o6 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_o7 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_o8 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_o9 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_f0 (Alt-Ergo)
-[wp] [Valid] typed_f_ensures_f1 (Alt-Ergo)
+[wp] [Valid] typed_f_ensures_o5 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_o6 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_o7 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_o8 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_o9 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_f0 (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_f_ensures_f1 (Alt-Ergo) (Trivial)
 [wp] Proved goals:   42 / 42
   Qed:             8
   Alt-Ergo:       34
diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/sizeof.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/sizeof.res.oracle
index dbd9f8b4b0cf8dcf59f36d928548d030c97ade41..8bf423bc3d8ea6f256aa478c2d9608d5964a225a 100644
--- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/sizeof.res.oracle
+++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/sizeof.res.oracle
@@ -4,7 +4,7 @@
 [wp] Warning: Missing RTE guards
 [wp] 2 goals scheduled
 [wp] [Valid] typed_foo_assert_A (Alt-Ergo) (Cached)
-[wp] [Valid] typed_foo_assert_B (Alt-Ergo)
+[wp] [Valid] typed_foo_assert_B (Alt-Ergo) (Trivial)
 [wp] Proved goals:    2 / 2
   Alt-Ergo:        2
 ------------------------------------------------------------
diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle
index 0d08a88a9ebd42707addb011281a158eefb518d4..f95573ce220c8600bf02ea59a7baaba4783fd77e 100644
--- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle
+++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle
@@ -4,8 +4,8 @@
 [wp] Warning: Missing RTE guards
 [wp] 4 goals scheduled
 [wp] [Valid] typed_f3_assigns (Qed)
-[wp] [Valid] typed_g3_assigns_exit (Alt-Ergo)
-[wp] [Valid] typed_g3_assigns_normal (Alt-Ergo)
+[wp] [Valid] typed_g3_assigns_exit (Alt-Ergo) (Trivial)
+[wp] [Valid] typed_g3_assigns_normal (Alt-Ergo) (Trivial)
 [wp] [Valid] typed_g3_call_f3_requires (Qed)
 [wp] Proved goals:    4 / 4
   Qed:             2
diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_447.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_447.res.oracle
index 6921707a0c65eaf2c0a51878f82dbaf9b531645d..b61eb16b985ffd1c273f79f71659c3222d378bf2 100644
--- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_447.res.oracle
+++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_447.res.oracle
@@ -2,7 +2,7 @@
 [kernel] Parsing issue_447.i (no preprocessing)
 [wp] Running WP plugin...
 [wp] 1 goal scheduled
-[wp] [Valid] typed_lemma_foo (Alt-Ergo)
+[wp] [Valid] typed_lemma_foo (Alt-Ergo) (Trivial)
 [wp] Proved goals:    1 / 1
   Alt-Ergo:        1
 ------------------------------------------------------------
diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/mvar.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/mvar.res.oracle
index f567293cdba31469c4d7640372b9d4e3b6f415b0..b6eb918828a57fb45a7477a6971c10fdabfce34a 100644
--- a/src/plugins/wp/tests/wp_typed/oracle_qualif/mvar.res.oracle
+++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/mvar.res.oracle
@@ -5,7 +5,7 @@
   No code nor implicit assigns clause for function Write, generating default assigns from the prototype
 [wp] Warning: Missing RTE guards
 [wp] 1 goal scheduled
-[wp] [Valid] typed_Job_ensures (Alt-Ergo)
+[wp] [Valid] typed_Job_ensures (Alt-Ergo) (Trivial)
 [wp] Proved goals:    1 / 1
   Alt-Ergo:        1
 ------------------------------------------------------------