probability.conditional_probabilityMathlib.Probability.ConditionalProbability

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Rishikesh Vaishnav. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Rishikesh Vaishnav
 -/
-import Mathbin.MeasureTheory.Measure.MeasureSpace
+import MeasureTheory.Measure.MeasureSpace
 
 #align_import probability.conditional_probability from "leanprover-community/mathlib"@"781cb2eed038c4caf53bdbd8d20a95e5822d77df"
 
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Rishikesh Vaishnav. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Rishikesh Vaishnav
-
-! This file was ported from Lean 3 source module probability.conditional_probability
-! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.MeasureTheory.Measure.MeasureSpace
 
+#align_import probability.conditional_probability from "leanprover-community/mathlib"@"781cb2eed038c4caf53bdbd8d20a95e5822d77df"
+
 /-!
 # Conditional Probability
 
Diff
@@ -85,12 +85,11 @@ def cond (s : Set Ω) : Measure Ω :=
 
 end Definitions
 
--- mathport name: probability_theory.cond
 scoped notation μ "[" s "|" t "]" => ProbabilityTheory.cond μ t s
 
--- mathport name: probability_theory.cond_fn
 scoped notation:60 μ "[|" t "]" => ProbabilityTheory.cond μ t
 
+#print ProbabilityTheory.cond_isProbabilityMeasure /-
 /-- The conditional probability measure of any finite measure on any set of positive measure
 is a probability measure. -/
 theorem cond_isProbabilityMeasure [IsFiniteMeasure μ] (hcs : μ s ≠ 0) :
@@ -99,6 +98,7 @@ theorem cond_isProbabilityMeasure [IsFiniteMeasure μ] (hcs : μ s ≠ 0) :
     rw [cond, measure.smul_apply, measure.restrict_apply MeasurableSet.univ, Set.univ_inter]
     exact ENNReal.inv_mul_cancel hcs (measure_ne_top _ s)⟩
 #align probability_theory.cond_is_probability_measure ProbabilityTheory.cond_isProbabilityMeasure
+-/
 
 section Bayes
 
@@ -115,10 +115,12 @@ theorem cond_univ [IsProbabilityMeasure μ] : μ[|Set.univ] = μ := by
 #align probability_theory.cond_univ ProbabilityTheory.cond_univ
 -/
 
+#print ProbabilityTheory.cond_apply /-
 /-- The axiomatic definition of conditional probability derived from a measure-theoretic one. -/
 theorem cond_apply (hms : MeasurableSet s) (t : Set Ω) : μ[t|s] = (μ s)⁻¹ * μ (s ∩ t) := by
   rw [cond, measure.smul_apply, measure.restrict_apply' hms, Set.inter_comm]; rfl
 #align probability_theory.cond_apply ProbabilityTheory.cond_apply
+-/
 
 #print ProbabilityTheory.cond_inter_self /-
 theorem cond_inter_self (hms : MeasurableSet s) (t : Set Ω) : μ[s ∩ t|s] = μ[t|s] := by
@@ -126,6 +128,7 @@ theorem cond_inter_self (hms : MeasurableSet s) (t : Set Ω) : μ[s ∩ t|s] = 
 #align probability_theory.cond_inter_self ProbabilityTheory.cond_inter_self
 -/
 
+#print ProbabilityTheory.inter_pos_of_cond_ne_zero /-
 theorem inter_pos_of_cond_ne_zero (hms : MeasurableSet s) (hcst : μ[t|s] ≠ 0) : 0 < μ (s ∩ t) :=
   by
   refine' pos_iff_ne_zero.mpr (right_ne_zero_of_mul _)
@@ -133,7 +136,9 @@ theorem inter_pos_of_cond_ne_zero (hms : MeasurableSet s) (hcst : μ[t|s] ≠ 0)
   convert hcst
   simp [hms, Set.inter_comm]
 #align probability_theory.inter_pos_of_cond_ne_zero ProbabilityTheory.inter_pos_of_cond_ne_zero
+-/
 
+#print ProbabilityTheory.cond_pos_of_inter_ne_zero /-
 theorem cond_pos_of_inter_ne_zero [IsFiniteMeasure μ] (hms : MeasurableSet s)
     (hci : μ (s ∩ t) ≠ 0) : 0 < (μ[|s]) t :=
   by
@@ -141,7 +146,9 @@ theorem cond_pos_of_inter_ne_zero [IsFiniteMeasure μ] (hms : MeasurableSet s)
   refine' ENNReal.mul_pos _ hci
   exact ennreal.inv_ne_zero.mpr (measure_ne_top _ _)
 #align probability_theory.cond_pos_of_inter_ne_zero ProbabilityTheory.cond_pos_of_inter_ne_zero
+-/
 
+#print ProbabilityTheory.cond_cond_eq_cond_inter' /-
 theorem cond_cond_eq_cond_inter' (hms : MeasurableSet s) (hmt : MeasurableSet t) (hcs : μ s ≠ ∞)
     (hci : μ (s ∩ t) ≠ 0) : μ[|s][|t] = μ[|s ∩ t] :=
   by
@@ -151,24 +158,32 @@ theorem cond_cond_eq_cond_inter' (hms : MeasurableSet s) (hmt : MeasurableSet t)
   simp [*, hms.inter hmt, cond_apply, ← mul_assoc, ← Set.inter_assoc, ENNReal.mul_inv, mul_comm, ←
     mul_assoc, ENNReal.inv_mul_cancel]
 #align probability_theory.cond_cond_eq_cond_inter' ProbabilityTheory.cond_cond_eq_cond_inter'
+-/
 
+#print ProbabilityTheory.cond_cond_eq_cond_inter /-
 /-- Conditioning first on `s` and then on `t` results in the same measure as conditioning
 on `s ∩ t`. -/
 theorem cond_cond_eq_cond_inter [IsFiniteMeasure μ] (hms : MeasurableSet s) (hmt : MeasurableSet t)
     (hci : μ (s ∩ t) ≠ 0) : μ[|s][|t] = μ[|s ∩ t] :=
   cond_cond_eq_cond_inter' μ hms hmt (measure_ne_top μ s) hci
 #align probability_theory.cond_cond_eq_cond_inter ProbabilityTheory.cond_cond_eq_cond_inter
+-/
 
+#print ProbabilityTheory.cond_mul_eq_inter' /-
 theorem cond_mul_eq_inter' (hms : MeasurableSet s) (hcs : μ s ≠ 0) (hcs' : μ s ≠ ∞) (t : Set Ω) :
     μ[t|s] * μ s = μ (s ∩ t) := by
   rw [cond_apply μ hms t, mul_comm, ← mul_assoc, ENNReal.mul_inv_cancel hcs hcs', one_mul]
 #align probability_theory.cond_mul_eq_inter' ProbabilityTheory.cond_mul_eq_inter'
+-/
 
+#print ProbabilityTheory.cond_mul_eq_inter /-
 theorem cond_mul_eq_inter [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0) (t : Set Ω) :
     μ[t|s] * μ s = μ (s ∩ t) :=
   cond_mul_eq_inter' μ hms hcs (measure_ne_top _ s) t
 #align probability_theory.cond_mul_eq_inter ProbabilityTheory.cond_mul_eq_inter
+-/
 
+#print ProbabilityTheory.cond_add_cond_compl_eq /-
 /-- A version of the law of total probability. -/
 theorem cond_add_cond_compl_eq [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0)
     (hcs' : μ (sᶜ) ≠ 0) : μ[t|s] * μ s + μ[t|sᶜ] * μ (sᶜ) = μ t :=
@@ -177,7 +192,9 @@ theorem cond_add_cond_compl_eq [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs
     Set.inter_comm _ t]
   exact measure_inter_add_diff t hms
 #align probability_theory.cond_add_cond_compl_eq ProbabilityTheory.cond_add_cond_compl_eq
+-/
 
+#print ProbabilityTheory.cond_eq_inv_mul_cond_mul /-
 /-- **Bayes' Theorem** -/
 theorem cond_eq_inv_mul_cond_mul [IsFiniteMeasure μ] (hms : MeasurableSet s)
     (hmt : MeasurableSet t) : μ[t|s] = (μ s)⁻¹ * μ[s|t] * μ t :=
@@ -186,6 +203,7 @@ theorem cond_eq_inv_mul_cond_mul [IsFiniteMeasure μ] (hms : MeasurableSet s)
   · simp [cond, ht, measure.restrict_apply hmt, Or.inr (measure_inter_null_of_null_left s ht)]
   · rw [mul_assoc, cond_mul_eq_inter μ hmt ht s, Set.inter_comm, cond_apply _ hms]
 #align probability_theory.cond_eq_inv_mul_cond_mul ProbabilityTheory.cond_eq_inv_mul_cond_mul
+-/
 
 end Bayes
 
Diff
@@ -93,11 +93,12 @@ scoped notation:60 μ "[|" t "]" => ProbabilityTheory.cond μ t
 
 /-- The conditional probability measure of any finite measure on any set of positive measure
 is a probability measure. -/
-theorem cond_probabilityMeasure [FiniteMeasure μ] (hcs : μ s ≠ 0) : ProbabilityMeasure <| μ[|s] :=
+theorem cond_isProbabilityMeasure [IsFiniteMeasure μ] (hcs : μ s ≠ 0) :
+    IsProbabilityMeasure <| μ[|s] :=
   ⟨by
     rw [cond, measure.smul_apply, measure.restrict_apply MeasurableSet.univ, Set.univ_inter]
     exact ENNReal.inv_mul_cancel hcs (measure_ne_top _ s)⟩
-#align probability_theory.cond_is_probability_measure ProbabilityTheory.cond_probabilityMeasure
+#align probability_theory.cond_is_probability_measure ProbabilityTheory.cond_isProbabilityMeasure
 
 section Bayes
 
@@ -109,7 +110,7 @@ theorem cond_empty : μ[|∅] = 0 := by simp [cond]
 
 #print ProbabilityTheory.cond_univ /-
 @[simp]
-theorem cond_univ [ProbabilityMeasure μ] : μ[|Set.univ] = μ := by
+theorem cond_univ [IsProbabilityMeasure μ] : μ[|Set.univ] = μ := by
   simp [cond, measure_univ, measure.restrict_univ]
 #align probability_theory.cond_univ ProbabilityTheory.cond_univ
 -/
@@ -133,8 +134,9 @@ theorem inter_pos_of_cond_ne_zero (hms : MeasurableSet s) (hcst : μ[t|s] ≠ 0)
   simp [hms, Set.inter_comm]
 #align probability_theory.inter_pos_of_cond_ne_zero ProbabilityTheory.inter_pos_of_cond_ne_zero
 
-theorem cond_pos_of_inter_ne_zero [FiniteMeasure μ] (hms : MeasurableSet s) (hci : μ (s ∩ t) ≠ 0) :
-    0 < (μ[|s]) t := by
+theorem cond_pos_of_inter_ne_zero [IsFiniteMeasure μ] (hms : MeasurableSet s)
+    (hci : μ (s ∩ t) ≠ 0) : 0 < (μ[|s]) t :=
+  by
   rw [cond_apply _ hms]
   refine' ENNReal.mul_pos _ hci
   exact ennreal.inv_ne_zero.mpr (measure_ne_top _ _)
@@ -152,7 +154,7 @@ theorem cond_cond_eq_cond_inter' (hms : MeasurableSet s) (hmt : MeasurableSet t)
 
 /-- Conditioning first on `s` and then on `t` results in the same measure as conditioning
 on `s ∩ t`. -/
-theorem cond_cond_eq_cond_inter [FiniteMeasure μ] (hms : MeasurableSet s) (hmt : MeasurableSet t)
+theorem cond_cond_eq_cond_inter [IsFiniteMeasure μ] (hms : MeasurableSet s) (hmt : MeasurableSet t)
     (hci : μ (s ∩ t) ≠ 0) : μ[|s][|t] = μ[|s ∩ t] :=
   cond_cond_eq_cond_inter' μ hms hmt (measure_ne_top μ s) hci
 #align probability_theory.cond_cond_eq_cond_inter ProbabilityTheory.cond_cond_eq_cond_inter
@@ -162,13 +164,13 @@ theorem cond_mul_eq_inter' (hms : MeasurableSet s) (hcs : μ s ≠ 0) (hcs' : μ
   rw [cond_apply μ hms t, mul_comm, ← mul_assoc, ENNReal.mul_inv_cancel hcs hcs', one_mul]
 #align probability_theory.cond_mul_eq_inter' ProbabilityTheory.cond_mul_eq_inter'
 
-theorem cond_mul_eq_inter [FiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0) (t : Set Ω) :
+theorem cond_mul_eq_inter [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0) (t : Set Ω) :
     μ[t|s] * μ s = μ (s ∩ t) :=
   cond_mul_eq_inter' μ hms hcs (measure_ne_top _ s) t
 #align probability_theory.cond_mul_eq_inter ProbabilityTheory.cond_mul_eq_inter
 
 /-- A version of the law of total probability. -/
-theorem cond_add_cond_compl_eq [FiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0)
+theorem cond_add_cond_compl_eq [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0)
     (hcs' : μ (sᶜ) ≠ 0) : μ[t|s] * μ s + μ[t|sᶜ] * μ (sᶜ) = μ t :=
   by
   rw [cond_mul_eq_inter μ hms hcs, cond_mul_eq_inter μ hms.compl hcs', Set.inter_comm _ t,
@@ -177,8 +179,9 @@ theorem cond_add_cond_compl_eq [FiniteMeasure μ] (hms : MeasurableSet s) (hcs :
 #align probability_theory.cond_add_cond_compl_eq ProbabilityTheory.cond_add_cond_compl_eq
 
 /-- **Bayes' Theorem** -/
-theorem cond_eq_inv_mul_cond_mul [FiniteMeasure μ] (hms : MeasurableSet s) (hmt : MeasurableSet t) :
-    μ[t|s] = (μ s)⁻¹ * μ[s|t] * μ t := by
+theorem cond_eq_inv_mul_cond_mul [IsFiniteMeasure μ] (hms : MeasurableSet s)
+    (hmt : MeasurableSet t) : μ[t|s] = (μ s)⁻¹ * μ[s|t] * μ t :=
+  by
   by_cases ht : μ t = 0
   · simp [cond, ht, measure.restrict_apply hmt, Or.inr (measure_inter_null_of_null_left s ht)]
   · rw [mul_assoc, cond_mul_eq_inter μ hmt ht s, Set.inter_comm, cond_apply _ hms]
Diff
@@ -64,7 +64,7 @@ conditional, conditioned, bayes
 
 noncomputable section
 
-open ENNReal
+open scoped ENNReal
 
 open MeasureTheory MeasurableSpace
 
Diff
@@ -91,12 +91,6 @@ scoped notation μ "[" s "|" t "]" => ProbabilityTheory.cond μ t s
 -- mathport name: probability_theory.cond_fn
 scoped notation:60 μ "[|" t "]" => ProbabilityTheory.cond μ t
 
-/- warning: probability_theory.cond_is_probability_measure -> ProbabilityTheory.cond_probabilityMeasure is a dubious translation:
-lean 3 declaration is
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (MeasureTheory.ProbabilityMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s))
-but is expected to have type
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (MeasureTheory.ProbabilityMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s))
-Case conversion may be inaccurate. Consider using '#align probability_theory.cond_is_probability_measure ProbabilityTheory.cond_probabilityMeasureₓ'. -/
 /-- The conditional probability measure of any finite measure on any set of positive measure
 is a probability measure. -/
 theorem cond_probabilityMeasure [FiniteMeasure μ] (hcs : μ s ≠ 0) : ProbabilityMeasure <| μ[|s] :=
@@ -120,12 +114,6 @@ theorem cond_univ [ProbabilityMeasure μ] : μ[|Set.univ] = μ := by
 #align probability_theory.cond_univ ProbabilityTheory.cond_univ
 -/
 
-/- warning: probability_theory.cond_apply -> ProbabilityTheory.cond_apply is a dubious translation:
-lean 3 declaration is
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (forall (t : Set.{u1} Ω), Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (Inv.inv.{0} ENNReal ENNReal.hasInv (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t))))
-but is expected to have type
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (forall (t : Set.{u1} Ω), Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (Inv.inv.{0} ENNReal ENNReal.instInvENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t))))
-Case conversion may be inaccurate. Consider using '#align probability_theory.cond_apply ProbabilityTheory.cond_applyₓ'. -/
 /-- The axiomatic definition of conditional probability derived from a measure-theoretic one. -/
 theorem cond_apply (hms : MeasurableSet s) (t : Set Ω) : μ[t|s] = (μ s)⁻¹ * μ (s ∩ t) := by
   rw [cond, measure.smul_apply, measure.restrict_apply' hms, Set.inter_comm]; rfl
@@ -137,12 +125,6 @@ theorem cond_inter_self (hms : MeasurableSet s) (t : Set Ω) : μ[s ∩ t|s] = 
 #align probability_theory.cond_inter_self ProbabilityTheory.cond_inter_self
 -/
 
-/- warning: probability_theory.inter_pos_of_cond_ne_zero -> ProbabilityTheory.inter_pos_of_cond_ne_zero is a dubious translation:
-lean 3 declaration is
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (LT.lt.{0} ENNReal (Preorder.toHasLt.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)))
-but is expected to have type
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OmegaCompletePartialOrder.toPartialOrder.{0} ENNReal (CompleteLattice.instOmegaCompletePartialOrder.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)))
-Case conversion may be inaccurate. Consider using '#align probability_theory.inter_pos_of_cond_ne_zero ProbabilityTheory.inter_pos_of_cond_ne_zeroₓ'. -/
 theorem inter_pos_of_cond_ne_zero (hms : MeasurableSet s) (hcst : μ[t|s] ≠ 0) : 0 < μ (s ∩ t) :=
   by
   refine' pos_iff_ne_zero.mpr (right_ne_zero_of_mul _)
