1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Filter.tendsto_nhds_atTop_iff
File: Mathlib/Topology/Filter.lean

tactic: simp only [nhds_atTop, tendsto_iInf, tendsto_principal, mem_Iic, le_principal_iff]
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
X : Type u_4
Y : Type u_5
inst✝ : Preorder β
l : Filter α
f : α → Filter β
⊢ Tendsto f l (𝓝 atTop) ↔ ∀ (y : β), ∀ᶠ (a : α) in l, Ici y ∈ f a
state_after: no goals
Theorem: openSegment_eq_Ioo'
File: Mathlib/Analysis/Convex/Segment.lean

tactic: cases' hxy.lt_or_lt with h h
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝ : LinearOrderedField 𝕜
x y z : 𝕜
hxy : x ≠ y
⊢ openSegment 𝕜 x y = Ioo (min x y) (max x y)
state_after: case inl
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝ : LinearOrderedField 𝕜
x y z : 𝕜
hxy : x ≠ y
h : x < y
⊢ openSegment 𝕜 x y = Ioo (min x y) (max x y)

case inr
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝ : LinearOrderedField 𝕜
x y z : 𝕜
hxy : x ≠ y
h : y < x
⊢ openSegment 𝕜 x y = Ioo (min x y) (max x y)

tactic: rw [openSegment_eq_Ioo h, max_eq_right h.le, min_eq_left h.le]
state_before: case inl
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝ : LinearOrderedField 𝕜
x y z : 𝕜
hxy : x ≠ y
h : x < y
⊢ openSegment 𝕜 x y = Ioo (min x y) (max x y)
state_after: no goals

tactic: rw [openSegment_symm, openSegment_eq_Ioo h, max_eq_left h.le, min_eq_right h.le]
state_before: case inr
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝ : LinearOrderedField 𝕜
x y z : 𝕜
hxy : x ≠ y
h : y < x
⊢ openSegment 𝕜 x y = Ioo (min x y) (max x y)
state_after: no goals
Theorem: polynomial_expand_eq
File: Mathlib/FieldTheory/Perfect.lean

tactic: rw [← (f.map (S := R) (frobeniusEquiv R p).symm).expand_char p, map_expand, map_map,
  frobenius_comp_frobeniusEquiv_symm, map_id]
state_before: R : Type u_1
p m n : ℕ
inst✝² : CommSemiring R
inst✝¹ : ExpChar R p
inst✝ : PerfectRing R p
f : R[X]
⊢ (expand R p) f = map (↑(frobeniusEquiv R p).symm) f ^ p
state_after: no goals
Theorem: Ideal.cotangentEquivIdeal_symm_apply
File: Mathlib/RingTheory/Ideal/Cotangent.lean

tactic: apply I.cotangentEquivIdeal.injective
state_before: R : Type u
S : Type v
S' : Type w
inst✝⁶ : CommRing R
inst✝⁵ : CommSemiring S
inst✝⁴ : Algebra S R
inst✝³ : CommSemiring S'
inst✝² : Algebra S' R
inst✝¹ : Algebra S S'
inst✝ : IsScalarTower S S' R
I : Ideal R
x : R
hx : x ∈ I
⊢ I.cotangentEquivIdeal.symm ⟨(Submodule.mkQ (I ^ 2)) x, ⋯⟩ = I.toCotangent ⟨x, hx⟩
state_after: case a
R : Type u
S : Type v
S' : Type w
inst✝⁶ : CommRing R
inst✝⁵ : CommSemiring S
inst✝⁴ : Algebra S R
inst✝³ : CommSemiring S'
inst✝² : Algebra S' R
inst✝¹ : Algebra S S'
inst✝ : IsScalarTower S S' R
I : Ideal R
x : R
hx : x ∈ I
⊢ I.cotangentEquivIdeal (I.cotangentEquivIdeal.symm ⟨(Submodule.mkQ (I ^ 2)) x, ⋯⟩) =
    I.cotangentEquivIdeal (I.toCotangent ⟨x, hx⟩)

