ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: LieSubmodule.comap_incl_eq_top
File: Mathlib/Algebra/Lie/Submodule.lean

Proof steps:
state_before: R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : M →ₗ⁅R,L⁆ M'
N N₂ : LieSubmodule R L M
N' : LieSubmodule R L M'
⊢ comap N.incl N₂ = ⊤ ↔ N ≤ N₂
state_after: no goals
tactic: rw [← LieSubmodule.coe_toSubmodule_eq_iff, LieSubmodule.coeSubmodule_comap, LieSubmodule.incl_coe,
    LieSubmodule.top_coeSubmodule, Submodule.comap_subtype_eq_top, coeSubmodule_le_coeSubmodule]
Theorem: MeasureTheory.Measure.measurable_dirac
File: Mathlib/MeasureTheory/Measure/GiryMonad.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
⊢ Measurable dirac
state_after: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
hs : MeasurableSet s
⊢ Measurable fun b => (dirac b) s
tactic: refine measurable_of_measurable_coe _ fun s hs => ?_
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
hs : MeasurableSet s
⊢ Measurable fun b => (dirac b) s
state_after: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
hs : MeasurableSet s
⊢ Measurable fun b => s.indicator 1 b
tactic: simp_rw [dirac_apply' _ hs]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
hs : MeasurableSet s
⊢ Measurable fun b => s.indicator 1 b
state_after: no goals
tactic: exact measurable_one.indicator hs
Theorem: CancelDenoms.inv_subst
File: Mathlib/Tactic/CancelDenoms/Core.lean

Proof steps:
state_before: α : Type u_1
inst✝ : Field α
n k e : α
h2 : e ≠ 0
h3 : n * e = k
⊢ k * e⁻¹ = n
state_after: no goals
tactic: rw [← div_eq_mul_inv, ← h3, mul_div_cancel_right₀ _ h2]
Theorem: Vector.continuous_insertNth'
File: Mathlib/Topology/List.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
n : ℕ
i : Fin (n + 1)
x✝ : α × Vector α n
a : α
l : Vector α n
⊢ ContinuousAt (fun p => Vector.insertNth p.1 i p.2) (a, l)
state_after: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
n : ℕ
i : Fin (n + 1)
x✝ : α × Vector α n
a : α
l : Vector α n
⊢ Tendsto (fun p => Vector.insertNth p.1 i p.2) (𝓝 a ×ˢ 𝓝 l) (𝓝 (Vector.insertNth (a, l).1 i (a, l).2))
tactic: rw [ContinuousAt, nhds_prod_eq]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
n : ℕ
i : Fin (n + 1)
x✝ : α × Vector α n
a : α
l : Vector α n
⊢ Tendsto (fun p => Vector.insertNth p.1 i p.2) (𝓝 a ×ˢ 𝓝 l) (𝓝 (Vector.insertNth (a, l).1 i (a, l).2))
state_after: no goals
tactic: exact tendsto_insertNth
Theorem: Quiver.Path.nil_ne_cons
File: Mathlib/Combinatorics/Quiver/Path.lean

Proof steps:
state_before: V : Type u
inst✝ : Quiver V
a b c d : V
p : Path a b
e : b ⟶ a
h : nil = p.cons e
⊢ False
state_after: no goals
tactic: injection h
Theorem: HahnSeries.single_mul_coeff_add
File: Mathlib/RingTheory/HahnSeries/Multiplication.lean

Proof steps:
state_before: Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_4
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
r : R
x : HahnSeries Γ R
a b : Γ
⊢ ((single b) r * x).coeff (a + b) = r * x.coeff a
state_after: Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_4
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
r : R
x : HahnSeries Γ R
a b : Γ
⊢ ((HahnModule.of R).symm ((single b) r • (HahnModule.of R) x)).coeff (b +ᵥ a) = r * x.coeff a
tactic: rw [← of_symm_smul_of_eq_mul, add_comm, ← vadd_eq_add]
state_before: Γ : Type u_1
Γ' : Type u_2
R : Type u_3
V : Type u_4
inst✝¹ : OrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
r : R
x : HahnSeries Γ R
a b : Γ
⊢ ((HahnModule.of R).symm ((single b) r • (HahnModule.of R) x)).coeff (b +ᵥ a) = r * x.coeff a
state_after: no goals
tactic: exact HahnModule.single_smul_coeff_add
Theorem: Finset.orderIsoColex_apply_ofColex
File: Mathlib/Combinatorics/Colex.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
s t : Finset ℕ
n : ℕ
⊢ ∀ {a b : ℕ},
    { toFun := fun n => { ofColex := equivBitIndices n }, invFun := fun s => equivBitIndices.symm s.ofColex,
            left_inv := ⋯, right_inv := ⋯ }
          a ≤
        { toFun := fun n => { ofColex := equivBitIndices n }, invFun := fun s => equivBitIndices.symm s.ofColex,
            left_inv := ⋯, right_inv := ⋯ }
          b ↔
      a ≤ b
state_after: no goals
tactic: simp [← (Finset.geomSum_le_geomSum_iff_toColex_le_toColex rfl.le),
    toFinset_bitIndices_twoPowSum]
Theorem: Matrix.upper_two_blockTriangular
File: Mathlib/LinearAlgebra/Matrix/Block.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
o : Type u_5
m' : α → Type u_6
n' : α → Type u_7
R : Type v
inst✝¹ : CommRing R
M N : Matrix m m R
b✝ : m → α
inst✝ : Preorder α
A : Matrix m m R
B : Matrix m n R
D : Matrix n n R
a b : α
hab : a < b
⊢ (fromBlocks A B 0 D).BlockTriangular (Sum.elim (fun x => a) fun x => b)
state_after: no goals
tactic: rintro (c | c) (d | d) hcd <;> first | simp [hab.not_lt] at hcd ⊢
Theorem: Ordinal.derivFamily_fp
File: Mathlib/SetTheory/Ordinal/FixedPoint.lean

Proof steps:
state_before: ι : Type u
f : ι → Ordinal.{max u v} → Ordinal.{max u v}
i : ι
H : IsNormal (f i)
o : Ordinal.{max u v}
⊢ f i (derivFamily f o) = derivFamily f o
state_after: case H₁
ι : Type u
f : ι → Ordinal.{max u v} → Ordinal.{max u v}
i : ι
H : IsNormal (f i)
⊢ f i (derivFamily f 0) = derivFamily f 0

case H₂
ι : Type u
f : ι → Ordinal.{max u v} → Ordinal.{max u v}
i : ι
H : IsNormal (f i)
o : Ordinal.{max u v}
a✝ : f i (derivFamily f o) = derivFamily f o
⊢ f i (derivFamily f (succ o)) = derivFamily f (succ o)

case H₃
ι : Type u
f : ι → Ordinal.{max u v} → Ordinal.{max u v}
i : ι
H : IsNormal (f i)
o : Ordinal.{max u v}
l : o.IsLimit
IH : ∀ o' < o, f i (derivFamily f o') = derivFamily f o'
⊢ f i (derivFamily f o) = derivFamily f o
tactic: induction' o using limitRecOn with o _ o l IH
Theorem: biInter_basis_nhds
File: Mathlib/Topology/Separation.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : T1Space X
ι : Sort u_3
p : ι → Prop
s : ι → Set X
x : X
h : (𝓝 x).HasBasis p s
⊢ ⋂ i, ⋂ (_ : p i), s i = {x}
state_after: no goals
tactic: rw [← h.ker, ker_nhds]
Theorem: Set.subset_pair_iff
File: Mathlib/Data/Set/Basic.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s s₁ s₂ t t₁ t₂ u : Set α
⊢ s ⊆ {a, b} ↔ ∀ x ∈ s, x = a ∨ x = b
state_after: no goals
tactic: simp [subset_def]
Theorem: PartialEquiv.restr_trans
File: Mathlib/Logic/Equiv/PartialEquiv.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e : PartialEquiv α β
e' : PartialEquiv β γ
s : Set α
⊢ ((e.restr s).trans e').source = ((e.trans e').restr s).source
state_after: no goals
tactic: simp [trans_source, inter_comm, inter_assoc]
Theorem: MeasureTheory.integrable_withDensity_iff
File: Mathlib/MeasureTheory/Function/L1Space.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : Measurable f
hflt : ∀ᵐ (x : α) ∂μ, f x < ⊤
g : α → ℝ
⊢ Integrable g (μ.withDensity f) ↔ Integrable (fun x => g x * (f x).toReal) μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : Measurable f
hflt : ∀ᵐ (x : α) ∂μ, f x < ⊤
g : α → ℝ
this : (fun x => g x * (f x).toReal) = fun x => (f x).toReal • g x
⊢ Integrable g (μ.withDensity f) ↔ Integrable (fun x => g x * (f x).toReal) μ
tactic: have : (fun x => g x * (f x).toReal) = fun x => (f x).toReal • g x := by simp [mul_comm]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : Measurable f
hflt : ∀ᵐ (x : α) ∂μ, f x < ⊤
g : α → ℝ
this : (fun x => g x * (f x).toReal) = fun x => (f x).toReal • g x
⊢ Integrable g (μ.withDensity f) ↔ Integrable (fun x => g x * (f x).toReal) μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : Measurable f
hflt : ∀ᵐ (x : α) ∂μ, f x < ⊤
g : α → ℝ
this : (fun x => g x * (f x).toReal) = fun x => (f x).toReal • g x
⊢ Integrable g (μ.withDensity f) ↔ Integrable (fun x => (f x).toReal • g x) μ
tactic: rw [this]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : Measurable f
hflt : ∀ᵐ (x : α) ∂μ, f x < ⊤
g : α → ℝ
this : (fun x => g x * (f x).toReal) = fun x => (f x).toReal • g x
⊢ Integrable g (μ.withDensity f) ↔ Integrable (fun x => (f x).toReal • g x) μ
state_after: no goals
tactic: exact integrable_withDensity_iff_integrable_smul' hf hflt
Theorem: AddMonoidHom.noncommCoprod_apply
File: Mathlib/GroupTheory/NoncommCoprod.lean

Proof steps:
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : Monoid P
f : M →* P
g : N →* P
comm : ∀ (m : M) (n : N), Commute (f m) (g n)
⊢ (fun mn => f mn.1 * g mn.2) 1 = 1
state_after: no goals
tactic: simp only [Prod.fst_one, Prod.snd_one, map_one, mul_one]
Theorem: Algebraic.cardinal_mk_le_mul
File: Mathlib/Algebra/AlgebraicCard.lean

Proof steps:
state_before: R A : Type u
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : IsDomain A
inst✝¹ : Algebra R A
inst✝ : NoZeroSMulDivisors R A
⊢ #{ x // IsAlgebraic R x } ≤ #R[X] * ℵ₀
state_after: R A : Type u
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : IsDomain A
inst✝¹ : Algebra R A
inst✝ : NoZeroSMulDivisors R A
⊢ lift.{u, u} #{ x // IsAlgebraic R x } ≤ lift.{u, u} #R[X] * ℵ₀
tactic: rw [← lift_id #_, ← lift_id #R[X]]
state_before: R A : Type u
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : IsDomain A
inst✝¹ : Algebra R A
inst✝ : NoZeroSMulDivisors R A
⊢ lift.{u, u} #{ x // IsAlgebraic R x } ≤ lift.{u, u} #R[X] * ℵ₀
state_after: no goals
tactic: exact cardinal_mk_lift_le_mul R A
Theorem: NumberField.Units.dirichletUnitTheorem.seq_norm_le
File: Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean

Proof steps:
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
w₁ : InfinitePlace K
B : ℕ
hB : minkowskiBound K 1 < ↑(convexBodyLTFactor K) * ↑B
n : ℕ
⊢ ((Algebra.norm ℤ) ↑(seq K w₁ hB n)).natAbs ≤ B
state_after: no goals
tactic: cases n with
  | zero =>
      have : 1 ≤ B := by
        contrapose! hB
        simp only [Nat.lt_one_iff.mp hB, CharP.cast_eq_zero, mul_zero, zero_le]
      simp only [ne_eq, seq, map_one, Int.natAbs_one, this]
  | succ n =>
      rw [← Nat.cast_le (α := ℚ), Int.cast_natAbs, Int.cast_abs, Algebra.coe_norm_int]
      exact (seq_next K w₁ hB (seq K w₁ hB n).prop).choose_spec.2.2
Theorem: OnePoint.continuousAt_infty
File: Mathlib/Topology/Compactification/OnePoint.lean

Proof steps:
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
s : Set (OnePoint X)
t : Set X
Y : Type u_2
inst✝ : TopologicalSpace Y
f : OnePoint X → Y
⊢ Tendsto (f ∘ some) (coclosedCompact X) (𝓝 (f ∞)) ↔
    ∀ s ∈ 𝓝 (f ∞), ∃ t, IsClosed t ∧ IsCompact t ∧ MapsTo (f ∘ some) tᶜ s
state_after: no goals
tactic: simp only [hasBasis_coclosedCompact.tendsto_left_iff, and_assoc]
Theorem: List.head_mem
File: Mathlib/Data/List/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ l : List α
⊢ ∀ (h : l ≠ []), l.head h ∈ l
state_after: no goals
tactic: cases l <;> simp
Theorem: HomologicalComplex.dFrom_eq
File: Mathlib/Algebra/Homology/HomologicalComplex.lean

Proof steps:
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i j : ι
r : c.Rel i j
⊢ C.dFrom i = C.d i j ≫ (C.xNextIso r).inv
state_after: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i : ι
r : c.Rel i (c.next i)
⊢ C.dFrom i = C.d i (c.next i) ≫ (C.xNextIso r).inv
tactic: obtain rfl := c.next_eq' r
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i : ι
r : c.Rel i (c.next i)
⊢ C.dFrom i = C.d i (c.next i) ≫ (C.xNextIso r).inv
state_after: no goals
tactic: exact (Category.comp_id _).symm
Theorem: iInter_Iic_eq_empty_iff
File: Mathlib/Order/Interval/Set/Disjoint.lean

Proof steps:
state_before: ι : Sort u
α : Type v
β : Type w
inst✝ : LinearOrder α
s : Set α
a : α
f : ι → α
⊢ ⋂ i, Iic (f i) = ∅ ↔ ¬BddBelow (range f)
state_after: no goals
tactic: simp [not_bddBelow_iff, Set.eq_empty_iff_forall_not_mem]
Theorem: egauge_ball_le_of_one_lt_norm
File: Mathlib/Analysis/Convex/EGauge.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
r : ℝ≥0
hc : 1 < ‖c‖
h₀ : r ≠ 0 ∨ x ≠ 0
⊢ egauge 𝕜 (ball 0 ↑r) x ≤ ↑‖c‖₊ * ↑‖x‖₊ / ↑r
state_after: case inl
𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
hc : 1 < ‖c‖
h₀ : 0 ≠ 0 ∨ x ≠ 0
⊢ egauge 𝕜 (ball 0 ↑0) x ≤ ↑‖c‖₊ * ↑‖x‖₊ / ↑0

case inr
𝕜 : Type u_1
inst✝² : NormedField 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
c : 𝕜
s t : Set E
x y : E
r : ℝ≥0
hc : 1 < ‖c‖
h₀ : r ≠ 0 ∨ x ≠ 0
hr : 0 < r
⊢ egauge 𝕜 (ball 0 ↑r) x ≤ ↑‖c‖₊ * ↑‖x‖₊ / ↑r
tactic: rcases (zero_le r).eq_or_lt with rfl | hr
Theorem: Finset.mulETransformLeft.card
File: Mathlib/Combinatorics/Additive/ETransform.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Group α
e : α
x : Finset α × Finset α
⊢ x.1.card + (op e • x.1).card = 2 * x.1.card
state_after: no goals
tactic: rw [card_smul_finset, two_mul]
Theorem: Filter.cofinite.limsup_set_eq
File: Mathlib/Order/LiminfLimsup.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
p : ι → Prop
s : ι → Set α
𝓕 : Filter ι
a : α
⊢ limsup s cofinite = {x | {n | x ∈ s n}.Infinite}
state_after: no goals
tactic: simp only [← cofinite.blimsup_true s, cofinite.blimsup_set_eq, true_and_iff]
Theorem: IsPrimitiveRoot.minpoly_eq_cyclotomic_of_irreducible
File: Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean

Proof steps:
state_before: R✝ : Type u_1
inst✝⁵ : CommRing R✝
n✝ : ℕ
K : Type u_2
inst✝⁴ : Field K
R : Type u_3
inst✝³ : CommRing R
inst✝² : IsDomain R
μ : R
n : ℕ
inst✝¹ : Algebra K R
hμ : IsPrimitiveRoot μ n
h : Irreducible (cyclotomic n K)
inst✝ : NeZero ↑n
⊢ cyclotomic n K = minpoly K μ
state_after: R✝ : Type u_1
inst✝⁵ : CommRing R✝
n✝ : ℕ
K : Type u_2
inst✝⁴ : Field K
R : Type u_3
inst✝³ : CommRing R
inst✝² : IsDomain R
μ : R
n : ℕ
inst✝¹ : Algebra K R
hμ : IsPrimitiveRoot μ n
h : Irreducible (cyclotomic n K)
inst✝ : NeZero ↑n
this : NeZero ↑n
⊢ cyclotomic n K = minpoly K μ
tactic: haveI := NeZero.of_noZeroSMulDivisors K R n
state_before: R✝ : Type u_1
inst✝⁵ : CommRing R✝
n✝ : ℕ
K : Type u_2
inst✝⁴ : Field K
R : Type u_3
inst✝³ : CommRing R
inst✝² : IsDomain R
μ : R
n : ℕ
inst✝¹ : Algebra K R
hμ : IsPrimitiveRoot μ n
h : Irreducible (cyclotomic n K)
inst✝ : NeZero ↑n
this : NeZero ↑n
⊢ cyclotomic n K = minpoly K μ
state_after: R✝ : Type u_1
inst✝⁵ : CommRing R✝
n✝ : ℕ
K : Type u_2
inst✝⁴ : Field K
R : Type u_3
inst✝³ : CommRing R
inst✝² : IsDomain R
μ : R
n : ℕ
inst✝¹ : Algebra K R
hμ : IsPrimitiveRoot μ n
h : Irreducible (cyclotomic n K)
inst✝ : NeZero ↑n
this : NeZero ↑n
⊢ (aeval μ) (cyclotomic n K) = 0
tactic: refine minpoly.eq_of_irreducible_of_monic h ?_ (cyclotomic.monic n K)
state_before: R✝ : Type u_1
inst✝⁵ : CommRing R✝
n✝ : ℕ
K : Type u_2
inst✝⁴ : Field K
R : Type u_3
inst✝³ : CommRing R
inst✝² : IsDomain R
μ : R
n : ℕ
inst✝¹ : Algebra K R
hμ : IsPrimitiveRoot μ n
h : Irreducible (cyclotomic n K)
inst✝ : NeZero ↑n
this : NeZero ↑n
⊢ (aeval μ) (cyclotomic n K) = 0
state_after: no goals
tactic: rwa [aeval_def, eval₂_eq_eval_map, map_cyclotomic, ← IsRoot.def, isRoot_cyclotomic_iff]
Theorem: symmDiff_comm
File: Mathlib/Order/SymmDiff.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedCoheytingAlgebra α
a b c d : α
⊢ a ∆ b = b ∆ a
state_after: no goals
tactic: simp only [symmDiff, sup_comm]
Theorem: LinearMap.map_eq_top_iff
File: Mathlib/LinearAlgebra/Span.lean

Proof steps:
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✝⁷ : Semiring R₂
inst✝⁶ : AddCommGroup M
inst✝⁵ : AddCommGroup M₂
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
τ₁₂ : R →+* R₂
inst✝² : RingHomSurjective τ₁₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F τ₁₂ M M₂
f : F
hf : range f = ⊤
p : Submodule R M
⊢ map f p = ⊤ ↔ p ⊔ ker f = ⊤
state_after: no goals
tactic: simp_rw [← top_le_iff, ← hf, range_eq_map, LinearMap.map_le_map_iff]
Theorem: MeasureTheory.VectorMeasure.neg_le_neg
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝² : TopologicalSpace M
inst✝¹ : OrderedAddCommGroup M
inst✝ : TopologicalAddGroup M
v w : VectorMeasure α M
i : Set α
hi : MeasurableSet i
h : v.restrict i ≤ w.restrict i
⊢ (-w).restrict i ≤ (-v).restrict i
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝² : TopologicalSpace M
inst✝¹ : OrderedAddCommGroup M
inst✝ : TopologicalAddGroup M
v w : VectorMeasure α M
i : Set α
hi : MeasurableSet i
h : v.restrict i ≤ w.restrict i
j : Set α
hj₁ : MeasurableSet j
⊢ ↑((-w).restrict i) j ≤ ↑((-v).restrict i) j
tactic: intro j hj₁
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝² : TopologicalSpace M
inst✝¹ : OrderedAddCommGroup M
inst✝ : TopologicalAddGroup M
v w : VectorMeasure α M
i : Set α
hi : MeasurableSet i
h : v.restrict i ≤ w.restrict i
j : Set α
hj₁ : MeasurableSet j
⊢ ↑((-w).restrict i) j ≤ ↑((-v).restrict i) j
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝² : TopologicalSpace M
inst✝¹ : OrderedAddCommGroup M
inst✝ : TopologicalAddGroup M
v w : VectorMeasure α M
i : Set α
hi : MeasurableSet i
h : v.restrict i ≤ w.restrict i
j : Set α
hj₁ : MeasurableSet j
⊢ -↑w (j ∩ i) ≤ -↑v (j ∩ i)
tactic: rw [restrict_apply _ hi hj₁, restrict_apply _ hi hj₁, neg_apply, neg_apply]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝² : TopologicalSpace M
inst✝¹ : OrderedAddCommGroup M
inst✝ : TopologicalAddGroup M
v w : VectorMeasure α M
i : Set α
hi : MeasurableSet i
h : v.restrict i ≤ w.restrict i
j : Set α
hj₁ : MeasurableSet j
⊢ -↑w (j ∩ i) ≤ -↑v (j ∩ i)
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝² : TopologicalSpace M
inst✝¹ : OrderedAddCommGroup M
inst✝ : TopologicalAddGroup M
v w : VectorMeasure α M
i : Set α
hi : MeasurableSet i
h : v.restrict i ≤ w.restrict i
j : Set α
hj₁ : MeasurableSet j
⊢ ↑v (j ∩ i) ≤ ↑w (j ∩ i)
tactic: refine neg_le_neg ?_
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝² : TopologicalSpace M
inst✝¹ : OrderedAddCommGroup M
inst✝ : TopologicalAddGroup M
v w : VectorMeasure α M
i : Set α
hi : MeasurableSet i
h : v.restrict i ≤ w.restrict i
j : Set α
hj₁ : MeasurableSet j
⊢ ↑v (j ∩ i) ≤ ↑w (j ∩ i)
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝² : TopologicalSpace M
inst✝¹ : OrderedAddCommGroup M
inst✝ : TopologicalAddGroup M
v w : VectorMeasure α M
i : Set α
hi : MeasurableSet i
h : v.restrict i ≤ w.restrict i
j : Set α
hj₁ : MeasurableSet j
⊢ ↑(v.restrict i) j ≤ ↑(w.restrict i) j
tactic: rw [← restrict_apply _ hi hj₁, ← restrict_apply _ hi hj₁]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
M : Type u_3
inst✝² : TopologicalSpace M
inst✝¹ : OrderedAddCommGroup M
inst✝ : TopologicalAddGroup M
v w : VectorMeasure α M
i : Set α
hi : MeasurableSet i
h : v.restrict i ≤ w.restrict i
j : Set α
hj₁ : MeasurableSet j
⊢ ↑(v.restrict i) j ≤ ↑(w.restrict i) j
state_after: no goals
tactic: exact h j hj₁
Theorem: List.foldl_fixed'
File: Mathlib/Data/List/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : α → β → α
a : α
hf : ∀ (b : β), f a b = a
b : β
l : List β
⊢ foldl f a (b :: l) = a
state_after: no goals
tactic: rw [foldl_cons, hf b, foldl_fixed' hf l]
Theorem: vadd_closedBall''
File: Mathlib/Analysis/Normed/Group/Basic.lean

Proof steps:
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✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
⊢ a • closedBall b r = closedBall (a • b) r
state_after: case h
𝓕 : 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✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
x✝ : E
⊢ x✝ ∈ a • closedBall b r ↔ x✝ ∈ closedBall (a • b) r
tactic: ext
state_before: case h
𝓕 : 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✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
x✝ : E
⊢ x✝ ∈ a • closedBall b r ↔ x✝ ∈ closedBall (a • b) r
state_after: no goals
tactic: simp [mem_closedBall, Set.mem_smul_set, dist_eq_norm_div, _root_.div_eq_inv_mul, ←
    eq_inv_mul_iff_mul_eq, mul_assoc]
Theorem: Profinite.finiteCoproduct.ι_injective
File: Mathlib/Topology/Category/Profinite/Limits.lean

Proof steps:
state_before: α : Type w
inst✝ : Finite α
X : α → Profinite
a : α
⊢ Function.Injective ⇑(ι X a)
state_after: α : Type w
inst✝ : Finite α
X : α → Profinite
a : α
x y : (forget Profinite).obj (X a)
hxy : (ι X a) x = (ι X a) y
⊢ x = y
tactic: intro x y hxy
state_before: α : Type w
inst✝ : Finite α
X : α → Profinite
a : α
x y : (forget Profinite).obj (X a)
hxy : (ι X a) x = (ι X a) y
⊢ x = y
state_after: no goals
tactic: exact eq_of_heq (Sigma.ext_iff.mp hxy).2
Theorem: Rat.mk_denom_ne_zero_of_ne_zero
File: Mathlib/Data/Rat/Defs.lean

Proof steps:
state_before: q✝ a b c q : ℚ
n d : ℤ
hq : q ≠ 0
hqnd : q = n /. d
this : d = 0
⊢ q = 0
state_after: no goals
tactic: simpa [this] using hqnd
Theorem: DFinsupp.Lex.wellFounded
File: Mathlib/Data/DFinsupp/WellFounded.lean

Proof steps:
state_before: ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → Zero (α i)
r : ι → ι → Prop
s : (i : ι) → α i → α i → Prop
hbot : ∀ ⦃i : ι⦄ ⦃a : α i⦄, ¬s i a 0
hs : ∀ (i : ι), WellFounded (s i)
hr : WellFounded (rᶜ ⊓ fun x x_1 => x ≠ x_1)
x : Π₀ (i : ι), α i
⊢ Acc (DFinsupp.Lex r s) x
state_after: no goals
tactic: classical exact Lex.acc hbot hs x fun i _ => hr.apply i
Theorem: le_sub_iff_add_le
File: Mathlib/Algebra/Order/Group/Unbundled/Basic.lean

Proof steps:
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c d : α
⊢ a ≤ c / b ↔ a * b ≤ c
state_after: no goals
tactic: rw [← mul_le_mul_iff_right b, div_eq_mul_inv, inv_mul_cancel_right]