@@ -151,12 +133,6 @@ theorem inter_pos_of_cond_ne_zero (hms : MeasurableSet s) (hcst : μ[t|s] ≠ 0)
   simp [hms, Set.inter_comm]
 #align probability_theory.inter_pos_of_cond_ne_zero ProbabilityTheory.inter_pos_of_cond_ne_zero
 
-/- warning: probability_theory.cond_pos_of_inter_ne_zero -> ProbabilityTheory.cond_pos_of_inter_ne_zero is a dubious translation:
-lean 3 declaration is
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (LT.lt.{0} ENNReal (Preorder.toHasLt.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t))
-but is expected to have type
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OmegaCompletePartialOrder.toPartialOrder.{0} ENNReal (CompleteLattice.instOmegaCompletePartialOrder.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t))
-Case conversion may be inaccurate. Consider using '#align probability_theory.cond_pos_of_inter_ne_zero ProbabilityTheory.cond_pos_of_inter_ne_zeroₓ'. -/
 theorem cond_pos_of_inter_ne_zero [FiniteMeasure μ] (hms : MeasurableSet s) (hci : μ (s ∩ t) ≠ 0) :
     0 < (μ[|s]) t := by
   rw [cond_apply _ hms]
@@ -164,12 +140,6 @@ theorem cond_pos_of_inter_ne_zero [FiniteMeasure μ] (hms : MeasurableSet s) (hc
   exact ennreal.inv_ne_zero.mpr (measure_ne_top _ _)
 #align probability_theory.cond_pos_of_inter_ne_zero ProbabilityTheory.cond_pos_of_inter_ne_zero
 
-/- warning: probability_theory.cond_cond_eq_cond_inter' -> ProbabilityTheory.cond_cond_eq_cond_inter' is a dubious translation:
-lean 3 declaration is
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (MeasurableSet.{u1} Ω m t) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s) t) (ProbabilityTheory.cond.{u1} Ω m μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)))
-but is expected to have type
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (MeasurableSet.{u1} Ω m t) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s) t) (ProbabilityTheory.cond.{u1} Ω m μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)))
-Case conversion may be inaccurate. Consider using '#align probability_theory.cond_cond_eq_cond_inter' ProbabilityTheory.cond_cond_eq_cond_inter'ₓ'. -/
 theorem cond_cond_eq_cond_inter' (hms : MeasurableSet s) (hmt : MeasurableSet t) (hcs : μ s ≠ ∞)
     (hci : μ (s ∩ t) ≠ 0) : μ[|s][|t] = μ[|s ∩ t] :=
   by
@@ -180,12 +150,6 @@ theorem cond_cond_eq_cond_inter' (hms : MeasurableSet s) (hmt : MeasurableSet t)
     mul_assoc, ENNReal.inv_mul_cancel]
 #align probability_theory.cond_cond_eq_cond_inter' ProbabilityTheory.cond_cond_eq_cond_inter'
 
-/- warning: probability_theory.cond_cond_eq_cond_inter -> ProbabilityTheory.cond_cond_eq_cond_inter is a dubious translation:
-lean 3 declaration is
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (MeasurableSet.{u1} Ω m t) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s) t) (ProbabilityTheory.cond.{u1} Ω m μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)))
-but is expected to have type
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (MeasurableSet.{u1} Ω m t) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s) t) (ProbabilityTheory.cond.{u1} Ω m μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)))
-Case conversion may be inaccurate. Consider using '#align probability_theory.cond_cond_eq_cond_inter ProbabilityTheory.cond_cond_eq_cond_interₓ'. -/
 /-- Conditioning first on `s` and then on `t` results in the same measure as conditioning
 on `s ∩ t`. -/
 theorem cond_cond_eq_cond_inter [FiniteMeasure μ] (hms : MeasurableSet s) (hmt : MeasurableSet t)