tactic: rw [I.cotangentEquivIdeal.apply_symm_apply]
state_before: case a
R : Type u
S : Type v
S' : Type w
inst✝⁶ : CommRing R
inst✝⁵ : CommSemiring S
inst✝⁴ : Algebra S R
inst✝³ : CommSemiring S'
inst✝² : Algebra S' R
inst✝¹ : Algebra S S'
inst✝ : IsScalarTower S S' R
I : Ideal R
x : R
hx : x ∈ I
⊢ I.cotangentEquivIdeal (I.cotangentEquivIdeal.symm ⟨(Submodule.mkQ (I ^ 2)) x, ⋯⟩) =
    I.cotangentEquivIdeal (I.toCotangent ⟨x, hx⟩)
state_after: case a
R : Type u
S : Type v
S' : Type w
inst✝⁶ : CommRing R
inst✝⁵ : CommSemiring S
inst✝⁴ : Algebra S R
inst✝³ : CommSemiring S'
inst✝² : Algebra S' R
inst✝¹ : Algebra S S'
inst✝ : IsScalarTower S S' R
I : Ideal R
x : R
hx : x ∈ I
⊢ ⟨(Submodule.mkQ (I ^ 2)) x, ⋯⟩ = I.cotangentEquivIdeal (I.toCotangent ⟨x, hx⟩)

tactic: ext
state_before: case a
R : Type u
S : Type v
S' : Type w
inst✝⁶ : CommRing R
inst✝⁵ : CommSemiring S
inst✝⁴ : Algebra S R
inst✝³ : CommSemiring S'
inst✝² : Algebra S' R
inst✝¹ : Algebra S S'
inst✝ : IsScalarTower S S' R
I : Ideal R
x : R
hx : x ∈ I
⊢ ⟨(Submodule.mkQ (I ^ 2)) x, ⋯⟩ = I.cotangentEquivIdeal (I.toCotangent ⟨x, hx⟩)
state_after: case a.a
R : Type u
S : Type v
S' : Type w
inst✝⁶ : CommRing R
inst✝⁵ : CommSemiring S
inst✝⁴ : Algebra S R
inst✝³ : CommSemiring S'
inst✝² : Algebra S' R
inst✝¹ : Algebra S S'
inst✝ : IsScalarTower S S' R
I : Ideal R
x : R
hx : x ∈ I
⊢ ↑⟨(Submodule.mkQ (I ^ 2)) x, ⋯⟩ = ↑(I.cotangentEquivIdeal (I.toCotangent ⟨x, hx⟩))

tactic: rfl
state_before: case a.a
R : Type u
S : Type v
S' : Type w
inst✝⁶ : CommRing R
inst✝⁵ : CommSemiring S
inst✝⁴ : Algebra S R
inst✝³ : CommSemiring S'
inst✝² : Algebra S' R
inst✝¹ : Algebra S S'
inst✝ : IsScalarTower S S' R
I : Ideal R
x : R
hx : x ∈ I
⊢ ↑⟨(Submodule.mkQ (I ^ 2)) x, ⋯⟩ = ↑(I.cotangentEquivIdeal (I.toCotangent ⟨x, hx⟩))
state_after: no goals
Theorem: MonoidHom.coprod_comp_inr
File: Mathlib/Algebra/Group/Prod.lean

tactic: simp [coprod_apply]
state_before: A : Type u_1
B : Type u_2
G : Type u_3
H : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : CommMonoid P
f : M →* P
g : N →* P
x : N
⊢ ((f.coprod g).comp (inr M N)) x = g x
state_after: no goals
Theorem: SemiNormedGrp₁.isZero_of_subsingleton
File: Mathlib/Analysis/Normed/Group/SemiNormedGrp.lean

