Theorem: nullMeasurableSet_region_between_cc
File: Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean

tactic: refine NullMeasurableSet.inter
        (s_mble.preimage quasiMeasurePreserving_fst) (NullMeasurableSet.inter ?_ ?_)
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
⊢ NullMeasurableSet {p | p.1 ∈ s ∧ p.2 ∈ Icc (f p.1) (g p.1)} (μ.prod volume)
state_after: case refine_1
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
⊢ NullMeasurableSet (fun p => f p.1 ≤ p.2) (μ.prod volume)

case refine_2
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
⊢ NullMeasurableSet (fun p => p.2 ≤ g p.1) (μ.prod volume)

tactic: change NullMeasurableSet {p : α × ℝ | f p.fst ≤ p.snd} (μ.prod volume)
state_before: case refine_1
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
⊢ NullMeasurableSet (fun p => f p.1 ≤ p.2) (μ.prod volume)
state_after: case refine_1
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
⊢ NullMeasurableSet {p | f p.1 ≤ p.2} (μ.prod volume)

tactic: rw [show {p : α × ℝ | f p.fst ≤ p.snd} = {p : α × ℝ | p.snd < f p.fst}ᶜ by
      ext p
      simp only [mem_setOf_eq, mem_compl_iff, not_lt]]
state_before: case refine_1
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
⊢ NullMeasurableSet {p | f p.1 ≤ p.2} (μ.prod volume)
state_after: case refine_1
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
⊢ NullMeasurableSet {p | p.2 < f p.1}ᶜ (μ.prod volume)

tactic: exact (nullMeasurableSet_lt measurable_snd.aemeasurable (AEMeasurable.fst f_mble)).compl
state_before: case refine_1
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
⊢ NullMeasurableSet {p | p.2 < f p.1}ᶜ (μ.prod volume)
state_after: no goals

tactic: ext p
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
⊢ {p | f p.1 ≤ p.2} = {p | p.2 < f p.1}ᶜ
state_after: case h
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
p : α × ℝ
⊢ p ∈ {p | f p.1 ≤ p.2} ↔ p ∈ {p | p.2 < f p.1}ᶜ

tactic: simp only [mem_setOf_eq, mem_compl_iff, not_lt]
state_before: case h
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
p : α × ℝ
⊢ p ∈ {p | f p.1 ≤ p.2} ↔ p ∈ {p | p.2 < f p.1}ᶜ
state_after: no goals

tactic: change NullMeasurableSet {p : α × ℝ | p.snd ≤ g p.fst} (μ.prod volume)
state_before: case refine_2
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
⊢ NullMeasurableSet (fun p => p.2 ≤ g p.1) (μ.prod volume)
state_after: case refine_2
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
⊢ NullMeasurableSet {p | p.2 ≤ g p.1} (μ.prod volume)

tactic: rw [show {p : α × ℝ | p.snd ≤ g p.fst} = {p : α × ℝ | g p.fst < p.snd}ᶜ by
      ext p
      simp only [mem_setOf_eq, mem_compl_iff, not_lt]]
state_before: case refine_2
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
⊢ NullMeasurableSet {p | p.2 ≤ g p.1} (μ.prod volume)
state_after: case refine_2
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
⊢ NullMeasurableSet {p | g p.1 < p.2}ᶜ (μ.prod volume)

tactic: exact (nullMeasurableSet_lt (AEMeasurable.fst g_mble) measurable_snd.aemeasurable).compl
state_before: case refine_2
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
⊢ NullMeasurableSet {p | g p.1 < p.2}ᶜ (μ.prod volume)
state_after: no goals

tactic: ext p
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
⊢ {p | p.2 ≤ g p.1} = {p | g p.1 < p.2}ᶜ
state_after: case h
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
p : α × ℝ
⊢ p ∈ {p | p.2 ≤ g p.1} ↔ p ∈ {p | g p.1 < p.2}ᶜ

tactic: simp only [mem_setOf_eq, mem_compl_iff, not_lt]
state_before: case h
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ : Measure α
f✝ g✝ : α → ℝ
s✝ : Set α
μ : Measure α
f g : α → ℝ
f_mble : AEMeasurable f μ
g_mble : AEMeasurable g μ
s : Set α
s_mble : NullMeasurableSet s μ
p : α × ℝ
⊢ p ∈ {p | p.2 ≤ g p.1} ↔ p ∈ {p | g p.1 < p.2}ᶜ
state_after: no goals