l3lab/ntp-mathlib huggingface dataset:
theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type*} [TopologicalSpace α] [LinearOrder α]
    [OrderTopology α] [SecondCountableTopology α] {s : Set α} (hd : Dense s)
    (hbot : ∀ x, IsTop x → x ∈ s) (hIoo : ∀ x y : α, x < y → Ioo x y = ∅ → x ∈ s) :
    borel α = .generateFrom { S : Set α | ∃ l ∈ s, ∃ u ∈ s, l < u ∧ Ioc l u = S } := by
  convert hd.orderDual.borel_eq_generateFrom_Ico_mem_aux hbot fun x y hlt he => hIoo y x hlt _
    using 2
  · ext s
    constructor <;> rintro ⟨l, hl, u, hu, hlt, rfl⟩
    

Proof state:
case h.e'_3.h.h.e'_2.h.h.mp.intro.intro.intro.intro.intro
α✝ : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u✝ : Set α✝
inst✝²⁰ : TopologicalSpace α✝
inst✝¹⁹ : MeasurableSpace α✝
inst✝¹⁸ : OpensMeasurableSpace α✝
inst✝¹⁷ : TopologicalSpace β
inst✝¹⁶ : MeasurableSpace β
inst✝¹⁵ : OpensMeasurableSpace β
inst✝¹⁴ : TopologicalSpace γ
inst✝¹³ : MeasurableSpace γ
inst✝¹² : BorelSpace γ
inst✝¹¹ : TopologicalSpace γ₂
inst✝¹⁰ : MeasurableSpace γ₂
inst✝⁹ : BorelSpace γ₂
inst✝⁸ : MeasurableSpace δ
α' : Type u_6
inst✝⁷ : TopologicalSpace α'
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : LinearOrder α✝
inst✝⁴ : OrderClosedTopology α✝
a b x : α✝
α : Type u_7
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
s : Set α
hd : Dense s
hbot : ∀ (x : α), IsTop x → x ∈ s
hIoo : ∀ (x y : α), x < y → Ioo x y = ∅ → x ∈ s
e_1✝¹ : MeasurableSpace α = MeasurableSpace αᵒᵈ
e_1✝ : α = αᵒᵈ
l : α
hl : l ∈ s
u : α
hu : u ∈ s
hlt : l < u
⊢ Ioc l u ∈ {S | ∃ l ∈ ⇑OrderDual.ofDual ⁻¹' s, ∃ u ∈ ⇑OrderDual.ofDual ⁻¹' s, l < u ∧ Ico l u = S}
case h.e'_3.h.h.e'_2.h.h.mpr.intro.intro.intro.intro.intro
α✝ : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u✝ : Set α✝
inst✝²⁰ : TopologicalSpace α✝
inst✝¹⁹ : MeasurableSpace α✝
inst✝¹⁸ : OpensMeasurableSpace α✝
inst✝¹⁷ : TopologicalSpace β
inst✝¹⁶ : MeasurableSpace β
inst✝¹⁵ : OpensMeasurableSpace β
inst✝¹⁴ : TopologicalSpace γ
inst✝¹³ : MeasurableSpace γ
inst✝¹² : BorelSpace γ
inst✝¹¹ : TopologicalSpace γ₂
inst✝¹⁰ : MeasurableSpace γ₂
inst✝⁹ : BorelSpace γ₂
inst✝⁸ : MeasurableSpace δ
α' : Type u_6
inst✝⁷ : TopologicalSpace α'
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : LinearOrder α✝
inst✝⁴ : OrderClosedTopology α✝
a b x : α✝
α : Type u_7
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
s : Set α
hd : Dense s
hbot : ∀ (x : α), IsTop x → x ∈ s
hIoo : ∀ (x y : α), x < y → Ioo x y = ∅ → x ∈ s
e_1✝¹ : MeasurableSpace α = MeasurableSpace αᵒᵈ
e_1✝ : α = αᵒᵈ
l : αᵒᵈ
hl : l ∈ ⇑OrderDual.ofDual ⁻¹' s
u : αᵒᵈ
hu : u ∈ ⇑OrderDual.ofDual ⁻¹' s
hlt : l < u
⊢ Ico l u ∈ {S | ∃ l ∈ s, ∃ u ∈ s, l < u ∧ Ioc l u = S}

