awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f ⊥
this : Continuous eval
U : Set G
left :
  Membership.mem (γ := Set (Set G))
    {U : Set G | U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G) ∧ IsOpen[inst_1] U ∧ 1 ∈ U} U
⊢ prehaar (↑K₀ : Set G) U ∈ eval ⁻¹' {0}

Tactic:
apply prehaar_empty

Premises used: MeasureTheory.Measure.haar.prehaar_empty
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f ⊥
this : Continuous eval
a : IsClosed (X := ℝ) {0}
⊢ IsClosed (eval ⁻¹' {0})

Tactic:
apply continuous_iff_isClosed.mp this

Premises used: continuous_iff_isClosed, Iff.mp
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f ⊥
this : Continuous eval
⊢ IsClosed (X := ℝ) {0}

Tactic:
isClosed_singleton

Premises used: isClosed_singleton
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f ⊥
this : Continuous eval
⊢ IsClosed (X := ℝ) {0}

Tactic:
exact isClosed_singleton

Premises used: isClosed_singleton
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₀.toCompacts
⊢ Continuous eval

Tactic:
have : Continuous eval := continuous_apply _
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₀.toCompacts
this : Continuous eval
change : chaar K₀ ∈ eval ⁻¹' {1}
⊢ chaar K₀ K₀.toCompacts = 1

Tactic:
change chaar K₀ ∈ eval ⁻¹' {(1 : ℝ)}

Premises used: MeasureTheory.Measure.haar.chaar, OfNat.ofNat
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₀.toCompacts
this : Continuous eval
apply : clPrehaar (↑K₀ : Set G) ⊤ ⊆ eval ⁻¹' {1}
⊢ chaar K₀ ∈ eval ⁻¹' {1}

Tactic:
apply mem_of_subset_of_mem _ (chaar_mem_clPrehaar K₀ ⊤)

Premises used: Set.mem_of_subset_of_mem, Top.top, MeasureTheory.Measure.haar.chaar_mem_clPrehaar
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₀.toCompacts
this : Continuous eval
rw :
  prehaar (↑K₀ : Set G) '' {U : Set G | U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G) ∧ IsOpen[inst_1] U ∧ 1 ∈ U} ⊆
    eval ⁻¹' {1}
rw₁ : IsClosed (eval ⁻¹' {1})
⊢ closure
      (prehaar (↑K₀ : Set G) ''
        {U : Set G | U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G) ∧ IsOpen[inst_1] U ∧ 1 ∈ U}) ⊆
    eval ⁻¹' {1}

Tactic:
rw [IsClosed.closure_subset_iff]

Premises used: IsClosed.closure_subset_iff
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₀.toCompacts
this : Continuous eval
U : Set G
left : U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G)
h2U : IsOpen[inst_1] U
h3U : 1 ∈ U
hU : (interior U).Nonempty
⊢ prehaar (↑K₀ : Set G) U ∈ eval ⁻¹' {1}

Tactic:
apply prehaar_self

Premises used: MeasureTheory.Measure.haar.prehaar_self
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₀.toCompacts
this : Continuous eval
U : Set G
left : U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G)
h2U : IsOpen[inst_1] U
h3U : 1 ∈ U
hU : U.Nonempty
⊢ (interior U).Nonempty

Tactic:
rw [h2U.interior_eq]

Premises used: IsOpen.interior_eq
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₀.toCompacts
this : Continuous eval
U : Set G
left : U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G)
h2U : IsOpen[inst_1] U
h3U : 1 ∈ U
⊢ U.Nonempty

Tactic:
⟨1, h3U⟩

Premises used: Set.Nonempty, Exists.intro, OfNat.ofNat
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₀.toCompacts
this : Continuous eval
U : Set G
left : U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G)
h2U : IsOpen[inst_1] U
h3U : 1 ∈ U
⊢ U.Nonempty

