diff --git a/src/plugins/wp/cfgAnnot.ml b/src/plugins/wp/cfgAnnot.ml
index d6bc77f086a4b5a1202344190d8a0425ff607b53..12bdacececdc8d4b81f3e63d20815cb4348c9357 100644
--- a/src/plugins/wp/cfgAnnot.ml
+++ b/src/plugins/wp/cfgAnnot.ml
@@ -244,11 +244,17 @@ let get_terminates_hyp kf =
   | Defined (_, p) -> false, p
   | Assumed p -> true, p
 
+let check_variant_relation = function
+  | (_, None) -> ()
+  | (_, Some rel) ->
+      Wp_parameters.hypothesis ~once:true
+        "'%a' relation must be well-founded" Cil_printer.pp_logic_info rel
+
 let get_decreases_goal kf =
   let defined t = WpPropId.mk_decrease_id kf Kglobal t, t in
   match Annotations.decreases ~populate:false kf with
   | None -> None
-  | Some v -> Some (defined v)
+  | Some v -> check_variant_relation v ; Some (defined v)
 
 let get_decreases_hyp kf =
   Annotations.decreases ~populate:false kf
@@ -475,6 +481,7 @@ let mk_variant_properties kf s ca v =
   (vpos_id, vpos), (vdecr_id, vdecr)
 
 let mk_variant_relation_property kf s ca v li =
+  check_variant_relation (v, Some li) ;
   let vid = WpPropId.mk_var_id kf s ca in
   let loc = v.term_loc in
   let lcurr = Clabels.to_logic (Clabels.loop_current s) in