@@ -193,34 +157,16 @@ theorem cond_cond_eq_cond_inter [FiniteMeasure μ] (hms : MeasurableSet s) (hmt
   cond_cond_eq_cond_inter' μ hms hmt (measure_ne_top μ s) hci
 #align probability_theory.cond_cond_eq_cond_inter ProbabilityTheory.cond_cond_eq_cond_inter
 
-/- warning: probability_theory.cond_mul_eq_inter' -> ProbabilityTheory.cond_mul_eq_inter' is a dubious translation:
-lean 3 declaration is
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))) -> (forall (t : Set.{u1} Ω), Eq.{1} ENNReal (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)))
-but is expected to have type
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))) -> (forall (t : Set.{u1} Ω), Eq.{1} ENNReal (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)))
-Case conversion may be inaccurate. Consider using '#align probability_theory.cond_mul_eq_inter' ProbabilityTheory.cond_mul_eq_inter'ₓ'. -/
 theorem cond_mul_eq_inter' (hms : MeasurableSet s) (hcs : μ s ≠ 0) (hcs' : μ s ≠ ∞) (t : Set Ω) :
     μ[t|s] * μ s = μ (s ∩ t) := by
   rw [cond_apply μ hms t, mul_comm, ← mul_assoc, ENNReal.mul_inv_cancel hcs hcs', one_mul]
 #align probability_theory.cond_mul_eq_inter' ProbabilityTheory.cond_mul_eq_inter'
 
-/- warning: probability_theory.cond_mul_eq_inter -> ProbabilityTheory.cond_mul_eq_inter is a dubious translation:
-lean 3 declaration is
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (forall (t : Set.{u1} Ω), Eq.{1} ENNReal (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)))
-but is expected to have type
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (forall (t : Set.{u1} Ω), Eq.{1} ENNReal (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)))
-Case conversion may be inaccurate. Consider using '#align probability_theory.cond_mul_eq_inter ProbabilityTheory.cond_mul_eq_interₓ'. -/
 theorem cond_mul_eq_inter [FiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0) (t : Set Ω) :
     μ[t|s] * μ s = μ (s ∩ t) :=
   cond_mul_eq_inter' μ hms hcs (measure_ne_top _ s) t
 #align probability_theory.cond_mul_eq_inter ProbabilityTheory.cond_mul_eq_inter
 
-/- warning: probability_theory.cond_add_cond_compl_eq -> ProbabilityTheory.cond_add_cond_compl_eq is a dubious translation:
-lean 3 declaration is
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (HasCompl.compl.{u1} (Set.{u1} Ω) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} Ω) (Set.booleanAlgebra.{u1} Ω)) s)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Eq.{1} ENNReal (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toHasAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ (HasCompl.compl.{u1} (Set.{u1} Ω) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} Ω) (Set.booleanAlgebra.{u1} Ω)) s)) t) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (HasCompl.compl.{u1} (Set.{u1} Ω) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} Ω) (Set.booleanAlgebra.{u1} Ω)) s)))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ t))
-but is expected to have type
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (HasCompl.compl.{u1} (Set.{u1} Ω) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} Ω) (Set.instBooleanAlgebraSet.{u1} Ω)) s)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Eq.{1} ENNReal (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)))))))) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ (HasCompl.compl.{u1} (Set.{u1} Ω) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} Ω) (Set.instBooleanAlgebraSet.{u1} Ω)) s))) t) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (HasCompl.compl.{u1} (Set.{u1} Ω) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} Ω) (Set.instBooleanAlgebraSet.{u1} Ω)) s)))) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) t))
-Case conversion may be inaccurate. Consider using '#align probability_theory.cond_add_cond_compl_eq ProbabilityTheory.cond_add_cond_compl_eqₓ'. -/
 /-- A version of the law of total probability. -/
 theorem cond_add_cond_compl_eq [FiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0)
     (hcs' : μ (sᶜ) ≠ 0) : μ[t|s] * μ s + μ[t|sᶜ] * μ (sᶜ) = μ t :=
@@ -230,12 +176,6 @@ theorem cond_add_cond_compl_eq [FiniteMeasure μ] (hms : MeasurableSet s) (hcs :
   exact measure_inter_add_diff t hms
 #align probability_theory.cond_add_cond_compl_eq ProbabilityTheory.cond_add_cond_compl_eq
 
-/- warning: probability_theory.cond_eq_inv_mul_cond_mul -> ProbabilityTheory.cond_eq_inv_mul_cond_mul is a dubious translation:
-lean 3 declaration is
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (MeasurableSet.{u1} Ω m t) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (Inv.inv.{0} ENNReal ENNReal.hasInv (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ t) s)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ t)))
-but is expected to have type
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (MeasurableSet.{u1} Ω m t) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (Inv.inv.{0} ENNReal ENNReal.instInvENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ t)) s)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) t)))
-Case conversion may be inaccurate. Consider using '#align probability_theory.cond_eq_inv_mul_cond_mul ProbabilityTheory.cond_eq_inv_mul_cond_mulₓ'. -/
 /-- **Bayes' Theorem** -/
 theorem cond_eq_inv_mul_cond_mul [FiniteMeasure μ] (hms : MeasurableSet s) (hmt : MeasurableSet t) :
     μ[t|s] = (μ s)⁻¹ * μ[s|t] * μ t := by
Diff
@@ -127,10 +127,8 @@ but is expected to have type
   forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (forall (t : Set.{u1} Ω), Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (Inv.inv.{0} ENNReal ENNReal.instInvENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t))))
 Case conversion may be inaccurate. Consider using '#align probability_theory.cond_apply ProbabilityTheory.cond_applyₓ'. -/
 /-- The axiomatic definition of conditional probability derived from a measure-theoretic one. -/
-theorem cond_apply (hms : MeasurableSet s) (t : Set Ω) : μ[t|s] = (μ s)⁻¹ * μ (s ∩ t) :=
-  by
-  rw [cond, measure.smul_apply, measure.restrict_apply' hms, Set.inter_comm]
-  rfl
+theorem cond_apply (hms : MeasurableSet s) (t : Set Ω) : μ[t|s] = (μ s)⁻¹ * μ (s ∩ t) := by
+  rw [cond, measure.smul_apply, measure.restrict_apply' hms, Set.inter_comm]; rfl
 #align probability_theory.cond_apply ProbabilityTheory.cond_apply
 
 #print ProbabilityTheory.cond_inter_self /-
Diff
@@ -141,7 +141,7 @@ theorem cond_inter_self (hms : MeasurableSet s) (t : Set Ω) : μ[s ∩ t|s] = 
 
 /- warning: probability_theory.inter_pos_of_cond_ne_zero -> ProbabilityTheory.inter_pos_of_cond_ne_zero is a dubious translation:
 lean 3 declaration is
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)))
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (LT.lt.{0} ENNReal (Preorder.toHasLt.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)))
 but is expected to have type
   forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OmegaCompletePartialOrder.toPartialOrder.{0} ENNReal (CompleteLattice.instOmegaCompletePartialOrder.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)))
 Case conversion may be inaccurate. Consider using '#align probability_theory.inter_pos_of_cond_ne_zero ProbabilityTheory.inter_pos_of_cond_ne_zeroₓ'. -/
@@ -155,7 +155,7 @@ theorem inter_pos_of_cond_ne_zero (hms : MeasurableSet s) (hcst : μ[t|s] ≠ 0)
 
 /- warning: probability_theory.cond_pos_of_inter_ne_zero -> ProbabilityTheory.cond_pos_of_inter_ne_zero is a dubious translation:
 lean 3 declaration is
-  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t))
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (LT.lt.{0} ENNReal (Preorder.toHasLt.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t))
 but is expected to have type
   forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OmegaCompletePartialOrder.toPartialOrder.{0} ENNReal (CompleteLattice.instOmegaCompletePartialOrder.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t))
 Case conversion may be inaccurate. Consider using '#align probability_theory.cond_pos_of_inter_ne_zero ProbabilityTheory.cond_pos_of_inter_ne_zeroₓ'. -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Rishikesh Vaishnav
 
 ! This file was ported from Lean 3 source module probability.conditional_probability
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.MeasureTheory.Measure.MeasureSpace
 /-!
 # Conditional Probability
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines conditional probability and includes basic results relating to it.
 
 Given some measure `μ` defined on a measure space on some type `Ω` and some `s : set Ω`,
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Rishikesh Vaishnav
 
 ! This file was ported from Lean 3 source module probability.conditional_probability
-! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
+! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,9 +13,6 @@ import Mathbin.MeasureTheory.Measure.MeasureSpace
 /-!
 # Conditional Probability
 
-> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
-> Any changes to this file require a corresponding PR to mathlib4.
-
 This file defines conditional probability and includes basic results relating to it.
 
 Given some measure `μ` defined on a measure space on some type `Ω` and some `s : set Ω`,
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Rishikesh Vaishnav
 
 ! This file was ported from Lean 3 source module probability.conditional_probability
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.MeasureTheory.Measure.MeasureSpace
 /-!
 # Conditional Probability
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines conditional probability and includes basic results relating to it.
 
 Given some measure `μ` defined on a measure space on some type `Ω` and some `s : set Ω`,
Diff
@@ -71,12 +71,14 @@ namespace ProbabilityTheory
 
 section Definitions
 
+#print ProbabilityTheory.cond /-
 /-- The conditional probability measure of measure `μ` on set `s` is `μ` restricted to `s`
 and scaled by the inverse of `μ s` (to make it a probability measure):
 `(μ s)⁻¹ • μ.restrict s`. -/
 def cond (s : Set Ω) : Measure Ω :=
   (μ s)⁻¹ • μ.restrict s
 #align probability_theory.cond ProbabilityTheory.cond
+-/
 
 end Definitions
 
@@ -86,6 +88,12 @@ scoped notation μ "[" s "|" t "]" => ProbabilityTheory.cond μ t s
 -- mathport name: probability_theory.cond_fn
 scoped notation:60 μ "[|" t "]" => ProbabilityTheory.cond μ t
 
+/- warning: probability_theory.cond_is_probability_measure -> ProbabilityTheory.cond_probabilityMeasure is a dubious translation:
+lean 3 declaration is
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (MeasureTheory.ProbabilityMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s))
+but is expected to have type
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (MeasureTheory.ProbabilityMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s))
+Case conversion may be inaccurate. Consider using '#align probability_theory.cond_is_probability_measure ProbabilityTheory.cond_probabilityMeasureₓ'. -/
 /-- The conditional probability measure of any finite measure on any set of positive measure
 is a probability measure. -/
 theorem cond_probabilityMeasure [FiniteMeasure μ] (hcs : μ s ≠ 0) : ProbabilityMeasure <| μ[|s] :=
@@ -96,15 +104,25 @@ theorem cond_probabilityMeasure [FiniteMeasure μ] (hcs : μ s ≠ 0) : Probabil
 
 section Bayes
 
+#print ProbabilityTheory.cond_empty /-
 @[simp]
 theorem cond_empty : μ[|∅] = 0 := by simp [cond]
 #align probability_theory.cond_empty ProbabilityTheory.cond_empty
+-/
 