Tactic:
exact ⟨1, h3U⟩
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₀.toCompacts
this : Continuous eval
a : IsClosed (X := ℝ) {1}
⊢ IsClosed (eval ⁻¹' {1})

Tactic:
apply continuous_iff_isClosed.mp this

Premises used: continuous_iff_isClosed, Iff.mp
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₀.toCompacts
this : Continuous eval
⊢ IsClosed (X := ℝ) {1}

Tactic:
isClosed_singleton

Premises used: isClosed_singleton
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₀.toCompacts
this : Continuous eval
⊢ IsClosed (X := ℝ) {1}

Tactic:
exact isClosed_singleton

Premises used: isClosed_singleton
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : (↑K₁ : Set G) ⊆ (↑K₂ : Set G)
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₂ - f K₁
⊢ Continuous eval

Tactic:
have : Continuous eval := (continuous_apply K₂).sub (continuous_apply K₁)
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : (↑K₁ : Set G) ⊆ (↑K₂ : Set G)
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₂ - f K₁
this : Continuous eval
rw : 0 ≤ chaar K₀ K₂ - chaar K₀ K₁
⊢ chaar K₀ K₁ ≤ chaar K₀ K₂

Tactic:
rw [← sub_nonneg]

Premises used: sub_nonneg
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : (↑K₁ : Set G) ⊆ (↑K₂ : Set G)
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₂ - f K₁
this : Continuous eval
change : chaar K₀ ∈ eval ⁻¹' Ici 0
⊢ 0 ≤ chaar K₀ K₂ - chaar K₀ K₁

Tactic:
change chaar K₀ ∈ eval ⁻¹' Ici (0 : ℝ)

Premises used: MeasureTheory.Measure.haar.chaar, Set.Ici, OfNat.ofNat
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : (↑K₁ : Set G) ⊆ (↑K₂ : Set G)
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₂ - f K₁
this : Continuous eval
apply : clPrehaar (↑K₀ : Set G) ⊤ ⊆ eval ⁻¹' Ici 0
⊢ chaar K₀ ∈ eval ⁻¹' Ici 0

Tactic:
apply mem_of_subset_of_mem _ (chaar_mem_clPrehaar K₀ ⊤)

Premises used: Set.mem_of_subset_of_mem, Top.top, MeasureTheory.Measure.haar.chaar_mem_clPrehaar
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : (↑K₁ : Set G) ⊆ (↑K₂ : Set G)
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₂ - f K₁
this : Continuous eval
rw :
  prehaar (↑K₀ : Set G) '' {U : Set G | U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G) ∧ IsOpen[inst_1] U ∧ 1 ∈ U} ⊆
    eval ⁻¹' Ici 0
rw₁ : IsClosed (eval ⁻¹' Ici 0)
⊢ closure
      (prehaar (↑K₀ : Set G) ''
        {U : Set G | U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G) ∧ IsOpen[inst_1] U ∧ 1 ∈ U}) ⊆
    eval ⁻¹' Ici 0

Tactic:
rw [IsClosed.closure_subset_iff]

Premises used: IsClosed.closure_subset_iff
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : (↑K₁ : Set G) ⊆ (↑K₂ : Set G)
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₂ - f K₁
this : Continuous eval
U : Set G
left : U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G)
h2U : IsOpen[inst_1] U
h3U : 1 ∈ U
simp : prehaar (↑K₀ : Set G) U K₁ ≤ prehaar (↑K₀ : Set G) U K₂
⊢ prehaar (↑K₀ : Set G) U ∈ eval ⁻¹' Ici 0

Tactic:
simp only [eval, mem_preimage, mem_Ici, sub_nonneg]

Premises used: Set.mem_Ici, sub_nonneg, Set.mem_preimage
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : (↑K₁ : Set G) ⊆ (↑K₂ : Set G)
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₂ - f K₁
this : Continuous eval
U : Set G
left : U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G)
h2U : IsOpen[inst_1] U
h3U : 1 ∈ U
apply : (interior U).Nonempty
⊢ prehaar (↑K₀ : Set G) U K₁ ≤ prehaar (↑K₀ : Set G) U K₂

Tactic:
apply prehaar_mono _ h

Premises used: MeasureTheory.Measure.haar.prehaar_mono
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : (↑K₁ : Set G) ⊆ (↑K₂ : Set G)
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₂ - f K₁
this : Continuous eval
U : Set G
left : U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G)
h2U : IsOpen[inst_1] U
h3U : 1 ∈ U
rw : U.Nonempty
⊢ (interior U).Nonempty

Tactic:
rw [h2U.interior_eq]

Premises used: IsOpen.interior_eq
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : (↑K₁ : Set G) ⊆ (↑K₂ : Set G)
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₂ - f K₁
this : Continuous eval
U : Set G
left : U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G)
h2U : IsOpen[inst_1] U
h3U : 1 ∈ U
⊢ U.Nonempty

Tactic:
⟨1, h3U⟩

Premises used: Set.Nonempty, Exists.intro, OfNat.ofNat
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : (↑K₁ : Set G) ⊆ (↑K₂ : Set G)
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₂ - f K₁
this : Continuous eval
U : Set G
left : U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G)
h2U : IsOpen[inst_1] U
h3U : 1 ∈ U
⊢ U.Nonempty

