1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: IsPrimitiveRoot.eq_pow_of_mem_rootsOfUnity'
File: Mathlib/RingTheory/RootsOfUnity/Basic.lean

tactic: have hζ' : IsPrimitiveRoot (hζ.isUnit hk).unit (⟨k, hk⟩ : ℕ+) := isUnit_unit hk hζ
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k✝ l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h : IsPrimitiveRoot ζ✝ k✝
inst✝ : IsDomain R
k : ℕ
hk : 0 < k
ζ : R
hζ : IsPrimitiveRoot ζ k
ξ : Rˣ
hξ : ξ ∈ rootsOfUnity ⟨k, hk⟩ R
⊢ ∃ i < k, ζ ^ i = ↑ξ
state_after: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k✝ l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h : IsPrimitiveRoot ζ✝ k✝
inst✝ : IsDomain R
k : ℕ
hk : 0 < k
ζ : R
hζ : IsPrimitiveRoot ζ k
ξ : Rˣ
hξ : ξ ∈ rootsOfUnity ⟨k, hk⟩ R
hζ' : IsPrimitiveRoot ⋯.unit ↑⟨k, hk⟩
⊢ ∃ i < k, ζ ^ i = ↑ξ

tactic: obtain ⟨i, hi₁, hi₂⟩ := hζ'.eq_pow_of_mem_rootsOfUnity hξ
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k✝ l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h : IsPrimitiveRoot ζ✝ k✝
inst✝ : IsDomain R
k : ℕ
hk : 0 < k
ζ : R
hζ : IsPrimitiveRoot ζ k
ξ : Rˣ
hξ : ξ ∈ rootsOfUnity ⟨k, hk⟩ R
hζ' : IsPrimitiveRoot ⋯.unit ↑⟨k, hk⟩
⊢ ∃ i < k, ζ ^ i = ↑ξ
state_after: case intro.intro
M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k✝ l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h : IsPrimitiveRoot ζ✝ k✝
inst✝ : IsDomain R
k : ℕ
hk : 0 < k
ζ : R
hζ : IsPrimitiveRoot ζ k
ξ : Rˣ
hξ : ξ ∈ rootsOfUnity ⟨k, hk⟩ R
hζ' : IsPrimitiveRoot ⋯.unit ↑⟨k, hk⟩
i : ℕ
hi₁ : i < ↑⟨k, hk⟩
hi₂ : ⋯.unit ^ i = ξ
⊢ ∃ i < k, ζ ^ i = ↑ξ

tactic: simpa only [Units.val_pow_eq_pow_val, IsUnit.unit_spec]
  using ⟨i, hi₁, congrArg ((↑) : Rˣ → R) hi₂⟩
state_before: case intro.intro
M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k✝ l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h : IsPrimitiveRoot ζ✝ k✝
inst✝ : IsDomain R
k : ℕ
hk : 0 < k
ζ : R
hζ : IsPrimitiveRoot ζ k
ξ : Rˣ
hξ : ξ ∈ rootsOfUnity ⟨k, hk⟩ R
hζ' : IsPrimitiveRoot ⋯.unit ↑⟨k, hk⟩
i : ℕ
hi₁ : i < ↑⟨k, hk⟩
hi₂ : ⋯.unit ^ i = ξ
⊢ ∃ i < k, ζ ^ i = ↑ξ
state_after: no goals
Theorem: Part.bind_some
File: Mathlib/Data/Part.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a : α
f : α → Part β
⊢ ∀ (a_1 : β), a_1 ∈ (some a).bind f ↔ a_1 ∈ f a
state_after: no goals
Theorem: cauchyPowerSeries_apply
File: Mathlib/MeasureTheory/Integral/CircleIntegral.lean

tactic: simp only [cauchyPowerSeries, ContinuousMultilinearMap.mkPiRing_apply, Fin.prod_const,
  div_eq_mul_inv, mul_pow, mul_smul, circleIntegral.integral_smul]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