Next tactic:
exacts [⟨u, hu, l, hl, hlt, dual_Ico⟩, ⟨u, hu, l, hl, hlt, dual_Ioc⟩]
theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type*} [TopologicalSpace α] [LinearOrder α]
    [OrderTopology α] [SecondCountableTopology α] {s : Set α} (hd : Dense s)
    (hbot : ∀ x, IsTop x → x ∈ s) (hIoo : ∀ x y : α, x < y → Ioo x y = ∅ → x ∈ s) :
    borel α = .generateFrom { S : Set α | ∃ l ∈ s, ∃ u ∈ s, l < u ∧ Ioc l u = S } := by
  convert hd.orderDual.borel_eq_generateFrom_Ico_mem_aux hbot fun x y hlt he => hIoo y x hlt _
    using 2
  · ext s
    constructor <;> rintro ⟨l, hl, u, hu, hlt, rfl⟩
    exacts [⟨u, hu, l, hl, hlt, dual_Ico⟩, ⟨u, hu, l, hl, hlt, dual_Ioc⟩]
  · 

Proof state:
α✝ : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u : Set α✝
inst✝²⁰ : TopologicalSpace α✝
inst✝¹⁹ : MeasurableSpace α✝
inst✝¹⁸ : OpensMeasurableSpace α✝
inst✝¹⁷ : TopologicalSpace β
inst✝¹⁶ : MeasurableSpace β
inst✝¹⁵ : OpensMeasurableSpace β
inst✝¹⁴ : TopologicalSpace γ
inst✝¹³ : MeasurableSpace γ
inst✝¹² : BorelSpace γ
inst✝¹¹ : TopologicalSpace γ₂
inst✝¹⁰ : MeasurableSpace γ₂
inst✝⁹ : BorelSpace γ₂
inst✝⁸ : MeasurableSpace δ
α' : Type u_6
inst✝⁷ : TopologicalSpace α'
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : LinearOrder α✝
inst✝⁴ : OrderClosedTopology α✝
a b x✝ : α✝
α : Type u_7
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
s : Set α
hd : Dense s
hbot : ∀ (x : α), IsTop x → x ∈ s
hIoo : ∀ (x y : α), x < y → Ioo x y = ∅ → x ∈ s
x y : αᵒᵈ
hlt : x < y
he : Ioo x y = ∅
⊢ Ioo y x = ∅

Next tactic:
erw [dual_Ioo]
theorem Dense.borel_eq_generateFrom_Ioc_mem_aux {α : Type*} [TopologicalSpace α] [LinearOrder α]
    [OrderTopology α] [SecondCountableTopology α] {s : Set α} (hd : Dense s)
    (hbot : ∀ x, IsTop x → x ∈ s) (hIoo : ∀ x y : α, x < y → Ioo x y = ∅ → x ∈ s) :
    borel α = .generateFrom { S : Set α | ∃ l ∈ s, ∃ u ∈ s, l < u ∧ Ioc l u = S } := by
  convert hd.orderDual.borel_eq_generateFrom_Ico_mem_aux hbot fun x y hlt he => hIoo y x hlt _
    using 2
  · ext s
    constructor <;> rintro ⟨l, hl, u, hu, hlt, rfl⟩
    exacts [⟨u, hu, l, hl, hlt, dual_Ico⟩, ⟨u, hu, l, hl, hlt, dual_Ioc⟩]
  · erw [dual_Ioo]
    