tactic: refine ⟨fun X => ⟨⟨⟨0⟩, fun f => ?_⟩⟩, fun X => ⟨⟨⟨0⟩, fun f => ?_⟩⟩⟩
state_before: V : SemiNormedGrp₁
inst✝ : Subsingleton ↑V
⊢ Limits.IsZero V
state_after: case refine_1
V : SemiNormedGrp₁
inst✝ : Subsingleton ↑V
X : SemiNormedGrp₁
f : V ⟶ X
⊢ f = default

case refine_2
V : SemiNormedGrp₁
inst✝ : Subsingleton ↑V
X : SemiNormedGrp₁
f : X ⟶ V
⊢ f = default

tactic: ext x
state_before: case refine_1
V : SemiNormedGrp₁
inst✝ : Subsingleton ↑V
X : SemiNormedGrp₁
f : V ⟶ X
⊢ f = default
state_after: case refine_1.w.h
V : SemiNormedGrp₁
inst✝ : Subsingleton ↑V
X : SemiNormedGrp₁
f : V ⟶ X
x : ↑V
⊢ f x = default x

tactic: have : x = 0 := Subsingleton.elim _ _
state_before: case refine_1.w.h
V : SemiNormedGrp₁
inst✝ : Subsingleton ↑V
X : SemiNormedGrp₁
f : V ⟶ X
x : ↑V
⊢ f x = default x
state_after: case refine_1.w.h
V : SemiNormedGrp₁
inst✝ : Subsingleton ↑V
X : SemiNormedGrp₁
f : V ⟶ X
x : ↑V
this : x = 0
⊢ f x = default x

tactic: simp only [this, map_zero]
state_before: case refine_1.w.h
V : SemiNormedGrp₁
inst✝ : Subsingleton ↑V
X : SemiNormedGrp₁
f : V ⟶ X
x : ↑V
this : x = 0
⊢ f x = default x
state_after: no goals

tactic: ext
state_before: case refine_2
V : SemiNormedGrp₁
inst✝ : Subsingleton ↑V
X : SemiNormedGrp₁
f : X ⟶ V
⊢ f = default
state_after: case refine_2.w.h
V : SemiNormedGrp₁
inst✝ : Subsingleton ↑V
X : SemiNormedGrp₁
f : X ⟶ V
x✝ : ↑X
⊢ f x✝ = default x✝

tactic: apply Subsingleton.elim
state_before: case refine_2.w.h
V : SemiNormedGrp₁
inst✝ : Subsingleton ↑V
X : SemiNormedGrp₁
f : X ⟶ V
x✝ : ↑X
⊢ f x✝ = default x✝
state_after: no goals
Theorem: ProbabilityTheory.gaussianPDFReal_sub
File: Mathlib/Probability/Distributions/Gaussian.lean

tactic: simp only [gaussianPDFReal]
state_before: μ : ℝ
v : ℝ≥0
x y : ℝ
⊢ gaussianPDFReal μ v (x - y) = gaussianPDFReal (μ + y) v x
state_after: μ : ℝ
v : ℝ≥0
x y : ℝ
⊢ (√(2 * π * ↑v))⁻¹ * rexp (-(x - y - μ) ^ 2 / (2 * ↑v)) = (√(2 * π * ↑v))⁻¹ * rexp (-(x - (μ + y)) ^ 2 / (2 * ↑v))

tactic: rw [sub_add_eq_sub_sub_swap]
state_before: μ : ℝ
v : ℝ≥0
x y : ℝ
⊢ (√(2 * π * ↑v))⁻¹ * rexp (-(x - y - μ) ^ 2 / (2 * ↑v)) = (√(2 * π * ↑v))⁻¹ * rexp (-(x - (μ + y)) ^ 2 / (2 * ↑v))
state_after: no goals
Theorem: CategoryTheory.Limits.MonoCoprod.mk'
File: Mathlib/CategoryTheory/Limits/MonoCoprod.lean

