Theorem: ProbabilityTheory.kernel.densityProcess_mono_set
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κν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s s' : Set β
h : s ⊆ s'
⊢ 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κν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s s' : Set β
h : s ⊆ s'
⊢ ((κ 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κν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s s' : Set β
h : s ⊆ s'
⊢ ((κ 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κν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s s' : Set β
h : s ⊆ s'
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κν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s s' : Set β
h : s ⊆ s'
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 h_ne_top : ∀ s,
    κ a (countablePartitionSet n x ×ˢ s) / ν a (countablePartitionSet n x) ≠ ⊤ := by
  intro s
  rw [ne_eq, ENNReal.div_eq_top]
  simp only [ne_eq, h0, and_false, false_or, not_and, not_not]
  refine fun h_top ↦ eq_top_mono ?_ h_top
  exact meas_countablePartitionSet_le_of_fst_le hκν n a x s
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s s' : Set β
h : s ⊆ s'
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κν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s s' : Set β
h : s ⊆ s'
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h_ne_top : ∀ (s : Set β), (κ 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: rw [ENNReal.toReal_le_toReal (h_ne_top s) (h_ne_top s')]
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s s' : Set β
h : s ⊆ s'
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h_ne_top : ∀ (s : Set β), (κ 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 neg
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s s' : Set β
h : s ⊆ s'
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h_ne_top : ∀ (s : Set β), (κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x) ≠ ⊤
⊢ (κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x) ≤
    (κ a) (countablePartitionSet n x ×ˢ s') / (ν a) (countablePartitionSet n x)

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κν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s s' : Set β
h : s ⊆ s'
h0 : ¬(ν a) (countablePartitionSet n x) = 0
h_ne_top : ∀ (s : Set β), (κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x) ≠ ⊤
⊢ (κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x) ≤
    (κ a) (countablePartitionSet n x ×ˢ s') / (ν a) (countablePartitionSet n x)
state_after: no goals

tactic: rw [h0, ENNReal.toReal_div, ENNReal.toReal_div]
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s s' : Set β
h : s ⊆ s'
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 pos
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s s' : Set β
h : s ⊆ s'
h0 : (ν a) (countablePartitionSet n x) = 0
⊢ ((κ a) (countablePartitionSet n x ×ˢ s)).toReal / ENNReal.toReal 0 ≤
    ((κ a) (countablePartitionSet n x ×ˢ s')).toReal / ENNReal.toReal 0

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

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

tactic: rw [ne_eq, ENNReal.div_eq_top]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s✝ s' : Set β
h : s✝ ⊆ s'
h0 : ¬(ν a) (countablePartitionSet n x) = 0
s : Set β
⊢ (κ a) (countablePartitionSet n x ×ˢ s) / (ν a) (countablePartitionSet n x) ≠ ⊤
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : ↥(kernel α (γ × β))
ν : ↥(kernel α γ)
hκν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s✝ s' : Set β
h : s✝ ⊆ s'
h0 : ¬(ν a) (countablePartitionSet n x) = 0
s : Set β
⊢ ¬((κ a) (countablePartitionSet n x ×ˢ s) ≠ 0 ∧ (ν a) (countablePartitionSet n x) = 0 ∨
      (κ a) (countablePartitionSet n x ×ˢ s) = ⊤ ∧ (ν a) (countablePartitionSet n x) ≠ ⊤)

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

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

tactic: exact 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κν : fst κ ≤ ν
n : ℕ
a : α
x : γ
s✝ s' : Set β
h : s✝ ⊆ s'
h0 : ¬(ν a) (countablePartitionSet n x) = 0
s : Set β
h_top : (κ a) (countablePartitionSet n x ×ˢ s) = ⊤
⊢ (κ a) (countablePartitionSet n x ×ˢ s) ≤ (ν a) (countablePartitionSet n x)
state_after: no goals