probability.conditional_probability
⟷
Mathlib.Probability.ConditionalProbability
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -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]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -64,7 +64,7 @@ conditional, conditioned, bayes
noncomputable section
-open ENNReal
+open scoped ENNReal
open MeasureTheory MeasurableSpace
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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 /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -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ₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/2f8347015b12b0864dfaf366ec4909eb70c78740
@@ -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 Ω`,
mathlib commit https://github.com/leanprover-community/mathlib/commit/28b2a92f2996d28e580450863c130955de0ed398
@@ -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 Ω`,
mathlib commit https://github.com/leanprover-community/mathlib/commit/2f8347015b12b0864dfaf366ec4909eb70c78740
@@ -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 Ω`,
mathlib commit https://github.com/leanprover-community/mathlib/commit/cc5dd6244981976cc9da7afc4eee5682b037a013
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/d4437c68c8d350fc9d4e95e1e174409db35e30d7
@@ -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]
mathlib commit https://github.com/leanprover-community/mathlib/commit/92c69b77c5a7dc0f7eeddb552508633305157caa
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -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 Ω) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -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
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.
@@ -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
@[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.
@@ -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. -/
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.
@@ -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"
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -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
@@ -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
@@ -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
@@ -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'
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.
@@ -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]
The unported dependencies are
algebra.order.module
init.core
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
init.data.list.default
algebra.order.monoid.cancel.basic
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file