1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: IsCompact.bddBelow
File: Mathlib/Topology/Algebra/Order/Compact.lean

tactic: rcases s.eq_empty_or_nonempty with rfl | hne
state_before: α✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁵ : LinearOrder α
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace β
inst✝² : TopologicalSpace γ
inst✝¹ : ClosedIicTopology α
inst✝ : Nonempty α
s : Set α
hs : IsCompact s
⊢ BddBelow s
state_after: case inl
α✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁵ : LinearOrder α
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace β
inst✝² : TopologicalSpace γ
inst✝¹ : ClosedIicTopology α
inst✝ : Nonempty α
hs : IsCompact ∅
⊢ BddBelow ∅

case inr
α✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁵ : LinearOrder α
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace β
inst✝² : TopologicalSpace γ
inst✝¹ : ClosedIicTopology α
inst✝ : Nonempty α
s : Set α
hs : IsCompact s
hne : s.Nonempty
⊢ BddBelow s

tactic: exact bddBelow_empty
state_before: case inl
α✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁵ : LinearOrder α
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace β
inst✝² : TopologicalSpace γ
inst✝¹ : ClosedIicTopology α
inst✝ : Nonempty α
hs : IsCompact ∅
⊢ BddBelow ∅
state_after: no goals

tactic: obtain ⟨a, -, has⟩ := hs.exists_isLeast hne
state_before: case inr
α✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁵ : LinearOrder α
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace β
inst✝² : TopologicalSpace γ
inst✝¹ : ClosedIicTopology α
inst✝ : Nonempty α
s : Set α
hs : IsCompact s
hne : s.Nonempty
⊢ BddBelow s
state_after: case inr.intro.intro
α✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁵ : LinearOrder α
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace β
inst✝² : TopologicalSpace γ
inst✝¹ : ClosedIicTopology α
inst✝ : Nonempty α
s : Set α
hs : IsCompact s
hne : s.Nonempty
a : α
has : a ∈ lowerBounds s
⊢ BddBelow s

tactic: exact ⟨a, has⟩
state_before: case inr.intro.intro
α✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁵ : LinearOrder α
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace β
inst✝² : TopologicalSpace γ
inst✝¹ : ClosedIicTopology α
inst✝ : Nonempty α
s : Set α
hs : IsCompact s
hne : s.Nonempty
a : α
has : a ∈ lowerBounds s
⊢ BddBelow s
state_after: no goals
Theorem: PartialHomeomorph.trans_transHomeomorph
File: Mathlib/Topology/PartialHomeomorph.lean

tactic: simp only [transHomeomorph_eq_trans, trans_assoc, Homeomorph.trans_toPartialHomeomorph]
state_before: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
e' : PartialHomeomorph Y Z
f'' : Z ≃ₜ Z'
⊢ (e.trans e').transHomeomorph f'' = e.trans (e'.transHomeomorph f'')
state_after: no goals
Theorem: Cubic.natDegree_of_c_ne_zero
File: Mathlib/Algebra/CubicDiscriminant.lean

tactic: rw [of_b_eq_zero ha hb, natDegree_linear hc]
state_before: R : Type u_1
S : Type u_2
F : Type u_3
K : Type u_4
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
ha : P.a = 0
hb : P.b = 0
hc : P.c ≠ 0
⊢ P.toPoly.natDegree = 1
state_after: no goals
Theorem: maximals_mono
File: Mathlib/Order/Minimal.lean

tactic: have := eq_of_mem_maximals ha hb (h _ _ hab)
state_before: α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
s t : Set α
a✝ b✝ : α
inst✝ : IsAntisymm α r₂
h : ∀ (a b : α), r₁ a b → r₂ a b
a : α
ha : a ∈ maximals r₂ s
b : α
hb : b ∈ s
hab : r₁ a b
⊢ r₁ b a
state_after: α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
s t : Set α
a✝ b✝ : α
inst✝ : IsAntisymm α r₂
h : ∀ (a b : α), r₁ a b → r₂ a b
a : α
ha : a ∈ maximals r₂ s
b : α
hb : b ∈ s
hab : r₁ a b
this : a = b
⊢ r₁ b a