Proof state:
α✝ : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u : Set α✝
inst✝²⁰ : TopologicalSpace α✝
inst✝¹⁹ : MeasurableSpace α✝
inst✝¹⁸ : OpensMeasurableSpace α✝
inst✝¹⁷ : TopologicalSpace β
inst✝¹⁶ : MeasurableSpace β
inst✝¹⁵ : OpensMeasurableSpace β
inst✝¹⁴ : TopologicalSpace γ
inst✝¹³ : MeasurableSpace γ
inst✝¹² : BorelSpace γ
inst✝¹¹ : TopologicalSpace γ₂
inst✝¹⁰ : MeasurableSpace γ₂
inst✝⁹ : BorelSpace γ₂
inst✝⁸ : MeasurableSpace δ
α' : Type u_6
inst✝⁷ : TopologicalSpace α'
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : LinearOrder α✝
inst✝⁴ : OrderClosedTopology α✝
a b x✝ : α✝
α : Type u_7
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
s : Set α
hd : Dense s
hbot : ∀ (x : α), IsTop x → x ∈ s
hIoo : ∀ (x y : α), x < y → Ioo x y = ∅ → x ∈ s
x y : αᵒᵈ
hlt : x < y
he : Ioo x y = ∅
⊢ ⇑OrderDual.ofDual ⁻¹' Ioo x y = ∅

