diff --git a/Lebesgue/measure.v b/Lebesgue/measure.v
index 23071e15412c078ea15d53e8618e3a0b0dfab261..2329625acc9084046f9a7c313a76abb18410b0e1 100644
--- a/Lebesgue/measure.v
+++ b/Lebesgue/measure.v
@@ -894,6 +894,40 @@ apply negligible_ext with (A1 := fun _ => False); try intuition.
 apply negligible_emptyset.
 Qed.
 
+(* Lemma 884 p. 183 (v3) *)
+Lemma ae_modus_ponens_gen :
+  forall (P Q : nat -> (nat -> F) -> Prop),
+    (forall f, ae (fun x => (forall j, P j (fun i => f i x)) ->
+                            (forall k, Q k (fun i => f i x)))) ->
+    forall f, (forall j, ae (fun x => P j (fun i => f i x))) ->
+              (forall k, ae (fun x => Q k (fun i => f i x))).
+Proof.
+intros P Q H f HP k.
+pose (PP := fun f => forall j, P j f).
+pose (QQ := fun f => forall k, Q k f).
+pose (Ax := fun (XX : (nat -> F) -> Prop) f (x : E) => XX (fun i => f i x)).
+pose (B := fun x => (Ax PP f x -> Ax QQ f x) /\ Ax PP f x).
+apply negligible_le with  (fun x => ~ (Ax PP f x -> Ax QQ f x) \/ ~ Ax PP f x).
+intros x HQ; apply not_and_or; intuition.
+apply negligible_union; unfold Ax, PP, QQ.
+unfold ae in H; try easy.
+apply negligible_ext with (fun x => exists j, ~ P j (fun i => f i x)).
+intros; split; [apply ex_not_not_all | apply not_all_ex_not].
+apply negligible_union_countable; easy.
+Qed.
+
+(* Lemma 885 p. 183 (v3) *)
+Lemma ae_imply_gen :
+  forall (P Q : nat -> (nat -> F) -> Prop),
+    (forall (f : nat -> E -> F) x,
+      (forall j, P j (fun i => f i x)) -> (forall k, Q k (fun i => f i x))) ->
+    forall f, (forall j, ae (fun x => P j (fun i => f i x))) ->
+              (forall k, ae (fun x => Q k (fun i => f i x))).
+Proof.
+intros P Q H; apply ae_modus_ponens_gen; intros f.
+apply ae_everywhere; auto.
+Qed.
+
 (* Lemma 646 p. 124 *)
 Lemma ae_modus_ponens :
   forall (A1 A2 : E -> Prop), ae (fun x => A1 x -> A2 x) -> ae A1 -> ae A2.
@@ -1045,6 +1079,36 @@ Context {F : Type}.
 Context {gen : (E -> Prop) -> Prop}.
 Variable mu : measure gen.
 
+Lemma ae_op_compat_new :
+  forall (R1 R2 : F -> F -> Prop) (op : (nat -> F) -> F),
+    (forall (f g : nat -> E -> F) x,
+      (forall n, R1 (f n x) (g n x)) ->
+      R2 (op (fun i => f i x)) (op (fun i => g i x))) ->
+    (forall (f g : nat -> E -> F),
+      (forall n, ae mu (fun x => R1 (f n x) (g n x))) ->
+      ae mu (fun x => R2 (op (fun i => f i x)) (op (fun i => g i x)))).
+Proof.
+intros R1 R2 op H f g H1.
+pose (Q := fun k fg => match k with
+  | 0%nat => R2 (op (fun i => fst (fg i))) (op (fun i => snd (fg i)))
+  | S _ => True
+  end).
+apply ae_ext with (fun x => Q 0%nat (fun i => (f i x, g i x))); try easy.
+assert (HQ : forall k, ae mu (fun x => Q k (fun i => (f i x, g i x)))); try easy.
+pose (P := fun j fg => match j with
+  | 0%nat => forall i : nat, R1 (fst (fg i)) (snd (fg i))
+  | S _ => True
+  end).
+apply ae_imply_gen with P.
+(* *)
+intros fg x HP k; destruct k; try easy; simpl.
+apply H with (f := fun i x => fst (fg i x)) (g := fun i x => snd (fg i x)).
+apply (HP 0%nat).
+(* *)
+intros j; destruct j; simpl; try apply ae_True.
+apply ae_inter_countable; easy.
+Qed.
+
 (* Lemma 659 pp. 126-127 (with I = nat) *)
 Lemma ae_op_compat :
   forall (P Q : F -> F -> Prop) (op : (nat -> F) -> F) (y0 : F),