Tactic:
exact ⟨1, h3U⟩
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : (↑K₁ : Set G) ⊆ (↑K₂ : Set G)
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₂ - f K₁
this : Continuous eval
a : IsClosed (X := ℝ) (Ici 0)
⊢ IsClosed (eval ⁻¹' Ici 0)

Tactic:
apply continuous_iff_isClosed.mp this

Premises used: continuous_iff_isClosed, Iff.mp
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : (↑K₁ : Set G) ⊆ (↑K₂ : Set G)
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₂ - f K₁
this : Continuous eval
⊢ IsClosed (X := ℝ) (Ici 0)

Tactic:
isClosed_Ici

Premises used: isClosed_Ici
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : (↑K₁ : Set G) ⊆ (↑K₂ : Set G)
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₂ - f K₁
this : Continuous eval
⊢ IsClosed (X := ℝ) (Ici 0)

Tactic:
exact isClosed_Ici

Premises used: isClosed_Ici
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₁ + f K₂ - f (K₁ ⊔ K₂)
⊢ Continuous eval

Tactic:
((continuous_apply K₁).add (continuous_apply K₂)).sub (continuous_apply (K₁ ⊔ K₂))

Premises used: Max.max, continuous_apply, Continuous.add, Continuous.sub
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₁ + f K₂ - f (K₁ ⊔ K₂)
⊢ Continuous eval

Tactic:
exact ((continuous_apply K₁).add (continuous_apply K₂)).sub (continuous_apply (K₁ ⊔ K₂))

Premises used: continuous_apply, Continuous.add, Continuous.sub
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₁ + f K₂ - f (K₁ ⊔ K₂)
⊢ Continuous eval

Tactic:
have : Continuous eval := by
    exact ((continuous_apply K₁).add (continuous_apply K₂)).sub (continuous_apply (K₁ ⊔ K₂))
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₁ + f K₂ - f (K₁ ⊔ K₂)
this : Continuous eval
rw : 0 ≤ chaar K₀ K₁ + chaar K₀ K₂ - chaar K₀ (K₁ ⊔ K₂)
⊢ chaar K₀ (K₁ ⊔ K₂) ≤ chaar K₀ K₁ + chaar K₀ K₂

Tactic:
rw [← sub_nonneg]

Premises used: sub_nonneg
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₁ + f K₂ - f (K₁ ⊔ K₂)
this : Continuous eval
change : chaar K₀ ∈ eval ⁻¹' Ici 0
⊢ 0 ≤ chaar K₀ K₁ + chaar K₀ K₂ - chaar K₀ (K₁ ⊔ K₂)

Tactic:
change chaar K₀ ∈ eval ⁻¹' Ici (0 : ℝ)

Premises used: MeasureTheory.Measure.haar.chaar, Set.Ici, OfNat.ofNat
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₁ + f K₂ - f (K₁ ⊔ K₂)
this : Continuous eval
apply : clPrehaar (↑K₀ : Set G) ⊤ ⊆ eval ⁻¹' Ici 0
⊢ chaar K₀ ∈ eval ⁻¹' Ici 0

Tactic:
apply mem_of_subset_of_mem _ (chaar_mem_clPrehaar K₀ ⊤)

Premises used: Set.mem_of_subset_of_mem, Top.top, MeasureTheory.Measure.haar.chaar_mem_clPrehaar
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₁ + f K₂ - f (K₁ ⊔ K₂)
this : Continuous eval
rw :
  prehaar (↑K₀ : Set G) '' {U : Set G | U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G) ∧ IsOpen[inst_1] U ∧ 1 ∈ U} ⊆
    eval ⁻¹' Ici 0
rw₁ : IsClosed (eval ⁻¹' Ici 0)
⊢ closure
      (prehaar (↑K₀ : Set G) ''
        {U : Set G | U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G) ∧ IsOpen[inst_1] U ∧ 1 ∈ U}) ⊆
    eval ⁻¹' Ici 0

Tactic:
rw [IsClosed.closure_subset_iff]

Premises used: IsClosed.closure_subset_iff
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₁ + f K₂ - f (K₁ ⊔ K₂)
this : Continuous eval
U : Set G
left : U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G)
h2U : IsOpen[inst_1] U
h3U : 1 ∈ U
simp : prehaar (↑K₀ : Set G) U (K₁ ⊔ K₂) ≤ prehaar (↑K₀ : Set G) U K₁ + prehaar (↑K₀ : Set G) U K₂
⊢ prehaar (↑K₀ : Set G) U ∈ eval ⁻¹' Ici 0