diff --git a/src/plugins/wp/cfgWP.ml b/src/plugins/wp/cfgWP.ml
index a0ce9b9ceb9002717941b0b7eb8ba911a7147c6c..1bece5f01aec932f3af778a959cd5f43e5a90461 100644
--- a/src/plugins/wp/cfgWP.ml
+++ b/src/plugins/wp/cfgWP.ml
@@ -1153,11 +1153,12 @@ struct
                      Kernel_function.pretty kf
                | (_, r), Some (_, r')
                  when not @@ Option.equal Logic_utils.is_same_logic_info r r' ->
+                   let none : Pretty_utils.sformat = "<None>" in
                    Warning.error
                      "On call to %a, relation (%a) does not match caller (%a)"
                      Kernel_function.pretty kf
-                     (Pretty_utils.pp_opt Cil_printer.pp_logic_info) r
-                     (Pretty_utils.pp_opt Cil_printer.pp_logic_info) r'
+                     (Pretty_utils.pp_opt ~none Cil_printer.pp_logic_info) r
+                     (Pretty_utils.pp_opt ~none Cil_printer.pp_logic_info) r'
                | (caller_d, rel), Some (callee_d,_ ) ->
                    let rel caller callee = match rel with
                      | None ->
diff --git a/src/plugins/wp/tests/wp_acsl/oracle/decreases.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/decreases.0.res.oracle
index 767145c220c03197a7224d2ec0bdde5dfb30e024..1c0241e1df554d73e7532ba44337a17271391de2 100644
--- a/src/plugins/wp/tests/wp_acsl/oracle/decreases.0.res.oracle
+++ b/src/plugins/wp/tests/wp_acsl/oracle/decreases.0.res.oracle
@@ -2,7 +2,9 @@
 [kernel] Parsing decreases.i (no preprocessing)
 [wp] Running WP plugin...
 [wp] Warning: Missing RTE guards
+[wp:hypothesis] decreases.i:108: Warning: 'Rel' relation must be well-founded
 [wp] decreases.i:71: Warning: No decreases clause for missing_2
+[wp:hypothesis] decreases.i:108: Warning: 'Wrong' relation must be well-founded
 [wp] decreases.i:109: Warning: 
   On call to mw1, relation (Wrong) does not match caller (Rel)
 [wp] decreases.i:105: Warning: 
diff --git a/src/plugins/wp/tests/wp_acsl/oracle/decreases.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/decreases.1.res.oracle
index 337093493a982ac42bbbb4a4f3356b75a2460d2a..503c417688228f6147615930e14def6d47a18997 100644
--- a/src/plugins/wp/tests/wp_acsl/oracle/decreases.1.res.oracle
+++ b/src/plugins/wp/tests/wp_acsl/oracle/decreases.1.res.oracle
@@ -2,7 +2,9 @@
 [kernel] Parsing decreases.i (no preprocessing)
 [wp] Running WP plugin...
 [wp] Warning: Missing RTE guards
+[wp:hypothesis] decreases.i:108: Warning: 'Rel' relation must be well-founded
 [wp] decreases.i:71: Warning: No decreases clause for missing_2
+[wp:hypothesis] decreases.i:108: Warning: 'Wrong' relation must be well-founded
 [wp] decreases.i:109: Warning: 
   On call to mw1, relation (Wrong) does not match caller (Rel)
 [wp] decreases.i:105: Warning: 
diff --git a/src/plugins/wp/tests/wp_acsl/oracle/terminates_formulae.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/terminates_formulae.res.oracle
index 7f2d6c08cd7b533456c5a10be2a2672df999650a..d9bd70618f767ce264637cc140e5ee6199eadd5d 100644
--- a/src/plugins/wp/tests/wp_acsl/oracle/terminates_formulae.res.oracle
+++ b/src/plugins/wp/tests/wp_acsl/oracle/terminates_formulae.res.oracle
@@ -2,6 +2,8 @@
 [kernel] Parsing terminates_formulae.i (no preprocessing)
 [wp] Running WP plugin...
 [wp] Warning: Missing RTE guards
+[wp:hypothesis] terminates_formulae.i:90: Warning: 
+  'Rel' relation must be well-founded
 [wp] [CFG] Goal general_variant_terminates : Valid (Trivial)
 [wp] [CFG] Goal variant_terminates : Valid (Trivial)
 [wp] terminates_formulae.i:90: Warning: 
diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/decreases.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/decreases.0.res.oracle
index a1c4020be5c7a8588d970801ea395150ab465677..62e79688690128fd49abbc91e54a2e4c560df53d 100644
--- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/decreases.0.res.oracle
+++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/decreases.0.res.oracle
@@ -2,7 +2,9 @@
 [kernel] Parsing decreases.i (no preprocessing)
 [wp] Running WP plugin...
 [wp] Warning: Missing RTE guards
+[wp:hypothesis] decreases.i:108: Warning: 'Rel' relation must be well-founded
 [wp] decreases.i:71: Warning: No decreases clause for missing_2
+[wp:hypothesis] decreases.i:108: Warning: 'Wrong' relation must be well-founded
 [wp] decreases.i:109: Warning: 
   On call to mw1, relation (Wrong) does not match caller (Rel)
 [wp] decreases.i:105: Warning: 
diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/decreases.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/decreases.1.res.oracle
index 915be052f0a124108d616c119cefce648b34c930..63e3fba1f7426ce524df7c0e5c5f319d6f557091 100644
--- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/decreases.1.res.oracle
+++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/decreases.1.res.oracle
@@ -2,7 +2,9 @@
 [kernel] Parsing decreases.i (no preprocessing)
 [wp] Running WP plugin...
 [wp] Warning: Missing RTE guards
+[wp:hypothesis] decreases.i:108: Warning: 'Rel' relation must be well-founded
 [wp] decreases.i:71: Warning: No decreases clause for missing_2
+[wp:hypothesis] decreases.i:108: Warning: 'Wrong' relation must be well-founded
 [wp] decreases.i:109: Warning: 
   On call to mw1, relation (Wrong) does not match caller (Rel)
 [wp] decreases.i:105: Warning: 
diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/terminates_formulae.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/terminates_formulae.res.oracle
index 06ea7290c298cdd98ad984e8ba91747fe6475396..cf90d39ba3fc26032ba408a35e80cd1c1badb88a 100644
--- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/terminates_formulae.res.oracle
+++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/terminates_formulae.res.oracle
@@ -2,6 +2,8 @@
 [kernel] Parsing terminates_formulae.i (no preprocessing)
 [wp] Running WP plugin...
 [wp] Warning: Missing RTE guards
+[wp:hypothesis] terminates_formulae.i:90: Warning: 
+  'Rel' relation must be well-founded
 [wp] [CFG] Goal general_variant_terminates : Valid (Trivial)
 [wp] [CFG] Goal variant_terminates : Valid (Trivial)
 [wp] terminates_formulae.i:90: Warning: