ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: schnirelmannDensity_congr'
File: Mathlib/Combinatorics/Schnirelmann.lean

Proof steps:
state_before: A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
⊢ schnirelmannDensity A = schnirelmannDensity B
state_after: A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
⊢ ⨅ n, ↑(filter (fun x => x ∈ A) (Ioc 0 ↑n)).card / ↑↑n = ⨅ n, ↑(filter (fun x => x ∈ B) (Ioc 0 ↑n)).card / ↑↑n
tactic: rw [schnirelmannDensity, schnirelmannDensity]
state_before: A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
⊢ ⨅ n, ↑(filter (fun x => x ∈ A) (Ioc 0 ↑n)).card / ↑↑n = ⨅ n, ↑(filter (fun x => x ∈ B) (Ioc 0 ↑n)).card / ↑↑n
state_after: case e_s
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
⊢ (fun n => ↑(filter (fun x => x ∈ A) (Ioc 0 ↑n)).card / ↑↑n) = fun n =>
    ↑(filter (fun x => x ∈ B) (Ioc 0 ↑n)).card / ↑↑n
tactic: congr
state_before: case e_s
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
⊢ (fun n => ↑(filter (fun x => x ∈ A) (Ioc 0 ↑n)).card / ↑↑n) = fun n =>
    ↑(filter (fun x => x ∈ B) (Ioc 0 ↑n)).card / ↑↑n
state_after: case e_s.h.mk
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
n : ℕ
hn : 0 < n
⊢ ↑(filter (fun x => x ∈ A) (Ioc 0 ↑⟨n, hn⟩)).card / ↑↑⟨n, hn⟩ =
    ↑(filter (fun x => x ∈ B) (Ioc 0 ↑⟨n, hn⟩)).card / ↑↑⟨n, hn⟩
tactic: ext ⟨n, hn⟩
state_before: case e_s.h.mk
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
n : ℕ
hn : 0 < n
⊢ ↑(filter (fun x => x ∈ A) (Ioc 0 ↑⟨n, hn⟩)).card / ↑↑⟨n, hn⟩ =
    ↑(filter (fun x => x ∈ B) (Ioc 0 ↑⟨n, hn⟩)).card / ↑↑⟨n, hn⟩