Tactic:
simp only [eval, mem_preimage, mem_Ici, sub_nonneg]

Premises used: Set.mem_Ici, sub_nonneg, Set.mem_preimage
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₁ + f K₂ - f (K₁ ⊔ K₂)
this : Continuous eval
U : Set G
left : U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G)
h2U : IsOpen[inst_1] U
h3U : 1 ∈ U
hU : (interior U).Nonempty
⊢ prehaar (↑K₀ : Set G) U (K₁ ⊔ K₂) ≤ prehaar (↑K₀ : Set G) U K₁ + prehaar (↑K₀ : Set G) U K₂

Tactic:
apply prehaar_sup_le

Premises used: MeasureTheory.Measure.haar.prehaar_sup_le
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₁ + f K₂ - f (K₁ ⊔ K₂)
this : Continuous eval
U : Set G
left : U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G)
h2U : IsOpen[inst_1] U
h3U : 1 ∈ U
hU : U.Nonempty
⊢ (interior U).Nonempty

Tactic:
rw [h2U.interior_eq]

Premises used: IsOpen.interior_eq
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₁ + f K₂ - f (K₁ ⊔ K₂)
this : Continuous eval
U : Set G
left : U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G)
h2U : IsOpen[inst_1] U
h3U : 1 ∈ U
⊢ U.Nonempty

Tactic:
⟨1, h3U⟩

Premises used: Set.Nonempty, Exists.intro, OfNat.ofNat
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₁ + f K₂ - f (K₁ ⊔ K₂)
this : Continuous eval
U : Set G
left : U ⊆ (↑(OpenNhdsOf.toOpens (x := 1) ⊤) : Set G)
h2U : IsOpen[inst_1] U
h3U : 1 ∈ U
⊢ U.Nonempty

