Theorem: ProbabilityTheory.kernel.densityProcess_antitone_kernel_right
File: Mathlib/Probability/Kernel/Disintegration/Density.lean

tactic: unfold densityProcess
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
⊢ densityProcess κ ν' n a x s ≤ densityProcess κ ν n a x s
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
⊢ ((κ a) (countablePartitionSet n x ×ˢ s) / (ν' a) (countablePartitionSet n x)).toReal ≤
    ((κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x)).toReal

tactic: have h_le : κ a (countablePartitionSet n x ×ˢ s) ≤ ν a (countablePartitionSet n x) :=
  meas_countablePartitionSet_le_of_fst_le hκν n a x s
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
⊢ ((κ a) (countablePartitionSet n x ×ˢ s) / (ν' a) (countablePartitionSet n x)).toReal ≤
    ((κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x)).toReal
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
⊢ ((κ a) (countablePartitionSet n x ×ˢ s) / (ν' a) (countablePartitionSet n x)).toReal ≤
    ((κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x)).toReal

tactic: by_cases h0 : ν a (countablePartitionSet n x) = 0
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
⊢ ((κ a) (countablePartitionSet n x ×ˢ s) / (ν' a) (countablePartitionSet n x)).toReal ≤
    ((κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x)).toReal
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : (ν a) (countablePartitionSet n x) = 0
⊢ ((κ a) (countablePartitionSet n x ×ˢ s) / (ν' a) (countablePartitionSet n x)).toReal ≤
    ((κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x)).toReal

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
⊢ ((κ a) (countablePartitionSet n x ×ˢ s) / (ν' a) (countablePartitionSet n x)).toReal ≤
    ((κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x)).toReal

tactic: have h0' : ν' a (countablePartitionSet n x) ≠ 0 :=
  fun h ↦ h0 (le_antisymm ((hνν' _ _).trans h.le) zero_le')
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
⊢ ((κ a) (countablePartitionSet n x ×ˢ s) / (ν' a) (countablePartitionSet n x)).toReal ≤
    ((κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x)).toReal
state_after: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
⊢ ((κ a) (countablePartitionSet n x ×ˢ s) / (ν' a) (countablePartitionSet n x)).toReal ≤
    ((κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x)).toReal

tactic: rw [ENNReal.toReal_le_toReal]
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
⊢ ((κ a) (countablePartitionSet n x ×ˢ s) / (ν' a) (countablePartitionSet n x)).toReal ≤
    ((κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x)).toReal
state_after: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
⊢ (κ a) (countablePartitionSet n x ×ˢ s) / (ν' a) (countablePartitionSet n x) ≤
    (κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x)

case neg.ha
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
⊢ (κ a) (countablePartitionSet n x ×ˢ s) / (ν' a) (countablePartitionSet n x) ≠ ⊤

case neg.hb
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
⊢ (κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x) ≠ ⊤

tactic: simp [le_antisymm (h_le.trans h0.le) zero_le', h0]
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : (ν a) (countablePartitionSet n x) = 0
⊢ ((κ a) (countablePartitionSet n x ×ˢ s) / (ν' a) (countablePartitionSet n x)).toReal ≤
    ((κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x)).toReal
state_after: no goals

tactic: gcongr
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
⊢ (κ a) (countablePartitionSet n x ×ˢ s) / (ν' a) (countablePartitionSet n x) ≤
    (κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x)
state_after: case neg.h
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
⊢ (ν a) (countablePartitionSet n x) ≤ (ν' a) (countablePartitionSet n x)

tactic: exact hνν' _ _
state_before: case neg.h
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
⊢ (ν a) (countablePartitionSet n x) ≤ (ν' a) (countablePartitionSet n x)
state_after: no goals

tactic: simp only [ne_eq, ENNReal.div_eq_top, h0', and_false, false_or, not_and, not_not]
state_before: case neg.ha
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
⊢ (κ a) (countablePartitionSet n x ×ˢ s) / (ν' a) (countablePartitionSet n x) ≠ ⊤
state_after: case neg.ha
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
⊢ (κ a) (countablePartitionSet n x ×ˢ s) = ⊤ → (ν' a) (countablePartitionSet n x) = ⊤

tactic: refine fun h_top ↦ eq_top_mono ?_ h_top
state_before: case neg.ha
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
⊢ (κ a) (countablePartitionSet n x ×ˢ s) = ⊤ → (ν' a) (countablePartitionSet n x) = ⊤
state_after: case neg.ha
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
h_top : (κ a) (countablePartitionSet n x ×ˢ s) = ⊤
⊢ (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν' a) (countablePartitionSet n x)

tactic: exact h_le.trans (hνν' _ _)
state_before: case neg.ha
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
h_top : (κ a) (countablePartitionSet n x ×ˢ s) = ⊤
⊢ (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν' a) (countablePartitionSet n x)
state_after: no goals

tactic: simp only [ne_eq, ENNReal.div_eq_top, h0, and_false, false_or, not_and, not_not]
state_before: case neg.hb
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
⊢ (κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x) ≠ ⊤
state_after: case neg.hb
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
⊢ (κ a) (countablePartitionSet n x ×ˢ s) = ⊤ → (ν a) (countablePartitionSet n x) = ⊤

tactic: exact fun h_top ↦ eq_top_mono h_le h_top
state_before: case neg.hb
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν ν' : ↥(kernel α γ)
hνν' : ν ≤ ν'
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s : Set β
h_le : (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h0' : (ν' a) (countablePartitionSet n x) ≠ 0
⊢ (κ a) (countablePartitionSet n x ×ˢ s) = ⊤ → (ν a) (countablePartitionSet n x) = ⊤
state_after: no goals