diff --git a/src/correct_store_buffer.v b/src/correct_store_buffer.v
index 08afe789b94b71b56a6d15238cecfdabea57f1b6..d5a61740dccb535e3fada718cd1153477e3e81ee 100644
--- a/src/correct_store_buffer.v
+++ b/src/correct_store_buffer.v
@@ -129,6 +129,42 @@ Definition legal_sb_transitions_P suE suE' sbState sbState' :=
   | false, false, Empty => sbState' = Empty
   end.
 
+Section monotonicity.
+  Variable opc : opcode.
+  Variable st : stage.
+  Variable e e' d : instr_kind.
+  Variable t tpre tpost t' tpre' tpost' tc tc' : trace_kind.
+  Variable i : nat.
+  Variable sbState sbState' : sbStateT.
+
+  Hypothesis Ht : t = tpre ++ e :: tpost.
+  Hypothesis Ht' : t' = tpre' ++ e' :: tpost'.
+  Hypothesis Hleb : pipeline_leb t t' = true.
+  Hypothesis Hi : i = List.length tpre.
+  Hypothesis Hi' : i = List.length tpre'.
+  Hypothesis Hl : pipeline_leb tpre tpre' = true.
+  Hypothesis Hl' : pipeline_leb tpost tpost' = true.
+  Hypothesis Htc : tc = cycle sbState t.
+  Hypothesis Htc' : tc' = cycle sbState' t'.
+  Hypothesis Hlsbt : legal_sb_transitions st sbState sbState'.
+  Hypothesis HlsbtP : legal_sb_transitions_P (existsb is_in_su t) (existsb is_in_su t') sbState sbState'.
+  Hypothesis Hlu : forall st opc, st = Lu -> opc = Load.
+  Hypothesis Hsu : forall st opc, st = Su -> opc = Store.
+
+  (* Long hypotheses related to stage occupation. *)
+  Hypothesis HfreeLsuPersists :
+    free (existsb is_in_su t) sbState t (opc, (Sp, 0)) = true ->
+    free (existsb is_in_su t') sbState' t' (opc, (Sp, 0)) = true.
+
+  Hypothesis HfreeFromLsuPersists :
+    free (existsb is_in_su t) sbState t (opc, (Lsu, 0)) = true ->
+    free (existsb is_in_su t') sbState' t' (opc, (Lsu, 0)) = true.
+
+  Hypothesis HbusFree :
+    busFree (existsb is_in_su t) sbState = true ->
+    busFree (existsb is_in_su t') sbState' = true.
+End monotonicity.
+
 Section constrained.
   Variable opc : opcode.
   Variable e d : instr_kind.