f : ℂ → E
c : ℂ
R : ℝ
n : ℕ
w : ℂ
⊢ ((cauchyPowerSeries f c R n) fun x => w) = (2 * ↑π * I)⁻¹ • ∮ (z : ℂ) in C(c, R), (w / (z - c)) ^ n • (z - c)⁻¹ • f z
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
f : ℂ → E
c : ℂ
R : ℝ
n : ℕ
w : ℂ
⊢ (w ^ n • (2 * ↑π * I)⁻¹ • ∮ (z : ℂ) in C(c, R), (z - c)⁻¹ ^ n • (z - c)⁻¹ • f z) =
    (2 * ↑π * I)⁻¹ • w ^ n • ∮ (z : ℂ) in C(c, R), (z - c)⁻¹ ^ n • (z - c)⁻¹ • f z

tactic: rw [← smul_comm (w ^ n)]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
f : ℂ → E
c : ℂ
R : ℝ
n : ℕ
w : ℂ
⊢ (w ^ n • (2 * ↑π * I)⁻¹ • ∮ (z : ℂ) in C(c, R), (z - c)⁻¹ ^ n • (z - c)⁻¹ • f z) =
    (2 * ↑π * I)⁻¹ • w ^ n • ∮ (z : ℂ) in C(c, R), (z - c)⁻¹ ^ n • (z - c)⁻¹ • f z
state_after: no goals
Theorem: iteratedFDeriv_eq_equiv_comp
File: Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean

tactic: rw [iteratedDeriv_eq_equiv_comp, ← Function.comp.assoc, LinearIsometryEquiv.self_comp_symm,
  Function.id_comp]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x : 𝕜
⊢ iteratedFDeriv 𝕜 n f = ⇑(ContinuousMultilinearMap.piFieldEquiv 𝕜 (Fin n) F) ∘ iteratedDeriv n f
state_after: no goals
Theorem: Nat.add_sub_sub_cancel
File: Mathlib/Data/Nat/Defs.lean

tactic: omega
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
h : c ≤ a
⊢ a + b - (a - c) = b + c
state_after: no goals
Theorem: Complex.exp_eq_exp_ℂ
File: Mathlib/Analysis/SpecialFunctions/Exponential.lean

tactic: refine funext fun x => ?_
state_before: ⊢ cexp = NormedSpace.exp ℂ
state_after: x : ℂ
⊢ cexp x = NormedSpace.exp ℂ x

tactic: rw [Complex.exp, exp_eq_tsum_div]
state_before: x : ℂ
⊢ cexp x = NormedSpace.exp ℂ x
state_after: x : ℂ
⊢ (exp' x).lim = (fun x => ∑' (n : ℕ), x ^ n / ↑n !) x

tactic: have : CauSeq.IsComplete ℂ norm := Complex.instIsComplete
state_before: x : ℂ
⊢ (exp' x).lim = (fun x => ∑' (n : ℕ), x ^ n / ↑n !) x
state_after: x : ℂ
this : CauSeq.IsComplete ℂ norm
⊢ (exp' x).lim = (fun x => ∑' (n : ℕ), x ^ n / ↑n !) x

tactic: exact tendsto_nhds_unique x.exp'.tendsto_limit (expSeries_div_summable ℝ x).hasSum.tendsto_sum_nat
state_before: x : ℂ
this : CauSeq.IsComplete ℂ norm
⊢ (exp' x).lim = (fun x => ∑' (n : ℕ), x ^ n / ↑n !) x
state_after: no goals
Theorem: isNoetherian_top_iff
File: Mathlib/RingTheory/Noetherian.lean

tactic: constructor <;> intro h
state_before: R : Type u_1
M : Type u_2
P : Type u_3
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : AddCommMonoid P
inst✝¹ : Module R M
inst✝ : Module R P
⊢ IsNoetherian R ↥⊤ ↔ IsNoetherian R M
state_after: case mp
R : Type u_1
M : Type u_2
P : Type u_3
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : AddCommMonoid P
inst✝¹ : Module R M
inst✝ : Module R P
h : IsNoetherian R ↥⊤
⊢ IsNoetherian R M

