1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ExteriorAlgebra.ιMulti_succ_apply
File: Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean

tactic: simp [ιMulti, Matrix.vecTail]
state_before: R : Type u1
inst✝⁴ : CommRing R
M : Type u2
inst✝³ : AddCommGroup M
inst✝² : Module R M
A : Type u_1
inst✝¹ : Semiring A
inst✝ : Algebra R A
n : ℕ
v : Fin n.succ → M
⊢ (ιMulti R n.succ) v = (ι R) (v 0) * (ιMulti R n) (Matrix.vecTail v)
state_after: no goals
Theorem: Real.isLittleO_pow_exp_atTop
File: Mathlib/Analysis/SpecialFunctions/Exp.lean

tactic: simpa [isLittleO_iff_tendsto fun x hx => ((exp_pos x).ne' hx).elim] using
  tendsto_div_pow_mul_exp_add_atTop 1 0 n zero_ne_one
state_before: α : Type u_1
x y z : ℝ
l : Filter α
n : ℕ
⊢ (fun x => x ^ n) =o[atTop] rexp
state_after: no goals
Theorem: PNat.Coprime.gcd_mul_right_cancel_right
File: Mathlib/Data/PNat/Prime.lean

tactic: rw [mul_comm]
state_before: m n k : ℕ+
⊢ k.Coprime m → m.gcd (n * k) = m.gcd n
state_after: m n k : ℕ+
⊢ k.Coprime m → m.gcd (k * n) = m.gcd n

tactic: apply Coprime.gcd_mul_left_cancel_right
state_before: m n k : ℕ+
⊢ k.Coprime m → m.gcd (k * n) = m.gcd n
state_after: no goals
Theorem: Fin.symm_castOrderIso
File: Mathlib/Order/Fin.lean

tactic: subst h
state_before: m n : ℕ
p : Fin (n + 1)
i j : Fin n
h : n = m
⊢ (castOrderIso h).symm = castOrderIso ⋯
state_after: n : ℕ
p : Fin (n + 1)
i j : Fin n
⊢ (castOrderIso ⋯).symm = castOrderIso ⋯

tactic: rfl
state_before: n : ℕ
p : Fin (n + 1)
i j : Fin n
⊢ (castOrderIso ⋯).symm = castOrderIso ⋯
state_after: no goals
Theorem: map_extChartAt_symm_nhdsWithin'
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rwa [← extChartAt_source I]
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x y : M
hy : y ∈ (extChartAt I x).source
⊢ y ∈ (chartAt H x).source
state_after: no goals
Theorem: HasDerivWithinAt.clm_comp
File: Mathlib/Analysis/Calculus/Deriv/Mul.lean

tactic: have := (hc.hasFDerivWithinAt.clm_comp hd.hasFDerivWithinAt).hasDerivWithinAt
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
G✝ : Type u_1
inst✝³ : NormedAddCommGroup G✝
inst✝² : NormedSpace 𝕜 G✝
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
G : Type u_2
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
c : 𝕜 → F →L[𝕜] G
c' : F →L[𝕜] G
d : 𝕜 → E →L[𝕜] F
d' : E →L[𝕜] F
u : 𝕜 → F
u' : F
hc : HasDerivWithinAt c c' s x
hd : HasDerivWithinAt d d' s x
⊢ HasDerivWithinAt (fun y => (c y).comp (d y)) (c'.comp (d x) + (c x).comp d') s x
state_after: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
G✝ : Type u_1
inst✝³ : NormedAddCommGroup G✝
inst✝² : NormedSpace 𝕜 G✝
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
G : Type u_2
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
c : 𝕜 → F →L[𝕜] G
c' : F →L[𝕜] G
d : 𝕜 → E →L[𝕜] F
d' : E →L[𝕜] F
u : 𝕜 → F
u' : F
hc : HasDerivWithinAt c c' s x
hd : HasDerivWithinAt d d' s x
this :
  HasDerivWithinAt (fun y => (c y).comp (d y))
    ((((compL 𝕜 E F G) (c x)).comp (smulRight 1 d') + ((compL 𝕜 E F G).flip (d x)).comp (smulRight 1 c')) 1) s x
⊢ HasDerivWithinAt (fun y => (c y).comp (d y)) (c'.comp (d x) + (c x).comp d') s x

tactic: rwa [add_apply, comp_apply, comp_apply, smulRight_apply, smulRight_apply, one_apply, one_smul,
  one_smul, add_comm] at this
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
G✝ : Type u_1
inst✝³ : NormedAddCommGroup G✝
inst✝² : NormedSpace 𝕜 G✝
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
G : Type u_2
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
c : 𝕜 → F →L[𝕜] G
c' : F →L[𝕜] G
d : 𝕜 → E →L[𝕜] F
d' : E →L[𝕜] F
u : 𝕜 → F
u' : F
hc : HasDerivWithinAt c c' s x
hd : HasDerivWithinAt d d' s x
this :
  HasDerivWithinAt (fun y => (c y).comp (d y))
    ((((compL 𝕜 E F G) (c x)).comp (smulRight 1 d') + ((compL 𝕜 E F G).flip (d x)).comp (smulRight 1 c')) 1) s x
⊢ HasDerivWithinAt (fun y => (c y).comp (d y)) (c'.comp (d x) + (c x).comp d') s x
state_after: no goals
Theorem: MeasureTheory.VectorMeasure.AbsolutelyContinuous.neg_left
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: intro s hs
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
L : Type u_3
M✝ : Type u_4
N : Type u_5
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M✝
inst✝⁵ : TopologicalSpace M✝
inst✝⁴ : AddCommMonoid N
inst✝³ : TopologicalSpace N
v✝ : VectorMeasure α M✝
w✝ : VectorMeasure α N
M : Type u_6
inst✝² : AddCommGroup M
inst✝¹ : TopologicalSpace M
inst✝ : TopologicalAddGroup M
v : VectorMeasure α M
w : VectorMeasure α N
h : v ≪ᵥ w
⊢ -v ≪ᵥ w
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
L : Type u_3
M✝ : Type u_4
N : Type u_5
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M✝
inst✝⁵ : TopologicalSpace M✝
inst✝⁴ : AddCommMonoid N
inst✝³ : TopologicalSpace N
v✝ : VectorMeasure α M✝
w✝ : VectorMeasure α N
M : Type u_6
inst✝² : AddCommGroup M
inst✝¹ : TopologicalSpace M
inst✝ : TopologicalAddGroup M
v : VectorMeasure α M
w : VectorMeasure α N
h : v ≪ᵥ w
s : Set α
hs : ↑w s = 0
⊢ ↑(-v) s = 0

tactic: rw [neg_apply, h hs, neg_zero]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
L : Type u_3
M✝ : Type u_4
N : Type u_5
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M✝
inst✝⁵ : TopologicalSpace M✝
inst✝⁴ : AddCommMonoid N
inst✝³ : TopologicalSpace N
v✝ : VectorMeasure α M✝
w✝ : VectorMeasure α N
M : Type u_6
inst✝² : AddCommGroup M
inst✝¹ : TopologicalSpace M
inst✝ : TopologicalAddGroup M
v : VectorMeasure α M
w : VectorMeasure α N
h : v ≪ᵥ w
s : Set α
hs : ↑w s = 0
⊢ ↑(-v) s = 0
state_after: no goals
Theorem: NNReal.natCast_natAbs
File: Mathlib/Analysis/Normed/Group/Int.lean

tactic: simp only [Int.cast_natCast, NNReal.coe_natCast]
state_before: α : Type u_1
n : ℤ
⊢ ↑↑n.natAbs = ↑↑n.natAbs
state_after: no goals

tactic: simp only [Int.natCast_natAbs, Int.cast_abs]
state_before: α : Type u_1
n : ℤ
⊢ ↑↑n.natAbs = |↑n|
state_after: no goals
Theorem: Polynomial.Chebyshev.map_T
File: Mathlib/RingTheory/Polynomial/Chebyshev.lean

tactic: induction n using Polynomial.Chebyshev.induct with
| zero => simp
| one => simp
| add_two n ih1 ih2 =>
  simp_rw [T_add_two, Polynomial.map_sub, Polynomial.map_mul, Polynomial.map_ofNat, map_X,
    ih1, ih2];
| neg_add_one n ih1 ih2 =>
  simp_rw [T_sub_one, Polynomial.map_sub, Polynomial.map_mul, Polynomial.map_ofNat, map_X, ih1,
    ih2];
state_before: R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
n : ℤ
⊢ map f (T R n) = T S n
state_after: no goals

tactic: simp
state_before: case zero
R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
⊢ map f (T R 0) = T S 0
state_after: no goals

tactic: simp
state_before: case one
R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
⊢ map f (T R 1) = T S 1
state_after: no goals

tactic: simp_rw [T_add_two, Polynomial.map_sub, Polynomial.map_mul, Polynomial.map_ofNat, map_X,
  ih1, ih2]
state_before: case add_two
R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
n : ℕ
ih1 : map f (T R (↑n + 1)) = T S (↑n + 1)
ih2 : map f (T R ↑n) = T S ↑n
⊢ map f (T R (↑n + 2)) = T S (↑n + 2)
state_after: no goals

tactic: simp_rw [T_sub_one, Polynomial.map_sub, Polynomial.map_mul, Polynomial.map_ofNat, map_X, ih1,
  ih2]
state_before: case neg_add_one
R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
n : ℕ
ih1 : map f (T R (-↑n)) = T S (-↑n)
ih2 : map f (T R (-↑n + 1)) = T S (-↑n + 1)
⊢ map f (T R (-↑n - 1)) = T S (-↑n - 1)
state_after: no goals
Theorem: tendstoLocallyUniformlyOn_iff_forall_tendsto
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

tactic: rw [mem_map, mem_prod_iff_right]
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
x✝³ : α
x✝² : x✝³ ∈ s
x✝¹ : Set (β × β)
x✝ : x✝¹ ∈ 𝓤 β
⊢ (∃ t ∈ 𝓝[s] x✝³, ∀ᶠ (n : ι) in p, ∀ y ∈ t, (f y, F n y) ∈ x✝¹) ↔
    x✝¹ ∈ map (fun y => (f y.2, F y.1 y.2)) (p ×ˢ 𝓝[s] x✝³)
state_after: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
x✝³ : α
x✝² : x✝³ ∈ s
x✝¹ : Set (β × β)
x✝ : x✝¹ ∈ 𝓤 β
⊢ (∃ t ∈ 𝓝[s] x✝³, ∀ᶠ (n : ι) in p, ∀ y ∈ t, (f y, F n y) ∈ x✝¹) ↔
    ∃ t ∈ 𝓝[s] x✝³, ∀ᶠ (x : ι) in p, ∀ y ∈ t, (x, y) ∈ (fun y => (f y.2, F y.1 y.2)) ⁻¹' x✝¹

tactic: rfl
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
x✝³ : α
x✝² : x✝³ ∈ s
x✝¹ : Set (β × β)
x✝ : x✝¹ ∈ 𝓤 β
⊢ (∃ t ∈ 𝓝[s] x✝³, ∀ᶠ (n : ι) in p, ∀ y ∈ t, (f y, F n y) ∈ x✝¹) ↔
    ∃ t ∈ 𝓝[s] x✝³, ∀ᶠ (x : ι) in p, ∀ y ∈ t, (x, y) ∈ (fun y => (f y.2, F y.1 y.2)) ⁻¹' x✝¹
state_after: no goals
Theorem: Polynomial.eq_zero_of_hasseDeriv_eq_zero
File: Mathlib/Algebra/Polynomial/Taylor.lean

tactic: apply taylor_injective r
state_before: R✝ : Type u_1
inst✝¹ : Semiring R✝
r✝ : R✝
f✝ : R✝[X]
R : Type u_2
inst✝ : CommRing R
f : R[X]
r : R
h : ∀ (k : ℕ), eval r ((hasseDeriv k) f) = 0
⊢ f = 0
state_after: case a
R✝ : Type u_1
inst✝¹ : Semiring R✝
r✝ : R✝
f✝ : R✝[X]
R : Type u_2
inst✝ : CommRing R
f : R[X]
r : R
h : ∀ (k : ℕ), eval r ((hasseDeriv k) f) = 0
⊢ (taylor r) f = (taylor r) 0

tactic: rw [LinearMap.map_zero]
state_before: case a
R✝ : Type u_1
inst✝¹ : Semiring R✝
r✝ : R✝
f✝ : R✝[X]
R : Type u_2
inst✝ : CommRing R
f : R[X]
r : R
h : ∀ (k : ℕ), eval r ((hasseDeriv k) f) = 0
⊢ (taylor r) f = (taylor r) 0
state_after: case a
R✝ : Type u_1
inst✝¹ : Semiring R✝
r✝ : R✝
f✝ : R✝[X]
R : Type u_2
inst✝ : CommRing R
f : R[X]
r : R
h : ∀ (k : ℕ), eval r ((hasseDeriv k) f) = 0
⊢ (taylor r) f = 0

tactic: ext k
state_before: case a
R✝ : Type u_1
inst✝¹ : Semiring R✝
r✝ : R✝
f✝ : R✝[X]
R : Type u_2
inst✝ : CommRing R
f : R[X]
r : R
h : ∀ (k : ℕ), eval r ((hasseDeriv k) f) = 0
⊢ (taylor r) f = 0
state_after: case a.a
R✝ : Type u_1
inst✝¹ : Semiring R✝
r✝ : R✝
f✝ : R✝[X]
R : Type u_2
inst✝ : CommRing R
f : R[X]
r : R
h : ∀ (k : ℕ), eval r ((hasseDeriv k) f) = 0
k : ℕ
⊢ ((taylor r) f).coeff k = coeff 0 k

tactic: simp only [taylor_coeff, h, coeff_zero]
state_before: case a.a
R✝ : Type u_1
inst✝¹ : Semiring R✝
r✝ : R✝
f✝ : R✝[X]
R : Type u_2
inst✝ : CommRing R
f : R[X]
r : R
h : ∀ (k : ℕ), eval r ((hasseDeriv k) f) = 0
k : ℕ
⊢ ((taylor r) f).coeff k = coeff 0 k
state_after: no goals
Theorem: CategoryTheory.Sieve.functorPullback_comp
File: Mathlib/CategoryTheory/Sites/Sieves.lean

tactic: ext
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
F : C ⥤ D
X Y Z : C
f : Y ⟶ X
S R✝ : Sieve X
E : Type u₃
inst✝ : Category.{v₃, u₃} E
G : D ⥤ E
R : Sieve ((F ⋙ G).obj X)
⊢ functorPullback (F ⋙ G) R = functorPullback F (functorPullback G R)
state_after: case h
C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
F : C ⥤ D
X Y Z : C
f : Y ⟶ X
S R✝ : Sieve X
E : Type u₃
inst✝ : Category.{v₃, u₃} E
G : D ⥤ E
R : Sieve ((F ⋙ G).obj X)
Y✝ : C
f✝ : Y✝ ⟶ X
⊢ (functorPullback (F ⋙ G) R).arrows f✝ ↔ (functorPullback F (functorPullback G R)).arrows f✝

tactic: rfl
state_before: case h
C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
F : C ⥤ D
X Y Z : C
f : Y ⟶ X
S R✝ : Sieve X
E : Type u₃
inst✝ : Category.{v₃, u₃} E
G : D ⥤ E
R : Sieve ((F ⋙ G).obj X)
Y✝ : C
f✝ : Y✝ ⟶ X
⊢ (functorPullback (F ⋙ G) R).arrows f✝ ↔ (functorPullback F (functorPullback G R)).arrows f✝
state_after: no goals
Theorem: CategoryTheory.Functor.preimage_id
File: Mathlib/CategoryTheory/Functor/FullyFaithful.lean

tactic: simp
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
X✝ Y✝ : C
F : C ⥤ D
inst✝¹ : F.Full
inst✝ : F.Faithful
X Y Z : C
⊢ F.map (F.preimage (𝟙 (F.obj X))) = F.map (𝟙 X)
state_after: no goals
Theorem: ascending_central_series_le_upper
File: Mathlib/GroupTheory/Nilpotent.lean

tactic: intro x hx
state_before: G : Type u_1
inst✝¹ : Group G
H✝ : Subgroup G
inst✝ : H✝.Normal
H : ℕ → Subgroup G
hH : IsAscendingCentralSeries H
n : ℕ
⊢ H (n + 1) ≤ upperCentralSeries G (n + 1)
state_after: G : Type u_1
inst✝¹ : Group G
H✝ : Subgroup G
inst✝ : H✝.Normal
H : ℕ → Subgroup G
hH : IsAscendingCentralSeries H
n : ℕ
x : G
hx : x ∈ H (n + 1)
⊢ x ∈ upperCentralSeries G (n + 1)

tactic: rw [mem_upperCentralSeries_succ_iff]
state_before: G : Type u_1
inst✝¹ : Group G
H✝ : Subgroup G
inst✝ : H✝.Normal
H : ℕ → Subgroup G
hH : IsAscendingCentralSeries H
n : ℕ
x : G
hx : x ∈ H (n + 1)
⊢ x ∈ upperCentralSeries G (n + 1)
state_after: G : Type u_1
inst✝¹ : Group G
H✝ : Subgroup G
inst✝ : H✝.Normal
H : ℕ → Subgroup G
hH : IsAscendingCentralSeries H
n : ℕ
x : G
hx : x ∈ H (n + 1)
⊢ ∀ (y : G), x * y * x⁻¹ * y⁻¹ ∈ upperCentralSeries G n

tactic: exact fun y => ascending_central_series_le_upper H hH n (hH.2 x n hx y)
state_before: G : Type u_1
inst✝¹ : Group G
H✝ : Subgroup G
inst✝ : H✝.Normal
H : ℕ → Subgroup G
hH : IsAscendingCentralSeries H
n : ℕ
x : G
hx : x ∈ H (n + 1)
⊢ ∀ (y : G), x * y * x⁻¹ * y⁻¹ ∈ upperCentralSeries G n
state_after: no goals
Theorem: LipschitzWith.max_const
File: Mathlib/Topology/MetricSpace/Lipschitz.lean

tactic: simpa only [max_eq_left (zero_le Kf)] using hf.max (LipschitzWith.const a)
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝ : PseudoEMetricSpace α
f g : α → ℝ
Kf Kg : ℝ≥0
hf : LipschitzWith Kf f
a : ℝ
⊢ LipschitzWith Kf fun x => max (f x) a
state_after: no goals
Theorem: Seminorm.smul_sup
File: Mathlib/Analysis/Seminorm.lean

tactic: simpa only [← smul_eq_mul, ← NNReal.smul_def, smul_one_smul ℝ≥0 r (_ : ℝ)] using
  mul_max_of_nonneg x y (r • (1 : ℝ≥0) : ℝ≥0).coe_nonneg
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁵ : SeminormedRing 𝕜
inst✝⁴ : AddGroup E
inst✝³ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
c : 𝕜
x✝ y✝ : E
r✝ : ℝ
inst✝² : SMul R ℝ
inst✝¹ : SMul R ℝ≥0
inst✝ : IsScalarTower R ℝ≥0 ℝ
r : R
p q : Seminorm 𝕜 E
x y : ℝ
⊢ r • max x y = max (r • x) (r • y)
state_after: no goals
Theorem: Set.Infinite.ncard
File: Mathlib/Data/Set/Card.lean

tactic: rw [← Nat.card_coe_set_eq, @Nat.card_eq_zero_of_infinite _ hs.to_subtype]
state_before: α : Type u_1
β : Type u_2
s t : Set α
hs : s.Infinite
⊢ s.ncard = 0
state_after: no goals
Theorem: CategoryTheory.Sieve.functorPushforward_top
File: Mathlib/CategoryTheory/Sites/Sieves.lean

tactic: refine (generate_sieve _).symm.trans ?_
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
F✝ : C ⥤ D
X✝ Y Z : C
f : Y ⟶ X✝
S R : Sieve X✝
E : Type u₃
inst✝ : Category.{v₃, u₃} E
G : D ⥤ E
F : C ⥤ D
X : C
⊢ functorPushforward F ⊤ = ⊤
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
F✝ : C ⥤ D
X✝ Y Z : C
f : Y ⟶ X✝
S R : Sieve X✝
E : Type u₃
inst✝ : Category.{v₃, u₃} E
G : D ⥤ E
F : C ⥤ D
X : C
⊢ generate (functorPushforward F ⊤).arrows = ⊤

tactic: apply generate_of_contains_isSplitEpi (𝟙 (F.obj X))
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
F✝ : C ⥤ D
X✝ Y Z : C
f : Y ⟶ X✝
S R : Sieve X✝
E : Type u₃
inst✝ : Category.{v₃, u₃} E
G : D ⥤ E
F : C ⥤ D
X : C
⊢ generate (functorPushforward F ⊤).arrows = ⊤
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
F✝ : C ⥤ D
X✝ Y Z : C
f : Y ⟶ X✝
S R : Sieve X✝
E : Type u₃
inst✝ : Category.{v₃, u₃} E
G : D ⥤ E
F : C ⥤ D
X : C
⊢ (functorPushforward F ⊤).arrows (𝟙 (F.obj X))

tactic: exact ⟨X, 𝟙 _, 𝟙 _, trivial, by simp⟩
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
F✝ : C ⥤ D
X✝ Y Z : C
f : Y ⟶ X✝
S R : Sieve X✝
E : Type u₃
inst✝ : Category.{v₃, u₃} E
G : D ⥤ E
F : C ⥤ D
X : C
⊢ (functorPushforward F ⊤).arrows (𝟙 (F.obj X))
state_after: no goals

tactic: simp
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
F✝ : C ⥤ D
X✝ Y Z : C
f : Y ⟶ X✝
S R : Sieve X✝
E : Type u₃
inst✝ : Category.{v₃, u₃} E
G : D ⥤ E
F : C ⥤ D
X : C
⊢ 𝟙 (F.obj X) = 𝟙 (F.obj X) ≫ F.map (𝟙 X)
state_after: no goals
Theorem: LiouvilleWith.nat_mul_iff
File: Mathlib/NumberTheory/Liouville/LiouvilleWith.lean

tactic: rw [mul_comm, mul_nat_iff hn]
state_before: p q x y : ℝ
r : ℚ
m : ℤ
n : ℕ
hn : n ≠ 0
⊢ LiouvilleWith p (↑n * x) ↔ LiouvilleWith p x
state_after: no goals
Theorem: Function.IsPeriodicPt.mul_const
File: Mathlib/Dynamics/PeriodicPts.lean

tactic: simp only [IsPeriodicPt, iterate_mul, hm.isFixedPt.iterate n]
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n✝ : ℕ
hm : IsPeriodicPt f m x
n : ℕ
⊢ IsPeriodicPt f (m * n) x
state_after: no goals
Theorem: orderOf_eq_two_iff
File: Mathlib/GroupTheory/Exponent.lean

tactic: rintro hx rfl
state_before: G : Type u
inst✝ : Monoid G
hG : Monoid.exponent G = 2
x : G
⊢ orderOf x = 2 → x ≠ 1
state_after: G : Type u
inst✝ : Monoid G
hG : Monoid.exponent G = 2
hx : orderOf 1 = 2
⊢ False

tactic: norm_num at hx
state_before: G : Type u
inst✝ : Monoid G
hG : Monoid.exponent G = 2
hx : orderOf 1 = 2
⊢ False
state_after: no goals
Theorem: CategoryTheory.Pretriangulated.Triangle.eqToHom_hom₁
File: Mathlib/CategoryTheory/Triangulated/Basic.lean

tactic: subst h
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasShift C ℤ
T₁ T₂ T₃ A B : Triangle C
h : A = B
⊢ A.obj₁ = B.obj₁
state_after: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasShift C ℤ
T₁ T₂ T₃ A : Triangle C
⊢ A.obj₁ = A.obj₁

tactic: rfl
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasShift C ℤ
T₁ T₂ T₃ A : Triangle C
⊢ A.obj₁ = A.obj₁
state_after: no goals

tactic: subst h
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasShift C ℤ
T₁ T₂ T₃ A B : Triangle C
h : A = B
⊢ (eqToHom h).hom₁ = eqToHom ⋯
state_after: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasShift C ℤ
T₁ T₂ T₃ A : Triangle C
⊢ (eqToHom ⋯).hom₁ = eqToHom ⋯

tactic: rfl
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasShift C ℤ
T₁ T₂ T₃ A : Triangle C
⊢ (eqToHom ⋯).hom₁ = eqToHom ⋯
state_after: no goals
Theorem: Real.Gamma_eq_zero_iff
File: Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean

tactic: contrapose!
state_before: s : ℝ
⊢ Gamma s = 0 → ∃ m, s = -↑m
state_after: s : ℝ
⊢ (∀ (m : ℕ), s ≠ -↑m) → Gamma s ≠ 0

tactic: exact Gamma_ne_zero
state_before: s : ℝ
⊢ (∀ (m : ℕ), s ≠ -↑m) → Gamma s ≠ 0
state_after: no goals

tactic: rintro ⟨m, rfl⟩
state_before: s : ℝ
⊢ (∃ m, s = -↑m) → Gamma s = 0
state_after: case intro
m : ℕ
⊢ Gamma (-↑m) = 0

tactic: exact Gamma_neg_nat_eq_zero m
state_before: case intro
m : ℕ
⊢ Gamma (-↑m) = 0
state_after: no goals
Theorem: ProbabilityTheory.kernel.iIndepSet.indep_generateFrom_le
File: Mathlib/Probability/Independence/Kernel.lean

tactic: convert iIndepSet.indep_generateFrom_of_disjoint hsm hs {k} { j | j ≤ i }
    (Set.disjoint_singleton_left.mpr hk.not_le)
state_before: α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
_mΩ : MeasurableSpace Ω
κ : ↥(kernel α Ω)
μ : Measure α
inst✝¹ : LinearOrder ι
inst✝ : IsMarkovKernel κ
s : ι → Set Ω
hsm : ∀ (n : ι), MeasurableSet (s n)
hs : iIndepSet s κ μ
i k : ι
hk : i < k
⊢ Indep (generateFrom {s k}) (generateFrom {t | ∃ j ≤ i, s j = t}) κ μ
state_after: case h.e'_4.h.e'_2
α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
_mΩ : MeasurableSpace Ω
κ : ↥(kernel α Ω)
μ : Measure α
inst✝¹ : LinearOrder ι
inst✝ : IsMarkovKernel κ
s : ι → Set Ω
hsm : ∀ (n : ι), MeasurableSet (s n)
hs : iIndepSet s κ μ
i k : ι
hk : i < k
⊢ {s k} = {t | ∃ n ∈ {k}, s n = t}

tactic: simp only [Set.mem_singleton_iff, exists_prop, exists_eq_left, Set.setOf_eq_eq_singleton']
state_before: case h.e'_4.h.e'_2
α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
_mΩ : MeasurableSpace Ω
κ : ↥(kernel α Ω)
μ : Measure α
inst✝¹ : LinearOrder ι
inst✝ : IsMarkovKernel κ
s : ι → Set Ω
hsm : ∀ (n : ι), MeasurableSet (s n)
hs : iIndepSet s κ μ
i k : ι
hk : i < k
⊢ {s k} = {t | ∃ n ∈ {k}, s n = t}
state_after: no goals
Theorem: CochainComplex.mappingCone.d_fst_v'
File: Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean

tactic: omega
state_before: C : Type u_1
inst✝² : Category.{?u.93034, u_1} C
inst✝¹ : Preadditive C
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
i j : ℤ
hij : i + 1 = j
⊢ i - 1 + 1 = i
state_after: no goals

tactic: omega
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
i j : ℤ
hij : i + 1 = j
⊢ i - 1 + 1 = i
state_after: no goals
Theorem: strictAntiOn_dual_iff
File: Mathlib/Order/Monotone/Basic.lean

tactic: rw [strictAntiOn_toDual_comp_iff, strictMonoOn_comp_ofDual_iff]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
δ : Type u_2
π : ι → Type u_3
r : α → α → Prop
inst✝¹ : Preorder α
inst✝ : Preorder β
f : α → β
s : Set α
⊢ StrictAntiOn (⇑toDual ∘ f ∘ ⇑ofDual) s ↔ StrictAntiOn f s
state_after: no goals
Theorem: lineMap_le_right_iff_le
File: Mathlib/LinearAlgebra/AffineSpace/Ordered.lean

tactic: rw [lineMap_apply_one]
state_before: k : Type u_1
E : Type u_2
PE : Type u_3
inst✝³ : LinearOrderedField k
inst✝² : OrderedAddCommGroup E
inst✝¹ : Module k E
inst✝ : OrderedSMul k E
a b : E
r r' : k
h : r < 1
⊢ (lineMap a b) r ≤ b ↔ (lineMap a b) r ≤ (lineMap a b) 1
state_after: no goals
Theorem: Polynomial.monic_X_sub_C
File: Mathlib/Algebra/Polynomial/Monic.lean

tactic: simpa only [sub_eq_add_neg, C_neg] using monic_X_add_C (-x)
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Ring R
p : R[X]
x : R
⊢ (X - C x).Monic
state_after: no goals
Theorem: Complex.cpow_mul
File: Mathlib/Analysis/SpecialFunctions/Pow/Complex.lean

tactic: simp only [cpow_def]
state_before: x y z : ℂ
h₁ : -π < (log x * y).im
h₂ : (log x * y).im ≤ π
⊢ x ^ (y * z) = (x ^ y) ^ z
state_after: x y z : ℂ
h₁ : -π < (log x * y).im
h₂ : (log x * y).im ≤ π
⊢ (if x = 0 then if y * z = 0 then 1 else 0 else cexp (log x * (y * z))) =
    if (if x = 0 then if y = 0 then 1 else 0 else cexp (log x * y)) = 0 then if z = 0 then 1 else 0
    else cexp (log (if x = 0 then if y = 0 then 1 else 0 else cexp (log x * y)) * z)

tactic: split_ifs <;> simp_all [exp_ne_zero, log_exp h₁ h₂, mul_assoc]
state_before: x y z : ℂ
h₁ : -π < (log x * y).im
h₂ : (log x * y).im ≤ π
⊢ (if x = 0 then if y * z = 0 then 1 else 0 else cexp (log x * (y * z))) =
    if (if x = 0 then if y = 0 then 1 else 0 else cexp (log x * y)) = 0 then if z = 0 then 1 else 0
    else cexp (log (if x = 0 then if y = 0 then 1 else 0 else cexp (log x * y)) * z)
state_after: no goals
Theorem: GaloisInsertion.l_sSup_u_image
File: Mathlib/Order/GaloisConnection.lean

tactic: rw [sSup_image, gi.l_biSup_u, sSup_eq_iSup]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
κ : ι → Sort u_1
a a₁ a₂ : α
b b₁ b₂ : β
l : α → β
u : β → α
inst✝¹ : CompleteLattice α
inst✝ : CompleteLattice β
gi : GaloisInsertion l u
s : Set β
⊢ l (sSup (u '' s)) = sSup s
state_after: no goals