tactic: subst this
state_before: α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
s t : Set α
a✝ b✝ : α
inst✝ : IsAntisymm α r₂
h : ∀ (a b : α), r₁ a b → r₂ a b
a : α
ha : a ∈ maximals r₂ s
b : α
hb : b ∈ s
hab : r₁ a b
this : a = b
⊢ r₁ b a
state_after: α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
s t : Set α
a✝ b : α
inst✝ : IsAntisymm α r₂
h : ∀ (a b : α), r₁ a b → r₂ a b
a : α
ha : a ∈ maximals r₂ s
hb : a ∈ s
hab : r₁ a a
⊢ r₁ a a

tactic: exact hab
state_before: α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
s t : Set α
a✝ b : α
inst✝ : IsAntisymm α r₂
h : ∀ (a b : α), r₁ a b → r₂ a b
a : α
ha : a ∈ maximals r₂ s
hb : a ∈ s
hab : r₁ a a
⊢ r₁ a a
state_after: no goals
Theorem: Order.PFilter.principal_le_principal_iff
File: Mathlib/Order/PFilter.lean

tactic: simp
state_before: P : Type u_1
inst✝ : Preorder P
x y : P
F s t : PFilter P
p q : P
⊢ principal q ≤ principal p ↔ p ≤ q
state_after: no goals
Theorem: Polynomial.natDegree_le_iff_coeff_eq_zero
File: Mathlib/Algebra/Polynomial/Degree/Lemmas.lean

tactic: simp_rw [natDegree_le_iff_degree_le, degree_le_iff_coeff_zero, Nat.cast_lt]
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝ : Semiring R
p q r : R[X]
⊢ p.natDegree ≤ n ↔ ∀ (N : ℕ), n < N → p.coeff N = 0
state_after: no goals
Theorem: Filter.tendsto_pure
File: Mathlib/Order/Filter/Basic.lean