case mpr
R : Type u_1
M : Type u_2
P : Type u_3
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : AddCommMonoid P
inst✝¹ : Module R M
inst✝ : Module R P
h : IsNoetherian R M
⊢ IsNoetherian R ↥⊤

tactic: exact isNoetherian_of_linearEquiv (LinearEquiv.ofTop (⊤ : Submodule R M) rfl)
state_before: case mp
R : Type u_1
M : Type u_2
P : Type u_3
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : AddCommMonoid P
inst✝¹ : Module R M
inst✝ : Module R P
h : IsNoetherian R ↥⊤
⊢ IsNoetherian R M
state_after: no goals

tactic: exact isNoetherian_of_linearEquiv (LinearEquiv.ofTop (⊤ : Submodule R M) rfl).symm
state_before: case mpr
R : Type u_1
M : Type u_2
P : Type u_3
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : AddCommMonoid P
inst✝¹ : Module R M
inst✝ : Module R P
h : IsNoetherian R M
⊢ IsNoetherian R ↥⊤
state_after: no goals
Theorem: FirstOrder.Language.model_infiniteTheory_iff
File: Mathlib/ModelTheory/Semantics.lean

tactic: simp [infiniteTheory, infinite_iff, aleph0_le]
state_before: L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
n : ℕ
T : L.Theory
⊢ M ⊨ L.infiniteTheory ↔ Infinite M
state_after: no goals
Theorem: LinearMap.zero_smulRight
File: Mathlib/Algebra/Module/LinearMap/End.lean

tactic: ext
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
S : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
N : Type u_9
N₁ : Type u_10
N₂ : Type u_11
inst✝⁹ : Semiring R
inst✝⁸ : Semiring R₂
inst✝⁷ : AddCommMonoid M
inst✝⁶ : AddCommMonoid M₁
inst✝⁵ : Module R M
inst✝⁴ : Module R M₁
inst✝³ : Semiring S
inst✝² : Module R S
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
x : M
⊢ smulRight 0 x = 0
state_after: case h
R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
S : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
N : Type u_9
N₁ : Type u_10
N₂ : Type u_11
inst✝⁹ : Semiring R
inst✝⁸ : Semiring R₂
inst✝⁷ : AddCommMonoid M
inst✝⁶ : AddCommMonoid M₁
inst✝⁵ : Module R M
inst✝⁴ : Module R M₁
inst✝³ : Semiring S
inst✝² : Module R S
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
x : M
x✝ : M₁
⊢ (smulRight 0 x) x✝ = 0 x✝

tactic: simp
state_before: case h
R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
S : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
N : Type u_9
N₁ : Type u_10
N₂ : Type u_11
inst✝⁹ : Semiring R
inst✝⁸ : Semiring R₂
inst✝⁷ : AddCommMonoid M
inst✝⁶ : AddCommMonoid M₁
inst✝⁵ : Module R M
inst✝⁴ : Module R M₁
inst✝³ : Semiring S
inst✝² : Module R S
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
x : M
x✝ : M₁
⊢ (smulRight 0 x) x✝ = 0 x✝
state_after: no goals
Theorem: FreeAbelianGroup.support_of
File: Mathlib/GroupTheory/FreeAbelianGroupFinsupp.lean

tactic: rw [support, toFinsupp_of, Finsupp.support_single_ne_zero _ one_ne_zero]
state_before: X : Type u_1
x : X
⊢ (of x).support = {x}
state_after: no goals
Theorem: Polynomial.eq_of_degree_sub_lt_of_eval_finset_eq
File: Mathlib/LinearAlgebra/Lagrange.lean

tactic: rw [← sub_eq_zero]
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
f g : R[X]
s : Finset R
degree_fg_lt : (f - g).degree < ↑s.card
eval_fg : ∀ x ∈ s, eval x f = eval x g
⊢ f = g
state_after: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
f g : R[X]
s : Finset R
degree_fg_lt : (f - g).degree < ↑s.card
eval_fg : ∀ x ∈ s, eval x f = eval x g
⊢ f - g = 0