state_after: case e_s.h.mk.e_a.e_a.e_s
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
n : ℕ
hn : 0 < n
⊢ filter (fun x => x ∈ A) (Ioc 0 ↑⟨n, hn⟩) = filter (fun x => x ∈ B) (Ioc 0 ↑⟨n, hn⟩)
tactic: congr 3
state_before: case e_s.h.mk.e_a.e_a.e_s
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
n : ℕ
hn : 0 < n
⊢ filter (fun x => x ∈ A) (Ioc 0 ↑⟨n, hn⟩) = filter (fun x => x ∈ B) (Ioc 0 ↑⟨n, hn⟩)
state_after: case e_s.h.mk.e_a.e_a.e_s.a
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
n : ℕ
hn : 0 < n
x : ℕ
⊢ x ∈ filter (fun x => x ∈ A) (Ioc 0 ↑⟨n, hn⟩) ↔ x ∈ filter (fun x => x ∈ B) (Ioc 0 ↑⟨n, hn⟩)
tactic: ext x
state_before: case e_s.h.mk.e_a.e_a.e_s.a
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
n : ℕ
hn : 0 < n
x : ℕ
⊢ x ∈ filter (fun x => x ∈ A) (Ioc 0 ↑⟨n, hn⟩) ↔ x ∈ filter (fun x => x ∈ B) (Ioc 0 ↑⟨n, hn⟩)
state_after: no goals
tactic: aesop
Theorem: ProbabilityTheory.Kernel.prod_apply
File: Mathlib/Probability/Kernel/Composition.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
κ : Kernel α β
inst✝¹ : IsSFiniteKernel κ
η : Kernel α γ
inst✝ : IsSFiniteKernel η
a : α
⊢ (κ ×ₖ η) a = (κ a).prod (η a)
state_after: case h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
κ : Kernel α β
inst✝¹ : IsSFiniteKernel κ
η : Kernel α γ
inst✝ : IsSFiniteKernel η
a : α
s : Set (β × γ)
hs : MeasurableSet s
⊢ ((κ ×ₖ η) a) s = ((κ a).prod (η a)) s
tactic: ext s hs
state_before: case h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
κ : Kernel α β
inst✝¹ : IsSFiniteKernel κ
η : Kernel α γ
inst✝ : IsSFiniteKernel η
a : α
s : Set (β × γ)
hs : MeasurableSet s
⊢ ((κ ×ₖ η) a) s = ((κ a).prod (η a)) s
state_after: case h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
κ : Kernel α β
inst✝¹ : IsSFiniteKernel κ
η : Kernel α γ
inst✝ : IsSFiniteKernel η
a : α
s : Set (β × γ)
hs : MeasurableSet s
⊢ ∫⁻ (b : β), (η a) {c | (b, c) ∈ s} ∂κ a = ∫⁻ (x : β), (η a) (Prod.mk x ⁻¹' s) ∂κ a
tactic: rw [prod_apply' _ _ _ hs, Measure.prod_apply hs]
state_before: case h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
κ : Kernel α β
inst✝¹ : IsSFiniteKernel κ
η : Kernel α γ
inst✝ : IsSFiniteKernel η
a : α
s : Set (β × γ)
hs : MeasurableSet s
⊢ ∫⁻ (b : β), (η a) {c | (b, c) ∈ s} ∂κ a = ∫⁻ (x : β), (η a) (Prod.mk x ⁻¹' s) ∂κ a
state_after: no goals
tactic: rfl
Theorem: NNReal.rpow_left_injective
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

Proof steps:
state_before: w x✝ y✝ z✝ x : ℝ
hx : x ≠ 0
y z : ℝ≥0
hyz : (fun y => y ^ x) y = (fun y => y ^ x) z
⊢ y = z
state_after: no goals
tactic: simpa only [rpow_inv_rpow_self hx] using congr_arg (fun y => y ^ (1 / x)) hyz
Theorem: Module.Flat.iff_lTensor_injective
File: Mathlib/RingTheory/Flat/Basic.lean

Proof steps:
state_before: R : Type u
M : Type v
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
⊢ Flat R M ↔ ∀ ⦃I : Ideal R⦄, I.FG → Function.Injective ⇑(lTensor M (Submodule.subtype I))
state_after: no goals
tactic: simpa [← comm_comp_rTensor_comp_comm_eq] using Module.Flat.iff_rTensor_injective R M
Theorem: EuclideanGeometry.Sphere.eq_or_eq_secondInter_of_mem_mk'_span_singleton_iff_mem
File: Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean

Proof steps:
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p : P
hp : p ∈ s
v : V
p' : P
hp' : p' ∈ AffineSubspace.mk' p (Submodule.span ℝ {v})
⊢ p' = p ∨ p' = s.secondInter p v ↔ p' ∈ s
state_after: case refine_1
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p : P
hp : p ∈ s
v : V
p' : P
hp' : p' ∈ AffineSubspace.mk' p (Submodule.span ℝ {v})
h : p' = p ∨ p' = s.secondInter p v
⊢ p' ∈ s

case refine_2
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : Sphere P
p : P
hp : p ∈ s
v : V
p' : P
hp' : p' ∈ AffineSubspace.mk' p (Submodule.span ℝ {v})
h : p' ∈ s
⊢ p' = p ∨ p' = s.secondInter p v
tactic: refine ⟨fun h => ?_, fun h => ?_⟩
Theorem: ContinuousNeg.of_nhds_zero
File: Mathlib/Topology/Algebra/Group/Basic.lean

Proof steps:
state_before: G✝ : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace G✝
inst✝⁴ : Group G✝
inst✝³ : TopologicalGroup G✝
inst✝² : TopologicalSpace α
f : α → G✝
s : Set α
x : α
G : Type u_1
inst✝¹ : Group G
inst✝ : TopologicalSpace G
hinv : Tendsto (fun x => x⁻¹) (𝓝 1) (𝓝 1)
hleft : ∀ (x₀ : G), 𝓝 x₀ = map (fun x => x₀ * x) (𝓝 1)
hconj : ∀ (x₀ : G), Tendsto (fun x => x₀ * x * x₀⁻¹) (𝓝 1) (𝓝 1)
⊢ ContinuousInv G
state_after: G✝ : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace G✝
inst✝⁴ : Group G✝
inst✝³ : TopologicalGroup G✝
inst✝² : TopologicalSpace α
f : α → G✝
s : Set α
x : α
G : Type u_1
inst✝¹ : Group G
inst✝ : TopologicalSpace G
hinv : Tendsto (fun x => x⁻¹) (𝓝 1) (𝓝 1)
hleft : ∀ (x₀ : G), 𝓝 x₀ = map (fun x => x₀ * x) (𝓝 1)
hconj : ∀ (x₀ : G), Tendsto (fun x => x₀ * x * x₀⁻¹) (𝓝 1) (𝓝 1)
x₀ : G
⊢ ContinuousAt (fun a => a⁻¹) x₀
tactic: refine ⟨continuous_iff_continuousAt.2 fun x₀ => ?_⟩
Theorem: Set.offDiag_singleton
File: Mathlib/Data/Set/Prod.lean

Proof steps:
state_before: α : Type u_1
s t : Set α
x : α × α
a✝ a : α
⊢ {a}.offDiag = ∅
state_after: no goals
tactic: simp
Theorem: Inducing.isLindelof_preimage
File: Mathlib/Topology/Compactness/Lindelof.lean

Proof steps:
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
f : X → Y
hf : Inducing f
hf' : IsClosed (range f)
K : Set Y
hK : IsLindelof K
⊢ IsLindelof (f ⁻¹' K)
state_after: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
f : X → Y
hf : Inducing f
hf' : IsClosed (range f)
K : Set Y
hK : IsLindelof (K ∩ range f)
⊢ IsLindelof (f ⁻¹' K)
tactic: replace hK := hK.inter_right hf'
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
f : X → Y
hf : Inducing f
hf' : IsClosed (range f)
K : Set Y
hK : IsLindelof (K ∩ range f)
⊢ IsLindelof (f ⁻¹' K)
state_after: no goals
tactic: rwa [hf.isLindelof_iff, image_preimage_eq_inter_range]
Theorem: TopologicalSpace.IsTopologicalBasis.insert_empty
File: Mathlib/Topology/Bases.lean

Proof steps:
state_before: α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
s : Set (Set α)
h : IsTopologicalBasis s
⊢ IsTopologicalBasis (insert ∅ s)
state_after: case refine_1
α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
s : Set (Set α)
h : IsTopologicalBasis s
⊢ ∀ t₁ ∈ insert ∅ s, ∀ t₂ ∈ insert ∅ s, ∀ x ∈ t₁ ∩ t₂, ∃ t₃ ∈ insert ∅ s, x ∈ t₃ ∧ t₃ ⊆ t₁ ∩ t₂

case refine_2
α : Type u
β : Type u_1
t : TopologicalSpace α
B : Set (Set α)
s✝ : Set α
s : Set (Set α)
h : IsTopologicalBasis s
⊢ t = generateFrom (insert ∅ s)
tactic: refine ⟨?_, by rw [sUnion_insert, empty_union, h.sUnion_eq], ?_⟩
Theorem: Submodule.isClosed_orthogonal
File: Mathlib/Analysis/InnerProductSpace/Orthogonal.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
⊢ IsClosed ↑Kᗮ
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
⊢ IsClosed ↑(⨅ v, LinearMap.ker ((innerSL 𝕜) ↑v))
tactic: rw [orthogonal_eq_inter K]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
⊢ IsClosed ↑(⨅ v, LinearMap.ker ((innerSL 𝕜) ↑v))
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
this : ∀ (v : ↥K), IsClosed ↑(LinearMap.ker ((innerSL 𝕜) ↑v))
⊢ IsClosed ↑(⨅ v, LinearMap.ker ((innerSL 𝕜) ↑v))
tactic: have := fun v : K => ContinuousLinearMap.isClosed_ker (innerSL 𝕜 (v : E))
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
this : ∀ (v : ↥K), IsClosed ↑(LinearMap.ker ((innerSL 𝕜) ↑v))
⊢ IsClosed ↑(⨅ v, LinearMap.ker ((innerSL 𝕜) ↑v))
state_after: case h.e'_3
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
this : ∀ (v : ↥K), IsClosed ↑(LinearMap.ker ((innerSL 𝕜) ↑v))
⊢ ↑(⨅ v, LinearMap.ker ((innerSL 𝕜) ↑v)) = ⋂ i, ↑(LinearMap.ker ((innerSL 𝕜) ↑i))
tactic: convert isClosed_iInter this
state_before: case h.e'_3
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace 𝕜 F
K : Submodule 𝕜 E
this : ∀ (v : ↥K), IsClosed ↑(LinearMap.ker ((innerSL 𝕜) ↑v))
⊢ ↑(⨅ v, LinearMap.ker ((innerSL 𝕜) ↑v)) = ⋂ i, ↑(LinearMap.ker ((innerSL 𝕜) ↑i))
state_after: no goals
tactic: simp only [iInf_coe]
Theorem: Set.compl_sUnion
File: Mathlib/Data/Set/Lattice.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
S : Set (Set α)
x : α
⊢ x ∈ (⋃₀ S)ᶜ ↔ x ∈ ⋂₀ (compl '' S)
state_after: no goals
tactic: simp
Theorem: Measurable.iSup_Prop
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean

Proof steps:
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α✝
inst✝⁸ : TopologicalSpace α✝
inst✝⁷ : MeasurableSpace α✝
inst✝⁶ : BorelSpace α✝
inst✝⁵ : TopologicalSpace β
inst✝⁴ : MeasurableSpace β
inst✝³ : BorelSpace β
inst✝² : MeasurableSpace δ
α : Type u_5
inst✝¹ : MeasurableSpace α
inst✝ : ConditionallyCompleteLattice α
p : Prop
f : δ → α
hf : Measurable f
⊢ Measurable fun b => ⨆ (_ : p), f b
state_after: α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α✝
inst✝⁸ : TopologicalSpace α✝
inst✝⁷ : MeasurableSpace α✝
inst✝⁶ : BorelSpace α✝
inst✝⁵ : TopologicalSpace β
inst✝⁴ : MeasurableSpace β
inst✝³ : BorelSpace β
inst✝² : MeasurableSpace δ
α : Type u_5
inst✝¹ : MeasurableSpace α
inst✝ : ConditionallyCompleteLattice α
p : Prop
f : δ → α
hf : Measurable f
⊢ Measurable fun b => if h : p then f b else sSup ∅
tactic: simp_rw [ciSup_eq_ite]
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α✝
inst✝⁸ : TopologicalSpace α✝
inst✝⁷ : MeasurableSpace α✝
inst✝⁶ : BorelSpace α✝
inst✝⁵ : TopologicalSpace β
inst✝⁴ : MeasurableSpace β
inst✝³ : BorelSpace β
inst✝² : MeasurableSpace δ
α : Type u_5
inst✝¹ : MeasurableSpace α
inst✝ : ConditionallyCompleteLattice α
p : Prop
f : δ → α
hf : Measurable f
⊢ Measurable fun b => if h : p then f b else sSup ∅
state_after: case pos
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α✝
inst✝⁸ : TopologicalSpace α✝
inst✝⁷ : MeasurableSpace α✝
inst✝⁶ : BorelSpace α✝
inst✝⁵ : TopologicalSpace β
inst✝⁴ : MeasurableSpace β
inst✝³ : BorelSpace β
inst✝² : MeasurableSpace δ
α : Type u_5
inst✝¹ : MeasurableSpace α
inst✝ : ConditionallyCompleteLattice α
p : Prop
f : δ → α
hf : Measurable f
h : p
⊢ Measurable fun b => f b

case neg
α✝ : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s t u : Set α✝
inst✝⁸ : TopologicalSpace α✝
inst✝⁷ : MeasurableSpace α✝
inst✝⁶ : BorelSpace α✝
inst✝⁵ : TopologicalSpace β
inst✝⁴ : MeasurableSpace β
inst✝³ : BorelSpace β
inst✝² : MeasurableSpace δ
α : Type u_5
inst✝¹ : MeasurableSpace α
inst✝ : ConditionallyCompleteLattice α
p : Prop
f : δ → α
hf : Measurable f
h : ¬p
⊢ Measurable fun b => sSup ∅
tactic: split_ifs with h
Theorem: Ordnode.dual_dual
File: Mathlib/Data/Ordmap/Ordset.lean

Proof steps:
state_before: α : Type u_1
s : ℕ
l : Ordnode α
x : α
r : Ordnode α
⊢ (node s l x r).dual.dual = node s l x r
state_after: no goals
tactic: rw [dual, dual, dual_dual l, dual_dual r]
Theorem: List.kerase_cons_eq
File: Mathlib/Data/List/Sigma.lean

Proof steps:
state_before: α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
s : Sigma β
l : List (Sigma β)
h : a = s.fst
⊢ kerase a (s :: l) = l
state_after: no goals
tactic: simp [kerase, h]
Theorem: LowerSet.map_refl
File: Mathlib/Order/UpperLower/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α ≃o β
s t : LowerSet α
a : α
b : β
⊢ map (OrderIso.refl α) = OrderIso.refl (LowerSet α)
state_after: case h.h.a.h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α ≃o β
s t : LowerSet α
a : α
b : β
x✝¹ : LowerSet α
x✝ : α
⊢ x✝ ∈ ↑((map (OrderIso.refl α)) x✝¹) ↔ x✝ ∈ ↑((OrderIso.refl (LowerSet α)) x✝¹)
tactic: ext
state_before: case h.h.a.h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α ≃o β
s t : LowerSet α
a : α
b : β
x✝¹ : LowerSet α
x✝ : α
⊢ x✝ ∈ ↑((map (OrderIso.refl α)) x✝¹) ↔ x✝ ∈ ↑((OrderIso.refl (LowerSet α)) x✝¹)
state_after: no goals
tactic: simp
Theorem: ENNReal.tendsto_atTop_zero_of_tsum_ne_top
File: Mathlib/Topology/Instances/ENNReal.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : ℕ → ℝ≥0∞
hf : ∑' (x : ℕ), f x ≠ ⊤
⊢ Tendsto f atTop (𝓝 0)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : ℕ → ℝ≥0∞
hf : ∑' (x : ℕ), f x ≠ ⊤
⊢ Tendsto f cofinite (𝓝 0)
tactic: rw [← Nat.cofinite_eq_atTop]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : ℕ → ℝ≥0∞
hf : ∑' (x : ℕ), f x ≠ ⊤
⊢ Tendsto f cofinite (𝓝 0)
state_after: no goals
tactic: exact tendsto_cofinite_zero_of_tsum_ne_top hf
Theorem: CategoryTheory.ExponentialIdeal.mk'
File: Mathlib/CategoryTheory/Closed/Ideal.lean

Proof steps:
state_before: C : Type u₁
D : Type u₂
inst✝³ : Category.{v₁, u₁} C
inst✝² : Category.{v₁, u₂} D
i : D ⥤ C
inst✝¹ : HasFiniteProducts C
inst✝ : CartesianClosed C
h : ∀ (B : D) (A : C), (A ⟹ i.obj B) ∈ i.essImage
B✝ : C
hB : B✝ ∈ i.essImage
A : C
⊢ (A ⟹ B✝) ∈ i.essImage
state_after: case intro.intro
C : Type u₁
D : Type u₂
inst✝³ : Category.{v₁, u₁} C
inst✝² : Category.{v₁, u₂} D
i : D ⥤ C
inst✝¹ : HasFiniteProducts C
inst✝ : CartesianClosed C
h : ∀ (B : D) (A : C), (A ⟹ i.obj B) ∈ i.essImage
B✝ A : C
B' : D
iB' : i.obj B' ≅ B✝
⊢ (A ⟹ B✝) ∈ i.essImage
tactic: rcases hB with ⟨B', ⟨iB'⟩⟩
state_before: case intro.intro
C : Type u₁
D : Type u₂
inst✝³ : Category.{v₁, u₁} C
inst✝² : Category.{v₁, u₂} D
i : D ⥤ C
inst✝¹ : HasFiniteProducts C
inst✝ : CartesianClosed C
h : ∀ (B : D) (A : C), (A ⟹ i.obj B) ∈ i.essImage
B✝ A : C
B' : D
iB' : i.obj B' ≅ B✝
⊢ (A ⟹ B✝) ∈ i.essImage
state_after: no goals
tactic: exact Functor.essImage.ofIso ((exp A).mapIso iB') (h B' A)
Theorem: TensorProduct.ext_fourfold'
File: Mathlib/LinearAlgebra/TensorProduct/Basic.lean

Proof steps:
state_before: R : Type u_1
inst✝¹⁶ : CommSemiring R
R' : Type u_2
inst✝¹⁵ : Monoid R'
R'' : Type u_3
inst✝¹⁴ : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_6
Q : Type u_7
S : Type u_8
T : Type u_9
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid N
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : AddCommMonoid Q
inst✝⁹ : AddCommMonoid S
inst✝⁸ : AddCommMonoid T
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module R P
inst✝⁴ : Module R Q
inst✝³ : Module R S
inst✝² : Module R T
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
f : M →ₗ[R] N →ₗ[R] P
φ ψ : (M ⊗[R] N) ⊗[R] P ⊗[R] Q →ₗ[R] S
H : ∀ (w : M) (x : N) (y : P) (z : Q), φ ((w ⊗ₜ[R] x) ⊗ₜ[R] y ⊗ₜ[R] z) = ψ ((w ⊗ₜ[R] x) ⊗ₜ[R] y ⊗ₜ[R] z)
⊢ φ = ψ
state_after: case H.H.h.h.H.h.h
R : Type u_1
inst✝¹⁶ : CommSemiring R
R' : Type u_2
inst✝¹⁵ : Monoid R'
R'' : Type u_3
inst✝¹⁴ : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_6
Q : Type u_7
S : Type u_8
T : Type u_9
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid N
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : AddCommMonoid Q
inst✝⁹ : AddCommMonoid S
inst✝⁸ : AddCommMonoid T
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module R P
inst✝⁴ : Module R Q
inst✝³ : Module R S
inst✝² : Module R T
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
f : M →ₗ[R] N →ₗ[R] P
φ ψ : (M ⊗[R] N) ⊗[R] P ⊗[R] Q →ₗ[R] S
H : ∀ (w : M) (x : N) (y : P) (z : Q), φ ((w ⊗ₜ[R] x) ⊗ₜ[R] y ⊗ₜ[R] z) = ψ ((w ⊗ₜ[R] x) ⊗ₜ[R] y ⊗ₜ[R] z)
m : M
n : N
p : P
q : Q
⊢ (((mk R P Q).compr₂ ((((mk R M N).compr₂ ((mk R (M ⊗[R] N) (P ⊗[R] Q)).compr₂ φ)) m) n)) p) q =
    (((mk R P Q).compr₂ ((((mk R M N).compr₂ ((mk R (M ⊗[R] N) (P ⊗[R] Q)).compr₂ ψ)) m) n)) p) q
tactic: ext m n p q
state_before: case H.H.h.h.H.h.h
R : Type u_1
inst✝¹⁶ : CommSemiring R
R' : Type u_2
inst✝¹⁵ : Monoid R'
R'' : Type u_3
inst✝¹⁴ : Semiring R''
M : Type u_4
N : Type u_5
P : Type u_6
Q : Type u_7
S : Type u_8
T : Type u_9
inst✝¹³ : AddCommMonoid M
inst✝¹² : AddCommMonoid N
inst✝¹¹ : AddCommMonoid P
inst✝¹⁰ : AddCommMonoid Q
inst✝⁹ : AddCommMonoid S
inst✝⁸ : AddCommMonoid T
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module R P
inst✝⁴ : Module R Q
inst✝³ : Module R S
inst✝² : Module R T
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
f : M →ₗ[R] N →ₗ[R] P
φ ψ : (M ⊗[R] N) ⊗[R] P ⊗[R] Q →ₗ[R] S
H : ∀ (w : M) (x : N) (y : P) (z : Q), φ ((w ⊗ₜ[R] x) ⊗ₜ[R] y ⊗ₜ[R] z) = ψ ((w ⊗ₜ[R] x) ⊗ₜ[R] y ⊗ₜ[R] z)
m : M
n : N
p : P
q : Q
⊢ (((mk R P Q).compr₂ ((((mk R M N).compr₂ ((mk R (M ⊗[R] N) (P ⊗[R] Q)).compr₂ φ)) m) n)) p) q =
    (((mk R P Q).compr₂ ((((mk R M N).compr₂ ((mk R (M ⊗[R] N) (P ⊗[R] Q)).compr₂ ψ)) m) n)) p) q
state_after: no goals
tactic: exact H m n p q
Theorem: PythagoreanTriple.isClassified_of_isPrimitiveClassified
File: Mathlib/NumberTheory/PythagoreanTriples.lean

Proof steps:
state_before: x y z : ℤ
h : PythagoreanTriple x y z
hp : h.IsPrimitiveClassified
⊢ h.IsClassified
state_after: case intro.intro
x y z : ℤ
h : PythagoreanTriple x y z
m n : ℤ
H :
  (x = m ^ 2 - n ^ 2 ∧ y = 2 * m * n ∨ x = 2 * m * n ∧ y = m ^ 2 - n ^ 2) ∧
    m.gcd n = 1 ∧ (m % 2 = 0 ∧ n % 2 = 1 ∨ m % 2 = 1 ∧ n % 2 = 0)
⊢ h.IsClassified
tactic: obtain ⟨m, n, H⟩ := hp
state_before: case intro.intro
x y z : ℤ
h : PythagoreanTriple x y z
m n : ℤ
H :
  (x = m ^ 2 - n ^ 2 ∧ y = 2 * m * n ∨ x = 2 * m * n ∧ y = m ^ 2 - n ^ 2) ∧
    m.gcd n = 1 ∧ (m % 2 = 0 ∧ n % 2 = 1 ∨ m % 2 = 1 ∧ n % 2 = 0)
⊢ h.IsClassified
state_after: case h
x y z : ℤ
h : PythagoreanTriple x y z
m n : ℤ
H :
  (x = m ^ 2 - n ^ 2 ∧ y = 2 * m * n ∨ x = 2 * m * n ∧ y = m ^ 2 - n ^ 2) ∧
    m.gcd n = 1 ∧ (m % 2 = 0 ∧ n % 2 = 1 ∨ m % 2 = 1 ∧ n % 2 = 0)
⊢ (x = 1 * (m ^ 2 - n ^ 2) ∧ y = 1 * (2 * m * n) ∨ x = 1 * (2 * m * n) ∧ y = 1 * (m ^ 2 - n ^ 2)) ∧ m.gcd n = 1
tactic: use 1, m, n
state_before: case h
x y z : ℤ
h : PythagoreanTriple x y z
m n : ℤ
H :
  (x = m ^ 2 - n ^ 2 ∧ y = 2 * m * n ∨ x = 2 * m * n ∧ y = m ^ 2 - n ^ 2) ∧
    m.gcd n = 1 ∧ (m % 2 = 0 ∧ n % 2 = 1 ∨ m % 2 = 1 ∧ n % 2 = 0)
⊢ (x = 1 * (m ^ 2 - n ^ 2) ∧ y = 1 * (2 * m * n) ∨ x = 1 * (2 * m * n) ∧ y = 1 * (m ^ 2 - n ^ 2)) ∧ m.gcd n = 1
state_after: case h.intro.intro
x y z : ℤ
h : PythagoreanTriple x y z
m n : ℤ
t : x = m ^ 2 - n ^ 2 ∧ y = 2 * m * n ∨ x = 2 * m * n ∧ y = m ^ 2 - n ^ 2
co : m.gcd n = 1
right✝ : m % 2 = 0 ∧ n % 2 = 1 ∨ m % 2 = 1 ∧ n % 2 = 0
⊢ (x = 1 * (m ^ 2 - n ^ 2) ∧ y = 1 * (2 * m * n) ∨ x = 1 * (2 * m * n) ∧ y = 1 * (m ^ 2 - n ^ 2)) ∧ m.gcd n = 1
tactic: rcases H with ⟨t, co, _⟩
state_before: case h.intro.intro
x y z : ℤ
h : PythagoreanTriple x y z
m n : ℤ
t : x = m ^ 2 - n ^ 2 ∧ y = 2 * m * n ∨ x = 2 * m * n ∧ y = m ^ 2 - n ^ 2
co : m.gcd n = 1
right✝ : m % 2 = 0 ∧ n % 2 = 1 ∨ m % 2 = 1 ∧ n % 2 = 0
⊢ (x = 1 * (m ^ 2 - n ^ 2) ∧ y = 1 * (2 * m * n) ∨ x = 1 * (2 * m * n) ∧ y = 1 * (m ^ 2 - n ^ 2)) ∧ m.gcd n = 1
state_after: case h.intro.intro
x y z : ℤ
h : PythagoreanTriple x y z
m n : ℤ
t : x = m ^ 2 - n ^ 2 ∧ y = 2 * m * n ∨ x = 2 * m * n ∧ y = m ^ 2 - n ^ 2
co : m.gcd n = 1
right✝ : m % 2 = 0 ∧ n % 2 = 1 ∨ m % 2 = 1 ∧ n % 2 = 0
⊢ (x = m ^ 2 - n ^ 2 ∧ y = 2 * m * n ∨ x = 2 * m * n ∧ y = m ^ 2 - n ^ 2) ∧ m.gcd n = 1
tactic: rw [one_mul, one_mul]
state_before: case h.intro.intro
x y z : ℤ
h : PythagoreanTriple x y z
m n : ℤ
t : x = m ^ 2 - n ^ 2 ∧ y = 2 * m * n ∨ x = 2 * m * n ∧ y = m ^ 2 - n ^ 2
co : m.gcd n = 1
right✝ : m % 2 = 0 ∧ n % 2 = 1 ∨ m % 2 = 1 ∧ n % 2 = 0
⊢ (x = m ^ 2 - n ^ 2 ∧ y = 2 * m * n ∨ x = 2 * m * n ∧ y = m ^ 2 - n ^ 2) ∧ m.gcd n = 1
state_after: no goals
tactic: exact ⟨t, co⟩
Theorem: closure_compl
File: Mathlib/Topology/Basic.lean

Proof steps:
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
⊢ closure sᶜ = (interior s)ᶜ
state_after: no goals
tactic: simp [closure_eq_compl_interior_compl]