+#print ProbabilityTheory.cond_univ /-
 @[simp]
 theorem cond_univ [ProbabilityMeasure μ] : μ[|Set.univ] = μ := by
   simp [cond, measure_univ, measure.restrict_univ]
 #align probability_theory.cond_univ ProbabilityTheory.cond_univ
+-/
 
+/- warning: probability_theory.cond_apply -> ProbabilityTheory.cond_apply is a dubious translation:
+lean 3 declaration is
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (forall (t : Set.{u1} Ω), Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (Inv.inv.{0} ENNReal ENNReal.hasInv (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t))))
+but is expected to have type
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (forall (t : Set.{u1} Ω), Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (Inv.inv.{0} ENNReal ENNReal.instInvENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t))))
+Case conversion may be inaccurate. Consider using '#align probability_theory.cond_apply ProbabilityTheory.cond_applyₓ'. -/
 /-- The axiomatic definition of conditional probability derived from a measure-theoretic one. -/
 theorem cond_apply (hms : MeasurableSet s) (t : Set Ω) : μ[t|s] = (μ s)⁻¹ * μ (s ∩ t) :=
   by
@@ -112,10 +130,18 @@ theorem cond_apply (hms : MeasurableSet s) (t : Set Ω) : μ[t|s] = (μ s)⁻¹
   rfl
 #align probability_theory.cond_apply ProbabilityTheory.cond_apply
 
+#print ProbabilityTheory.cond_inter_self /-
 theorem cond_inter_self (hms : MeasurableSet s) (t : Set Ω) : μ[s ∩ t|s] = μ[t|s] := by
   rw [cond_apply _ hms, ← Set.inter_assoc, Set.inter_self, ← cond_apply _ hms]
 #align probability_theory.cond_inter_self ProbabilityTheory.cond_inter_self
+-/
 
+/- warning: probability_theory.inter_pos_of_cond_ne_zero -> ProbabilityTheory.inter_pos_of_cond_ne_zero is a dubious translation:
+lean 3 declaration is
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)))
+but is expected to have type
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OmegaCompletePartialOrder.toPartialOrder.{0} ENNReal (CompleteLattice.instOmegaCompletePartialOrder.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)))
+Case conversion may be inaccurate. Consider using '#align probability_theory.inter_pos_of_cond_ne_zero ProbabilityTheory.inter_pos_of_cond_ne_zeroₓ'. -/
 theorem inter_pos_of_cond_ne_zero (hms : MeasurableSet s) (hcst : μ[t|s] ≠ 0) : 0 < μ (s ∩ t) :=
   by
   refine' pos_iff_ne_zero.mpr (right_ne_zero_of_mul _)
@@ -124,6 +150,12 @@ theorem inter_pos_of_cond_ne_zero (hms : MeasurableSet s) (hcst : μ[t|s] ≠ 0)
   simp [hms, Set.inter_comm]
 #align probability_theory.inter_pos_of_cond_ne_zero ProbabilityTheory.inter_pos_of_cond_ne_zero
 
+/- warning: probability_theory.cond_pos_of_inter_ne_zero -> ProbabilityTheory.cond_pos_of_inter_ne_zero is a dubious translation:
+lean 3 declaration is
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t))
+but is expected to have type
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (OmegaCompletePartialOrder.toPartialOrder.{0} ENNReal (CompleteLattice.instOmegaCompletePartialOrder.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t))
+Case conversion may be inaccurate. Consider using '#align probability_theory.cond_pos_of_inter_ne_zero ProbabilityTheory.cond_pos_of_inter_ne_zeroₓ'. -/
 theorem cond_pos_of_inter_ne_zero [FiniteMeasure μ] (hms : MeasurableSet s) (hci : μ (s ∩ t) ≠ 0) :
     0 < (μ[|s]) t := by
   rw [cond_apply _ hms]
@@ -131,6 +163,12 @@ theorem cond_pos_of_inter_ne_zero [FiniteMeasure μ] (hms : MeasurableSet s) (hc
   exact ennreal.inv_ne_zero.mpr (measure_ne_top _ _)
 #align probability_theory.cond_pos_of_inter_ne_zero ProbabilityTheory.cond_pos_of_inter_ne_zero
 
+/- warning: probability_theory.cond_cond_eq_cond_inter' -> ProbabilityTheory.cond_cond_eq_cond_inter' is a dubious translation:
+lean 3 declaration is
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (MeasurableSet.{u1} Ω m t) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s) t) (ProbabilityTheory.cond.{u1} Ω m μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)))
+but is expected to have type
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (MeasurableSet.{u1} Ω m t) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s) t) (ProbabilityTheory.cond.{u1} Ω m μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)))
+Case conversion may be inaccurate. Consider using '#align probability_theory.cond_cond_eq_cond_inter' ProbabilityTheory.cond_cond_eq_cond_inter'ₓ'. -/
 theorem cond_cond_eq_cond_inter' (hms : MeasurableSet s) (hmt : MeasurableSet t) (hcs : μ s ≠ ∞)
     (hci : μ (s ∩ t) ≠ 0) : μ[|s][|t] = μ[|s ∩ t] :=
   by
@@ -141,6 +179,12 @@ theorem cond_cond_eq_cond_inter' (hms : MeasurableSet s) (hmt : MeasurableSet t)
     mul_assoc, ENNReal.inv_mul_cancel]
 #align probability_theory.cond_cond_eq_cond_inter' ProbabilityTheory.cond_cond_eq_cond_inter'
 
+/- warning: probability_theory.cond_cond_eq_cond_inter -> ProbabilityTheory.cond_cond_eq_cond_inter is a dubious translation:
+lean 3 declaration is
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (MeasurableSet.{u1} Ω m t) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s) t) (ProbabilityTheory.cond.{u1} Ω m μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)))
+but is expected to have type
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (MeasurableSet.{u1} Ω m t) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Eq.{succ u1} (MeasureTheory.Measure.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s) t) (ProbabilityTheory.cond.{u1} Ω m μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)))
+Case conversion may be inaccurate. Consider using '#align probability_theory.cond_cond_eq_cond_inter ProbabilityTheory.cond_cond_eq_cond_interₓ'. -/
 /-- Conditioning first on `s` and then on `t` results in the same measure as conditioning
 on `s ∩ t`. -/
 theorem cond_cond_eq_cond_inter [FiniteMeasure μ] (hms : MeasurableSet s) (hmt : MeasurableSet t)
@@ -148,16 +192,34 @@ theorem cond_cond_eq_cond_inter [FiniteMeasure μ] (hms : MeasurableSet s) (hmt
   cond_cond_eq_cond_inter' μ hms hmt (measure_ne_top μ s) hci
 #align probability_theory.cond_cond_eq_cond_inter ProbabilityTheory.cond_cond_eq_cond_inter
 
+/- warning: probability_theory.cond_mul_eq_inter' -> ProbabilityTheory.cond_mul_eq_inter' is a dubious translation:
+lean 3 declaration is
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder)))) -> (forall (t : Set.{u1} Ω), Eq.{1} ENNReal (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)))
+but is expected to have type
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω}, (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal)))) -> (forall (t : Set.{u1} Ω), Eq.{1} ENNReal (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)))
+Case conversion may be inaccurate. Consider using '#align probability_theory.cond_mul_eq_inter' ProbabilityTheory.cond_mul_eq_inter'ₓ'. -/
 theorem cond_mul_eq_inter' (hms : MeasurableSet s) (hcs : μ s ≠ 0) (hcs' : μ s ≠ ∞) (t : Set Ω) :
     μ[t|s] * μ s = μ (s ∩ t) := by
   rw [cond_apply μ hms t, mul_comm, ← mul_assoc, ENNReal.mul_inv_cancel hcs hcs', one_mul]
 #align probability_theory.cond_mul_eq_inter' ProbabilityTheory.cond_mul_eq_inter'
 
+/- warning: probability_theory.cond_mul_eq_inter -> ProbabilityTheory.cond_mul_eq_inter is a dubious translation:
+lean 3 declaration is
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (forall (t : Set.{u1} Ω), Eq.{1} ENNReal (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (Inter.inter.{u1} (Set.{u1} Ω) (Set.hasInter.{u1} Ω) s t)))
+but is expected to have type
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (forall (t : Set.{u1} Ω), Eq.{1} ENNReal (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (Inter.inter.{u1} (Set.{u1} Ω) (Set.instInterSet.{u1} Ω) s t)))
+Case conversion may be inaccurate. Consider using '#align probability_theory.cond_mul_eq_inter ProbabilityTheory.cond_mul_eq_interₓ'. -/
 theorem cond_mul_eq_inter [FiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0) (t : Set Ω) :
     μ[t|s] * μ s = μ (s ∩ t) :=
   cond_mul_eq_inter' μ hms hcs (measure_ne_top _ s) t
 #align probability_theory.cond_mul_eq_inter ProbabilityTheory.cond_mul_eq_inter
 
+/- warning: probability_theory.cond_add_cond_compl_eq -> ProbabilityTheory.cond_add_cond_compl_eq is a dubious translation:
+lean 3 declaration is
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Ne.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (HasCompl.compl.{u1} (Set.{u1} Ω) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} Ω) (Set.booleanAlgebra.{u1} Ω)) s)) (OfNat.ofNat.{0} ENNReal 0 (OfNat.mk.{0} ENNReal 0 (Zero.zero.{0} ENNReal ENNReal.hasZero)))) -> (Eq.{1} ENNReal (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toHasAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ (HasCompl.compl.{u1} (Set.{u1} Ω) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} Ω) (Set.booleanAlgebra.{u1} Ω)) s)) t) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ (HasCompl.compl.{u1} (Set.{u1} Ω) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} Ω) (Set.booleanAlgebra.{u1} Ω)) s)))) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ t))
+but is expected to have type
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Ne.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (HasCompl.compl.{u1} (Set.{u1} Ω) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} Ω) (Set.instBooleanAlgebraSet.{u1} Ω)) s)) (OfNat.ofNat.{0} ENNReal 0 (Zero.toOfNat0.{0} ENNReal instENNRealZero))) -> (Eq.{1} ENNReal (HAdd.hAdd.{0, 0, 0} ENNReal ENNReal ENNReal (instHAdd.{0} ENNReal (Distrib.toAdd.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)))))))) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ (HasCompl.compl.{u1} (Set.{u1} Ω) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} Ω) (Set.instBooleanAlgebraSet.{u1} Ω)) s))) t) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) (HasCompl.compl.{u1} (Set.{u1} Ω) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} Ω) (Set.instBooleanAlgebraSet.{u1} Ω)) s)))) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) t))
+Case conversion may be inaccurate. Consider using '#align probability_theory.cond_add_cond_compl_eq ProbabilityTheory.cond_add_cond_compl_eqₓ'. -/
 /-- A version of the law of total probability. -/
 theorem cond_add_cond_compl_eq [FiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0)
     (hcs' : μ (sᶜ) ≠ 0) : μ[t|s] * μ s + μ[t|sᶜ] * μ (sᶜ) = μ t :=
@@ -167,6 +229,12 @@ theorem cond_add_cond_compl_eq [FiniteMeasure μ] (hms : MeasurableSet s) (hcs :
   exact measure_inter_add_diff t hms
 #align probability_theory.cond_add_cond_compl_eq ProbabilityTheory.cond_add_cond_compl_eq
 
+/- warning: probability_theory.cond_eq_inv_mul_cond_mul -> ProbabilityTheory.cond_eq_inv_mul_cond_mul is a dubious translation:
+lean 3 declaration is
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (MeasurableSet.{u1} Ω m t) -> (Eq.{1} ENNReal (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ s) t) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (Inv.inv.{0} ENNReal ENNReal.hasInv (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ s)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) (ProbabilityTheory.cond.{u1} Ω m μ t) s)) (coeFn.{succ u1, succ u1} (MeasureTheory.Measure.{u1} Ω m) (fun (_x : MeasureTheory.Measure.{u1} Ω m) => (Set.{u1} Ω) -> ENNReal) (MeasureTheory.Measure.instCoeFun.{u1} Ω m) μ t)))
+but is expected to have type
+  forall {Ω : Type.{u1}} {m : MeasurableSpace.{u1} Ω} (μ : MeasureTheory.Measure.{u1} Ω m) {s : Set.{u1} Ω} {t : Set.{u1} Ω} [_inst_1 : MeasureTheory.FiniteMeasure.{u1} Ω m μ], (MeasurableSet.{u1} Ω m s) -> (MeasurableSet.{u1} Ω m t) -> (Eq.{1} ENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ s)) t) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (Inv.inv.{0} ENNReal ENNReal.instInvENNReal (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) s)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m (ProbabilityTheory.cond.{u1} Ω m μ t)) s)) (MeasureTheory.OuterMeasure.measureOf.{u1} Ω (MeasureTheory.Measure.toOuterMeasure.{u1} Ω m μ) t)))
+Case conversion may be inaccurate. Consider using '#align probability_theory.cond_eq_inv_mul_cond_mul ProbabilityTheory.cond_eq_inv_mul_cond_mulₓ'. -/
 /-- **Bayes' Theorem** -/
 theorem cond_eq_inv_mul_cond_mul [FiniteMeasure μ] (hms : MeasurableSet s) (hmt : MeasurableSet t) :
     μ[t|s] = (μ s)⁻¹ * μ[s|t] * μ t := by