tactic: refine eq_zero_of_degree_lt_of_eval_finset_eq_zero _ degree_fg_lt ?_
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
f g : R[X]
s : Finset R
degree_fg_lt : (f - g).degree < ↑s.card
eval_fg : ∀ x ∈ s, eval x f = eval x g
⊢ f - g = 0
state_after: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
f g : R[X]
s : Finset R
degree_fg_lt : (f - g).degree < ↑s.card
eval_fg : ∀ x ∈ s, eval x f = eval x g
⊢ ∀ x ∈ s, eval x (f - g) = 0

tactic: simp_rw [eval_sub, sub_eq_zero]
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
f g : R[X]
s : Finset R
degree_fg_lt : (f - g).degree < ↑s.card
eval_fg : ∀ x ∈ s, eval x f = eval x g
⊢ ∀ x ∈ s, eval x (f - g) = 0
state_after: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
f g : R[X]
s : Finset R
degree_fg_lt : (f - g).degree < ↑s.card
eval_fg : ∀ x ∈ s, eval x f = eval x g
⊢ ∀ x ∈ s, eval x f = eval x g

tactic: exact eval_fg
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
f g : R[X]
s : Finset R
degree_fg_lt : (f - g).degree < ↑s.card
eval_fg : ∀ x ∈ s, eval x f = eval x g
⊢ ∀ x ∈ s, eval x f = eval x g
state_after: no goals
Theorem: spectrum.nonzero_mul_eq_swap_mul
File: Mathlib/Algebra/Algebra/Spectrum.lean

tactic: suffices h : ∀ x y : A, σ (x * y) \ {0} ⊆ σ (y * x) \ {0} from
  Set.eq_of_subset_of_subset (h a b) (h b a)
state_before: 𝕜 : Type u
A : Type v
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a b : A
⊢ σ (a * b) \ {0} = σ (b * a) \ {0}
state_after: 𝕜 : Type u
A : Type v
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a b : A
⊢ ∀ (x y : A), σ (x * y) \ {0} ⊆ σ (y * x) \ {0}

tactic: rintro _ _ k ⟨k_mem, k_neq⟩
state_before: 𝕜 : Type u
A : Type v
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a b : A
⊢ ∀ (x y : A), σ (x * y) \ {0} ⊆ σ (y * x) \ {0}
state_after: case intro
𝕜 : Type u
A : Type v
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a b x✝ y✝ : A
k : 𝕜
k_mem : k ∈ σ (x✝ * y✝)
k_neq : k ∉ {0}
⊢ k ∈ σ (y✝ * x✝) \ {0}

tactic: change ((Units.mk0 k k_neq) : 𝕜) ∈ _ at k_mem
state_before: case intro
𝕜 : Type u
A : Type v
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a b x✝ y✝ : A
k : 𝕜
k_mem : k ∈ σ (x✝ * y✝)
k_neq : k ∉ {0}
⊢ k ∈ σ (y✝ * x✝) \ {0}
state_after: case intro
𝕜 : Type u
A : Type v
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a b x✝ y✝ : A
k : 𝕜
k_neq : k ∉ {0}
k_mem : ↑(Units.mk0 k k_neq) ∈ σ (x✝ * y✝)
⊢ k ∈ σ (y✝ * x✝) \ {0}

tactic: exact ⟨unit_mem_mul_iff_mem_swap_mul.mp k_mem, k_neq⟩
state_before: case intro
𝕜 : Type u
A : Type v
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
a b x✝ y✝ : A
k : 𝕜
k_neq : k ∉ {0}
k_mem : ↑(Units.mk0 k k_neq) ∈ σ (x✝ * y✝)
⊢ k ∈ σ (y✝ * x✝) \ {0}
state_after: no goals
Theorem: ball_mul_one
File: Mathlib/Analysis/Normed/Group/Pointwise.lean

tactic: rw [mul_comm, mul_ball_one]
state_before: E : Type u_1
inst✝ : SeminormedCommGroup E
ε δ : ℝ
s t : Set E
x y : E
⊢ ball 1 δ * s = thickening δ s
state_after: no goals
Theorem: MeasureTheory.Measure.sigmaFinite_of_countable
File: Mathlib/MeasureTheory/Measure/Typeclasses.lean

tactic: obtain ⟨s, hμ, hs⟩ : ∃ s : ℕ → Set α, (∀ n, μ (s n) < ∞) ∧ ⋃ n, s n = univ :=
  (@exists_seq_cover_iff_countable _ (fun x => μ x < ∞) ⟨∅, by simp⟩).2 ⟨S, hc, hμ, hU⟩
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
S : Set (Set α)
hc : S.Countable
hμ : ∀ s ∈ S, μ s < ⊤
hU : ⋃₀ S = univ
⊢ SigmaFinite μ
state_after: case intro.intro
α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s✝ t : Set α
S : Set (Set α)
hc : S.Countable
hμ✝ : ∀ s ∈ S, μ s < ⊤
hU : ⋃₀ S = univ
s : ℕ → Set α
hμ : ∀ (n : ℕ), μ (s n) < ⊤
hs : ⋃ n, s n = univ
⊢ SigmaFinite μ

tactic: exact ⟨⟨⟨fun n => s n, fun _ => trivial, hμ, hs⟩⟩⟩
state_before: case intro.intro
α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s✝ t : Set α
S : Set (Set α)
hc : S.Countable
hμ✝ : ∀ s ∈ S, μ s < ⊤
hU : ⋃₀ S = univ
s : ℕ → Set α
hμ : ∀ (n : ℕ), μ (s n) < ⊤
hs : ⋃ n, s n = univ
⊢ SigmaFinite μ
state_after: no goals

tactic: simp
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
S : Set (Set α)
hc : S.Countable
hμ : ∀ s ∈ S, μ s < ⊤
hU : ⋃₀ S = univ
⊢ (fun x => μ x < ⊤) ∅
state_after: no goals
Theorem: Asymptotics.superpolynomialDecay_iff_superpolynomialDecay_norm
File: Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean

tactic: simp [SuperpolynomialDecay]
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝ : NormedLinearOrderedField β
⊢ (∀ (n : ℕ), Tendsto (fun a => ‖k a ^ n * f a‖) l (𝓝 0)) ↔ SuperpolynomialDecay l (fun a => ‖k a‖) fun a => ‖f a‖
state_after: no goals
Theorem: nhdsSet_empty
File: Mathlib/Topology/NhdsSet.lean

tactic: rw [isOpen_empty.nhdsSet_eq, principal_empty]
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
f : Filter X
s t s₁ s₂ t₁ t₂ : Set X
x : X
⊢ 𝓝ˢ ∅ = ⊥
state_after: no goals
Theorem: PowerSeries.coeff_of_lt_order
File: Mathlib/RingTheory/PowerSeries/Order.lean

tactic: contrapose! h
state_before: R : Type u_1
inst✝ : Semiring R
φ : R⟦X⟧
n : ℕ
h : ↑n < φ.order
⊢ (coeff R n) φ = 0
state_after: R : Type u_1
inst✝ : Semiring R
φ : R⟦X⟧
n : ℕ
h : (coeff R n) φ ≠ 0
⊢ φ.order ≤ ↑n

tactic: exact order_le _ h
state_before: R : Type u_1
inst✝ : Semiring R
φ : R⟦X⟧
n : ℕ
h : (coeff R n) φ ≠ 0
⊢ φ.order ≤ ↑n
state_after: no goals
Theorem: MonoidAlgebra.lift_unique
File: Mathlib/Algebra/MonoidAlgebra/Basic.lean

