1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: DirectSum.IsInternal.collectedOrthonormalBasis_mem
File: Mathlib/Analysis/InnerProductSpace/PiL2.lean

tactic: simp [DirectSum.IsInternal.collectedOrthonormalBasis]
state_before: ι : Type u_1
ι' : Type u_2
𝕜 : Type u_3
inst✝¹¹ : _root_.RCLike 𝕜
E : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : InnerProductSpace 𝕜 E
E' : Type u_5
inst✝⁸ : NormedAddCommGroup E'
inst✝⁷ : InnerProductSpace 𝕜 E'
F : Type u_6
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : InnerProductSpace ℝ F
F' : Type u_7
inst✝⁴ : NormedAddCommGroup F'
inst✝³ : InnerProductSpace ℝ F'
inst✝² : Fintype ι
v✝ : Set E
A : ι → Submodule 𝕜 E
inst✝¹ : DecidableEq ι
h : IsInternal A
α : ι → Type u_8
inst✝ : (i : ι) → Fintype (α i)
hV : OrthogonalFamily 𝕜 (fun i => ↥(A i)) fun i => (A i).subtypeₗᵢ
v : (i : ι) → OrthonormalBasis (α i) 𝕜 ↥(A i)
a : (i : ι) × α i
⊢ (collectedOrthonormalBasis hV h v) a ∈ A a.fst
state_after: no goals
Theorem: Polynomial.integralNormalization_coeff_ne_degree
File: Mathlib/RingTheory/Polynomial/IntegralNormalization.lean

tactic: rw [integralNormalization_coeff, if_neg hi]
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
f : R[X]
i : ℕ
hi : f.degree ≠ ↑i
⊢ f.integralNormalization.coeff i = f.coeff i * f.leadingCoeff ^ (f.natDegree - 1 - i)
state_after: no goals
Theorem: associated_iff_eq
File: Mathlib/Algebra/Associated.lean

tactic: constructor
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : Monoid α
inst✝ : Unique αˣ
x y : α
⊢ x ~ᵤ y ↔ x = y
state_after: case mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : Monoid α
inst✝ : Unique αˣ
x y : α
⊢ x ~ᵤ y → x = y

case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : Monoid α
inst✝ : Unique αˣ
x y : α
⊢ x = y → x ~ᵤ y

tactic: rintro ⟨c, rfl⟩
state_before: case mp
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : Monoid α
inst✝ : Unique αˣ
x y : α
⊢ x ~ᵤ y → x = y
state_after: case mp.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : Monoid α
inst✝ : Unique αˣ
x : α
c : αˣ
⊢ x = x * ↑c

tactic: rw [units_eq_one c, Units.val_one, mul_one]
state_before: case mp.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : Monoid α
inst✝ : Unique αˣ
x : α
c : αˣ
⊢ x = x * ↑c
state_after: no goals

tactic: rintro rfl
state_before: case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : Monoid α
inst✝ : Unique αˣ
x y : α
⊢ x = y → x ~ᵤ y
state_after: case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : Monoid α
inst✝ : Unique αˣ
x : α
⊢ x ~ᵤ x

tactic: rfl
state_before: case mpr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : Monoid α
inst✝ : Unique αˣ
x : α
⊢ x ~ᵤ x
state_after: no goals
Theorem: contMDiff_iff_contDiff
File: Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean

tactic: rw [← contDiffOn_univ, ← contMDiffOn_univ, contMDiffOn_iff_contDiffOn]
state_before: 𝕜 : Type u_1
inst✝³² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³¹ : NormedAddCommGroup E
inst✝³⁰ : NormedSpace 𝕜 E
H : Type u_3
inst✝²⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝²⁸ : TopologicalSpace M
inst✝²⁷ : ChartedSpace H M
inst✝²⁶ : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝²⁵ : NormedAddCommGroup E'
inst✝²⁴ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝²³ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝²² : TopologicalSpace M'
inst✝²¹ : ChartedSpace H' M'
inst✝²⁰ : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹⁹ : NormedAddCommGroup F
inst✝¹⁸ : NormedSpace 𝕜 F
G : Type u_9
inst✝¹⁷ : TopologicalSpace G
J : ModelWithCorners 𝕜 F G
N : Type u_10
inst✝¹⁶ : TopologicalSpace N
inst✝¹⁵ : ChartedSpace G N
inst✝¹⁴ : SmoothManifoldWithCorners J N
F' : Type u_11
inst✝¹³ : NormedAddCommGroup F'
inst✝¹² : NormedSpace 𝕜 F'
G' : Type u_12
inst✝¹¹ : TopologicalSpace G'
J' : ModelWithCorners 𝕜 F' G'
N' : Type u_13
inst✝¹⁰ : TopologicalSpace N'
inst✝⁹ : ChartedSpace G' N'
inst✝⁸ : SmoothManifoldWithCorners J' N'
F₁ : Type u_14
inst✝⁷ : NormedAddCommGroup F₁
inst✝⁶ : NormedSpace 𝕜 F₁
F₂ : Type u_15
inst✝⁵ : NormedAddCommGroup F₂
inst✝⁴ : NormedSpace 𝕜 F₂
F₃ : Type u_16
inst✝³ : NormedAddCommGroup F₃
inst✝² : NormedSpace 𝕜 F₃
F₄ : Type u_17
inst✝¹ : NormedAddCommGroup F₄
inst✝ : NormedSpace 𝕜 F₄
f✝ f₁ : M → M'
s t : Set M
x : M
m n : ℕ∞
f : E → E'
⊢ ContMDiff 𝓘(𝕜, E) 𝓘(𝕜, E') n f ↔ ContDiff 𝕜 n f
state_after: no goals
Theorem: Multiset.count_replicate_self
File: Mathlib/Data/Multiset/Basic.lean

tactic: convert List.count_replicate_self a n
state_before: α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s : Multiset α
a : α
n : ℕ
⊢ count a (replicate n a) = n
state_after: case h.e'_2
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s : Multiset α
a : α
n : ℕ
⊢ count a (replicate n a) = List.count a (List.replicate n a)

tactic: rw [← coe_count, coe_replicate]
state_before: case h.e'_2
α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s : Multiset α
a : α
n : ℕ
⊢ count a (replicate n a) = List.count a (List.replicate n a)
state_after: no goals
Theorem: Finsupp.neLocus_eq_support_sub
File: Mathlib/Data/Finsupp/NeLocus.lean

tactic: rw [← neLocus_add_right _ _ (-g), add_right_neg, neLocus_zero_right, sub_eq_add_neg]
state_before: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
inst✝² : DecidableEq α
inst✝¹ : DecidableEq N
inst✝ : AddGroup N
f f₁ f₂ g g₁ g₂ : α →₀ N
⊢ f.neLocus g = (f - g).support
state_after: no goals
Theorem: tendsto_inv_nhdsWithin_Ici
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: simp [tendsto_principal_principal]
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 : α
inst✝² : TopologicalSpace H
inst✝¹ : OrderedCommGroup H
inst✝ : ContinuousInv H
a : H
⊢ Tendsto (fun a => a⁻¹) (𝓟 (Ici a)) (𝓟 (Iic a⁻¹))
state_after: no goals
Theorem: Subspace.map_dualCoannihilator
File: Mathlib/LinearAlgebra/Dual.lean

tactic: rw [← dualAnnihilator_dualAnnihilator_eq_map, dualCoannihilator_dualAnnihilator_eq]
state_before: K✝ : Type uK
inst✝⁸ : Field K✝
V₁ : Type uV₁
V₂ : Type uV₂
inst✝⁷ : AddCommGroup V₁
inst✝⁶ : Module K✝ V₁
inst✝⁵ : AddCommGroup V₂
inst✝⁴ : Module K✝ V₂
K : Type u_1
V : Type u_2
inst✝³ : Field K
inst✝² : AddCommGroup V
inst✝¹ : Module K V
W : Subspace K (Dual K V)
inst✝ : FiniteDimensional K V
⊢ Submodule.map (Dual.eval K V) (Submodule.dualCoannihilator W) = Submodule.dualAnnihilator W
state_after: no goals
Theorem: Polynomial.eq_of_degree_le_of_eval_index_eq
File: Mathlib/LinearAlgebra/Lagrange.lean

tactic: rcases eq_or_ne f 0 with rfl | hf
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
f g : R[X]
ι : Type u_2
v : ι → R
s : Finset ι
hvs : Set.InjOn v ↑s
h_deg_le : f.degree ≤ ↑s.card
h_deg_eq : f.degree = g.degree
hlc : f.leadingCoeff = g.leadingCoeff
h_eval : ∀ i ∈ s, eval (v i) f = eval (v i) g
⊢ f = g
state_after: case inl
R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
g : R[X]
ι : Type u_2
v : ι → R
s : Finset ι
hvs : Set.InjOn v ↑s
h_deg_le : degree 0 ≤ ↑s.card
h_deg_eq : degree 0 = g.degree
hlc : leadingCoeff 0 = g.leadingCoeff
h_eval : ∀ i ∈ s, eval (v i) 0 = eval (v i) g
⊢ 0 = g

case inr
R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
f g : R[X]
ι : Type u_2
v : ι → R
s : Finset ι
hvs : Set.InjOn v ↑s
h_deg_le : f.degree ≤ ↑s.card
h_deg_eq : f.degree = g.degree
hlc : f.leadingCoeff = g.leadingCoeff
h_eval : ∀ i ∈ s, eval (v i) f = eval (v i) g
hf : f ≠ 0
⊢ f = g

tactic: rwa [degree_zero, eq_comm, degree_eq_bot, eq_comm] at h_deg_eq
state_before: case inl
R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
g : R[X]
ι : Type u_2
v : ι → R
s : Finset ι
hvs : Set.InjOn v ↑s
h_deg_le : degree 0 ≤ ↑s.card
h_deg_eq : degree 0 = g.degree
hlc : leadingCoeff 0 = g.leadingCoeff
h_eval : ∀ i ∈ s, eval (v i) 0 = eval (v i) g
⊢ 0 = g
state_after: no goals

tactic: exact eq_of_degree_sub_lt_of_eval_index_eq s hvs
  (lt_of_lt_of_le (degree_sub_lt h_deg_eq hf hlc) h_deg_le)
  h_eval
state_before: case inr
R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
f g : R[X]
ι : Type u_2
v : ι → R
s : Finset ι
hvs : Set.InjOn v ↑s
h_deg_le : f.degree ≤ ↑s.card
h_deg_eq : f.degree = g.degree
hlc : f.leadingCoeff = g.leadingCoeff
h_eval : ∀ i ∈ s, eval (v i) f = eval (v i) g
hf : f ≠ 0
⊢ f = g
state_after: no goals
Theorem: SimpleGraph.edgeFinset_inf
File: Mathlib/Combinatorics/SimpleGraph/Finite.lean

tactic: simp [edgeFinset]
state_before: V : Type u_1
G : SimpleGraph V
e : Sym2 V
G₁ G₂ : SimpleGraph V
inst✝³ : Fintype ↑G.edgeSet
inst✝² : Fintype ↑G₁.edgeSet
inst✝¹ : Fintype ↑G₂.edgeSet
inst✝ : DecidableEq V
⊢ (G₁ ⊓ G₂).edgeFinset = G₁.edgeFinset ∩ G₂.edgeFinset
state_after: no goals
Theorem: isOfFinOrder_iff_zpow_eq_one
File: Mathlib/GroupTheory/OrderOfElement.lean

tactic: rw [isOfFinOrder_iff_pow_eq_one]
state_before: G✝ : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G✝
a b x✝ y : G✝
n m : ℕ
G : Type u_6
inst✝ : Group G
x : G
⊢ IsOfFinOrder x ↔ ∃ n, n ≠ 0 ∧ x ^ n = 1
state_after: G✝ : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G✝
a b x✝ y : G✝
n m : ℕ
G : Type u_6
inst✝ : Group G
x : G
⊢ (∃ n, 0 < n ∧ x ^ n = 1) ↔ ∃ n, n ≠ 0 ∧ x ^ n = 1

tactic: refine ⟨fun ⟨n, hn, hn'⟩ ↦ ⟨n, Int.natCast_ne_zero_iff_pos.mpr hn, zpow_natCast x n ▸ hn'⟩,
  fun ⟨n, hn, hn'⟩ ↦ ⟨n.natAbs, Int.natAbs_pos.mpr hn, ?_⟩⟩
state_before: G✝ : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G✝
a b x✝ y : G✝
n m : ℕ
G : Type u_6
inst✝ : Group G
x : G
⊢ (∃ n, 0 < n ∧ x ^ n = 1) ↔ ∃ n, n ≠ 0 ∧ x ^ n = 1
state_after: G✝ : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G✝
a b x✝¹ y : G✝
n✝ m : ℕ
G : Type u_6
inst✝ : Group G
x : G
x✝ : ∃ n, n ≠ 0 ∧ x ^ n = 1
n : ℤ
hn : n ≠ 0
hn' : x ^ n = 1
⊢ x ^ n.natAbs = 1

tactic: cases' (Int.natAbs_eq_iff (a := n)).mp rfl with h h
state_before: G✝ : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G✝
a b x✝¹ y : G✝
n✝ m : ℕ
G : Type u_6
inst✝ : Group G
x : G
x✝ : ∃ n, n ≠ 0 ∧ x ^ n = 1
n : ℤ
hn : n ≠ 0
hn' : x ^ n = 1
⊢ x ^ n.natAbs = 1
state_after: case inl
G✝ : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G✝
a b x✝¹ y : G✝
n✝ m : ℕ
G : Type u_6
inst✝ : Group G
x : G
x✝ : ∃ n, n ≠ 0 ∧ x ^ n = 1
n : ℤ
hn : n ≠ 0
hn' : x ^ n = 1
h : n = ↑n.natAbs
⊢ x ^ n.natAbs = 1

case inr
G✝ : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G✝
a b x✝¹ y : G✝
n✝ m : ℕ
G : Type u_6
inst✝ : Group G
x : G
x✝ : ∃ n, n ≠ 0 ∧ x ^ n = 1
n : ℤ
hn : n ≠ 0
hn' : x ^ n = 1
h : n = -↑n.natAbs
⊢ x ^ n.natAbs = 1

tactic: rwa [h, zpow_natCast] at hn'
state_before: case inl
G✝ : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G✝
a b x✝¹ y : G✝
n✝ m : ℕ
G : Type u_6
inst✝ : Group G
x : G
x✝ : ∃ n, n ≠ 0 ∧ x ^ n = 1
n : ℤ
hn : n ≠ 0
hn' : x ^ n = 1
h : n = ↑n.natAbs
⊢ x ^ n.natAbs = 1
state_after: no goals

tactic: rwa [h, zpow_neg, inv_eq_one, zpow_natCast] at hn'
state_before: case inr
G✝ : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G✝
a b x✝¹ y : G✝
n✝ m : ℕ
G : Type u_6
inst✝ : Group G
x : G
x✝ : ∃ n, n ≠ 0 ∧ x ^ n = 1
n : ℤ
hn : n ≠ 0
hn' : x ^ n = 1
h : n = -↑n.natAbs
⊢ x ^ n.natAbs = 1
state_after: no goals
Theorem: uniformity_eq_comap_nhds_one_swapped
File: Mathlib/Topology/Algebra/UniformGroup.lean

tactic: rw [← comap_swap_uniformity, uniformity_eq_comap_nhds_one, comap_comap]
state_before: α : Type u_1
β : Type u_2
inst✝² : UniformSpace α
inst✝¹ : Group α
inst✝ : UniformGroup α
⊢ 𝓤 α = comap (fun x => x.1 / x.2) (𝓝 1)
state_after: α : Type u_1
β : Type u_2
inst✝² : UniformSpace α
inst✝¹ : Group α
inst✝ : UniformGroup α
⊢ comap ((fun x => x.2 / x.1) ∘ Prod.swap) (𝓝 1) = comap (fun x => x.1 / x.2) (𝓝 1)

tactic: rfl
state_before: α : Type u_1
β : Type u_2
inst✝² : UniformSpace α
inst✝¹ : Group α
inst✝ : UniformGroup α
⊢ comap ((fun x => x.2 / x.1) ∘ Prod.swap) (𝓝 1) = comap (fun x => x.1 / x.2) (𝓝 1)
state_after: no goals
Theorem: Projectivization.map_comp
File: Mathlib/LinearAlgebra/Projectivization/Basic.lean

tactic: ext ⟨v⟩
state_before: K : Type u_1
V : Type u_2
inst✝⁹ : DivisionRing K
inst✝⁸ : AddCommGroup V
inst✝⁷ : Module K V
L : Type u_3
W : Type u_4
inst✝⁶ : DivisionRing L
inst✝⁵ : AddCommGroup W
inst✝⁴ : Module L W
F : Type u_5
U : Type u_6
inst✝³ : Field F
inst✝² : AddCommGroup U
inst✝¹ : Module F U
σ : K →+* L
τ : L →+* F
γ : K →+* F
inst✝ : RingHomCompTriple σ τ γ
f : V →ₛₗ[σ] W
hf : Function.Injective ⇑f
g : W →ₛₗ[τ] U
hg : Function.Injective ⇑g
⊢ map (g.comp f) ⋯ = map g hg ∘ map f hf
state_after: case h.mk
K : Type u_1
V : Type u_2
inst✝⁹ : DivisionRing K
inst✝⁸ : AddCommGroup V
inst✝⁷ : Module K V
L : Type u_3
W : Type u_4
inst✝⁶ : DivisionRing L
inst✝⁵ : AddCommGroup W
inst✝⁴ : Module L W
F : Type u_5
U : Type u_6
inst✝³ : Field F
inst✝² : AddCommGroup U
inst✝¹ : Module F U
σ : K →+* L
τ : L →+* F
γ : K →+* F
inst✝ : RingHomCompTriple σ τ γ
f : V →ₛₗ[σ] W
hf : Function.Injective ⇑f
g : W →ₛₗ[τ] U
hg : Function.Injective ⇑g
x✝ : ℙ K V
v : { v // v ≠ 0 }
⊢ map (g.comp f) ⋯ (Quot.mk Setoid.r v) = (map g hg ∘ map f hf) (Quot.mk Setoid.r v)

tactic: rfl
state_before: case h.mk
K : Type u_1
V : Type u_2
inst✝⁹ : DivisionRing K
inst✝⁸ : AddCommGroup V
inst✝⁷ : Module K V
L : Type u_3
W : Type u_4
inst✝⁶ : DivisionRing L
inst✝⁵ : AddCommGroup W
inst✝⁴ : Module L W
F : Type u_5
U : Type u_6
inst✝³ : Field F
inst✝² : AddCommGroup U
inst✝¹ : Module F U
σ : K →+* L
τ : L →+* F
γ : K →+* F
inst✝ : RingHomCompTriple σ τ γ
f : V →ₛₗ[σ] W
hf : Function.Injective ⇑f
g : W →ₛₗ[τ] U
hg : Function.Injective ⇑g
x✝ : ℙ K V
v : { v // v ≠ 0 }
⊢ map (g.comp f) ⋯ (Quot.mk Setoid.r v) = (map g hg ∘ map f hf) (Quot.mk Setoid.r v)
state_after: no goals
Theorem: PiTensorProduct.mem_lifts_iff
File: Mathlib/LinearAlgebra/PiTensorProduct.lean

tactic: simp only [lifts, Set.mem_setOf_eq, FreeAddMonoid.toPiTensorProduct]
state_before: ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁷ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁶ : (i : ι) → AddCommMonoid (s i)
inst✝⁵ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
E : Type u_9
inst✝² : AddCommMonoid E
inst✝¹ : Module R E
F : Type u_10
inst✝ : AddCommMonoid F
x : ⨂[R] (i : ι), s i
p : FreeAddMonoid (R × ((i : ι) → s i))
⊢ p ∈ x.lifts ↔ (List.map (fun x => x.1 • ⨂ₜ[R] (i : ι), x.2 i) p).sum = x
state_after: no goals
Theorem: Real.deriv_sqrt_aux
File: Mathlib/Analysis/SpecialFunctions/Sqrt.lean

tactic: cases' hx.lt_or_lt with hx hx
state_before: x : ℝ
hx : x ≠ 0
⊢ HasStrictDerivAt (fun x => √x) (1 / (2 * √x)) x ∧ ∀ (n : ℕ∞), ContDiffAt ℝ n (fun x => √x) x
state_after: case inl
x : ℝ
hx✝ : x ≠ 0
hx : x < 0
⊢ HasStrictDerivAt (fun x => √x) (1 / (2 * √x)) x ∧ ∀ (n : ℕ∞), ContDiffAt ℝ n (fun x => √x) x

case inr
x : ℝ
hx✝ : x ≠ 0
hx : 0 < x
⊢ HasStrictDerivAt (fun x => √x) (1 / (2 * √x)) x ∧ ∀ (n : ℕ∞), ContDiffAt ℝ n (fun x => √x) x

tactic: rw [sqrt_eq_zero_of_nonpos hx.le, mul_zero, div_zero]
state_before: case inl
x : ℝ
hx✝ : x ≠ 0
hx : x < 0
⊢ HasStrictDerivAt (fun x => √x) (1 / (2 * √x)) x ∧ ∀ (n : ℕ∞), ContDiffAt ℝ n (fun x => √x) x
state_after: case inl
x : ℝ
hx✝ : x ≠ 0
hx : x < 0
⊢ HasStrictDerivAt (fun x => √x) 0 x ∧ ∀ (n : ℕ∞), ContDiffAt ℝ n (fun x => √x) x

tactic: exact
  ⟨(hasStrictDerivAt_const x (0 : ℝ)).congr_of_eventuallyEq this.symm, fun n =>
    contDiffAt_const.congr_of_eventuallyEq this⟩
state_before: case inl
x : ℝ
hx✝ : x ≠ 0
hx : x < 0
this : (fun x => √x) =ᶠ[𝓝 x] fun x => 0
⊢ HasStrictDerivAt (fun x => √x) 0 x ∧ ∀ (n : ℕ∞), ContDiffAt ℝ n (fun x => √x) x
state_after: no goals

tactic: have : ↑2 * √x ^ (2 - 1) ≠ 0 := by simp [(sqrt_pos.2 hx).ne', @two_ne_zero ℝ]
state_before: case inr
x : ℝ
hx✝ : x ≠ 0
hx : 0 < x
⊢ HasStrictDerivAt (fun x => √x) (1 / (2 * √x)) x ∧ ∀ (n : ℕ∞), ContDiffAt ℝ n (fun x => √x) x
state_after: case inr
x : ℝ
hx✝ : x ≠ 0
hx : 0 < x
this : 2 * √x ^ (2 - 1) ≠ 0
⊢ HasStrictDerivAt (fun x => √x) (1 / (2 * √x)) x ∧ ∀ (n : ℕ∞), ContDiffAt ℝ n (fun x => √x) x

tactic: constructor
state_before: case inr
x : ℝ
hx✝ : x ≠ 0
hx : 0 < x
this : 2 * √x ^ (2 - 1) ≠ 0
⊢ HasStrictDerivAt (fun x => √x) (1 / (2 * √x)) x ∧ ∀ (n : ℕ∞), ContDiffAt ℝ n (fun x => √x) x
state_after: case inr.left
x : ℝ
hx✝ : x ≠ 0
hx : 0 < x
this : 2 * √x ^ (2 - 1) ≠ 0
⊢ HasStrictDerivAt (fun x => √x) (1 / (2 * √x)) x

case inr.right
x : ℝ
hx✝ : x ≠ 0
hx : 0 < x
this : 2 * √x ^ (2 - 1) ≠ 0
⊢ ∀ (n : ℕ∞), ContDiffAt ℝ n (fun x => √x) x

tactic: simp [(sqrt_pos.2 hx).ne', @two_ne_zero ℝ]
state_before: x : ℝ
hx✝ : x ≠ 0
hx : 0 < x
⊢ 2 * √x ^ (2 - 1) ≠ 0
state_after: no goals

tactic: simpa using sqPartialHomeomorph.hasStrictDerivAt_symm hx this (hasStrictDerivAt_pow 2 _)
state_before: case inr.left
x : ℝ
hx✝ : x ≠ 0
hx : 0 < x
this : 2 * √x ^ (2 - 1) ≠ 0
⊢ HasStrictDerivAt (fun x => √x) (1 / (2 * √x)) x
state_after: no goals

tactic: exact fun n => sqPartialHomeomorph.contDiffAt_symm_deriv this hx (hasDerivAt_pow 2 (√x))
  (contDiffAt_id.pow 2)
state_before: case inr.right
x : ℝ
hx✝ : x ≠ 0
hx : 0 < x
this : 2 * √x ^ (2 - 1) ≠ 0
⊢ ∀ (n : ℕ∞), ContDiffAt ℝ n (fun x => √x) x
state_after: no goals
Theorem: Nat.one_ascFactorial
File: Mathlib/Data/Nat/Factorial/Basic.lean

tactic: rw [ascFactorial_succ, one_ascFactorial k, Nat.add_comm, factorial_succ]
state_before: k : ℕ
⊢ ascFactorial 1 (k + 1) = (k + 1)!
state_after: no goals
Theorem: WithLp.edist_equiv_symm_snd
File: Mathlib/Analysis/NormedSpace/ProdLp.lean

tactic: simp only [edist_nndist, nndist_equiv_symm_snd p α β y₁ y₂]
state_before: p : ℝ≥0∞
𝕜 : Type u_1
α : Type u_2
β : Type u_3
hp : Fact (1 ≤ p)
inst✝¹ : SeminormedAddCommGroup α
inst✝ : SeminormedAddCommGroup β
y₁ y₂ : β
⊢ edist ((WithLp.equiv p (α × β)).symm (0, y₁)) ((WithLp.equiv p (α × β)).symm (0, y₂)) = edist y₁ y₂
state_after: no goals
Theorem: homothety_one_half
File: Mathlib/LinearAlgebra/AffineSpace/MidpointZero.lean

tactic: rw [one_div, homothety_inv_two]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Field k
inst✝³ : CharZero k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AddTorsor V P
a b : P
⊢ (homothety a (1 / 2)) b = midpoint k a b
state_after: no goals
Theorem: toAdd_list_sum
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: simp [toAdd, ofAdd]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : AddMonoid α
s : List (Multiplicative α)
⊢ toAdd s.prod = (List.map (⇑toAdd) s).sum
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : AddMonoid α
s : List (Multiplicative α)
⊢ s.prod = s.sum

tactic: rfl
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : AddMonoid α
s : List (Multiplicative α)
⊢ s.prod = s.sum
state_after: no goals
Theorem: Ordnode.dual_node'
File: Mathlib/Data/Ordmap/Ordset.lean

tactic: simp [node', add_comm]
state_before: α : Type u_1
l : Ordnode α
x : α
r : Ordnode α
⊢ (l.node' x r).dual = r.dual.node' x l.dual
state_after: no goals
Theorem: Matrix.PosSemidef.one
File: Mathlib/LinearAlgebra/Matrix/PosDef.lean

tactic: rw [one_mulVec]
state_before: m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
x : n → R
⊢ 0 ≤ star x ⬝ᵥ 1 *ᵥ x
state_after: m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
x : n → R
⊢ 0 ≤ star x ⬝ᵥ x

tactic: exact Fintype.sum_nonneg fun i => star_mul_self_nonneg _
state_before: m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
x : n → R
⊢ 0 ≤ star x ⬝ᵥ x
state_after: no goals
Theorem: uniformEmbedding_of_spaced_out
File: Mathlib/Topology/UniformSpace/UniformEmbedding.lean

tactic: let _ : UniformSpace α := ⊥
state_before: α✝ : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α✝
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
α : Type u_1
f : α → β
s : Set (β × β)
hs : s ∈ 𝓤 β
hf : Pairwise fun x y => (f x, f y) ∉ s
⊢ UniformEmbedding f
state_after: α✝ : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α✝
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
α : Type u_1
f : α → β
s : Set (β × β)
hs : s ∈ 𝓤 β
hf : Pairwise fun x y => (f x, f y) ∉ s
x✝ : UniformSpace α := ⊥
⊢ UniformEmbedding f

tactic: have := discreteTopology_bot α
state_before: α✝ : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α✝
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
α : Type u_1
f : α → β
s : Set (β × β)
hs : s ∈ 𝓤 β
hf : Pairwise fun x y => (f x, f y) ∉ s
x✝ : UniformSpace α := ⊥
⊢ UniformEmbedding f
state_after: α✝ : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α✝
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
α : Type u_1
f : α → β
s : Set (β × β)
hs : s ∈ 𝓤 β
hf : Pairwise fun x y => (f x, f y) ∉ s
x✝ : UniformSpace α := ⊥
this : DiscreteTopology α
⊢ UniformEmbedding f

tactic: exact UniformInducing.uniformEmbedding ⟨comap_uniformity_of_spaced_out hs hf⟩
state_before: α✝ : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α✝
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
α : Type u_1
f : α → β
s : Set (β × β)
hs : s ∈ 𝓤 β
hf : Pairwise fun x y => (f x, f y) ∉ s
x✝ : UniformSpace α := ⊥
this : DiscreteTopology α
⊢ UniformEmbedding f
state_after: no goals
Theorem: Int.natCast_eq_zero
File: Mathlib/Data/Int/Defs.lean

tactic: omega
state_before: a b c d m n✝ : ℤ
n : ℕ
⊢ ↑n = 0 ↔ n = 0
state_after: no goals
Theorem: one_div_lt
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: simpa using inv_lt ha hb
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
ha : 0 < a
hb : 0 < b
⊢ 1 / a < b ↔ 1 / b < a
state_after: no goals
Theorem: SimpleGraph.right_nonuniformWitnesses_subset
File: Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean

tactic: rw [nonuniformWitnesses, dif_pos h]
state_before: α : Type u_1
𝕜 : Type u_2
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
h : ¬G.IsUniform ε s t
⊢ (G.nonuniformWitnesses ε s t).2 ⊆ t
state_after: α : Type u_1
𝕜 : Type u_2
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
h : ¬G.IsUniform ε s t
⊢ (⋯.choose, ⋯.choose).2 ⊆ t

tactic: exact (not_isUniform_iff.1 h).choose_spec.2.choose_spec.1
state_before: α : Type u_1
𝕜 : Type u_2
inst✝¹ : LinearOrderedField 𝕜
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : 𝕜
s t : Finset α
a b : α
h : ¬G.IsUniform ε s t
⊢ (⋯.choose, ⋯.choose).2 ⊆ t
state_after: no goals
Theorem: Nat.coprime_one_left_iff
File: Mathlib/Data/Nat/GCD/Basic.lean

tactic: simp [Coprime]
state_before: n : ℕ
⊢ Coprime 1 n ↔ True
state_after: no goals