Diff
@@ -88,12 +88,11 @@ scoped notation:60 μ "[|" t "]" => ProbabilityTheory.cond μ t
 
 /-- The conditional probability measure of any finite measure on any set of positive measure
 is a probability measure. -/
-theorem cond_isProbabilityMeasure [IsFiniteMeasure μ] (hcs : μ s ≠ 0) :
-    IsProbabilityMeasure <| μ[|s] :=
+theorem cond_probabilityMeasure [FiniteMeasure μ] (hcs : μ s ≠ 0) : ProbabilityMeasure <| μ[|s] :=
   ⟨by
     rw [cond, measure.smul_apply, measure.restrict_apply MeasurableSet.univ, Set.univ_inter]
     exact ENNReal.inv_mul_cancel hcs (measure_ne_top _ s)⟩
-#align probability_theory.cond_is_probability_measure ProbabilityTheory.cond_isProbabilityMeasure
+#align probability_theory.cond_is_probability_measure ProbabilityTheory.cond_probabilityMeasure
 
 section Bayes
 
@@ -102,7 +101,7 @@ theorem cond_empty : μ[|∅] = 0 := by simp [cond]
 #align probability_theory.cond_empty ProbabilityTheory.cond_empty
 
 @[simp]
-theorem cond_univ [IsProbabilityMeasure μ] : μ[|Set.univ] = μ := by
+theorem cond_univ [ProbabilityMeasure μ] : μ[|Set.univ] = μ := by
   simp [cond, measure_univ, measure.restrict_univ]
 #align probability_theory.cond_univ ProbabilityTheory.cond_univ
 
@@ -125,9 +124,8 @@ theorem inter_pos_of_cond_ne_zero (hms : MeasurableSet s) (hcst : μ[t|s] ≠ 0)
   simp [hms, Set.inter_comm]
 #align probability_theory.inter_pos_of_cond_ne_zero ProbabilityTheory.inter_pos_of_cond_ne_zero
 
-theorem cond_pos_of_inter_ne_zero [IsFiniteMeasure μ] (hms : MeasurableSet s)
-    (hci : μ (s ∩ t) ≠ 0) : 0 < (μ[|s]) t :=
-  by
+theorem cond_pos_of_inter_ne_zero [FiniteMeasure μ] (hms : MeasurableSet s) (hci : μ (s ∩ t) ≠ 0) :
+    0 < (μ[|s]) t := by
   rw [cond_apply _ hms]
   refine' ENNReal.mul_pos _ hci
   exact ennreal.inv_ne_zero.mpr (measure_ne_top _ _)
@@ -145,7 +143,7 @@ theorem cond_cond_eq_cond_inter' (hms : MeasurableSet s) (hmt : MeasurableSet t)
 
 /-- Conditioning first on `s` and then on `t` results in the same measure as conditioning
 on `s ∩ t`. -/
-theorem cond_cond_eq_cond_inter [IsFiniteMeasure μ] (hms : MeasurableSet s) (hmt : MeasurableSet t)
+theorem cond_cond_eq_cond_inter [FiniteMeasure μ] (hms : MeasurableSet s) (hmt : MeasurableSet t)
     (hci : μ (s ∩ t) ≠ 0) : μ[|s][|t] = μ[|s ∩ t] :=
   cond_cond_eq_cond_inter' μ hms hmt (measure_ne_top μ s) hci
 #align probability_theory.cond_cond_eq_cond_inter ProbabilityTheory.cond_cond_eq_cond_inter