tactic: obtain ⟨c, hc₁, hc₂⟩ := h A B
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
h : ∀ (A B : C), ∃ c x, Mono c.inl
A B : C
c' : BinaryCofan A B
hc' : IsColimit c'
⊢ Mono c'.inl
state_after: case intro.intro
C : Type u_1
inst✝ : Category.{u_2, u_1} C
h : ∀ (A B : C), ∃ c x, Mono c.inl
A B : C
c' : BinaryCofan A B
hc' : IsColimit c'
c : BinaryCofan A B
hc₁ : IsColimit c
hc₂ : Mono c.inl
⊢ Mono c'.inl

tactic: simpa only [mono_inl_iff hc' hc₁] using hc₂
state_before: case intro.intro
C : Type u_1
inst✝ : Category.{u_2, u_1} C
h : ∀ (A B : C), ∃ c x, Mono c.inl
A B : C
c' : BinaryCofan A B
hc' : IsColimit c'
c : BinaryCofan A B
hc₁ : IsColimit c
hc₂ : Mono c.inl
⊢ Mono c'.inl
state_after: no goals
Theorem: hasDerivAt_gronwallBound_shift
File: Mathlib/Analysis/ODE/Gronwall.lean

tactic: convert (hasDerivAt_gronwallBound δ K ε _).comp x ((hasDerivAt_id x).sub_const a) using 1
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
δ K ε x a : ℝ
⊢ HasDerivAt (fun y => gronwallBound δ K ε (y - a)) (K * gronwallBound δ K ε (x - a) + ε) x
state_after: case h.e'_7
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
δ K ε x a : ℝ
⊢ K * gronwallBound δ K ε (x - a) + ε = (K * gronwallBound δ K ε (id x - a) + ε) * 1

tactic: rw [id, mul_one]
state_before: case h.e'_7
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
δ K ε x a : ℝ
⊢ K * gronwallBound δ K ε (x - a) + ε = (K * gronwallBound δ K ε (id x - a) + ε) * 1
state_after: no goals
Theorem: Real.Angle.toReal_pi
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: rw [toReal_coe_eq_self_iff]
state_before: ⊢ (↑π).toReal = π
state_after: ⊢ -π < π ∧ π ≤ π

tactic: exact ⟨Left.neg_lt_self Real.pi_pos, le_refl _⟩
state_before: ⊢ -π < π ∧ π ≤ π
state_after: no goals
Theorem: isLeast_csInf
File: Mathlib/Order/ConditionallyCompleteLattice/Basic.lean

tactic: rw [sInf_eq_argmin_on hs]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : ConditionallyCompleteLinearOrder α
s t : Set α
a b : α
inst✝ : IsWellOrder α fun x x_1 => x < x_1
hs : s.Nonempty
⊢ IsLeast s (sInf s)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : ConditionallyCompleteLinearOrder α
s t : Set α
a b : α
inst✝ : IsWellOrder α fun x x_1 => x < x_1
hs : s.Nonempty
⊢ IsLeast s (argminOn id ⋯ s hs)

tactic: exact ⟨argminOn_mem _ _ _ _, fun a ha => argminOn_le id _ _ ha⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : ConditionallyCompleteLinearOrder α
s t : Set α
a b : α
inst✝ : IsWellOrder α fun x x_1 => x < x_1
hs : s.Nonempty
⊢ IsLeast s (argminOn id ⋯ s hs)
state_after: no goals
Theorem: integral_sqrt_one_sub_sq
File: Mathlib/Analysis/SpecialFunctions/Integrals.lean

tactic: rw [sin_neg, sin_pi_div_two]
state_before: a b : ℝ
n : ℕ
⊢ ∫ (x : ℝ) in -1 ..1, √(1 - x ^ 2) = ∫ (x : ℝ) in sin (-(π / 2))..sin (π / 2), √(1 - x ^ 2)
state_after: no goals

tactic: fun_prop
state_before: a b : ℝ
n : ℕ
⊢ Continuous fun x => √(1 - x ^ 2)
state_after: no goals

tactic: refine integral_congr_ae (MeasureTheory.ae_of_all _ fun _ h => ?_)
state_before: a b : ℝ
n : ℕ
⊢ ∫ (x : ℝ) in -(π / 2)..π / 2, √(1 - sin x ^ 2) * cos x = ∫ (x : ℝ) in -(π / 2)..π / 2, cos x ^ 2
state_after: a b : ℝ
n : ℕ
x✝ : ℝ
h : x✝ ∈ Ι (-(π / 2)) (π / 2)
⊢ √(1 - sin x✝ ^ 2) * cos x✝ = cos x✝ ^ 2

tactic: rw [uIoc_of_le (neg_le_self (le_of_lt (half_pos Real.pi_pos))), Set.mem_Ioc] at h
state_before: a b : ℝ
n : ℕ
x✝ : ℝ
h : x✝ ∈ Ι (-(π / 2)) (π / 2)
⊢ √(1 - sin x✝ ^ 2) * cos x✝ = cos x✝ ^ 2
state_after: a b : ℝ
n : ℕ
x✝ : ℝ
h : -(π / 2) < x✝ ∧ x✝ ≤ π / 2
⊢ √(1 - sin x✝ ^ 2) * cos x✝ = cos x✝ ^ 2

tactic: rw [ ← Real.cos_eq_sqrt_one_sub_sin_sq (le_of_lt h.1) h.2, pow_two]
state_before: a b : ℝ
n : ℕ
x✝ : ℝ
h : -(π / 2) < x✝ ∧ x✝ ≤ π / 2
⊢ √(1 - sin x✝ ^ 2) * cos x✝ = cos x✝ ^ 2
state_after: no goals

tactic: simp
state_before: a b : ℝ
n : ℕ
⊢ ∫ (x : ℝ) in -(π / 2)..π / 2, cos x ^ 2 = π / 2
state_after: no goals
Theorem: CategoryTheory.Limits.pullbackAssoc_hom_fst
File: Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean

tactic: rw [← Iso.eq_inv_comp, pullbackAssoc_inv_fst_fst]
state_before: C : Type u
inst✝⁷ : Category.{v, u} C
D : Type u₂
inst✝⁶ : Category.{v₂, u₂} D
W X Y Z X₁ X₂ X₃ Y₁ Y₂ : C
f₁ : X₁ ⟶ Y₁
f₂ : X₂ ⟶ Y₁
f₃ : X₂ ⟶ Y₂
f₄ : X₃ ⟶ Y₂
inst✝⁵ : HasPullback f₁ f₂
inst✝⁴ : HasPullback f₃ f₄
inst✝³ : HasPullback (pullback.snd ≫ sorryAx (sorryAx C true ⟶ Y₂) true) f₄
inst✝² : HasPullback f₁ (pullback.fst ≫ f₂)
inst✝¹ : HasPullback (pullback.snd ≫ f₃) f₄
inst✝ : HasPullback f₁ (pullback.fst ≫ f₂)
⊢ (pullbackAssoc f₁ f₂ f₃ f₄).hom ≫ pullback.fst = pullback.fst ≫ pullback.fst
state_after: no goals
Theorem: Mathlib.Meta.NormNum.MinFacHelper.one_lt
File: Mathlib/Tactic/NormNum/Prime.lean

tactic: have : 2 < minFac n := h.1.trans_le h.2.2
state_before: n k : ℕ
h : MinFacHelper n k
⊢ 1 < n
state_after: n k : ℕ
h : MinFacHelper n k
this : 2 < n.minFac
⊢ 1 < n

tactic: obtain rfl | h := n.eq_zero_or_pos
state_before: n k : ℕ
h : MinFacHelper n k
this : 2 < n.minFac
⊢ 1 < n
state_after: case inl
k : ℕ
h : MinFacHelper 0 k
this : 2 < minFac 0
⊢ 1 < 0

case inr
n k : ℕ
h✝ : MinFacHelper n k
this : 2 < n.minFac
h : n > 0
⊢ 1 < n

tactic: rcases (succ_le_of_lt h).eq_or_lt with rfl|h
state_before: case inr
n k : ℕ
h✝ : MinFacHelper n k
this : 2 < n.minFac
h : n > 0
⊢ 1 < n
state_after: case inr.inl
k : ℕ
h✝ : MinFacHelper (succ 0) k
this : 2 < (succ 0).minFac
h : succ 0 > 0
⊢ 1 < succ 0

case inr.inr
n k : ℕ
h✝¹ : MinFacHelper n k
this : 2 < n.minFac
h✝ : n > 0
h : succ 0 < n
⊢ 1 < n

tactic: exact h
state_before: case inr.inr
n k : ℕ
h✝¹ : MinFacHelper n k
this : 2 < n.minFac
h✝ : n > 0
h : succ 0 < n
⊢ 1 < n
state_after: no goals

tactic: contradiction
state_before: case inl
k : ℕ
h : MinFacHelper 0 k
this : 2 < minFac 0
⊢ 1 < 0
state_after: no goals

tactic: simp_all
state_before: case inr.inl
k : ℕ
h✝ : MinFacHelper (succ 0) k
this : 2 < (succ 0).minFac
h : succ 0 > 0
⊢ 1 < succ 0
state_after: no goals
Theorem: Batteries.TransOrd.instLexOrd
File: .lake/packages/batteries/Batteries/Classes/Order.lean

tactic: rw [TransOrd, lexOrd_def]
state_before: α : Type u_1
β : Type u_2
inst✝³ : Ord α
inst✝² : Ord β
inst✝¹ : TransOrd α
inst✝ : TransOrd β
⊢ TransOrd (α × β)
state_after: α : Type u_1
β : Type u_2
inst✝³ : Ord α
inst✝² : Ord β
inst✝¹ : TransOrd α
inst✝ : TransOrd β
⊢ TransCmp (compareLex (compareOn fun x => x.fst) (compareOn fun x => x.snd))

tactic: infer_instance
state_before: α : Type u_1
β : Type u_2
inst✝³ : Ord α
inst✝² : Ord β
inst✝¹ : TransOrd α
inst✝ : TransOrd β
⊢ TransCmp (compareLex (compareOn fun x => x.fst) (compareOn fun x => x.snd))
state_after: no goals
Theorem: Nat.coprime_fintype_prod_right_iff
File: Mathlib/Data/Nat/GCD/BigOperators.lean

tactic: simp [coprime_prod_right_iff]
state_before: ι : Type u_1
inst✝ : Fintype ι
x : ℕ
s : ι → ℕ
⊢ x.Coprime (∏ i : ι, s i) ↔ ∀ (i : ι), x.Coprime (s i)
state_after: no goals
Theorem: MvPolynomial.aeval_algebraMap_apply
File: Mathlib/RingTheory/MvPolynomial/Tower.lean

tactic: rw [aeval_def, aeval_def, ← coe_eval₂Hom, ← coe_eval₂Hom, map_eval₂Hom, ←
  IsScalarTower.algebraMap_eq]
state_before: R : Type u_1
A : Type u_2
B : Type u_3
σ : Type u_4
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring A
inst✝⁴ : CommSemiring B
inst✝³ : Algebra R A
inst✝² : Algebra A B
inst✝¹ : Algebra R B
inst✝ : IsScalarTower R A B
x : σ → A
p : MvPolynomial σ R
⊢ (aeval (⇑(algebraMap A B) ∘ x)) p = (algebraMap A B) ((aeval x) p)
state_after: R : Type u_1
A : Type u_2
B : Type u_3
σ : Type u_4
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring A
inst✝⁴ : CommSemiring B
inst✝³ : Algebra R A
inst✝² : Algebra A B
inst✝¹ : Algebra R B
inst✝ : IsScalarTower R A B
x : σ → A
p : MvPolynomial σ R
⊢ (eval₂Hom (algebraMap R B) (⇑(algebraMap A B) ∘ x)) p = (eval₂Hom (algebraMap R B) fun i => (algebraMap A B) (x i)) p

tactic: simp only [Function.comp]
state_before: R : Type u_1
A : Type u_2
B : Type u_3
σ : Type u_4
inst✝⁶ : CommSemiring R
inst✝⁵ : CommSemiring A
inst✝⁴ : CommSemiring B
inst✝³ : Algebra R A
inst✝² : Algebra A B
inst✝¹ : Algebra R B
inst✝ : IsScalarTower R A B
x : σ → A
p : MvPolynomial σ R
⊢ (eval₂Hom (algebraMap R B) (⇑(algebraMap A B) ∘ x)) p = (eval₂Hom (algebraMap R B) fun i => (algebraMap A B) (x i)) p
state_after: no goals
Theorem: Ideal.quotientInfToPiQuotient_inj
File: Mathlib/RingTheory/Ideal/QuotientOperations.lean

tactic: rw [quotientInfToPiQuotient, injective_lift_iff, ker_Pi_Quotient_mk]
state_before: R : Type u
S : Type v
F : Type w
inst✝¹ : CommRing R
inst✝ : Semiring S
ι : Type u_1
I : ι → Ideal R
⊢ Injective ⇑(quotientInfToPiQuotient I)
state_after: no goals
Theorem: LinearEquiv.piRing_symm_apply
File: Mathlib/LinearAlgebra/Pi.lean

tactic: simp [piRing, LinearMap.lsum_apply]
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
ι' : Type x'
inst✝¹³ : Semiring R
φ : ι → Type u_1
ψ : ι → Type u_2
χ : ι → Type u_3
inst✝¹² : (i : ι) → AddCommMonoid (φ i)
inst✝¹¹ : (i : ι) → Module R (φ i)
inst✝¹⁰ : (i : ι) → AddCommMonoid (ψ i)
inst✝⁹ : (i : ι) → Module R (ψ i)
inst✝⁸ : (i : ι) → AddCommMonoid (χ i)
inst✝⁷ : (i : ι) → Module R (χ i)
S : Type u_4
inst✝⁶ : Fintype ι
inst✝⁵ : DecidableEq ι
inst✝⁴ : Semiring S
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : SMulCommClass R S M
f : ι → M
g : ι → R
⊢ ((piRing R M ι S).symm f) g = ∑ i : ι, g i • f i
state_after: no goals
Theorem: Valuation.map_add_eq_of_lt_left
File: Mathlib/RingTheory/Valuation/Basic.lean

tactic: rw [add_comm]
state_before: K : Type u_1
F : Type u_2
R : Type u_3
inst✝³ : DivisionRing K
Γ₀ : Type u_4
Γ'₀ : Type u_5
Γ''₀ : Type u_6
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : Ring R
inst✝ : LinearOrderedCommGroupWithZero Γ₀
v : Valuation R Γ₀
x y z : R
h : v y < v x
⊢ v (x + y) = v x
state_after: K : Type u_1
F : Type u_2
R : Type u_3
inst✝³ : DivisionRing K
Γ₀ : Type u_4
Γ'₀ : Type u_5
Γ''₀ : Type u_6
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : Ring R
inst✝ : LinearOrderedCommGroupWithZero Γ₀
v : Valuation R Γ₀
x y z : R
h : v y < v x
⊢ v (y + x) = v x

tactic: exact map_add_eq_of_lt_right _ h
state_before: K : Type u_1
F : Type u_2
R : Type u_3
inst✝³ : DivisionRing K
Γ₀ : Type u_4
Γ'₀ : Type u_5
Γ''₀ : Type u_6
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : Ring R
inst✝ : LinearOrderedCommGroupWithZero Γ₀
v : Valuation R Γ₀
x y z : R
h : v y < v x
⊢ v (y + x) = v x
state_after: no goals
Theorem: Complex.arg_zero
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: simp [arg, le_refl]
state_before: a x z : ℂ
⊢ arg 0 = 0
state_after: no goals
Theorem: norm_lt_of_mem_ball'
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: rwa [← dist_eq_norm_div]
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
h : b ∈ ball a r
⊢ ‖b / a‖ < r
state_after: no goals
Theorem: ZMod.pow_card_pow
File: Mathlib/FieldTheory/Finite/Basic.lean

tactic: induction' n with n ih
state_before: K : Type u_1
R : Type u_2
n p : ℕ
inst✝ : Fact (Nat.Prime p)
x : ZMod p
⊢ x ^ p ^ n = x
state_after: case zero
K : Type u_1
R : Type u_2
p : ℕ
inst✝ : Fact (Nat.Prime p)
x : ZMod p
⊢ x ^ p ^ 0 = x

case succ
K : Type u_1
R : Type u_2
p : ℕ
inst✝ : Fact (Nat.Prime p)
x : ZMod p
n : ℕ
ih : x ^ p ^ n = x
⊢ x ^ p ^ (n + 1) = x

tactic: simp
state_before: case zero
K : Type u_1
R : Type u_2
p : ℕ
inst✝ : Fact (Nat.Prime p)
x : ZMod p
⊢ x ^ p ^ 0 = x
state_after: no goals

tactic: simp [pow_succ, pow_mul, ih, pow_card]
state_before: case succ
K : Type u_1
R : Type u_2
p : ℕ
inst✝ : Fact (Nat.Prime p)
x : ZMod p
n : ℕ
ih : x ^ p ^ n = x
⊢ x ^ p ^ (n + 1) = x
state_after: no goals
Theorem: Submodule.span_eq_iSup_of_singleton_spans
File: Mathlib/LinearAlgebra/Span.lean

tactic: simp only [← span_iUnion, Set.biUnion_of_singleton s]
state_before: R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
s✝ t s : Set M
⊢ span R s = ⨆ x ∈ s, span R {x}
state_after: no goals
Theorem: Asymptotics.isLittleO_congr
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp only [IsLittleO_def]
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
f₁ f₂ : α → E
g₁ g₂ : α → F
hf : f₁ =ᶠ[l] f₂
hg : g₁ =ᶠ[l] g₂
⊢ f₁ =o[l] g₁ ↔ f₂ =o[l] g₂
state_after: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
f₁ f₂ : α → E
g₁ g₂ : α → F
hf : f₁ =ᶠ[l] f₂
hg : g₁ =ᶠ[l] g₂
⊢ (∀ ⦃c : ℝ⦄, 0 < c → IsBigOWith c l f₁ g₁) ↔ ∀ ⦃c : ℝ⦄, 0 < c → IsBigOWith c l f₂ g₂

tactic: exact forall₂_congr fun c _hc => isBigOWith_congr (Eq.refl c) hf hg
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
f₁ f₂ : α → E
g₁ g₂ : α → F
hf : f₁ =ᶠ[l] f₂
hg : g₁ =ᶠ[l] g₂
⊢ (∀ ⦃c : ℝ⦄, 0 < c → IsBigOWith c l f₁ g₁) ↔ ∀ ⦃c : ℝ⦄, 0 < c → IsBigOWith c l f₂ g₂
state_after: no goals
Theorem: CategoryTheory.Abelian.Pseudoelement.zero_morphism_ext
File: Mathlib/CategoryTheory/Abelian/Pseudoelements.lean

tactic: rw [← Category.id_comp f]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Abelian C
P Q : C
f : P ⟶ Q
h : ∀ (a : Pseudoelement P), pseudoApply f a = 0
⊢ f = 0
state_after: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Abelian C
P Q : C
f : P ⟶ Q
h : ∀ (a : Pseudoelement P), pseudoApply f a = 0
⊢ 𝟙 P ≫ f = 0

tactic: exact (pseudoZero_iff (𝟙 P ≫ f : Over Q)).1 (h (𝟙 P))
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Abelian C
P Q : C
f : P ⟶ Q
h : ∀ (a : Pseudoelement P), pseudoApply f a = 0
⊢ 𝟙 P ≫ f = 0
state_after: no goals