tactic: simp only [Tendsto, le_pure_iff, mem_map', mem_singleton_iff, Filter.Eventually]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
l : Filter α
f : α → β
a : Filter α
b : β
⊢ Tendsto f a (pure b) ↔ ∀ᶠ (x : α) in a, f x = b
state_after: no goals
Theorem: Associates.factors_self
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: rw [factors_prod, FactorSet.prod]
state_before: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : UniqueFactorizationMonoid α
inst✝ : Nontrivial α
p : Associates α
hp : Irreducible p
⊢ p.factors.prod = FactorSet.prod ↑{⟨p, hp⟩}
state_after: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : UniqueFactorizationMonoid α
inst✝ : Nontrivial α
p : Associates α
hp : Irreducible p
⊢ p =
    match ↑{⟨p, hp⟩} with
    | none => 0
    | some s => (Multiset.map Subtype.val s).prod

tactic: dsimp
state_before: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : UniqueFactorizationMonoid α
inst✝ : Nontrivial α
p : Associates α
hp : Irreducible p
⊢ p =
    match ↑{⟨p, hp⟩} with
    | none => 0
    | some s => (Multiset.map Subtype.val s).prod
state_after: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : UniqueFactorizationMonoid α
inst✝ : Nontrivial α
p : Associates α
hp : Irreducible p
⊢ p = {p}.prod

tactic: rw [prod_singleton]
state_before: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : UniqueFactorizationMonoid α
inst✝ : Nontrivial α
p : Associates α
hp : Irreducible p
⊢ p = {p}.prod
state_after: no goals
Theorem: CategoryTheory.InjectiveResolution.exact_succ
File: Mathlib/CategoryTheory/Preadditive/InjectiveResolution.lean

tactic: simp
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
Z : C
I : InjectiveResolution Z
n : ℕ
⊢ (ComplexShape.up ℕ).prev (n + 1) = n
state_after: no goals

tactic: simp only [CochainComplex.next]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
Z : C
I : InjectiveResolution Z
n : ℕ
⊢ (ComplexShape.up ℕ).next (n + 1) = n + 2
state_after: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
Z : C
I : InjectiveResolution Z
n : ℕ
⊢ n + 1 + 1 = n + 2

tactic: rfl
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
Z : C
I : InjectiveResolution Z
n : ℕ
⊢ n + 1 + 1 = n + 2
state_after: no goals
Theorem: Set.mulIndicator_eq_self
File: Mathlib/Algebra/Group/Indicator.lean

tactic: simp only [funext_iff, subset_def, mem_mulSupport, mulIndicator_apply_eq_self, not_imp_comm]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝¹ : One M
inst✝ : One N
s t : Set α
f g : α → M
a : α
⊢ s.mulIndicator f = f ↔ mulSupport f ⊆ s
state_after: no goals
Theorem: Finset.eq_empty_of_sym_eq_empty
File: Mathlib/Data/Finset/Sym.lean

tactic: rw [← not_nonempty_iff_eq_empty] at h ⊢
state_before: α : Type u_1
inst✝ : DecidableEq α
s t : Finset α
a b : α
n : ℕ
h : s.sym n = ∅
⊢ s = ∅
state_after: α : Type u_1
inst✝ : DecidableEq α
s t : Finset α
a b : α
n : ℕ
h : ¬(s.sym n).Nonempty
⊢ ¬s.Nonempty

tactic: exact fun hs ↦ h (hs.sym _)
state_before: α : Type u_1
inst✝ : DecidableEq α
s t : Finset α
a b : α
n : ℕ
h : ¬(s.sym n).Nonempty
⊢ ¬s.Nonempty
state_after: no goals
Theorem: AffineSubspace.mem_direction_iff_eq_vsub_right
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: rw [← SetLike.mem_coe, coe_direction_eq_vsub_set_right hp]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
p : P
hp : p ∈ s
v : V
⊢ v ∈ s.direction ↔ ∃ p2 ∈ s, v = p2 -ᵥ p
state_after: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
p : P
hp : p ∈ s
v : V
⊢ v ∈ (fun x => x -ᵥ p) '' ↑s ↔ ∃ p2 ∈ s, v = p2 -ᵥ p

tactic: exact ⟨fun ⟨p2, hp2, hv⟩ => ⟨p2, hp2, hv.symm⟩, fun ⟨p2, hp2, hv⟩ => ⟨p2, hp2, hv.symm⟩⟩
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
p : P
hp : p ∈ s
v : V
⊢ v ∈ (fun x => x -ᵥ p) '' ↑s ↔ ∃ p2 ∈ s, v = p2 -ᵥ p
state_after: no goals
Theorem: PartENat.toWithTop_add
File: Mathlib/Data/Nat/PartENat.lean

tactic: refine PartENat.casesOn y ?_ ?_ <;> refine PartENat.casesOn x ?_ ?_
state_before: x y : PartENat
⊢ (x + y).toWithTop = x.toWithTop + y.toWithTop
state_after: case refine_1.refine_1
x y : PartENat
⊢ (⊤ + ⊤).toWithTop = ⊤.toWithTop + ⊤.toWithTop

case refine_1.refine_2
x y : PartENat
⊢ ∀ (n : ℕ), (↑n + ⊤).toWithTop = (↑n).toWithTop + ⊤.toWithTop

case refine_2.refine_1
x y : PartENat
⊢ ∀ (n : ℕ), (⊤ + ↑n).toWithTop = ⊤.toWithTop + (↑n).toWithTop

case refine_2.refine_2
x y : PartENat
⊢ ∀ (n n_1 : ℕ), (↑n + ↑n_1).toWithTop = (↑n).toWithTop + (↑n_1).toWithTop

tactic: simp only [add_top, toWithTop_top', _root_.add_top]
state_before: case refine_1.refine_1
x y : PartENat
⊢ (⊤ + ⊤).toWithTop = ⊤.toWithTop + ⊤.toWithTop
state_after: no goals

tactic: simp only [add_top, toWithTop_top', toWithTop_natCast', _root_.add_top, forall_const]
state_before: case refine_1.refine_2
x y : PartENat
⊢ ∀ (n : ℕ), (↑n + ⊤).toWithTop = (↑n).toWithTop + ⊤.toWithTop
state_after: no goals

tactic: simp only [top_add, toWithTop_top', toWithTop_natCast', _root_.top_add, forall_const]
state_before: case refine_2.refine_1
x y : PartENat
⊢ ∀ (n : ℕ), (⊤ + ↑n).toWithTop = ⊤.toWithTop + (↑n).toWithTop
state_after: no goals

tactic: simp_rw [toWithTop_natCast', ← Nat.cast_add, toWithTop_natCast', forall_const]
state_before: case refine_2.refine_2
x y : PartENat
⊢ ∀ (n n_1 : ℕ), (↑n + ↑n_1).toWithTop = (↑n).toWithTop + (↑n_1).toWithTop
state_after: no goals
Theorem: IsClosed.measure_eq_univ_iff_eq
File: Mathlib/MeasureTheory/Measure/OpenPos.lean

tactic: rw [← ae_eq_univ_iff_measure_eq hF.measurableSet.nullMeasurableSet, hF.ae_eq_univ_iff_eq]
state_before: X : Type u_1
Y : Type u_2
inst✝⁵ : TopologicalSpace X
m : MeasurableSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : T2Space Y
μ ν : Measure X
inst✝² : μ.IsOpenPosMeasure
s U F : Set X
x : X
inst✝¹ : OpensMeasurableSpace X
inst✝ : IsFiniteMeasure μ
hF : IsClosed F
⊢ μ F = μ univ ↔ F = univ
state_after: no goals
Theorem: Finset.Colex.mem_initSeg_self
File: Mathlib/Combinatorics/Colex.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : LinearOrder β
f : α → β
𝒜 𝒜₁ 𝒜₂ : Finset (Finset α)
s t u : Finset α
a b : α
r : ℕ
inst✝ : Fintype α
⊢ s ∈ initSeg s
state_after: no goals
Theorem: balancedCoreAux_maximal
File: Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean

tactic: refine fun x hx => mem_balancedCoreAux_iff.2 fun r hr => ?_
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
h : t ⊆ s
ht : Balanced 𝕜 t
⊢ t ⊆ balancedCoreAux 𝕜 s
state_after: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
h : t ⊆ s
ht : Balanced 𝕜 t
x : E
hx : x ∈ t
r : 𝕜
hr : 1 ≤ ‖r‖
⊢ x ∈ r • s

tactic: rw [mem_smul_set_iff_inv_smul_mem₀ (norm_pos_iff.mp <| zero_lt_one.trans_le hr)]
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
h : t ⊆ s
ht : Balanced 𝕜 t
x : E
hx : x ∈ t
r : 𝕜
hr : 1 ≤ ‖r‖
⊢ x ∈ r • s
state_after: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
h : t ⊆ s
ht : Balanced 𝕜 t
x : E
hx : x ∈ t
r : 𝕜
hr : 1 ≤ ‖r‖
⊢ r⁻¹ • x ∈ s

tactic: refine h (ht.smul_mem ?_ hx)
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
h : t ⊆ s
ht : Balanced 𝕜 t
x : E
hx : x ∈ t
r : 𝕜
hr : 1 ≤ ‖r‖
⊢ r⁻¹ • x ∈ s
state_after: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
h : t ⊆ s
ht : Balanced 𝕜 t
x : E
hx : x ∈ t
r : 𝕜
hr : 1 ≤ ‖r‖
⊢ ‖r⁻¹‖ ≤ 1

tactic: rw [norm_inv]
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
h : t ⊆ s
ht : Balanced 𝕜 t
x : E
hx : x ∈ t
r : 𝕜
hr : 1 ≤ ‖r‖
⊢ ‖r⁻¹‖ ≤ 1
state_after: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
h : t ⊆ s
ht : Balanced 𝕜 t
x : E
hx : x ∈ t
r : 𝕜
hr : 1 ≤ ‖r‖
⊢ ‖r‖⁻¹ ≤ 1

tactic: exact inv_le_one hr
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
h : t ⊆ s
ht : Balanced 𝕜 t
x : E
hx : x ∈ t
r : 𝕜
hr : 1 ≤ ‖r‖
⊢ ‖r‖⁻¹ ≤ 1
state_after: no goals
Theorem: Primrec.optionToList
File: Mathlib/Computability/Primrec.lean

tactic: rcases o <;> simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
σ : Type u_4
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
o : Option α
⊢ (Option.casesOn (id o) [] fun b => [id b]) = o.toList
state_after: no goals
Theorem: LinearMap.toSeminorm_comp
File: Mathlib/Analysis/LocallyConvex/WeakDual.lean

tactic: ext
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type u_4
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
f : F →ₗ[𝕜] 𝕜
g : E →ₗ[𝕜] F
⊢ f.toSeminorm.comp g = (f ∘ₗ g).toSeminorm
state_after: case h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type u_4
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
f : F →ₗ[𝕜] 𝕜
g : E →ₗ[𝕜] F
x✝ : E
⊢ (f.toSeminorm.comp g) x✝ = (f ∘ₗ g).toSeminorm x✝

tactic: simp only [Seminorm.comp_apply, toSeminorm_apply, coe_comp, Function.comp_apply]
state_before: case h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
ι : Type u_4
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
f : F →ₗ[𝕜] 𝕜
g : E →ₗ[𝕜] F
x✝ : E
⊢ (f.toSeminorm.comp g) x✝ = (f ∘ₗ g).toSeminorm x✝
state_after: no goals
Theorem: smul_closedBall_one
File: Mathlib/Analysis/Normed/Group/Pointwise.lean

tactic: simp
state_before: E : Type u_1
inst✝ : SeminormedCommGroup E
ε δ : ℝ
s t : Set E
x y : E
⊢ x • closedBall 1 δ = closedBall x δ
state_after: no goals
Theorem: Basis.forall_coord_eq_zero_iff
File: Mathlib/LinearAlgebra/Basis.lean

tactic: simp only [b.coord_apply, DFunLike.ext_iff, Finsupp.zero_apply]
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
b b₁ : Basis ι R M
i : ι
c : R
x✝ x : M
⊢ (∀ (i : ι), (b.coord i) x = 0) ↔ b.repr x = 0
state_after: no goals
Theorem: CategoryTheory.Equivalence.counitInv_app_functor
File: Mathlib/CategoryTheory/Equivalence.lean

tactic: symm
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
e : C ≌ D
X : C
⊢ e.counitInv.app (e.functor.obj X) = e.functor.map (e.unit.app X)
state_after: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
e : C ≌ D
X : C
⊢ e.functor.map (e.unit.app X) = e.counitInv.app (e.functor.obj X)

tactic: erw [← Iso.comp_hom_eq_id (e.counitIso.app _), functor_unit_comp]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
e : C ≌ D
X : C
⊢ e.functor.map (e.unit.app X) = e.counitInv.app (e.functor.obj X)
state_after: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
e : C ≌ D
X : C
⊢ 𝟙 (e.functor.obj X) = 𝟙 ((𝟭 D).obj (e.functor.toPrefunctor.1 ((𝟭 C).obj X)))

tactic: rfl
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
e : C ≌ D
X : C
⊢ 𝟙 (e.functor.obj X) = 𝟙 ((𝟭 D).obj (e.functor.toPrefunctor.1 ((𝟭 C).obj X)))
state_after: no goals
Theorem: comp_mul_left
File: Mathlib/Algebra/Group/Basic.lean

tactic: ext z
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Semigroup α
x y : α
⊢ ((fun x_1 => x * x_1) ∘ fun x => y * x) = fun x_1 => x * y * x_1
state_after: case h
α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Semigroup α
x y z : α
⊢ ((fun x_1 => x * x_1) ∘ fun x => y * x) z = x * y * z

tactic: simp [mul_assoc]
state_before: case h
α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Semigroup α
x y z : α
⊢ ((fun x_1 => x * x_1) ∘ fun x => y * x) z = x * y * z
state_after: no goals
Theorem: HurwitzZeta.continuousOn_evenKernel
File: Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean

tactic: induction' a using QuotientAddGroup.induction_on' with a'
state_before: a : UnitAddCircle
⊢ ContinuousOn (evenKernel a) (Ioi 0)
state_after: case H
a' : ℝ
⊢ ContinuousOn (evenKernel ↑a') (Ioi 0)

tactic: apply continuous_re.comp_continuousOn (f := fun x ↦ (evenKernel a' x : ℂ))
state_before: case H
a' : ℝ
⊢ ContinuousOn (evenKernel ↑a') (Ioi 0)
state_after: case H
a' : ℝ
⊢ ContinuousOn (fun x => ↑(evenKernel (↑a') x)) (Ioi 0)

tactic: simp only [evenKernel_def a']
state_before: case H
a' : ℝ
⊢ ContinuousOn (fun x => ↑(evenKernel (↑a') x)) (Ioi 0)
state_after: case H
a' : ℝ
⊢ ContinuousOn (fun x => cexp (-↑π * ↑a' ^ 2 * ↑x) * jacobiTheta₂ (↑a' * I * ↑x) (I * ↑x)) (Ioi 0)

tactic: refine ContinuousAt.continuousOn (fun x hx ↦ ((Continuous.continuousAt ?_).mul ?_))
state_before: case H
a' : ℝ
⊢ ContinuousOn (fun x => cexp (-↑π * ↑a' ^ 2 * ↑x) * jacobiTheta₂ (↑a' * I * ↑x) (I * ↑x)) (Ioi 0)
state_after: case H.refine_1
a' x : ℝ
hx : x ∈ Ioi 0
⊢ Continuous fun x => cexp (-↑π * ↑a' ^ 2 * ↑x)

case H.refine_2
a' x : ℝ
hx : x ∈ Ioi 0
⊢ ContinuousAt (fun x => jacobiTheta₂ (↑a' * I * ↑x) (I * ↑x)) x

tactic: exact Complex.continuous_exp.comp (continuous_const.mul continuous_ofReal)
state_before: case H.refine_1
a' x : ℝ
hx : x ∈ Ioi 0
⊢ Continuous fun x => cexp (-↑π * ↑a' ^ 2 * ↑x)
state_after: no goals

tactic: have h := continuousAt_jacobiTheta₂ (a' * I * x) (?_ : 0 < im (I * x))
state_before: case H.refine_2
a' x : ℝ
hx : x ∈ Ioi 0
⊢ ContinuousAt (fun x => jacobiTheta₂ (↑a' * I * ↑x) (I * ↑x)) x
state_after: case H.refine_2.refine_2
a' x : ℝ
hx : x ∈ Ioi 0
h : ContinuousAt (fun p => jacobiTheta₂ p.1 p.2) (↑a' * I * ↑x, I * ↑x)
⊢ ContinuousAt (fun x => jacobiTheta₂ (↑a' * I * ↑x) (I * ↑x)) x

case H.refine_2.refine_1
a' x : ℝ
hx : x ∈ Ioi 0
⊢ 0 < (I * ↑x).im

tactic: exact h.comp (f := fun u : ℝ ↦ (a' * I * u, I * u)) (by fun_prop)
state_before: case H.refine_2.refine_2
a' x : ℝ
hx : x ∈ Ioi 0
h : ContinuousAt (fun p => jacobiTheta₂ p.1 p.2) (↑a' * I * ↑x, I * ↑x)
⊢ ContinuousAt (fun x => jacobiTheta₂ (↑a' * I * ↑x) (I * ↑x)) x
state_after: no goals

tactic: fun_prop
state_before: a' x : ℝ
hx : x ∈ Ioi 0
h : ContinuousAt (fun p => jacobiTheta₂ p.1 p.2) (↑a' * I * ↑x, I * ↑x)
⊢ ContinuousAt (fun u => (↑a' * I * ↑u, I * ↑u)) x
state_after: no goals

tactic: rwa [mul_im, I_re, I_im, zero_mul, one_mul, zero_add, ofReal_re]
state_before: case H.refine_2.refine_1
a' x : ℝ
hx : x ∈ Ioi 0
⊢ 0 < (I * ↑x).im
state_after: no goals
Theorem: Polynomial.aroots_monomial
File: Mathlib/Algebra/Polynomial/Roots.lean

tactic: rw [← C_mul_X_pow_eq_monomial, aroots_C_mul_X_pow ha]
state_before: R : Type u
S : Type v
T : Type w
a✝ b : R
n✝ : ℕ
inst✝⁶ : CommRing R
inst✝⁵ : IsDomain R
p q : R[X]
inst✝⁴ : CommRing T
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : Algebra T S
inst✝ : NoZeroSMulDivisors T S
a : T
ha : a ≠ 0
n : ℕ
⊢ ((monomial n) a).aroots S = n • {0}
state_after: no goals
Theorem: Finset.Iio_subset_Iic_self
File: Mathlib/Order/Interval/Finset/Basic.lean

tactic: simpa [← coe_subset] using Set.Iio_subset_Iic_self
state_before: ι : Type u_1
α : Type u_2
inst✝¹ : Preorder α
inst✝ : LocallyFiniteOrderBot α
a : α
⊢ Iio a ⊆ Iic a
state_after: no goals
Theorem: absorbs_iff_norm
File: Mathlib/Analysis/LocallyConvex/Basic.lean

tactic: simp only [true_and]
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t u v A B : Set E
⊢ (∃ i, True ∧ ∀ ⦃x : 𝕜⦄, x ∈ norm ⁻¹' Ici i → B ⊆ x • A) ↔ ∃ r, ∀ (c : 𝕜), r ≤ ‖c‖ → B ⊆ c • A
state_after: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t u v A B : Set E
⊢ (∃ i, ∀ ⦃x : 𝕜⦄, x ∈ norm ⁻¹' Ici i → B ⊆ x • A) ↔ ∃ r, ∀ (c : 𝕜), r ≤ ‖c‖ → B ⊆ c • A

tactic: rfl
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : SeminormedRing 𝕜
inst✝ : SMul 𝕜 E
s t u v A B : Set E
⊢ (∃ i, ∀ ⦃x : 𝕜⦄, x ∈ norm ⁻¹' Ici i → B ⊆ x • A) ↔ ∃ r, ∀ (c : 𝕜), r ≤ ‖c‖ → B ⊆ c • A
state_after: no goals
Theorem: CategoryTheory.Limits.Types.Image.lift_fac
File: Mathlib/CategoryTheory/Limits/Types.lean

tactic: funext x
state_before: J : Type v
inst✝¹ : Category.{w, v} J
F : J ⥤ Type u
inst✝ : HasColimit F
α β : Type u
f : α ⟶ β
F' : MonoFactorisation f
⊢ lift F' ≫ F'.m = ι f
state_after: case h
J : Type v
inst✝¹ : Category.{w, v} J
F : J ⥤ Type u
inst✝ : HasColimit F
α β : Type u
f : α ⟶ β
F' : MonoFactorisation f
x : Image f
⊢ (lift F' ≫ F'.m) x = ι f x

tactic: change (F'.e ≫ F'.m) _ = _
state_before: case h
J : Type v
inst✝¹ : Category.{w, v} J
F : J ⥤ Type u
inst✝ : HasColimit F
α β : Type u
f : α ⟶ β
F' : MonoFactorisation f
x : Image f
⊢ (lift F' ≫ F'.m) x = ι f x
state_after: case h
J : Type v
inst✝¹ : Category.{w, v} J
F : J ⥤ Type u
inst✝ : HasColimit F
α β : Type u
f : α ⟶ β
F' : MonoFactorisation f
x : Image f
⊢ (F'.e ≫ F'.m) ↑(Classical.indefiniteDescription (fun x_1 => f x_1 = ↑x) ⋯) = ι f x

tactic: rw [F'.fac, (Classical.indefiniteDescription _ x.2).2]
state_before: case h
J : Type v
inst✝¹ : Category.{w, v} J
F : J ⥤ Type u
inst✝ : HasColimit F
α β : Type u
f : α ⟶ β
F' : MonoFactorisation f
x : Image f
⊢ (F'.e ≫ F'.m) ↑(Classical.indefiniteDescription (fun x_1 => f x_1 = ↑x) ⋯) = ι f x
state_after: case h
J : Type v
inst✝¹ : Category.{w, v} J
F : J ⥤ Type u
inst✝ : HasColimit F
α β : Type u
f : α ⟶ β
F' : MonoFactorisation f
x : Image f
⊢ ↑x = ι f x

tactic: rfl
state_before: case h
J : Type v
inst✝¹ : Category.{w, v} J
F : J ⥤ Type u
inst✝ : HasColimit F
α β : Type u
f : α ⟶ β
F' : MonoFactorisation f
x : Image f
⊢ ↑x = ι f x
state_after: no goals
Theorem: Order.not_isPredLimit_of_noMin
File: Mathlib/Order/SuccPred/Limit.lean

tactic: simp
state_before: α : Type u_1
inst✝⁴ : Preorder α
a : α
inst✝³ : PredOrder α
inst✝² : IsPredArchimedean α
inst✝¹ : NoMinOrder α
inst✝ : NoMaxOrder α
⊢ ¬IsPredLimit a
state_after: no goals