Tactic:
exact ⟨1, h3U⟩
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₁ + f K₂ - f (K₁ ⊔ K₂)
this : Continuous eval
a : IsClosed (X := ℝ) (Ici 0)
⊢ IsClosed (eval ⁻¹' Ici 0)

Tactic:
apply continuous_iff_isClosed.mp this

Premises used: continuous_iff_isClosed, Iff.mp
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₁ + f K₂ - f (K₁ ⊔ K₂)
this : Continuous eval
⊢ IsClosed (X := ℝ) (Ici 0)

Tactic:
isClosed_Ici

Premises used: isClosed_Ici
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
eval : (Compacts G → ℝ) → ℝ := fun (f : Compacts G → ℝ) ↦ f K₁ + f K₂ - f (K₁ ⊔ K₂)
this : Continuous eval
⊢ IsClosed (X := ℝ) (Ici 0)

Tactic:
exact isClosed_Ici

Premises used: isClosed_Ici
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : Disjoint K₁.carrier K₂.carrier
h₂ : IsClosed[inst_1] K₂.carrier
rcases :
  ∀ (U₁ U₂ : Set G) (h1U₁ : IsOpen[inst_1] U₁) (h1U₂ : IsOpen[inst_1] U₂) (h2U₁ : K₁.carrier ⊆ U₁)
    (h2U₂ : K₂.carrier ⊆ U₂) (hU : Disjoint U₁ U₂), chaar K₀ (K₁ ⊔ K₂) = chaar K₀ K₁ + chaar K₀ K₂
⊢ chaar K₀ (K₁ ⊔ K₂) = chaar K₀ K₁ + chaar K₀ K₂

Tactic:
rcases SeparatedNhds.of_isCompact_isCompact_isClosed K₁.2 K₂.2 h₂ h
    with ⟨U₁, U₂, h1U₁, h1U₂, h2U₁, h2U₂, hU⟩

Premises used: TopologicalSpace.Compacts.isCompact', SeparatedNhds.of_isCompact_isCompact_isClosed
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : Disjoint K₁.carrier K₂.carrier
h₂ : IsClosed[inst_1] K₂.carrier
U₁ U₂ : Set G
h1U₁ : IsOpen[inst_1] U₁
h1U₂ : IsOpen[inst_1] U₂
h2U₁ : K₁.carrier ⊆ U₁
h2U₂ : K₂.carrier ⊆ U₂
hU : Disjoint U₁ U₂
rcases :
  ∀ (L₁ : Set G) (h1L₁ : Membership.mem (γ := Filter G) (𝓝 1) L₁) (h2L₁ : K₁.carrier * L₁ ⊆ U₁),
    chaar K₀ (K₁ ⊔ K₂) = chaar K₀ K₁ + chaar K₀ K₂
⊢ chaar K₀ (K₁ ⊔ K₂) = chaar K₀ K₁ + chaar K₀ K₂

Tactic:
rcases compact_open_separated_mul_right K₁.2 h1U₁ h2U₁ with ⟨L₁, h1L₁, h2L₁⟩

Premises used: TopologicalSpace.Compacts.isCompact', compact_open_separated_mul_right
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : Disjoint K₁.carrier K₂.carrier
h₂ : IsClosed[inst_1] K₂.carrier
U₁ U₂ : Set G
h1U₁ : IsOpen[inst_1] U₁
h1U₂ : IsOpen[inst_1] U₂
h2U₁ : K₁.carrier ⊆ U₁
h2U₂ : K₂.carrier ⊆ U₂
hU : Disjoint U₁ U₂
L₁ : Set G
h1L₁ : Membership.mem (γ := Filter G) (𝓝 1) L₁
h2L₁ : K₁.carrier * L₁ ⊆ U₁
rcases :
  ∀ (V₁ : Set G) (h1V₁ : V₁ ⊆ L₁) (h2V₁ : IsOpen[inst_1] V₁) (h3V₁ : 1 ∈ V₁),
    chaar K₀ (K₁ ⊔ K₂) = chaar K₀ K₁ + chaar K₀ K₂
⊢ chaar K₀ (K₁ ⊔ K₂) = chaar K₀ K₁ + chaar K₀ K₂

Tactic:
rcases mem_nhds_iff.mp h1L₁ with ⟨V₁, h1V₁, h2V₁, h3V₁⟩

Premises used: mem_nhds_iff, Iff.mp
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : Disjoint K₁.carrier K₂.carrier
h₂ : IsClosed[inst_1] K₂.carrier
U₁ U₂ : Set G
h1U₁ : IsOpen[inst_1] U₁
h1U₂ : IsOpen[inst_1] U₂
h2U₁ : K₁.carrier ⊆ U₁
h2U₂ : K₂.carrier ⊆ U₂
hU : Disjoint U₁ U₂
L₁ : Set G
h1L₁ : Membership.mem (γ := Filter G) (𝓝 1) L₁
h2L₁ : K₁.carrier * L₁ ⊆ U₁
V₁ : Set G
h1V₁ : V₁ ⊆ L₁
h2V₁ : IsOpen[inst_1] V₁
h3V₁ : 1 ∈ V₁
⊢ K₁.carrier * V₁ ⊆ U₁

Tactic:
replace h2L₁ := Subset.trans (mul_subset_mul_left h1V₁) h2L₁
-- Module: Mathlib.MeasureTheory.Measure.Haar.Basic
Goal:
G : Type u_1
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
K₀ : PositiveCompacts G
K₁ K₂ : Compacts G
h : Disjoint K₁.carrier K₂.carrier
h₂ : IsClosed[inst_1] K₂.carrier
U₁ U₂ : Set G
h1U₁ : IsOpen[inst_1] U₁
h1U₂ : IsOpen[inst_1] U₂
h2U₁ : K₁.carrier ⊆ U₁
h2U₂ : K₂.carrier ⊆ U₂
hU : Disjoint U₁ U₂
L₁ : Set G
h1L₁ : Membership.mem (γ := Filter G) (𝓝 1) L₁
V₁ : Set G
h1V₁ : V₁ ⊆ L₁
h2V₁ : IsOpen[inst_1] V₁
h3V₁ : 1 ∈ V₁
h2L₁ : K₁.carrier * V₁ ⊆ U₁
rcases :
  ∀ (L₂ : Set G) (h1L₂ : Membership.mem (γ := Filter G) (𝓝 1) L₂) (h2L₂ : K₂.carrier * L₂ ⊆ U₂),
    chaar K₀ (K₁ ⊔ K₂) = chaar K₀ K₁ + chaar K₀ K₂
⊢ chaar K₀ (K₁ ⊔ K₂) = chaar K₀ K₁ + chaar K₀ K₂

Tactic:
rcases compact_open_separated_mul_right K₂.2 h1U₂ h2U₂ with ⟨L₂, h1L₂, h2L₂⟩

Premises used: TopologicalSpace.Compacts.isCompact', compact_open_separated_mul_right