ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: openSegment_subset_iff_segment_subset
File: Mathlib/Analysis/Convex/Segment.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : Module 𝕜 E
s : Set E
x y z : E
hx : x ∈ s
hy : y ∈ s
⊢ openSegment 𝕜 x y ⊆ s ↔ [x-[𝕜]y] ⊆ s
state_after: no goals
tactic: simp only [← insert_endpoints_openSegment, insert_subset_iff, *, true_and_iff]
Theorem: intrinsicClosure_mono
File: Mathlib/Analysis/Convex/Intrinsic.lean

Proof steps:
state_before: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s t : Set P
x : P
h : s ⊆ t
⊢ intrinsicClosure 𝕜 s ⊆ intrinsicClosure 𝕜 t
state_after: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s t : Set P
x✝ : P
h : s ⊆ t
x : ↥(affineSpan 𝕜 s)
hx : x ∈ closure (Subtype.val ⁻¹' s)
⊢ x ∈ Subtype.val ⁻¹' intrinsicClosure 𝕜 t
tactic: refine image_subset_iff.2 fun x hx => ?_
state_before: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s t : Set P
x✝ : P
h : s ⊆ t
x : ↥(affineSpan 𝕜 s)
hx : x ∈ closure (Subtype.val ⁻¹' s)
⊢ x ∈ Subtype.val ⁻¹' intrinsicClosure 𝕜 t
state_after: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s t : Set P
x✝ : P
h : s ⊆ t
x : ↥(affineSpan 𝕜 s)
hx : x ∈ closure (Subtype.val ⁻¹' s)
⊢ Set.inclusion ⋯ x ∈ closure (Subtype.val ⁻¹' t)
tactic: refine ⟨Set.inclusion (affineSpan_mono _ h) x, ?_, rfl⟩
state_before: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s t : Set P
x✝ : P
h : s ⊆ t
x : ↥(affineSpan 𝕜 s)
hx : x ∈ closure (Subtype.val ⁻¹' s)
⊢ Set.inclusion ⋯ x ∈ closure (Subtype.val ⁻¹' t)
state_after: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s t : Set P
x✝ : P
h : s ⊆ t
x : ↥(affineSpan 𝕜 s)
hx : x ∈ closure (Subtype.val ⁻¹' s)
⊢ Subtype.val ⁻¹' s ⊆ Set.inclusion ⋯ ⁻¹' (Subtype.val ⁻¹' t)
tactic: refine (continuous_inclusion (affineSpan_mono _ h)).closure_preimage_subset _ (closure_mono ?_ hx)
state_before: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s t : Set P
x✝ : P
h : s ⊆ t
x : ↥(affineSpan 𝕜 s)
hx : x ∈ closure (Subtype.val ⁻¹' s)
⊢ Subtype.val ⁻¹' s ⊆ Set.inclusion ⋯ ⁻¹' (Subtype.val ⁻¹' t)
state_after: no goals
tactic: exact fun y hy => h hy
Theorem: DirectSum.of_intCast
File: Mathlib/Algebra/DirectSum/Ring.lean

Proof steps:
state_before: ι : Type u_1
inst✝³ : DecidableEq ι
A : ι → Type u_2
inst✝² : (i : ι) → AddCommGroup (A i)
inst✝¹ : AddMonoid ι
inst✝ : GRing A
n : ℤ
⊢ (of A 0) ↑n = ↑n
state_after: no goals
tactic: rfl
Theorem: QuadraticMap.polar_smul_right
File: Mathlib/LinearAlgebra/QuadraticForm/Basic.lean

Proof steps:
state_before: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
A : Type u_7
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : AddCommGroup N
inst✝¹ : Module R M
inst✝ : Module R N
Q : QuadraticMap R M N
a : R
x y : M
⊢ polar (⇑Q) x (a • y) = a • polar (⇑Q) x y
state_after: no goals
tactic: rw [polar_comm Q x, polar_comm Q x, polar_smul_left]
Theorem: coe_setBasisOfLinearIndependentOfCardEqFinrank
File: Mathlib/LinearAlgebra/FiniteDimensional.lean

Proof steps:
state_before: K : Type u
V : Type v
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : Module K V
s : Set V
inst✝¹ : Nonempty ↑s
inst✝ : Fintype ↑s
lin_ind : LinearIndependent (ι := { x // x ∈ s }) K Subtype.val
card_eq : s.toFinset.card = finrank K V
⊢ ⇑(setBasisOfLinearIndependentOfCardEqFinrank lin_ind card_eq) = Subtype.val
state_after: K : Type u
V : Type v
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : Module K V
s : Set V
inst✝¹ : Nonempty ↑s
inst✝ : Fintype ↑s
lin_ind : LinearIndependent (ι := { x // x ∈ s }) K Subtype.val
card_eq : s.toFinset.card = finrank K V
⊢ ⇑(basisOfLinearIndependentOfCardEqFinrank lin_ind ⋯) = Subtype.val
tactic: rw [setBasisOfLinearIndependentOfCardEqFinrank]
state_before: K : Type u
V : Type v
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : Module K V
s : Set V
inst✝¹ : Nonempty ↑s
inst✝ : Fintype ↑s
lin_ind : LinearIndependent (ι := { x // x ∈ s }) K Subtype.val
card_eq : s.toFinset.card = finrank K V
⊢ ⇑(basisOfLinearIndependentOfCardEqFinrank lin_ind ⋯) = Subtype.val
state_after: no goals
tactic: exact Basis.coe_mk _ _
Theorem: Set.Ici_eq_singleton_iff_isTop
File: Mathlib/Order/Interval/Set/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d x : α
⊢ Ici x = {x} ↔ IsTop x
state_after: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d x : α
h : Ici x = {x}
y : α
⊢ y ≤ x
tactic: refine ⟨fun h y ↦ ?_, fun h ↦ by ext y; simp [(h y).ge_iff_eq]⟩
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d x : α
h : Ici x = {x}
y : α
⊢ y ≤ x
state_after: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d x : α
h : Ici x = {x}
y : α
H : x < y
⊢ False
tactic: by_contra! H
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d x : α
h : Ici x = {x}
y : α
H : x < y
⊢ False
state_after: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d x : α
h : Ici x = {x}
y : α
H : x < y
this : y ∈ Ici x
⊢ False
tactic: have : y ∈ Ici x := H.le
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d x : α
h : Ici x = {x}
y : α
H : x < y
this : y ∈ Ici x
⊢ False
state_after: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d x : α
h : Ici x = {x}
y : α
H : x < y
this : y = x
⊢ False
tactic: rw [h, mem_singleton_iff] at this
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d x : α
h : Ici x = {x}
y : α
H : x < y
this : y = x
⊢ False
state_after: no goals
tactic: exact lt_irrefl y (this.le.trans_lt H)
Theorem: AntitoneOn.mapsTo_uIcc
File: Mathlib/Order/Interval/Set/UnorderedInterval.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : Lattice β
f : α → β
s : Set α
a b : α
hf : AntitoneOn f [[a, b]]
⊢ MapsTo f [[a, b]] [[f a, f b]]
state_after: no goals
tactic: rw [uIcc, uIcc, ← hf.map_sup, ← hf.map_inf] <;>
    apply_rules [left_mem_uIcc, right_mem_uIcc, hf.mapsTo_Icc]
Theorem: dist_dist_dist_le_right
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

Proof steps:
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
⊢ dist (dist x y) (dist x z) ≤ dist y z
state_after: no goals
tactic: simpa only [dist_comm x] using dist_dist_dist_le_left y z x
Theorem: Rack.toEnvelGroup.mapAux.well_def
File: Mathlib/Algebra/Quandle.lean

Proof steps:
state_before: R : Type u_1
inst✝¹ : Rack R
G : Type u_2
inst✝ : Group G
f : R →◃ Quandle.Conj G
a✝ b✝ a'✝ b'✝ : PreEnvelGroup R
ha : PreEnvelGroupRel' R a✝ a'✝
hb : PreEnvelGroupRel' R b✝ b'✝
⊢ mapAux f (a✝.mul b✝) = mapAux f (a'✝.mul b'✝)
state_after: no goals
tactic: simp [toEnvelGroup.mapAux, well_def f ha, well_def f hb]
state_before: R : Type u_1
inst✝¹ : Rack R
G : Type u_2
inst✝ : Group G
f : R →◃ Quandle.Conj G
a✝ a'✝ : PreEnvelGroup R
ha : PreEnvelGroupRel' R a✝ a'✝
⊢ mapAux f a✝.inv = mapAux f a'✝.inv
state_after: no goals
tactic: simp [toEnvelGroup.mapAux, well_def f ha]
state_before: R : Type u_1
inst✝¹ : Rack R
G : Type u_2
inst✝ : Group G
f : R →◃ Quandle.Conj G
a b c : PreEnvelGroup R
⊢ mapAux f ((a.mul b).mul c) = mapAux f (a.mul (b.mul c))
state_after: no goals
tactic: apply mul_assoc
state_before: R : Type u_1
inst✝¹ : Rack R
G : Type u_2
inst✝ : Group G
f : R →◃ Quandle.Conj G
a : PreEnvelGroup R
⊢ mapAux f (unit.mul a) = mapAux f a
state_after: no goals
tactic: simp [toEnvelGroup.mapAux]
state_before: R : Type u_1
inst✝¹ : Rack R
G : Type u_2
inst✝ : Group G
f : R →◃ Quandle.Conj G
a : PreEnvelGroup R
⊢ mapAux f (a.mul unit) = mapAux f a
state_after: no goals
tactic: simp [toEnvelGroup.mapAux]
state_before: R : Type u_1
inst✝¹ : Rack R
G : Type u_2
inst✝ : Group G
f : R →◃ Quandle.Conj G
a : PreEnvelGroup R
⊢ mapAux f (a.inv.mul a) = mapAux f unit
state_after: no goals
tactic: simp [toEnvelGroup.mapAux]
state_before: R : Type u_1
inst✝¹ : Rack R
G : Type u_2
inst✝ : Group G
f : R →◃ Quandle.Conj G
x y : R
⊢ mapAux f (((incl x).mul (incl y)).mul (incl x).inv) = mapAux f (incl (x ◃ y))
state_after: no goals
tactic: simp [toEnvelGroup.mapAux]
Theorem: DirectSum.of_zero_pow
File: Mathlib/Algebra/DirectSum/Ring.lean

Proof steps:
state_before: ι : Type u_1
inst✝³ : DecidableEq ι
A : ι → Type u_2
inst✝² : (i : ι) → AddCommMonoid (A i)
inst✝¹ : AddMonoid ι
inst✝ : GSemiring A
a : A 0
⊢ (of A 0) (a ^ 0) = (of A 0) a ^ 0
state_after: no goals
tactic: rw [pow_zero, pow_zero, DirectSum.of_zero_one]
state_before: ι : Type u_1
inst✝³ : DecidableEq ι
A : ι → Type u_2
inst✝² : (i : ι) → AddCommMonoid (A i)
inst✝¹ : AddMonoid ι
inst✝ : GSemiring A
a : A 0
n : ℕ
⊢ (of A 0) (a ^ (n + 1)) = (of A 0) a ^ (n + 1)
state_after: no goals
tactic: rw [pow_succ, pow_succ, of_zero_mul, of_zero_pow _ n]
Theorem: DirichletCharacter.LSeriesSummable_mul
File: Mathlib/NumberTheory/LSeries/Dirichlet.lean

Proof steps:
state_before: N : ℕ
χ : DirichletCharacter ℂ N
f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
⊢ LSeriesSummable ((fun n => χ ↑n) * f) s
state_after: N : ℕ
χ : DirichletCharacter ℂ N
f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
n : ℕ
⊢ ‖((fun n => χ ↑n) * f) n‖ ≤ ‖f n‖
tactic: refine .of_norm <| h.norm.of_nonneg_of_le (fun _ ↦ norm_nonneg _) fun n ↦ norm_term_le s ?_
state_before: N : ℕ
χ : DirichletCharacter ℂ N
f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
n : ℕ
⊢ ‖((fun n => χ ↑n) * f) n‖ ≤ ‖f n‖
state_after: N : ℕ
χ : DirichletCharacter ℂ N
f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
n : ℕ
⊢ ‖χ ↑n‖ * ‖f n‖ ≤ ‖f n‖
tactic: rw [Pi.mul_apply, norm_mul]
state_before: N : ℕ
χ : DirichletCharacter ℂ N
f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
n : ℕ
⊢ ‖χ ↑n‖ * ‖f n‖ ≤ ‖f n‖
state_after: no goals
tactic: exact mul_le_of_le_one_left (norm_nonneg _) <| norm_le_one ..
Theorem: Set.preimage_mul_right_one
File: Mathlib/Data/Set/Pointwise/Basic.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝ : Group α
s t : Set α
a b : α
⊢ (fun x => x * b) ⁻¹' 1 = {b⁻¹}
state_after: no goals
tactic: rw [← image_mul_right', image_one, one_mul]
Theorem: Real.log_abs
File: Mathlib/Analysis/SpecialFunctions/Log/Basic.lean

Proof steps:
state_before: x✝ y x : ℝ
⊢ log |x| = log x
state_after: case pos
x✝ y x : ℝ
h : x = 0
⊢ log |x| = log x

case neg
x✝ y x : ℝ
h : ¬x = 0
⊢ log |x| = log x
tactic: by_cases h : x = 0
Theorem: Set.iUnion_vadd_eq_setOf_exists
File: Mathlib/Data/Set/Pointwise/SMul.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝¹ : Group α
inst✝ : MulAction α β
s✝ t A B : Set β
a : α
x : β
s : Set β
⊢ ⋃ g, g • s = {a | ∃ g, g • a ∈ s}
state_after: no goals
tactic: simp_rw [← iUnion_setOf, ← iUnion_inv_smul, ← preimage_smul, preimage]
Theorem: Finset.sum_insertNone
File: Mathlib/Algebra/BigOperators/Option.lean

Proof steps:
state_before: α : Type u_1
M : Type u_2
inst✝ : CommMonoid M
f : Option α → M
s : Finset α
⊢ ∏ x ∈ insertNone s, f x = f none * ∏ x ∈ s, f (some x)
state_after: no goals
tactic: simp [insertNone]
Theorem: MeasureTheory.Measure.conv_comm
File: Mathlib/MeasureTheory/Group/Convolution.lean

Proof steps:
state_before: M✝ : Type u_1
inst✝⁶ : Monoid M✝
inst✝⁵ : MeasurableSpace M✝
M : Type u_2
inst✝⁴ : CommMonoid M
inst✝³ : MeasurableSpace M
inst✝² : MeasurableMul₂ M
μ ν : Measure M
inst✝¹ : SFinite μ
inst✝ : SFinite ν
⊢ μ ∗ ν = ν ∗ μ
state_after: M✝ : Type u_1
inst✝⁶ : Monoid M✝
inst✝⁵ : MeasurableSpace M✝
M : Type u_2
inst✝⁴ : CommMonoid M
inst✝³ : MeasurableSpace M
inst✝² : MeasurableMul₂ M
μ ν : Measure M
inst✝¹ : SFinite μ
inst✝ : SFinite ν
⊢ map (fun x => x.1 * x.2) (μ.prod ν) = map (fun x => x.1 * x.2) (ν.prod μ)
tactic: unfold mconv
state_before: M✝ : Type u_1
inst✝⁶ : Monoid M✝
inst✝⁵ : MeasurableSpace M✝
M : Type u_2
inst✝⁴ : CommMonoid M
inst✝³ : MeasurableSpace M
inst✝² : MeasurableMul₂ M
μ ν : Measure M
inst✝¹ : SFinite μ
inst✝ : SFinite ν
⊢ map (fun x => x.1 * x.2) (μ.prod ν) = map (fun x => x.1 * x.2) (ν.prod μ)
state_after: M✝ : Type u_1
inst✝⁶ : Monoid M✝
inst✝⁵ : MeasurableSpace M✝
M : Type u_2
inst✝⁴ : CommMonoid M
inst✝³ : MeasurableSpace M
inst✝² : MeasurableMul₂ M
μ ν : Measure M
inst✝¹ : SFinite μ
inst✝ : SFinite ν
⊢ map ((fun x => x.1 * x.2) ∘ Prod.swap) (ν.prod μ) = map (fun x => x.1 * x.2) (ν.prod μ)

M✝ : Type u_1
inst✝⁶ : Monoid M✝
inst✝⁵ : MeasurableSpace M✝
M : Type u_2
inst✝⁴ : CommMonoid M
inst✝³ : MeasurableSpace M
inst✝² : MeasurableMul₂ M
μ ν : Measure M
inst✝¹ : SFinite μ
inst✝ : SFinite ν
⊢ Measurable Prod.swap
tactic: rw [← prod_swap, map_map (by fun_prop)]
state_before: M✝ : Type u_1
inst✝⁶ : Monoid M✝
inst✝⁵ : MeasurableSpace M✝
M : Type u_2
inst✝⁴ : CommMonoid M
inst✝³ : MeasurableSpace M
inst✝² : MeasurableMul₂ M
μ ν : Measure M
inst✝¹ : SFinite μ
inst✝ : SFinite ν
⊢ Measurable Prod.swap
state_after: no goals
tactic: fun_prop
Theorem: Finset.Ioi_insert
File: Mathlib/Order/Interval/Finset/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
inst✝² : PartialOrder α
inst✝¹ : LocallyFiniteOrderTop α
inst✝ : DecidableEq α
a : α
⊢ insert a (Ioi a) = Ici a
state_after: case a
ι : Type u_1
α : Type u_2
inst✝² : PartialOrder α
inst✝¹ : LocallyFiniteOrderTop α
inst✝ : DecidableEq α
a a✝ : α
⊢ a✝ ∈ insert a (Ioi a) ↔ a✝ ∈ Ici a
tactic: ext
state_before: case a
ι : Type u_1
α : Type u_2
inst✝² : PartialOrder α
inst✝¹ : LocallyFiniteOrderTop α
inst✝ : DecidableEq α
a a✝ : α
⊢ a✝ ∈ insert a (Ioi a) ↔ a✝ ∈ Ici a
state_after: no goals
tactic: simp_rw [Finset.mem_insert, mem_Ici, mem_Ioi, le_iff_lt_or_eq, or_comm, eq_comm]
Theorem: AddSubgroup.ne_bot_iff_exists_ne_zero
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

Proof steps:
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H✝ K H : Subgroup G
⊢ H ≠ ⊥ ↔ ∃ a, a ≠ 1
state_after: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H✝ K H : Subgroup G
⊢ (∃ x ∈ H, x ≠ 1) ↔ ∃ a, a ≠ 1
tactic: rw [← nontrivial_iff_ne_bot, nontrivial_iff_exists_ne_one]
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H✝ K H : Subgroup G
⊢ (∃ x ∈ H, x ≠ 1) ↔ ∃ a, a ≠ 1
state_after: no goals
tactic: simp only [ne_eq, Subtype.exists, mk_eq_one, exists_prop]
Theorem: List.count_eq_length
File: .lake/packages/batteries/Batteries/Data/List/Count.lean

Proof steps:
state_before: α : Type u_1
inst✝ : DecidableEq α
a : α
l : List α
⊢ count a l = l.length ↔ ∀ (b : α), b ∈ l → a = b
state_after: α : Type u_1
inst✝ : DecidableEq α
a : α
l : List α
⊢ (∀ (a_1 : α), a_1 ∈ l → (a_1 == a) = true) ↔ ∀ (b : α), b ∈ l → a = b
tactic: rw [count, countP_eq_length]
state_before: α : Type u_1
inst✝ : DecidableEq α
a : α
l : List α
⊢ (∀ (a_1 : α), a_1 ∈ l → (a_1 == a) = true) ↔ ∀ (b : α), b ∈ l → a = b
state_after: case refine_1
α : Type u_1
inst✝ : DecidableEq α
a : α
l : List α
h : ∀ (a_1 : α), a_1 ∈ l → (a_1 == a) = true
b : α
hb : b ∈ l
⊢ b = a

case refine_2
α : Type u_1
inst✝ : DecidableEq α
a : α
l : List α
h : ∀ (b : α), b ∈ l → a = b
b : α
hb : b ∈ l
⊢ (b == a) = true
tactic: refine ⟨fun h b hb => Eq.symm ?_, fun h b hb => ?_⟩
Theorem: Affine.Simplex.span_eq_top
File: Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean

Proof steps:
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝⁴ : DivisionRing k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : FiniteDimensional k V
n : ℕ
T : Simplex k V n
hrank : finrank k V = n
⊢ affineSpan k (Set.range T.points) = ⊤
state_after: no goals
tactic: rw [AffineIndependent.affineSpan_eq_top_iff_card_eq_finrank_add_one T.independent,
    Fintype.card_fin, hrank]
Theorem: one_lt_sq_iff_one_lt_abs
File: Mathlib/Algebra/Order/Ring/Abs.lean

Proof steps:
state_before: α : Type u_1
inst✝ : LinearOrderedRing α
n : ℕ
a✝ b c a : α
⊢ 1 < a ^ 2 ↔ 1 < |a|
state_after: no goals
tactic: simpa only [one_pow, abs_one] using @sq_lt_sq _ _ 1 a
Theorem: PFunctor.M.iselect_eq_default
File: Mathlib/Data/PFunctor/Univariate/M.lean

Proof steps:
state_before: F : PFunctor.{u}
X : Type u_1
f : X → ↑F X
inst✝¹ : DecidableEq F.A
inst✝ : Inhabited F.M
ps : Path F
x : F.M
h : ¬IsPath ps x
⊢ iselect ps x = default.head
state_after: case nil
F : PFunctor.{u}
X : Type u_1
f : X → ↑F X
inst✝¹ : DecidableEq F.A
inst✝ : Inhabited F.M
x : F.M
h : ¬IsPath [] x
⊢ iselect [] x = default.head

case cons
F : PFunctor.{u}
X : Type u_1
f : X → ↑F X
inst✝¹ : DecidableEq F.A
inst✝ : Inhabited F.M
ps_hd : F.Idx
ps_tail : List F.Idx
ps_ih : ∀ (x : F.M), ¬IsPath ps_tail x → iselect ps_tail x = default.head
x : F.M
h : ¬IsPath (ps_hd :: ps_tail) x
⊢ iselect (ps_hd :: ps_tail) x = default.head
tactic: induction' ps with ps_hd ps_tail ps_ih generalizing x
Theorem: Hyperreal.st_eq_sSup
File: Mathlib/Data/Real/Hyperreal.lean

Proof steps:
state_before: x : ℝ*
⊢ x.st = sSup {y | ↑y < x}
state_after: case inl
x : ℝ*
hx : x.Infinite
⊢ x.st = sSup {y | ↑y < x}

case inr
x : ℝ*
hx : ¬x.Infinite
⊢ x.st = sSup {y | ↑y < x}
tactic: rcases _root_.em (Infinite x) with (hx|hx)
Theorem: CategoryTheory.Adjunction.unit_rightAdjointUniq_hom
File: Mathlib/CategoryTheory/Adjunction/Unique.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F : C ⥤ D
G G' : D ⥤ C
adj1 : F ⊣ G
adj2 : F ⊣ G'
⊢ adj1.unit ≫ whiskerLeft F (adj1.rightAdjointUniq adj2).hom = adj2.unit
state_after: case w.h
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F : C ⥤ D
G G' : D ⥤ C
adj1 : F ⊣ G
adj2 : F ⊣ G'
x : C
⊢ (adj1.unit ≫ whiskerLeft F (adj1.rightAdjointUniq adj2).hom).app x = adj2.unit.app x
tactic: ext x
state_before: case w.h
C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{u_4, u_2} D
F : C ⥤ D
G G' : D ⥤ C
adj1 : F ⊣ G
adj2 : F ⊣ G'
x : C
⊢ (adj1.unit ≫ whiskerLeft F (adj1.rightAdjointUniq adj2).hom).app x = adj2.unit.app x
state_after: no goals
tactic: simp
Theorem: CoalgebraCat.comonEquivalence_counitIso
File: Mathlib/Algebra/Category/CoalgebraCat/ComonEquivalence.lean

Proof steps:
state_before: R : Type u
inst✝ : CommRing R
X✝ Y✝ : CoalgebraCat R
x✝ : X✝ ⟶ Y✝
⊢ (𝟭 (CoalgebraCat R)).map x✝ ≫ ((fun x => Iso.refl ((𝟭 (CoalgebraCat R)).obj x)) Y✝).hom =
    ((fun x => Iso.refl ((𝟭 (CoalgebraCat R)).obj x)) X✝).hom ≫ (toComon R ⋙ ofComon R).map x✝
state_after: no goals
tactic: rfl
state_before: R : Type u
inst✝ : CommRing R
X✝ Y✝ : Comon_ (ModuleCat R)
x✝ : X✝ ⟶ Y✝
⊢ (ofComon R ⋙ toComon R).map x✝ ≫ ((fun x => Iso.refl ((ofComon R ⋙ toComon R).obj x)) Y✝).hom =
    ((fun x => Iso.refl ((ofComon R ⋙ toComon R).obj x)) X✝).hom ≫ (𝟭 (Comon_ (ModuleCat R))).map x✝
state_after: no goals
tactic: rfl
Theorem: GaussianFourier.integrable_cexp_neg_sum_mul_add
File: Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean

Proof steps:
state_before: b✝ : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
b : ι → ℂ
hb : ∀ (i : ι), 0 < (b i).re
c : ι → ℂ
⊢ Integrable (fun v => cexp (-∑ i : ι, b i * ↑(v i) ^ 2 + ∑ i : ι, c i * ↑(v i))) volume
state_after: b✝ : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
b : ι → ℂ
hb : ∀ (i : ι), 0 < (b i).re
c : ι → ℂ
⊢ Integrable (fun v => ∏ x : ι, cexp (-b x * ↑(v x) ^ 2 + c x * ↑(v x))) volume
tactic: simp_rw [← Finset.sum_neg_distrib, ← Finset.sum_add_distrib, Complex.exp_sum, ← neg_mul]
state_before: b✝ : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
b : ι → ℂ
hb : ∀ (i : ι), 0 < (b i).re
c : ι → ℂ
⊢ Integrable (fun v => ∏ x : ι, cexp (-b x * ↑(v x) ^ 2 + c x * ↑(v x))) volume
state_after: b✝ : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
b : ι → ℂ
hb : ∀ (i : ι), 0 < (b i).re
c : ι → ℂ
i : ι
⊢ Integrable ((fun i v => cexp (-b i * ↑v ^ 2 + c i * ↑v)) i) volume
tactic: apply Integrable.fintype_prod (f := fun i (v : ℝ) ↦ cexp (-b i * v^2 + c i * v)) (fun i ↦ ?_)
state_before: b✝ : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
b : ι → ℂ
hb : ∀ (i : ι), 0 < (b i).re
c : ι → ℂ
i : ι
⊢ Integrable ((fun i v => cexp (-b i * ↑v ^ 2 + c i * ↑v)) i) volume
state_after: case h.e'_5.h.h.e'_1
b✝ : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
b : ι → ℂ
hb : ∀ (i : ι), 0 < (b i).re
c : ι → ℂ
i : ι
x : ℝ
⊢ -b i * ↑x ^ 2 + c i * ↑x = -b i * ↑x ^ 2 + c i * ↑x + 0
tactic: convert integrable_cexp_quadratic (hb i) (c i) 0 using 3 with x
state_before: case h.e'_5.h.h.e'_1
b✝ : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
b : ι → ℂ
hb : ∀ (i : ι), 0 < (b i).re
c : ι → ℂ
i : ι
x : ℝ
⊢ -b i * ↑x ^ 2 + c i * ↑x = -b i * ↑x ^ 2 + c i * ↑x + 0
state_after: no goals
tactic: simp only [add_zero]
Theorem: nsmul_left_comm
File: Mathlib/Algebra/Group/Defs.lean

Proof steps:
state_before: G : Type u_1
M : Type u_2
inst✝ : Monoid M
a✝ b c : M
m✝ n✝ : ℕ
a : M
m n : ℕ
⊢ (a ^ m) ^ n = (a ^ n) ^ m
state_after: no goals
tactic: rw [← pow_mul, Nat.mul_comm, pow_mul]
Theorem: quasispectrum.algebraMap_mem_iff
File: Mathlib/Algebra/Algebra/Quasispectrum.lean

Proof steps:
state_before: R✝ : Type u_1
A✝ : Type u_2
inst✝¹³ : CommSemiring R✝
inst✝¹² : NonUnitalRing A✝
inst✝¹¹ : Module R✝ A✝
inst✝¹⁰ : IsScalarTower R✝ A✝ A✝
inst✝⁹ : SMulCommClass R✝ A✝ A✝
S : Type u_3
R : Type u_4
A : Type u_5
inst✝⁸ : Semifield R
inst✝⁷ : Field S
inst✝⁶ : NonUnitalRing A
inst✝⁵ : Algebra R S
inst✝⁴ : Module S A
inst✝³ : IsScalarTower S A A
inst✝² : SMulCommClass S A A
inst✝¹ : Module R A
inst✝ : IsScalarTower R S A
a : A
r : R
⊢ (algebraMap R S) r ∈ quasispectrum S a ↔ r ∈ quasispectrum R a
state_after: no goals
tactic: simp_rw [Unitization.quasispectrum_eq_spectrum_inr' _ S a, spectrum.algebraMap_mem_iff]
Theorem: interior_sphere'
File: Mathlib/Analysis/NormedSpace/Real.lean

Proof steps:
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : Nontrivial E
x : E
r : ℝ
⊢ interior (sphere x r) = ∅
state_after: no goals
tactic: rw [← frontier_closedBall' x, interior_frontier isClosed_ball]