@@ -155,13 +153,13 @@ theorem cond_mul_eq_inter' (hms : MeasurableSet s) (hcs : μ s ≠ 0) (hcs' : μ
   rw [cond_apply μ hms t, mul_comm, ← mul_assoc, ENNReal.mul_inv_cancel hcs hcs', one_mul]
 #align probability_theory.cond_mul_eq_inter' ProbabilityTheory.cond_mul_eq_inter'
 
-theorem cond_mul_eq_inter [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0) (t : Set Ω) :
+theorem cond_mul_eq_inter [FiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0) (t : Set Ω) :
     μ[t|s] * μ s = μ (s ∩ t) :=
   cond_mul_eq_inter' μ hms hcs (measure_ne_top _ s) t
 #align probability_theory.cond_mul_eq_inter ProbabilityTheory.cond_mul_eq_inter
 
 /-- A version of the law of total probability. -/
-theorem cond_add_cond_compl_eq [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0)
+theorem cond_add_cond_compl_eq [FiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0)
     (hcs' : μ (sᶜ) ≠ 0) : μ[t|s] * μ s + μ[t|sᶜ] * μ (sᶜ) = μ t :=
   by
   rw [cond_mul_eq_inter μ hms hcs, cond_mul_eq_inter μ hms.compl hcs', Set.inter_comm _ t,
@@ -170,9 +168,8 @@ theorem cond_add_cond_compl_eq [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs
 #align probability_theory.cond_add_cond_compl_eq ProbabilityTheory.cond_add_cond_compl_eq
 
 /-- **Bayes' Theorem** -/
-theorem cond_eq_inv_mul_cond_mul [IsFiniteMeasure μ] (hms : MeasurableSet s)
-    (hmt : MeasurableSet t) : μ[t|s] = (μ s)⁻¹ * μ[s|t] * μ t :=
-  by
+theorem cond_eq_inv_mul_cond_mul [FiniteMeasure μ] (hms : MeasurableSet s) (hmt : MeasurableSet t) :
+    μ[t|s] = (μ s)⁻¹ * μ[s|t] * μ t := by
   by_cases ht : μ t = 0
   · simp [cond, ht, measure.restrict_apply hmt, Or.inr (measure_inter_null_of_null_left s ht)]
   · rw [mul_assoc, cond_mul_eq_inter μ hmt ht s, Set.inter_comm, cond_apply _ hms]
Diff
@@ -88,12 +88,12 @@ scoped notation:60 μ "[|" t "]" => ProbabilityTheory.cond μ t
 
 /-- The conditional probability measure of any finite measure on any set of positive measure
 is a probability measure. -/
-theorem condIsProbabilityMeasure [IsFiniteMeasure μ] (hcs : μ s ≠ 0) :
+theorem cond_isProbabilityMeasure [IsFiniteMeasure μ] (hcs : μ s ≠ 0) :
     IsProbabilityMeasure <| μ[|s] :=
   ⟨by
     rw [cond, measure.smul_apply, measure.restrict_apply MeasurableSet.univ, Set.univ_inter]
     exact ENNReal.inv_mul_cancel hcs (measure_ne_top _ s)⟩
-#align probability_theory.cond_is_probability_measure ProbabilityTheory.condIsProbabilityMeasure
+#align probability_theory.cond_is_probability_measure ProbabilityTheory.cond_isProbabilityMeasure
 
 section Bayes
 
Diff
@@ -61,7 +61,7 @@ conditional, conditioned, bayes
 
 noncomputable section
 
-open Ennreal
+open ENNReal
 
 open MeasureTheory MeasurableSpace
 
@@ -92,7 +92,7 @@ theorem condIsProbabilityMeasure [IsFiniteMeasure μ] (hcs : μ s ≠ 0) :
     IsProbabilityMeasure <| μ[|s] :=
   ⟨by
     rw [cond, measure.smul_apply, measure.restrict_apply MeasurableSet.univ, Set.univ_inter]
-    exact Ennreal.inv_mul_cancel hcs (measure_ne_top _ s)⟩
+    exact ENNReal.inv_mul_cancel hcs (measure_ne_top _ s)⟩
 #align probability_theory.cond_is_probability_measure ProbabilityTheory.condIsProbabilityMeasure
 
 section Bayes
@@ -129,7 +129,7 @@ theorem cond_pos_of_inter_ne_zero [IsFiniteMeasure μ] (hms : MeasurableSet s)
     (hci : μ (s ∩ t) ≠ 0) : 0 < (μ[|s]) t :=
   by
   rw [cond_apply _ hms]
-  refine' Ennreal.mul_pos _ hci
+  refine' ENNReal.mul_pos _ hci
   exact ennreal.inv_ne_zero.mpr (measure_ne_top _ _)
 #align probability_theory.cond_pos_of_inter_ne_zero ProbabilityTheory.cond_pos_of_inter_ne_zero
 
@@ -139,8 +139,8 @@ theorem cond_cond_eq_cond_inter' (hms : MeasurableSet s) (hmt : MeasurableSet t)
   have hcs : μ s ≠ 0 :=
     (μ.to_outer_measure.pos_of_subset_ne_zero (Set.inter_subset_left _ _) hci).ne'
   ext u
-  simp [*, hms.inter hmt, cond_apply, ← mul_assoc, ← Set.inter_assoc, Ennreal.mul_inv, mul_comm, ←
-    mul_assoc, Ennreal.inv_mul_cancel]
+  simp [*, hms.inter hmt, cond_apply, ← mul_assoc, ← Set.inter_assoc, ENNReal.mul_inv, mul_comm, ←
+    mul_assoc, ENNReal.inv_mul_cancel]
 #align probability_theory.cond_cond_eq_cond_inter' ProbabilityTheory.cond_cond_eq_cond_inter'
 
 /-- Conditioning first on `s` and then on `t` results in the same measure as conditioning
@@ -152,7 +152,7 @@ theorem cond_cond_eq_cond_inter [IsFiniteMeasure μ] (hms : MeasurableSet s) (hm
 
 theorem cond_mul_eq_inter' (hms : MeasurableSet s) (hcs : μ s ≠ 0) (hcs' : μ s ≠ ∞) (t : Set Ω) :
     μ[t|s] * μ s = μ (s ∩ t) := by
-  rw [cond_apply μ hms t, mul_comm, ← mul_assoc, Ennreal.mul_inv_cancel hcs hcs', one_mul]
+  rw [cond_apply μ hms t, mul_comm, ← mul_assoc, ENNReal.mul_inv_cancel hcs hcs', one_mul]
 #align probability_theory.cond_mul_eq_inter' ProbabilityTheory.cond_mul_eq_inter'
 
 theorem cond_mul_eq_inter [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0) (t : Set Ω) :

Changes in mathlib4

mathlib3
mathlib4
feat: Basic conditional probability lemmas (#10785)

From PFR

Diff
@@ -52,15 +52,17 @@ the conditioning set has non-zero measure should be named using the abbreviation
 (rather than `hnzi`) should be used for a hypothesis ensuring that `μ[|s ∩ t]` is defined.
 
 ## Tags
+
 conditional, conditioned, bayes
 -/
 
-
 noncomputable section
 
-open ENNReal MeasureTheory MeasurableSpace
+open ENNReal MeasureTheory MeasureTheory.Measure MeasurableSpace Set
+open scoped BigOperators
 
-variable {Ω : Type*} {m : MeasurableSpace Ω} (μ : Measure Ω) {s t : Set Ω}
+variable {Ω Ω' α : Type*} {m : MeasurableSpace Ω} {m' : MeasurableSpace Ω'} (μ : Measure Ω)
+  {s t : Set Ω}
 
 namespace ProbabilityTheory
 
@@ -76,12 +78,18 @@ def cond (s : Set Ω) : Measure Ω :=
 end Definitions
 
 @[inherit_doc] scoped notation μ "[" s "|" t "]" => ProbabilityTheory.cond μ t s
-@[inherit_doc] scoped notation:60 μ "[|" t "]" => ProbabilityTheory.cond μ t
+@[inherit_doc] scoped notation:max μ "[|" t "]" => ProbabilityTheory.cond μ t
+
+/-- The conditional probability measure of measure `μ` on `{ω | X ω = x}`.
+
+It is `μ` restricted to `{ω | X ω = x}` and scaled by the inverse of `μ {ω | X ω = x}`
+(to make it a probability measure): `(μ {ω | X ω = x})⁻¹ • μ.restrict {ω | X ω = x}`. -/
+scoped notation:max μ "[|" X " ← " x "]" => μ[|X ⁻¹' {x}]
 
 /-- The conditional probability measure of any measure on any set of finite positive measure
 is a probability measure. -/
 theorem cond_isProbabilityMeasure_of_finite (hcs : μ s ≠ 0) (hs : μ s ≠ ∞) :
-    IsProbabilityMeasure (μ[|s]) :=
+    IsProbabilityMeasure μ[|s] :=
   ⟨by
     unfold ProbabilityTheory.cond
     simp only [Measure.smul_toOuterMeasure, OuterMeasure.coe_smul, Pi.smul_apply,
@@ -91,21 +99,15 @@ theorem cond_isProbabilityMeasure_of_finite (hcs : μ s ≠ 0) (hs : μ s ≠ 
 /-- The conditional probability measure of any finite measure on any set of positive measure
 is a probability measure. -/
 theorem cond_isProbabilityMeasure [IsFiniteMeasure μ] (hcs : μ s ≠ 0) :
-    IsProbabilityMeasure (μ[|s]) := cond_isProbabilityMeasure_of_finite μ hcs (measure_ne_top μ s)
+    IsProbabilityMeasure μ[|s] := cond_isProbabilityMeasure_of_finite μ hcs (measure_ne_top μ s)
 #align probability_theory.cond_is_probability_measure ProbabilityTheory.cond_isProbabilityMeasure
 
-instance cond_isFiniteMeasure :
-    IsFiniteMeasure (μ[|s]) where
-  measure_univ_lt_top := by
-    unfold ProbabilityTheory.cond
-    have : (μ s)⁻¹ * μ s < ⊤ := by
-      have : (μ s)⁻¹ * μ s ≤ 1 := by
-        apply ENNReal.le_inv_iff_mul_le.mp
-        rfl
-      exact lt_of_le_of_lt this ENNReal.one_lt_top
-    simp_all only [MeasurableSet.univ, Measure.restrict_apply, Set.univ_inter,
-      le_refl, Measure.smul_toOuterMeasure, OuterMeasure.coe_smul, Pi.smul_apply,
-      smul_eq_mul]
+instance cond_isFiniteMeasure : IsFiniteMeasure μ[|s] := by
+  constructor
+  simp only [Measure.smul_toOuterMeasure, OuterMeasure.coe_smul, Pi.smul_apply, MeasurableSet.univ,
+    Measure.restrict_apply, Set.univ_inter, smul_eq_mul, ProbabilityTheory.cond,
+    ← ENNReal.div_eq_inv_mul]
+  exact ENNReal.div_self_le_one.trans_lt ENNReal.one_lt_top
 
 theorem cond_toMeasurable_eq :
     μ[|(toMeasurable μ s)] = μ[|s] := by
@@ -114,15 +116,9 @@ theorem cond_toMeasurable_eq :
   · simp [hnt]
   · simp [Measure.restrict_toMeasurable hnt]
 
-theorem cond_absolutelyContinuous :
-    μ[|s] ≪ μ := by
-  intro t ht
-  unfold ProbabilityTheory.cond
-  rw [Measure.smul_apply, smul_eq_mul]
-  apply mul_eq_zero.mpr
-  refine Or.inr (le_antisymm ?_ (zero_le _))
-  exact ht ▸ Measure.restrict_apply_le s t
-
+variable {μ} in
+lemma cond_absolutelyContinuous : μ[|s] ≪ μ :=
+  smul_absolutelyContinuous.trans restrict_le_self.absolutelyContinuous
 
 section Bayes
 
@@ -135,13 +131,17 @@ theorem cond_univ [IsProbabilityMeasure μ] : μ[|Set.univ] = μ := by
   simp [cond, measure_univ, Measure.restrict_univ]
 #align probability_theory.cond_univ ProbabilityTheory.cond_univ
 
+@[simp] lemma cond_eq_zero (hμs : μ s ≠ ⊤) : μ[|s] = 0 ↔ μ s = 0 := by simp [cond, hμs]
+
+lemma cond_eq_zero_of_meas_eq_zero (hμs : μ s = 0) : μ[|s] = 0 := by simp [hμs]
+
 /-- The axiomatic definition of conditional probability derived from a measure-theoretic one. -/
 theorem cond_apply (hms : MeasurableSet s) (t : Set Ω) : μ[t|s] = (μ s)⁻¹ * μ (s ∩ t) := by
   rw [cond, Measure.smul_apply, Measure.restrict_apply' hms, Set.inter_comm, smul_eq_mul]
 #align probability_theory.cond_apply ProbabilityTheory.cond_apply
 
- theorem cond_apply' {t : Set Ω} (hA : MeasurableSet t) : μ[t|s] = (μ s)⁻¹ * μ (s ∩ t) := by
-   rw [cond, Measure.smul_apply, Measure.restrict_apply hA, Set.inter_comm, smul_eq_mul]
+theorem cond_apply' {t : Set Ω} (hA : MeasurableSet t) : μ[t|s] = (μ s)⁻¹ * μ (s ∩ t) := by
+  rw [cond, Measure.smul_apply, Measure.restrict_apply hA, Set.inter_comm, smul_eq_mul]
 
 theorem cond_inter_self (hms : MeasurableSet s) (t : Set Ω) : μ[s ∩ t|s] = μ[t|s] := by
   rw [cond_apply _ hms, ← Set.inter_assoc, Set.inter_self, ← cond_apply _ hms]
@@ -155,42 +155,48 @@ theorem inter_pos_of_cond_ne_zero (hms : MeasurableSet s) (hcst : μ[t|s] ≠ 0)
 #align probability_theory.inter_pos_of_cond_ne_zero ProbabilityTheory.inter_pos_of_cond_ne_zero
 
 theorem cond_pos_of_inter_ne_zero [IsFiniteMeasure μ]
-    (hms : MeasurableSet s) (hci : μ (s ∩ t) ≠ 0) : 0 < (μ[|s]) t := by
+    (hms : MeasurableSet s) (hci : μ (s ∩ t) ≠ 0) : 0 < μ[|s] t := by
   rw [cond_apply _ hms]
   refine' ENNReal.mul_pos _ hci
   exact ENNReal.inv_ne_zero.mpr (measure_ne_top _ _)
 #align probability_theory.cond_pos_of_inter_ne_zero ProbabilityTheory.cond_pos_of_inter_ne_zero
 
-theorem cond_cond_eq_cond_inter' (hms : MeasurableSet s) (hmt : MeasurableSet t) (hcs : μ s ≠ ∞)
-    (hci : μ (s ∩ t) ≠ 0) : μ[|s][|t] = μ[|s ∩ t] := by
-  have hcs' : μ s ≠ 0 :=
-    (μ.toOuterMeasure.pos_of_subset_ne_zero (Set.inter_subset_left _ _) hci).ne'
+lemma cond_cond_eq_cond_inter' (hms : MeasurableSet s) (hmt : MeasurableSet t) (hcs : μ s ≠ ∞) :
+    μ[|s][|t] = μ[|s ∩ t] := by
   ext u
-  simp [*, hms.inter hmt, cond_apply, ← mul_assoc, ← Set.inter_assoc, ENNReal.mul_inv, mul_comm, ←
-    mul_assoc, ENNReal.mul_inv_cancel]
+  rw [cond_apply _ hmt, cond_apply _ hms, cond_apply _ hms, cond_apply _ (hms.inter hmt)]
+  obtain hst | hst := eq_or_ne (μ (s ∩ t)) 0
+  · have : μ (s ∩ t ∩ u) = 0 :=
+      le_antisymm (le_trans (measure_mono (Set.inter_subset_left _ _)) hst.le) bot_le
+    simp [this, ← Set.inter_assoc]
+  · have hcs' : μ s ≠ 0 :=
+      (μ.toOuterMeasure.pos_of_subset_ne_zero (Set.inter_subset_left _ _) hst).ne'
+    simp [*, hms.inter hmt, cond_apply, ← mul_assoc, ← Set.inter_assoc, ENNReal.mul_inv, mul_comm, ←
+      mul_assoc, ENNReal.mul_inv_cancel]
 #align probability_theory.cond_cond_eq_cond_inter' ProbabilityTheory.cond_cond_eq_cond_inter'
 
 /-- Conditioning first on `s` and then on `t` results in the same measure as conditioning
 on `s ∩ t`. -/
-theorem cond_cond_eq_cond_inter [IsFiniteMeasure μ] (hms : MeasurableSet s) (hmt : MeasurableSet t)
-    (hci : μ (s ∩ t) ≠ 0) : μ[|s][|t] = μ[|s ∩ t] :=
-  cond_cond_eq_cond_inter' μ hms hmt (measure_ne_top μ s) hci
+theorem cond_cond_eq_cond_inter [IsFiniteMeasure μ] (hms : MeasurableSet s)
+    (hmt : MeasurableSet t) : μ[|s][|t] = μ[|s ∩ t] :=
+  cond_cond_eq_cond_inter' μ hms hmt (measure_ne_top μ s)
 #align probability_theory.cond_cond_eq_cond_inter ProbabilityTheory.cond_cond_eq_cond_inter
 
-theorem cond_mul_eq_inter' (hms : MeasurableSet s) (hcs : μ s ≠ 0) (hcs' : μ s ≠ ∞) (t : Set Ω) :
+theorem cond_mul_eq_inter' (hms : MeasurableSet s) (hcs' : μ s ≠ ∞) (t : Set Ω) :
     μ[t|s] * μ s = μ (s ∩ t) := by
-  rw [cond_apply μ hms t, mul_comm, ← mul_assoc, ENNReal.mul_inv_cancel hcs hcs', one_mul]
+  obtain hcs | hcs := eq_or_ne (μ s) 0
+  · simp [hcs, measure_inter_null_of_null_left]
+  · rw [cond_apply μ hms t, mul_comm, ← mul_assoc, ENNReal.mul_inv_cancel hcs hcs', one_mul]
 #align probability_theory.cond_mul_eq_inter' ProbabilityTheory.cond_mul_eq_inter'
 
-theorem cond_mul_eq_inter [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0) (t : Set Ω) :
-    μ[t|s] * μ s = μ (s ∩ t) :=
-  cond_mul_eq_inter' μ hms hcs (measure_ne_top _ s) t
+theorem cond_mul_eq_inter [IsFiniteMeasure μ] (hms : MeasurableSet s) (t : Set Ω) :
+    μ[t|s] * μ s = μ (s ∩ t) := cond_mul_eq_inter' μ hms (measure_ne_top _ s) t
 #align probability_theory.cond_mul_eq_inter ProbabilityTheory.cond_mul_eq_inter
 
 /-- A version of the law of total probability. -/
-theorem cond_add_cond_compl_eq [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0)
-    (hcs' : μ sᶜ ≠ 0) : μ[t|s] * μ s + μ[t|sᶜ] * μ sᶜ = μ t := by
-  rw [cond_mul_eq_inter μ hms hcs, cond_mul_eq_inter μ hms.compl hcs', Set.inter_comm _ t,
+theorem cond_add_cond_compl_eq [IsFiniteMeasure μ] (hms : MeasurableSet s) :
+    μ[t|s] * μ s + μ[t|sᶜ] * μ sᶜ = μ t := by
+  rw [cond_mul_eq_inter μ hms, cond_mul_eq_inter μ hms.compl, Set.inter_comm _ t,
     Set.inter_comm _ t]
   exact measure_inter_add_diff t hms
 #align probability_theory.cond_add_cond_compl_eq ProbabilityTheory.cond_add_cond_compl_eq
@@ -198,11 +204,42 @@ theorem cond_add_cond_compl_eq [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs
 /-- **Bayes' Theorem** -/
 theorem cond_eq_inv_mul_cond_mul [IsFiniteMeasure μ]
     (hms : MeasurableSet s) (hmt : MeasurableSet t) : μ[t|s] = (μ s)⁻¹ * μ[s|t] * μ t := by
-  by_cases ht : μ t = 0
-  · simp [cond, ht, Measure.restrict_apply hmt, Or.inr (measure_inter_null_of_null_left s ht)]
-  · rw [mul_assoc, cond_mul_eq_inter μ hmt ht s, Set.inter_comm, cond_apply _ hms]
+  rw [mul_assoc, cond_mul_eq_inter μ hmt s, Set.inter_comm, cond_apply _ hms]
 #align probability_theory.cond_eq_inv_mul_cond_mul ProbabilityTheory.cond_eq_inv_mul_cond_mul
 
 end Bayes
 
+lemma comap_cond {i : Ω' → Ω} (hi : MeasurableEmbedding i) (hi' : ∀ᵐ ω ∂μ, ω ∈ range i)
+    (hs : MeasurableSet s) : comap i μ[|s] = (comap i μ)[|i ⁻¹' s] := by
+  ext t ht
+  change μ (range i)ᶜ = 0 at hi'
+  rw [cond_apply, comap_apply, cond_apply, comap_apply, comap_apply, image_inter,
+    image_preimage_eq_inter_range, inter_right_comm, measure_inter_conull hi',
+    measure_inter_conull hi']
+  all_goals first
+  | exact hi.injective
+  | exact hi.measurableSet_image'
+  | exact hs
+  | exact ht
+  | exact hi.measurable hs
+  | exact (hi.measurable hs).inter ht
+
+variable [Fintype α] [MeasurableSpace α] [DiscreteMeasurableSpace α]
+
+/-- The **law of total probability** for a random variable taking finitely many values: a measure
+`μ` can be expressed as a linear combination of its conditional measures `μ[|X ← x]` on fibers of a
+random variable `X` valued in a fintype. -/
+lemma sum_meas_smul_cond_fiber {X : Ω → α} (hX : Measurable X) (μ : Measure Ω) [IsFiniteMeasure μ] :
+    ∑ x, μ (X ⁻¹' {x}) • μ[|X ← x] = μ := by
+  ext E hE
+  calc
+    _ = ∑ x, μ (X ⁻¹' {x} ∩ E) := by
+      simp only [Measure.coe_finset_sum, smul_toOuterMeasure, OuterMeasure.coe_smul,
+        Finset.sum_apply, Pi.smul_apply, smul_eq_mul]
+      simp_rw [mul_comm (μ _), cond_mul_eq_inter _ (hX (.singleton _))]
+    _ = _ := by
+      have : ⋃ x ∈ Finset.univ, X ⁻¹' {x} ∩ E = E := by simp; ext _; simp
+      rw [← measure_biUnion_finset _ fun _ _ ↦ (hX (.singleton _)).inter hE, this]
+      aesop (add simp [PairwiseDisjoint, Set.Pairwise, Function.onFun, disjoint_left])
+
 end ProbabilityTheory
feat : refactor IsUniform through uniformMeasure (#10456)

Refactor the definitions and proofs of IsUniform through the new uniformMeasure, which abstracts away from the need of a random variable and probability space.

A future PR can refactor the PMF parts in terms of a uniformMeasure.

This was #10141, which was split into a small PR to move the results (merged) and this one.

Diff
@@ -78,15 +78,52 @@ end Definitions
 @[inherit_doc] scoped notation μ "[" s "|" t "]" => ProbabilityTheory.cond μ t s
 @[inherit_doc] scoped notation:60 μ "[|" t "]" => ProbabilityTheory.cond μ t
 
-/-- The conditional probability measure of any finite measure on any set of positive measure
+/-- The conditional probability measure of any measure on any set of finite positive measure
 is a probability measure. -/
-theorem cond_isProbabilityMeasure [IsFiniteMeasure μ] (hcs : μ s ≠ 0) :
+theorem cond_isProbabilityMeasure_of_finite (hcs : μ s ≠ 0) (hs : μ s ≠ ∞) :
     IsProbabilityMeasure (μ[|s]) :=
   ⟨by
-    rw [cond, Measure.smul_apply, Measure.restrict_apply MeasurableSet.univ, Set.univ_inter]
-    exact ENNReal.inv_mul_cancel hcs (measure_ne_top _ s)⟩
+    unfold ProbabilityTheory.cond
+    simp only [Measure.smul_toOuterMeasure, OuterMeasure.coe_smul, Pi.smul_apply,
+      MeasurableSet.univ, Measure.restrict_apply, Set.univ_inter, smul_eq_mul]
+    exact ENNReal.inv_mul_cancel hcs hs⟩
+
+/-- The conditional probability measure of any finite measure on any set of positive measure
+is a probability measure. -/
+theorem cond_isProbabilityMeasure [IsFiniteMeasure μ] (hcs : μ s ≠ 0) :
+    IsProbabilityMeasure (μ[|s]) := cond_isProbabilityMeasure_of_finite μ hcs (measure_ne_top μ s)
 #align probability_theory.cond_is_probability_measure ProbabilityTheory.cond_isProbabilityMeasure
 
+instance cond_isFiniteMeasure :
+    IsFiniteMeasure (μ[|s]) where
+  measure_univ_lt_top := by
+    unfold ProbabilityTheory.cond
+    have : (μ s)⁻¹ * μ s < ⊤ := by
+      have : (μ s)⁻¹ * μ s ≤ 1 := by
+        apply ENNReal.le_inv_iff_mul_le.mp
+        rfl
+      exact lt_of_le_of_lt this ENNReal.one_lt_top
+    simp_all only [MeasurableSet.univ, Measure.restrict_apply, Set.univ_inter,
+      le_refl, Measure.smul_toOuterMeasure, OuterMeasure.coe_smul, Pi.smul_apply,
+      smul_eq_mul]
+
+theorem cond_toMeasurable_eq :
+    μ[|(toMeasurable μ s)] = μ[|s] := by
+  unfold cond
+  by_cases hnt : μ s = ∞
+  · simp [hnt]
+  · simp [Measure.restrict_toMeasurable hnt]
+
+theorem cond_absolutelyContinuous :
+    μ[|s] ≪ μ := by
+  intro t ht
+  unfold ProbabilityTheory.cond
+  rw [Measure.smul_apply, smul_eq_mul]
+  apply mul_eq_zero.mpr
+  refine Or.inr (le_antisymm ?_ (zero_le _))
+  exact ht ▸ Measure.restrict_apply_le s t
+
+
 section Bayes
 
 @[simp]
@@ -103,6 +140,9 @@ theorem cond_apply (hms : MeasurableSet s) (t : Set Ω) : μ[t|s] = (μ s)⁻¹
   rw [cond, Measure.smul_apply, Measure.restrict_apply' hms, Set.inter_comm, smul_eq_mul]
 #align probability_theory.cond_apply ProbabilityTheory.cond_apply
 
+ theorem cond_apply' {t : Set Ω} (hA : MeasurableSet t) : μ[t|s] = (μ s)⁻¹ * μ (s ∩ t) := by
+   rw [cond, Measure.smul_apply, Measure.restrict_apply hA, Set.inter_comm, smul_eq_mul]
+
 theorem cond_inter_self (hms : MeasurableSet s) (t : Set Ω) : μ[s ∩ t|s] = μ[t|s] := by
   rw [cond_apply _ hms, ← Set.inter_assoc, Set.inter_self, ← cond_apply _ hms]
 #align probability_theory.cond_inter_self ProbabilityTheory.cond_inter_self
doc: @[inherit_doc] on notations (#9942)

Make all the notations that unambiguously should inherit the docstring of their definition actually inherit it.

Also write a few docstrings by hand. I only wrote the ones I was competent to write and which I was sure of. Some docstrings come from mathlib3 as they were lost during the early port.

This PR is only intended as a first pass There are many more docstrings to add.

Diff
@@ -75,8 +75,8 @@ def cond (s : Set Ω) : Measure Ω :=
 
 end Definitions
 
-scoped notation μ "[" s "|" t "]" => ProbabilityTheory.cond μ t s
-scoped notation:60 μ "[|" t "]" => ProbabilityTheory.cond μ t
+@[inherit_doc] scoped notation μ "[" s "|" t "]" => ProbabilityTheory.cond μ t s
+@[inherit_doc] scoped notation:60 μ "[|" t "]" => ProbabilityTheory.cond μ t
 
 /-- The conditional probability measure of any finite measure on any set of positive measure
 is a probability measure. -/
chore: split MeasureSpace.lean into 3 files (#8389)

The original file MeasureSpace.lean is a mess of 4580 lines, with a lot of changes of namespaces, active variables, and so on. We split it into three files:

  • MeasureSpace, with 2095 lines left (some stuff could still be moved to other files, but it already makes much more sense)
  • Restrict, with everything on restriction of measures (1100 lines)
  • Typeclasses, defining finite measures, sigma-finite measures, and so on (1443 lines)

The new files are still large, but less so. This is 99% moving around and ensuring that variables and namespaces remain the same (#align statements have been very useful for this), and 1% adding classical in proofs and [Decidable ...] assumptions in statements, as I haven't opened Classical in the new files.

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Rishikesh Vaishnav. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Rishikesh Vaishnav
 -/
-import Mathlib.MeasureTheory.Measure.MeasureSpace
+import Mathlib.MeasureTheory.Measure.Typeclasses
 
 #align_import probability.conditional_probability from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
 
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -60,7 +60,7 @@ noncomputable section
 
 open ENNReal MeasureTheory MeasurableSpace
 
-variable {Ω : Type _} {m : MeasurableSpace Ω} (μ : Measure Ω) {s t : Set Ω}
+variable {Ω : Type*} {m : MeasurableSpace Ω} (μ : Measure Ω) {s t : Set Ω}
 
 namespace ProbabilityTheory
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Rishikesh Vaishnav. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Rishikesh Vaishnav
-
-! This file was ported from Lean 3 source module probability.conditional_probability
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.MeasureTheory.Measure.MeasureSpace
 
+#align_import probability.conditional_probability from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
+
 /-!
 # Conditional Probability
 
fix: change compl precedence (#5586)

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -152,7 +152,7 @@ theorem cond_mul_eq_inter [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ
 
 /-- A version of the law of total probability. -/
 theorem cond_add_cond_compl_eq [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0)
-    (hcs' : μ (sᶜ) ≠ 0) : μ[t|s] * μ s + μ[t|sᶜ] * μ (sᶜ) = μ t := by
+    (hcs' : μ sᶜ ≠ 0) : μ[t|s] * μ s + μ[t|sᶜ] * μ sᶜ = μ t := by
   rw [cond_mul_eq_inter μ hms hcs, cond_mul_eq_inter μ hms.compl hcs', Set.inter_comm _ t,
     Set.inter_comm _ t]
   exact measure_inter_add_diff t hms
chore: bump Std4 (#5219)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -129,7 +129,6 @@ theorem cond_cond_eq_cond_inter' (hms : MeasurableSet s) (hmt : MeasurableSet t)
   have hcs' : μ s ≠ 0 :=
     (μ.toOuterMeasure.pos_of_subset_ne_zero (Set.inter_subset_left _ _) hci).ne'
   ext u
-  intro
   simp [*, hms.inter hmt, cond_apply, ← mul_assoc, ← Set.inter_assoc, ENNReal.mul_inv, mul_comm, ←
     mul_assoc, ENNReal.mul_inv_cancel]
 #align probability_theory.cond_cond_eq_cond_inter' ProbabilityTheory.cond_cond_eq_cond_inter'
style: recover Is of Foo which is ported from is_foo (#4639)

I have misported is_foo to Foo because I misunderstood the rule for IsLawfulFoo. This PR recover Is of Foo which is ported from is_foo. This PR also renames some misported theorems.

Diff
@@ -83,11 +83,12 @@ scoped notation:60 μ "[|" t "]" => ProbabilityTheory.cond μ t
 
 /-- The conditional probability measure of any finite measure on any set of positive measure
 is a probability measure. -/
-theorem cond_probabilityMeasure [FiniteMeasure μ] (hcs : μ s ≠ 0) : ProbabilityMeasure <| μ[|s] :=
+theorem cond_isProbabilityMeasure [IsFiniteMeasure μ] (hcs : μ s ≠ 0) :
+    IsProbabilityMeasure (μ[|s]) :=
   ⟨by
     rw [cond, Measure.smul_apply, Measure.restrict_apply MeasurableSet.univ, Set.univ_inter]
     exact ENNReal.inv_mul_cancel hcs (measure_ne_top _ s)⟩
-#align probability_theory.cond_is_probability_measure ProbabilityTheory.cond_probabilityMeasure
+#align probability_theory.cond_is_probability_measure ProbabilityTheory.cond_isProbabilityMeasure
 
 section Bayes
 
@@ -96,7 +97,7 @@ theorem cond_empty : μ[|∅] = 0 := by simp [cond]
 #align probability_theory.cond_empty ProbabilityTheory.cond_empty
 
 @[simp]
-theorem cond_univ [ProbabilityMeasure μ] : μ[|Set.univ] = μ := by
+theorem cond_univ [IsProbabilityMeasure μ] : μ[|Set.univ] = μ := by
   simp [cond, measure_univ, Measure.restrict_univ]
 #align probability_theory.cond_univ ProbabilityTheory.cond_univ
 
@@ -116,8 +117,8 @@ theorem inter_pos_of_cond_ne_zero (hms : MeasurableSet s) (hcst : μ[t|s] ≠ 0)
   simp [hms, Set.inter_comm, cond]
 #align probability_theory.inter_pos_of_cond_ne_zero ProbabilityTheory.inter_pos_of_cond_ne_zero
 
-theorem cond_pos_of_inter_ne_zero [FiniteMeasure μ] (hms : MeasurableSet s) (hci : μ (s ∩ t) ≠ 0) :
-    0 < (μ[|s]) t := by
+theorem cond_pos_of_inter_ne_zero [IsFiniteMeasure μ]
+    (hms : MeasurableSet s) (hci : μ (s ∩ t) ≠ 0) : 0 < (μ[|s]) t := by
   rw [cond_apply _ hms]
   refine' ENNReal.mul_pos _ hci
   exact ENNReal.inv_ne_zero.mpr (measure_ne_top _ _)
@@ -135,7 +136,7 @@ theorem cond_cond_eq_cond_inter' (hms : MeasurableSet s) (hmt : MeasurableSet t)
 
 /-- Conditioning first on `s` and then on `t` results in the same measure as conditioning
 on `s ∩ t`. -/
-theorem cond_cond_eq_cond_inter [FiniteMeasure μ] (hms : MeasurableSet s) (hmt : MeasurableSet t)
+theorem cond_cond_eq_cond_inter [IsFiniteMeasure μ] (hms : MeasurableSet s) (hmt : MeasurableSet t)
     (hci : μ (s ∩ t) ≠ 0) : μ[|s][|t] = μ[|s ∩ t] :=
   cond_cond_eq_cond_inter' μ hms hmt (measure_ne_top μ s) hci
 #align probability_theory.cond_cond_eq_cond_inter ProbabilityTheory.cond_cond_eq_cond_inter
@@ -145,13 +146,13 @@ theorem cond_mul_eq_inter' (hms : MeasurableSet s) (hcs : μ s ≠ 0) (hcs' : μ
   rw [cond_apply μ hms t, mul_comm, ← mul_assoc, ENNReal.mul_inv_cancel hcs hcs', one_mul]
 #align probability_theory.cond_mul_eq_inter' ProbabilityTheory.cond_mul_eq_inter'
 
-theorem cond_mul_eq_inter [FiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0) (t : Set Ω) :
+theorem cond_mul_eq_inter [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0) (t : Set Ω) :
     μ[t|s] * μ s = μ (s ∩ t) :=
   cond_mul_eq_inter' μ hms hcs (measure_ne_top _ s) t
 #align probability_theory.cond_mul_eq_inter ProbabilityTheory.cond_mul_eq_inter
 
 /-- A version of the law of total probability. -/
-theorem cond_add_cond_compl_eq [FiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0)
+theorem cond_add_cond_compl_eq [IsFiniteMeasure μ] (hms : MeasurableSet s) (hcs : μ s ≠ 0)
     (hcs' : μ (sᶜ) ≠ 0) : μ[t|s] * μ s + μ[t|sᶜ] * μ (sᶜ) = μ t := by
   rw [cond_mul_eq_inter μ hms hcs, cond_mul_eq_inter μ hms.compl hcs', Set.inter_comm _ t,
     Set.inter_comm _ t]
@@ -159,8 +160,8 @@ theorem cond_add_cond_compl_eq [FiniteMeasure μ] (hms : MeasurableSet s) (hcs :
 #align probability_theory.cond_add_cond_compl_eq ProbabilityTheory.cond_add_cond_compl_eq
 
 /-- **Bayes' Theorem** -/
-theorem cond_eq_inv_mul_cond_mul [FiniteMeasure μ] (hms : MeasurableSet s) (hmt : MeasurableSet t) :
-    μ[t|s] = (μ s)⁻¹ * μ[s|t] * μ t := by
+theorem cond_eq_inv_mul_cond_mul [IsFiniteMeasure μ]
+    (hms : MeasurableSet s) (hmt : MeasurableSet t) : μ[t|s] = (μ s)⁻¹ * μ[s|t] * μ t := by
   by_cases ht : μ t = 0
   · simp [cond, ht, Measure.restrict_apply hmt, Or.inr (measure_inter_null_of_null_left s ht)]
   · rw [mul_assoc, cond_mul_eq_inter μ hmt ht s, Set.inter_comm, cond_apply _ hms]
feat: port Probability.ConditionalProbability (#3885)

Dependencies 10 + 609

610 files ported (98.4%)
271926 lines ported (98.1%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file