diff --git a/lib/ModuRes/Axioms.v b/lib/ModuRes/Axioms.v
new file mode 100644
index 0000000000000000000000000000000000000000..a9c9117186c2dd50d258d750bf71dce0529d7a96
--- /dev/null
+++ b/lib/ModuRes/Axioms.v
@@ -0,0 +1,4 @@
+(* This file defines all axioms we are relying on in our development. *)
+
+Axiom ProofIrrelevance: forall (P: Prop) (p q: P), p = q.
+Ltac pi p q := erewrite (ProofIrrelevance _ p q).
diff --git a/lib/ModuRes/RAConstr.v b/lib/ModuRes/RAConstr.v
index 3760237114513019ee0e6fb20e86d2c8a094e8cd..7677865f6efdd959365d9faa3e56e575f9aa70cf 100644
--- a/lib/ModuRes/RAConstr.v
+++ b/lib/ModuRes/RAConstr.v
@@ -1,5 +1,5 @@
 Require Import Ssreflect.ssreflect Ssreflect.ssrfun Omega.
-Require Import PreoMet RA.
+Require Import PreoMet RA Axioms.
 
 Local Open Scope ra_scope.
 Local Open Scope predom_scope.
@@ -331,13 +331,8 @@ Section Agreement.
     end.
 
   Local Ltac ra_ag_destr := repeat (match goal with [ x : ra_agree |- _ ] => destruct x end).
-
-  (* Land of dragons starts here *)
-  Axiom ProofIrrelevance: forall (P: Prop) (p q: P), p = q.
-  Ltac pi p q := erewrite (ProofIrrelevance _ p q).
-
   Local Ltac ra_ag_auto := first [by firstorder | split; [by firstorder|intros pv1 pv2; pi pv1 pv2; by firstorder ]].
-  
+
   Global Instance ra_agree_eq_equiv : Equivalence ra_agree_eq.
   Proof.
     split; repeat intro; ra_ag_destr; try (exact I || contradiction); [| |]. (* 3 goals left. *)