Next tactic:
exact he
theorem Dense.borel_eq_generateFrom_Ioc_mem {α : Type*} [TopologicalSpace α] [LinearOrder α]
    [OrderTopology α] [SecondCountableTopology α] [DenselyOrdered α] [NoMaxOrder α] {s : Set α}
    (hd : Dense s) :
    borel α = .generateFrom { S : Set α | ∃ l ∈ s, ∃ u ∈ s, l < u ∧ Ioc l u = S } :=
  hd.borel_eq_generateFrom_Ioc_mem_aux (by 

Proof state:
α✝ : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u : Set α✝
inst✝²² : TopologicalSpace α✝
inst✝²¹ : MeasurableSpace α✝
inst✝²⁰ : OpensMeasurableSpace α✝
inst✝¹⁹ : TopologicalSpace β
inst✝¹⁸ : MeasurableSpace β
inst✝¹⁷ : OpensMeasurableSpace β
inst✝¹⁶ : TopologicalSpace γ
inst✝¹⁵ : MeasurableSpace γ
inst✝¹⁴ : BorelSpace γ
inst✝¹³ : TopologicalSpace γ₂
inst✝¹² : MeasurableSpace γ₂
inst✝¹¹ : BorelSpace γ₂
inst✝¹⁰ : MeasurableSpace δ
α' : Type u_6
inst✝⁹ : TopologicalSpace α'
inst✝⁸ : MeasurableSpace α'
inst✝⁷ : LinearOrder α✝
inst✝⁶ : OrderClosedTopology α✝
a b x : α✝
α : Type u_7
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderTopology α
inst✝² : SecondCountableTopology α
inst✝¹ : DenselyOrdered α
inst✝ : NoMaxOrder α
s : Set α
hd : Dense s
⊢ ∀ (x : α), IsTop x → x ∈ s

Next tactic:
simp
theorem borel_eq_generateFrom_Ioc (α : Type*) [TopologicalSpace α] [SecondCountableTopology α]
    [LinearOrder α] [OrderTopology α] :
    borel α = .generateFrom { S : Set α | ∃ l u, l < u ∧ Ioc l u = S } := by
  

Proof state:
α✝ : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s t u : Set α✝
inst✝²⁰ : TopologicalSpace α✝
inst✝¹⁹ : MeasurableSpace α✝
inst✝¹⁸ : OpensMeasurableSpace α✝
inst✝¹⁷ : TopologicalSpace β
inst✝¹⁶ : MeasurableSpace β
inst✝¹⁵ : OpensMeasurableSpace β
inst✝¹⁴ : TopologicalSpace γ
inst✝¹³ : MeasurableSpace γ
inst✝¹² : BorelSpace γ
inst✝¹¹ : TopologicalSpace γ₂
inst✝¹⁰ : MeasurableSpace γ₂
inst✝⁹ : BorelSpace γ₂
inst✝⁸ : MeasurableSpace δ
α' : Type u_6
inst✝⁷ : TopologicalSpace α'
inst✝⁶ : MeasurableSpace α'
inst✝⁵ : LinearOrder α✝
inst✝⁴ : OrderClosedTopology α✝
a b x : α✝
α : Type u_7
inst✝³ : TopologicalSpace α
inst✝² : SecondCountableTopology α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
⊢ borel α = MeasurableSpace.generateFrom {S | ∃ l u, l < u ∧ Ioc l u = S}

Next tactic:
simpa only [exists_prop, mem_univ, true_and_iff] using
    (@dense_univ α _).borel_eq_generateFrom_Ioc_mem_aux (fun _ _ => mem_univ _) fun _ _ _ _ =>
      mem_univ _
/-- Two finite measures on a Borel space are equal if they agree on all closed-open intervals.  If
`α` is a conditionally complete linear order with no top element,
`MeasureTheory.Measure.ext_of_Ico` is an extensionality lemma with weaker assumptions on `μ` and
`ν`. -/
theorem ext_of_Ico_finite {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
    [SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
    [IsFiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) :
    μ = ν := by
  

Proof state:
α✝ : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s t u : Set α✝
inst✝²² : TopologicalSpace α✝
inst✝²¹ : MeasurableSpace α✝
inst✝²⁰ : OpensMeasurableSpace α✝
inst✝¹⁹ : TopologicalSpace β
inst✝¹⁸ : MeasurableSpace β
inst✝¹⁷ : OpensMeasurableSpace β
inst✝¹⁶ : TopologicalSpace γ
inst✝¹⁵ : MeasurableSpace γ
inst✝¹⁴ : BorelSpace γ
inst✝¹³ : TopologicalSpace γ₂
inst✝¹² : MeasurableSpace γ₂
inst✝¹¹ : BorelSpace γ₂
inst✝¹⁰ : MeasurableSpace δ
α' : Type u_6
inst✝⁹ : TopologicalSpace α'
inst✝⁸ : MeasurableSpace α'
inst✝⁷ : LinearOrder α✝
inst✝⁶ : OrderClosedTopology α✝
a b x : α✝
α : Type u_7
inst✝⁵ : TopologicalSpace α
m : MeasurableSpace α
inst✝⁴ : SecondCountableTopology α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : BorelSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
hμν : ↑↑μ univ = ↑↑ν univ
h : ∀ ⦃a b : α⦄, a < b → ↑↑μ (Ico a b) = ↑↑ν (Ico a b)
⊢ μ = ν

Next tactic:
refine'
    ext_of_generate_finite _ (BorelSpace.measurable_eq.trans (borel_eq_generateFrom_Ico α))
      (isPiSystem_Ico (id : α → α) id) _ hμν
/-- Two finite measures on a Borel space are equal if they agree on all closed-open intervals.  If
`α` is a conditionally complete linear order with no top element,
`MeasureTheory.Measure.ext_of_Ico` is an extensionality lemma with weaker assumptions on `μ` and
`ν`. -/
theorem ext_of_Ico_finite {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
    [SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
    [IsFiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) :
    μ = ν := by
  refine'
    ext_of_generate_finite _ (BorelSpace.measurable_eq.trans (borel_eq_generateFrom_Ico α))
      (isPiSystem_Ico (id : α → α) id) _ hμν
  · 

Proof state:
α✝ : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s t u : Set α✝
inst✝²² : TopologicalSpace α✝
inst✝²¹ : MeasurableSpace α✝
inst✝²⁰ : OpensMeasurableSpace α✝
inst✝¹⁹ : TopologicalSpace β
inst✝¹⁸ : MeasurableSpace β
inst✝¹⁷ : OpensMeasurableSpace β
inst✝¹⁶ : TopologicalSpace γ
inst✝¹⁵ : MeasurableSpace γ
inst✝¹⁴ : BorelSpace γ
inst✝¹³ : TopologicalSpace γ₂
inst✝¹² : MeasurableSpace γ₂
inst✝¹¹ : BorelSpace γ₂
inst✝¹⁰ : MeasurableSpace δ
α' : Type u_6
inst✝⁹ : TopologicalSpace α'
inst✝⁸ : MeasurableSpace α'
inst✝⁷ : LinearOrder α✝
inst✝⁶ : OrderClosedTopology α✝
a b x : α✝
α : Type u_7
inst✝⁵ : TopologicalSpace α
m : MeasurableSpace α
inst✝⁴ : SecondCountableTopology α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : BorelSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
hμν : ↑↑μ univ = ↑↑ν univ
h : ∀ ⦃a b : α⦄, a < b → ↑↑μ (Ico a b) = ↑↑ν (Ico a b)
⊢ ∀ s ∈ {S | ∃ l u, l < u ∧ Ico l u = S}, ↑↑μ s = ↑↑ν s

Next tactic:
rintro - ⟨a, b, hlt, rfl⟩
/-- Two finite measures on a Borel space are equal if they agree on all closed-open intervals.  If
`α` is a conditionally complete linear order with no top element,
`MeasureTheory.Measure.ext_of_Ico` is an extensionality lemma with weaker assumptions on `μ` and
`ν`. -/
theorem ext_of_Ico_finite {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
    [SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
    [IsFiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) :
    μ = ν := by
  refine'
    ext_of_generate_finite _ (BorelSpace.measurable_eq.trans (borel_eq_generateFrom_Ico α))
      (isPiSystem_Ico (id : α → α) id) _ hμν
  · rintro - ⟨a, b, hlt, rfl⟩
    

Proof state:
case intro.intro.intro
α✝ : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s t u : Set α✝
inst✝²² : TopologicalSpace α✝
inst✝²¹ : MeasurableSpace α✝
inst✝²⁰ : OpensMeasurableSpace α✝
inst✝¹⁹ : TopologicalSpace β
inst✝¹⁸ : MeasurableSpace β
inst✝¹⁷ : OpensMeasurableSpace β
inst✝¹⁶ : TopologicalSpace γ
inst✝¹⁵ : MeasurableSpace γ
inst✝¹⁴ : BorelSpace γ
inst✝¹³ : TopologicalSpace γ₂
inst✝¹² : MeasurableSpace γ₂
inst✝¹¹ : BorelSpace γ₂
inst✝¹⁰ : MeasurableSpace δ
α' : Type u_6
inst✝⁹ : TopologicalSpace α'
inst✝⁸ : MeasurableSpace α'
inst✝⁷ : LinearOrder α✝
inst✝⁶ : OrderClosedTopology α✝
a✝ b✝ x : α✝
α : Type u_7
inst✝⁵ : TopologicalSpace α
m : MeasurableSpace α
inst✝⁴ : SecondCountableTopology α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : BorelSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
hμν : ↑↑μ univ = ↑↑ν univ
h : ∀ ⦃a b : α⦄, a < b → ↑↑μ (Ico a b) = ↑↑ν (Ico a b)
a b : α
hlt : a < b
⊢ ↑↑μ (Ico a b) = ↑↑ν (Ico a b)

Next tactic:
exact h hlt
/-- Two finite measures on a Borel space are equal if they agree on all open-closed intervals.  If
`α` is a conditionally complete linear order with no top element,
`MeasureTheory.Measure.ext_of_Ioc` is an extensionality lemma with weaker assumptions on `μ` and
`ν`. -/
theorem ext_of_Ioc_finite {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
    [SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
    [IsFiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ioc a b) = ν (Ioc a b)) :
    μ = ν := by
  

Proof state:
α✝ : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s t u : Set α✝
inst✝²² : TopologicalSpace α✝
inst✝²¹ : MeasurableSpace α✝
inst✝²⁰ : OpensMeasurableSpace α✝
inst✝¹⁹ : TopologicalSpace β
inst✝¹⁸ : MeasurableSpace β
inst✝¹⁷ : OpensMeasurableSpace β
inst✝¹⁶ : TopologicalSpace γ
inst✝¹⁵ : MeasurableSpace γ
inst✝¹⁴ : BorelSpace γ
inst✝¹³ : TopologicalSpace γ₂
inst✝¹² : MeasurableSpace γ₂
inst✝¹¹ : BorelSpace γ₂
inst✝¹⁰ : MeasurableSpace δ
α' : Type u_6
inst✝⁹ : TopologicalSpace α'
inst✝⁸ : MeasurableSpace α'
inst✝⁷ : LinearOrder α✝
inst✝⁶ : OrderClosedTopology α✝
a b x : α✝
α : Type u_7
inst✝⁵ : TopologicalSpace α
m : MeasurableSpace α
inst✝⁴ : SecondCountableTopology α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : BorelSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
hμν : ↑↑μ univ = ↑↑ν univ
h : ∀ ⦃a b : α⦄, a < b → ↑↑μ (Ioc a b) = ↑↑ν (Ioc a b)
⊢ μ = ν

Next tactic:
refine' @ext_of_Ico_finite αᵒᵈ _ _ _ _ _ ‹_› μ ν _ hμν fun a b hab => _
/-- Two finite measures on a Borel space are equal if they agree on all open-closed intervals.  If
`α` is a conditionally complete linear order with no top element,
`MeasureTheory.Measure.ext_of_Ioc` is an extensionality lemma with weaker assumptions on `μ` and
`ν`. -/
theorem ext_of_Ioc_finite {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
    [SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
    [IsFiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ioc a b) = ν (Ioc a b)) :
    μ = ν := by
  refine' @ext_of_Ico_finite αᵒᵈ _ _ _ _ _ ‹_› μ ν _ hμν fun a b hab => _
  

Proof state:
α✝ : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s t u : Set α✝
inst✝²² : TopologicalSpace α✝
inst✝²¹ : MeasurableSpace α✝
inst✝²⁰ : OpensMeasurableSpace α✝
inst✝¹⁹ : TopologicalSpace β
inst✝¹⁸ : MeasurableSpace β
inst✝¹⁷ : OpensMeasurableSpace β
inst✝¹⁶ : TopologicalSpace γ
inst✝¹⁵ : MeasurableSpace γ
inst✝¹⁴ : BorelSpace γ
inst✝¹³ : TopologicalSpace γ₂
inst✝¹² : MeasurableSpace γ₂
inst✝¹¹ : BorelSpace γ₂
inst✝¹⁰ : MeasurableSpace δ
α' : Type u_6
inst✝⁹ : TopologicalSpace α'
inst✝⁸ : MeasurableSpace α'
inst✝⁷ : LinearOrder α✝
inst✝⁶ : OrderClosedTopology α✝
a✝ b✝ x : α✝
α : Type u_7
inst✝⁵ : TopologicalSpace α
m : MeasurableSpace α
inst✝⁴ : SecondCountableTopology α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : BorelSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
hμν : ↑↑μ univ = ↑↑ν univ
h : ∀ ⦃a b : α⦄, a < b → ↑↑μ (Ioc a b) = ↑↑ν (Ioc a b)
a b : αᵒᵈ
hab : a < b
⊢ ↑↑μ (Ico a b) = ↑↑ν (Ico a b)

Next tactic:
erw [dual_Ico (α := α)]
/-- Two finite measures on a Borel space are equal if they agree on all open-closed intervals.  If
`α` is a conditionally complete linear order with no top element,
`MeasureTheory.Measure.ext_of_Ioc` is an extensionality lemma with weaker assumptions on `μ` and
`ν`. -/
theorem ext_of_Ioc_finite {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
    [SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] (μ ν : Measure α)
    [IsFiniteMeasure μ] (hμν : μ univ = ν univ) (h : ∀ ⦃a b⦄, a < b → μ (Ioc a b) = ν (Ioc a b)) :
    μ = ν := by
  refine' @ext_of_Ico_finite αᵒᵈ _ _ _ _ _ ‹_› μ ν _ hμν fun a b hab => _
  erw [dual_Ico (α := α)]
  

Proof state:
α✝ : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s t u : Set α✝
inst✝²² : TopologicalSpace α✝
inst✝²¹ : MeasurableSpace α✝
inst✝²⁰ : OpensMeasurableSpace α✝
inst✝¹⁹ : TopologicalSpace β
inst✝¹⁸ : MeasurableSpace β
inst✝¹⁷ : OpensMeasurableSpace β
inst✝¹⁶ : TopologicalSpace γ
inst✝¹⁵ : MeasurableSpace γ
inst✝¹⁴ : BorelSpace γ
inst✝¹³ : TopologicalSpace γ₂
inst✝¹² : MeasurableSpace γ₂
inst✝¹¹ : BorelSpace γ₂
inst✝¹⁰ : MeasurableSpace δ
α' : Type u_6
inst✝⁹ : TopologicalSpace α'
inst✝⁸ : MeasurableSpace α'
inst✝⁷ : LinearOrder α✝
inst✝⁶ : OrderClosedTopology α✝
a✝ b✝ x : α✝
α : Type u_7
inst✝⁵ : TopologicalSpace α
m : MeasurableSpace α
inst✝⁴ : SecondCountableTopology α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : BorelSpace α
μ ν : Measure α
inst✝ : IsFiniteMeasure μ
hμν : ↑↑μ univ = ↑↑ν univ
h : ∀ ⦃a b : α⦄, a < b → ↑↑μ (Ioc a b) = ↑↑ν (Ioc a b)
a b : αᵒᵈ
hab : a < b
⊢ ↑↑μ (⇑OrderDual.ofDual ⁻¹' Ioc b a) = ↑↑ν (⇑OrderDual.ofDual ⁻¹' Ioc b a)

Next tactic:
exact h hab
/-- Two measures which are finite on closed-open intervals are equal if they agree on all
closed-open intervals. -/
theorem ext_of_Ico' {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
    [SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] [NoMaxOrder α]
    (μ ν : Measure α) (hμ : ∀ ⦃a b⦄, a < b → μ (Ico a b) ≠ ∞)
    (h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) : μ = ν := by
  

Proof state:
α✝ : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s t u : Set α✝
inst✝²² : TopologicalSpace α✝
inst✝²¹ : MeasurableSpace α✝
inst✝²⁰ : OpensMeasurableSpace α✝
inst✝¹⁹ : TopologicalSpace β
inst✝¹⁸ : MeasurableSpace β
inst✝¹⁷ : OpensMeasurableSpace β
inst✝¹⁶ : TopologicalSpace γ
inst✝¹⁵ : MeasurableSpace γ
inst✝¹⁴ : BorelSpace γ
inst✝¹³ : TopologicalSpace γ₂
inst✝¹² : MeasurableSpace γ₂
inst✝¹¹ : BorelSpace γ₂
inst✝¹⁰ : MeasurableSpace δ
α' : Type u_6
inst✝⁹ : TopologicalSpace α'
inst✝⁸ : MeasurableSpace α'
inst✝⁷ : LinearOrder α✝
inst✝⁶ : OrderClosedTopology α✝
a b x : α✝
α : Type u_7
inst✝⁵ : TopologicalSpace α
m : MeasurableSpace α
inst✝⁴ : SecondCountableTopology α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : BorelSpace α
inst✝ : NoMaxOrder α
μ ν : Measure α
hμ : ∀ ⦃a b : α⦄, a < b → ↑↑μ (Ico a b) ≠ ⊤
h : ∀ ⦃a b : α⦄, a < b → ↑↑μ (Ico a b) = ↑↑ν (Ico a b)
⊢ μ = ν

Next tactic:
rcases exists_countable_dense_bot_top α with ⟨s, hsc, hsd, hsb, _⟩
/-- Two measures which are finite on closed-open intervals are equal if they agree on all
closed-open intervals. -/
theorem ext_of_Ico' {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
    [SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] [NoMaxOrder α]
    (μ ν : Measure α) (hμ : ∀ ⦃a b⦄, a < b → μ (Ico a b) ≠ ∞)
    (h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) : μ = ν := by
  rcases exists_countable_dense_bot_top α with ⟨s, hsc, hsd, hsb, _⟩
  

Proof state:
case intro.intro.intro.intro
α✝ : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u : Set α✝
inst✝²² : TopologicalSpace α✝
inst✝²¹ : MeasurableSpace α✝
inst✝²⁰ : OpensMeasurableSpace α✝
inst✝¹⁹ : TopologicalSpace β
inst✝¹⁸ : MeasurableSpace β
inst✝¹⁷ : OpensMeasurableSpace β
inst✝¹⁶ : TopologicalSpace γ
inst✝¹⁵ : MeasurableSpace γ
inst✝¹⁴ : BorelSpace γ
inst✝¹³ : TopologicalSpace γ₂
inst✝¹² : MeasurableSpace γ₂
inst✝¹¹ : BorelSpace γ₂
inst✝¹⁰ : MeasurableSpace δ
α' : Type u_6
inst✝⁹ : TopologicalSpace α'
inst✝⁸ : MeasurableSpace α'
inst✝⁷ : LinearOrder α✝
inst✝⁶ : OrderClosedTopology α✝
a b x : α✝
α : Type u_7
inst✝⁵ : TopologicalSpace α
m : MeasurableSpace α
inst✝⁴ : SecondCountableTopology α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : BorelSpace α
inst✝ : NoMaxOrder α
μ ν : Measure α
hμ : ∀ ⦃a b : α⦄, a < b → ↑↑μ (Ico a b) ≠ ⊤
h : ∀ ⦃a b : α⦄, a < b → ↑↑μ (Ico a b) = ↑↑ν (Ico a b)
s : Set α
hsc : Set.Countable s
hsd : Dense s
hsb : ∀ (x : α), IsBot x → x ∈ s
right✝ : ∀ (x : α), IsTop x → x ∈ s
⊢ μ = ν

Next tactic:
have : (⋃ (l ∈ s) (u ∈ s) (_ : l < u), {Ico l u} : Set (Set α)).Countable :=
    hsc.biUnion fun l _ => hsc.biUnion fun u _ => countable_iUnion fun _ => countable_singleton _
/-- Two measures which are finite on closed-open intervals are equal if they agree on all
closed-open intervals. -/
theorem ext_of_Ico' {α : Type*} [TopologicalSpace α] {m : MeasurableSpace α}
    [SecondCountableTopology α] [LinearOrder α] [OrderTopology α] [BorelSpace α] [NoMaxOrder α]
    (μ ν : Measure α) (hμ : ∀ ⦃a b⦄, a < b → μ (Ico a b) ≠ ∞)
    (h : ∀ ⦃a b⦄, a < b → μ (Ico a b) = ν (Ico a b)) : μ = ν := by
  rcases exists_countable_dense_bot_top α with ⟨s, hsc, hsd, hsb, _⟩
  have : (⋃ (l ∈ s) (u ∈ s) (_ : l < u), {Ico l u} : Set (Set α)).Countable :=
    hsc.biUnion fun l _ => hsc.biUnion fun u _ => countable_iUnion fun _ => countable_singleton _
  

Proof state:
case intro.intro.intro.intro
α✝ : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u : Set α✝
inst✝²² : TopologicalSpace α✝
inst✝²¹ : MeasurableSpace α✝
inst✝²⁰ : OpensMeasurableSpace α✝
inst✝¹⁹ : TopologicalSpace β
inst✝¹⁸ : MeasurableSpace β
inst✝¹⁷ : OpensMeasurableSpace β
inst✝¹⁶ : TopologicalSpace γ
inst✝¹⁵ : MeasurableSpace γ
inst✝¹⁴ : BorelSpace γ
inst✝¹³ : TopologicalSpace γ₂
inst✝¹² : MeasurableSpace γ₂
inst✝¹¹ : BorelSpace γ₂
inst✝¹⁰ : MeasurableSpace δ
α' : Type u_6
inst✝⁹ : TopologicalSpace α'
inst✝⁸ : MeasurableSpace α'
inst✝⁷ : LinearOrder α✝
inst✝⁶ : OrderClosedTopology α✝
a b x : α✝
α : Type u_7
inst✝⁵ : TopologicalSpace α
m : MeasurableSpace α
inst✝⁴ : SecondCountableTopology α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : BorelSpace α
inst✝ : NoMaxOrder α
μ ν : Measure α
hμ : ∀ ⦃a b : α⦄, a < b → ↑↑μ (Ico a b) ≠ ⊤
h : ∀ ⦃a b : α⦄, a < b → ↑↑μ (Ico a b) = ↑↑ν (Ico a b)
s : Set α
hsc : Set.Countable s
hsd : Dense s
hsb : ∀ (x : α), IsBot x → x ∈ s
right✝ : ∀ (x : α), IsTop x → x ∈ s
this : Set.Countable (⋃ l ∈ s, ⋃ u ∈ s, ⋃ (_ : l < u), {Ico l u})
⊢ μ = ν

Next tactic:
simp only [← setOf_eq_eq_singleton, ← setOf_exists] at this