tactic: conv_lhs =>
  rw [lift_unique' F]
  simp [lift_apply]
state_before: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝⁶ : CommSemiring k
inst✝⁵ : Monoid G
inst✝⁴ : Monoid H
A : Type u₃
inst✝³ : Semiring A
inst✝² : Algebra k A
B : Type u_3
inst✝¹ : Semiring B
inst✝ : Algebra k B
F : MonoidAlgebra k G →ₐ[k] A
f : MonoidAlgebra k G
⊢ F f = sum f fun a b => b • F (single a 1)
state_after: no goals
Theorem: ZMod.unitsMap_comp
File: Mathlib/Data/ZMod/Units.lean

tactic: simp only [unitsMap_def]
state_before: n m d : ℕ
hm : n ∣ m
hd : m ∣ d
⊢ (unitsMap hm).comp (unitsMap hd) = unitsMap ⋯
state_after: n m d : ℕ
hm : n ∣ m
hd : m ∣ d
⊢ (Units.map ↑(castHom hm (ZMod n))).comp (Units.map ↑(castHom hd (ZMod m))) = Units.map ↑(castHom ⋯ (ZMod n))

tactic: rw [← Units.map_comp]
state_before: n m d : ℕ
hm : n ∣ m
hd : m ∣ d
⊢ (Units.map ↑(castHom hm (ZMod n))).comp (Units.map ↑(castHom hd (ZMod m))) = Units.map ↑(castHom ⋯ (ZMod n))
state_after: n m d : ℕ
hm : n ∣ m
hd : m ∣ d
⊢ Units.map ((↑(castHom hm (ZMod n))).comp ↑(castHom hd (ZMod m))) = Units.map ↑(castHom ⋯ (ZMod n))

tactic: exact congr_arg Units.map <| congr_arg RingHom.toMonoidHom <| castHom_comp hm hd
state_before: n m d : ℕ
hm : n ∣ m
hd : m ∣ d
⊢ Units.map ((↑(castHom hm (ZMod n))).comp ↑(castHom hd (ZMod m))) = Units.map ↑(castHom ⋯ (ZMod n))
state_after: no goals
Theorem: PNat.Prime.not_dvd_one
File: Mathlib/Data/PNat/Prime.lean

tactic: rw [dvd_iff]
state_before: p : ℕ+
pp : p.Prime
⊢ ¬p ∣ 1
state_after: p : ℕ+
pp : p.Prime
⊢ ¬↑p ∣ ↑1

tactic: apply Nat.Prime.not_dvd_one pp
state_before: p : ℕ+
pp : p.Prime
⊢ ¬↑p ∣ ↑1
state_after: no goals
Theorem: Cardinal.denumerable_iff
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: cases' Quotient.exact h with f
state_before: α✝ β α : Type u
h : #α = ℵ₀
⊢ Nonempty (Denumerable α)
state_after: case intro
α✝ β α : Type u
h : #α = ℵ₀
f : α ≃ ULift.{u, 0} ℕ
⊢ Nonempty (Denumerable α)

tactic: exact ⟨Denumerable.mk' <| f.trans Equiv.ulift⟩
state_before: case intro
α✝ β α : Type u
h : #α = ℵ₀
f : α ≃ ULift.{u, 0} ℕ
⊢ Nonempty (Denumerable α)
state_after: no goals
Theorem: Bornology.IsBounded.inv
File: Mathlib/Analysis/Normed/Group/Pointwise.lean

tactic: simp_rw [isBounded_iff_forall_norm_le', ← image_inv, forall_mem_image, norm_inv']
state_before: E : Type u_1
inst✝ : SeminormedGroup E
ε δ : ℝ
s t : Set E
x y : E
⊢ IsBounded s → IsBounded s⁻¹
state_after: E : Type u_1
inst✝ : SeminormedGroup E
ε δ : ℝ
s t : Set E
x y : E
⊢ (∃ C, ∀ ⦃x : E⦄, x ∈ s → ‖x‖ ≤ C) → ∃ C, ∀ ⦃x : E⦄, x ∈ s → ‖x‖ ≤ C

tactic: exact id
state_before: E : Type u_1
inst✝ : SeminormedGroup E
ε δ : ℝ
s t : Set E
x y : E
⊢ (∃ C, ∀ ⦃x : E⦄, x ∈ s → ‖x‖ ≤ C) → ∃ C, ∀ ⦃x : E⦄, x ∈ s → ‖x‖ ≤ C
state_after: no goals
Theorem: CategoryTheory.Limits.biprod.mapBiprod_inv_map_desc
File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/Biproducts.lean

tactic: ext <;> simp [mapBiprod, ← F.map_comp]
state_before: C : Type u₁
inst✝⁶ : Category.{v₁, u₁} C
D : Type u₂
inst✝⁵ : Category.{v₂, u₂} D
inst✝⁴ : HasZeroMorphisms C
inst✝³ : HasZeroMorphisms D
F : C ⥤ D
inst✝² : F.PreservesZeroMorphisms
X Y : C
inst✝¹ : HasBinaryBiproduct X Y
inst✝ : PreservesBinaryBiproduct X Y F
W : C
f : X ⟶ W
g : Y ⟶ W
⊢ (F.mapBiprod X Y).inv ≫ F.map (desc f g) = desc (F.map f) (F.map g)
state_after: no goals
Theorem: LieModule.chainBot_neg
File: Mathlib/Algebra/Lie/Weights/Chain.lean

tactic: ext
state_before: R : Type u_1
L : Type u_2
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
M : Type u_3
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : LieAlgebra.IsNilpotent R L
inst✝² : NoZeroSMulDivisors ℤ R
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : IsNoetherian R M
α : L → R
β : Weight R L M
hα : α ≠ 0
⊢ chainBot (-α) β = chainTop α β
state_after: case h
R : Type u_1
L : Type u_2
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
M : Type u_3
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : LieAlgebra.IsNilpotent R L
inst✝² : NoZeroSMulDivisors ℤ R
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : IsNoetherian R M
α : L → R
β : Weight R L M
hα : α ≠ 0
x✝ : L
⊢ (chainBot (-α) β) x✝ = (chainTop α β) x✝

tactic: simp
state_before: case h
R : Type u_1
L : Type u_2
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
M : Type u_3
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : LieAlgebra.IsNilpotent R L
inst✝² : NoZeroSMulDivisors ℤ R
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : IsNoetherian R M
α : L → R
β : Weight R L M
hα : α ≠ 0
x✝ : L
⊢ (chainBot (-α) β) x✝ = (chainTop α β) x✝
state_after: no goals
Theorem: Ideal.ramificationIdx_bot
File: Mathlib/NumberTheory/RamificationInertia.lean

tactic: simp
state_before: R : Type u
inst✝¹ : CommRing R
S : Type v
inst✝ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
n : ℕ
hn : ∀ a ∈ {n | map f ⊥ ≤ P ^ n}, a ≤ n
⊢ n.succ ∈ {n | map f ⊥ ≤ P ^ n}
state_after: no goals
Theorem: IsHilbertSum.mkInternal
File: Mathlib/Analysis/InnerProductSpace/l2Space.lean

tactic: simpa [subtypeₗᵢ_toLinearMap, range_subtype] using hFtotal
state_before: ι : Type u_1
𝕜 : Type u_2
inst✝⁵ : RCLike 𝕜
E : Type u_3
inst✝⁴ : NormedAddCommGroup E
inst✝³ : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝² : (i : ι) → NormedAddCommGroup (G i)
inst✝¹ : (i : ι) → InnerProductSpace 𝕜 (G i)
V : (i : ι) → G i →ₗᵢ[𝕜] E
F : ι → Submodule 𝕜 E
inst✝ : ∀ (i : ι), CompleteSpace ↥(F i)
hFortho : OrthogonalFamily 𝕜 (fun i => ↥(F i)) fun i => (F i).subtypeₗᵢ
hFtotal : ⊤ ≤ (⨆ i, F i).topologicalClosure
⊢ ⊤ ≤ (⨆ i, LinearMap.range (F i).subtypeₗᵢ.toLinearMap).topologicalClosure
state_after: no goals
Theorem: EReal.continuousAt_add_top_top
File: Mathlib/Topology/Instances/EReal.lean

tactic: simp only [ContinuousAt, tendsto_nhds_top_iff_real, top_add_top]
state_before: α : Type u_1
inst✝ : TopologicalSpace α
⊢ ContinuousAt (fun p => p.1 + p.2) (⊤, ⊤)
state_after: α : Type u_1
inst✝ : TopologicalSpace α
⊢ ∀ (x : ℝ), ∀ᶠ (a : EReal × EReal) in 𝓝 (⊤, ⊤), ↑x < a.1 + a.2

tactic: refine fun r ↦ ((lt_mem_nhds (coe_lt_top 0)).prod_nhds
  (lt_mem_nhds <| coe_lt_top r)).mono fun _ h ↦ ?_
state_before: α : Type u_1
inst✝ : TopologicalSpace α
⊢ ∀ (x : ℝ), ∀ᶠ (a : EReal × EReal) in 𝓝 (⊤, ⊤), ↑x < a.1 + a.2
state_after: α : Type u_1
inst✝ : TopologicalSpace α
r : ℝ
x✝ : EReal × EReal
h : ↑0 < x✝.1 ∧ ↑r < x✝.2
⊢ ↑r < x✝.1 + x✝.2

tactic: simpa only [coe_zero, zero_add] using add_lt_add h.1 h.2
state_before: α : Type u_1
inst✝ : TopologicalSpace α
r : ℝ
x✝ : EReal × EReal
h : ↑0 < x✝.1 ∧ ↑r < x✝.2
⊢ ↑r < x✝.1 + x✝.2
state_after: no goals
Theorem: FirstOrder.Language.Substructure.fg_def
File: Mathlib/ModelTheory/FinitelyGenerated.lean

tactic: rintro ⟨t', h, rfl⟩
state_before: L : Language
M : Type u_1
inst✝ : L.Structure M
N : L.Substructure M
⊢ (∃ S, S.Finite ∧ (closure L).toFun S = N) → N.FG
state_after: case intro.intro
L : Language
M : Type u_1
inst✝ : L.Structure M
t' : Set M
h : t'.Finite
⊢ ((closure L).toFun t').FG

tactic: rcases Finite.exists_finset_coe h with ⟨t, rfl⟩
state_before: case intro.intro
L : Language
M : Type u_1
inst✝ : L.Structure M
t' : Set M
h : t'.Finite
⊢ ((closure L).toFun t').FG
state_after: case intro.intro.intro
L : Language
M : Type u_1
inst✝ : L.Structure M
t : Finset M
h : (↑t).Finite
⊢ ((closure L).toFun ↑t).FG

tactic: exact ⟨t, rfl⟩
state_before: case intro.intro.intro
L : Language
M : Type u_1
inst✝ : L.Structure M
t : Finset M
h : (↑t).Finite
⊢ ((closure L).toFun ↑t).FG
state_after: no goals
Theorem: ENNReal.le_of_forall_lt_one_mul_le
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: rw [one_mul] at this
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x✝ y✝ z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
x y : ℝ≥0∞
h : ∀ a < 1, a * x ≤ y
this : Tendsto (fun x_1 => x_1 * x) (𝓝[<] 1) (𝓝 (1 * x))
⊢ x ≤ y
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x✝ y✝ z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
x y : ℝ≥0∞
h : ∀ a < 1, a * x ≤ y
this : Tendsto (fun x_1 => x_1 * x) (𝓝[<] 1) (𝓝 x)
⊢ x ≤ y

tactic: exact le_of_tendsto this (eventually_nhdsWithin_iff.2 <| eventually_of_forall h)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x✝ y✝ z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
x y : ℝ≥0∞
h : ∀ a < 1, a * x ≤ y
this : Tendsto (fun x_1 => x_1 * x) (𝓝[<] 1) (𝓝 x)
⊢ x ≤ y
state_after: no goals
Theorem: WeierstrassCurve.ΨSq_four
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean

tactic: erw [ΨSq_ofNat, preΨ'_four, if_pos <| by decide]
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
⊢ W.ΨSq 4 = W.preΨ₄ ^ 2 * W.Ψ₂Sq
state_after: no goals

tactic: decide
state_before: R : Type r
S : Type s
inst✝¹ : CommRing R
inst✝ : CommRing S
W : WeierstrassCurve R
⊢ Even 4
state_after: no goals