tasksource/leandojo huggingface dataset:
Theorem: Ideal.isMaximal_comap_of_isIntegral_of_isMaximal
File: Mathlib/RingTheory/Ideal/Over.lean

tactic: refine' Ideal.Quotient.maximal_of_isField _ _
state_before: R : Type u_1
inst✝² : CommRing R
S : Type u_2
inst✝¹ : CommRing S
f : R →+* S
I✝ J : Ideal S
inst✝ : Algebra R S
hRS : Algebra.IsIntegral R S
I : Ideal S
hI : IsMaximal I
⊢ IsMaximal (comap (algebraMap R S) I)

tactic: haveI : IsPrime (I.comap (algebraMap R S)) := comap_isPrime _ _
state_before: R : Type u_1
inst✝² : CommRing R
S : Type u_2
inst✝¹ : CommRing S
f : R →+* S
I✝ J : Ideal S
inst✝ : Algebra R S
hRS : Algebra.IsIntegral R S
I : Ideal S
hI : IsMaximal I
⊢ IsField (R ⧸ comap (algebraMap R S) I)

tactic: exact
  isField_of_isIntegral_of_isField (isIntegral_quotient_of_isIntegral hRS)
    algebraMap_quotient_injective (by rwa [← Quotient.maximal_ideal_iff_isField_quotient])
state_before: R : Type u_1
inst✝² : CommRing R
S : Type u_2
inst✝¹ : CommRing S
f : R →+* S
I✝ J : Ideal S
inst✝ : Algebra R S
hRS : Algebra.IsIntegral R S
I : Ideal S
hI : IsMaximal I
this : IsPrime (comap (algebraMap R S) I)
⊢ IsField (R ⧸ comap (algebraMap R S) I)

tactic: rwa [← Quotient.maximal_ideal_iff_isField_quotient]
state_before: R : Type u_1
inst✝² : CommRing R
S : Type u_2
inst✝¹ : CommRing S
f : R →+* S
I✝ J : Ideal S
inst✝ : Algebra R S
hRS : Algebra.IsIntegral R S
I : Ideal S
hI : IsMaximal I
this : IsPrime (comap (algebraMap R S) I)
⊢ IsField (S ⧸ I)
Theorem: Int.units_sq
File: Mathlib/Data/Int/Order/Units.lean

tactic: rw [Units.ext_iff, Units.val_pow_eq_pow_val, Units.val_one, isUnit_sq u.isUnit]
state_before: u : ℤˣ
⊢ u ^ 2 = 1
Theorem: charP_of_ne_zero
File: Mathlib/Algebra/CharP/Basic.lean

tactic: have H : (n : R) = 0 := by rw [← hn, CharP.cast_card_eq_zero]
state_before: R : Type u_1
inst✝¹ : NonAssocRing R
inst✝ : Fintype R
n : ℕ
hn : Fintype.card R = n
hR : ∀ (i : ℕ), i < n → ↑i = 0 → i = 0
⊢ ∀ (x : ℕ), ↑x = 0 ↔ n ∣ x

tactic: intro k
state_before: R : Type u_1
inst✝¹ : NonAssocRing R
inst✝ : Fintype R
n : ℕ
hn : Fintype.card R = n
hR : ∀ (i : ℕ), i < n → ↑i = 0 → i = 0
H : ↑n = 0
⊢ ∀ (x : ℕ), ↑x = 0 ↔ n ∣ x

tactic: constructor
state_before: R : Type u_1
inst✝¹ : NonAssocRing R
inst✝ : Fintype R
n : ℕ
hn : Fintype.card R = n
hR : ∀ (i : ℕ), i < n → ↑i = 0 → i = 0
H : ↑n = 0
k : ℕ
⊢ ↑k = 0 ↔ n ∣ k

tactic: rw [← hn, CharP.cast_card_eq_zero]
state_before: R : Type u_1
inst✝¹ : NonAssocRing R
inst✝ : Fintype R
n : ℕ
hn : Fintype.card R = n
hR : ∀ (i : ℕ), i < n → ↑i = 0 → i = 0
⊢ ↑n = 0

tactic: intro h
state_before: case mp
R : Type u_1
inst✝¹ : NonAssocRing R
inst✝ : Fintype R
n : ℕ
hn : Fintype.card R = n
hR : ∀ (i : ℕ), i < n → ↑i = 0 → i = 0
H : ↑n = 0
k : ℕ
⊢ ↑k = 0 → n ∣ k

tactic: rw [← Nat.mod_add_div k n, Nat.cast_add, Nat.cast_mul, H, MulZeroClass.zero_mul,
  add_zero] at h
state_before: case mp
R : Type u_1
inst✝¹ : NonAssocRing R
inst✝ : Fintype R
n : ℕ
hn : Fintype.card R = n
hR : ∀ (i : ℕ), i < n → ↑i = 0 → i = 0
H : ↑n = 0
k : ℕ
h : ↑k = 0
⊢ n ∣ k

tactic: rw [Nat.dvd_iff_mod_eq_zero]
state_before: case mp
R : Type u_1
inst✝¹ : NonAssocRing R
inst✝ : Fintype R
n : ℕ
hn : Fintype.card R = n
hR : ∀ (i : ℕ), i < n → ↑i = 0 → i = 0
H : ↑n = 0
k : ℕ
h : ↑(k % n) = 0
⊢ n ∣ k

tactic: apply hR _ (Nat.mod_lt _ _) h
state_before: case mp
R : Type u_1
inst✝¹ : NonAssocRing R
inst✝ : Fintype R
n : ℕ
hn : Fintype.card R = n
hR : ∀ (i : ℕ), i < n → ↑i = 0 → i = 0
H : ↑n = 0
k : ℕ
h : ↑(k % n) = 0
⊢ k % n = 0

tactic: rw [← hn, gt_iff_lt, Fintype.card_pos_iff]
state_before: R : Type u_1
inst✝¹ : NonAssocRing R
inst✝ : Fintype R
n : ℕ
hn : Fintype.card R = n
hR : ∀ (i : ℕ), i < n → ↑i = 0 → i = 0
H : ↑n = 0
k : ℕ
h : ↑(k % n) = 0
⊢ n > 0

tactic: exact ⟨0⟩
state_before: R : Type u_1
inst✝¹ : NonAssocRing R
inst✝ : Fintype R
n : ℕ
hn : Fintype.card R = n
hR : ∀ (i : ℕ), i < n → ↑i = 0 → i = 0
H : ↑n = 0
k : ℕ
h : ↑(k % n) = 0
⊢ Nonempty R

tactic: rintro ⟨k, rfl⟩
state_before: case mpr
R : Type u_1
inst✝¹ : NonAssocRing R
inst✝ : Fintype R
n : ℕ
hn : Fintype.card R = n
hR : ∀ (i : ℕ), i < n → ↑i = 0 → i = 0
H : ↑n = 0
k : ℕ
⊢ n ∣ k → ↑k = 0

tactic: rw [Nat.cast_mul, H, MulZeroClass.zero_mul]
state_before: case mpr.intro
R : Type u_1
inst✝¹ : NonAssocRing R
inst✝ : Fintype R
n : ℕ
hn : Fintype.card R = n
hR : ∀ (i : ℕ), i < n → ↑i = 0 → i = 0
H : ↑n = 0
k : ℕ
⊢ ↑(n * k) = 0
Theorem: Polynomial.eq_zero_of_dvd_of_degree_lt
File: Mathlib/Data/Polynomial/RingDivision.lean

tactic: by_contra hc
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p✝ q✝ p q : R[X]
h₁ : p ∣ q
h₂ : degree q < degree p
⊢ q = 0

tactic: exact (lt_iff_not_ge _ _).mp h₂ (degree_le_of_dvd h₁ hc)
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : Semiring R
inst✝ : NoZeroDivisors R
p✝ q✝ p q : R[X]
h₁ : p ∣ q
h₂ : degree q < degree p
hc : ¬q = 0
⊢ False
Theorem: Set.ball_image_iff
File: Mathlib/Data/Set/Image.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.21814
ι : Sort ?u.21817
ι' : Sort ?u.21820
f✝ : α → β
s✝ t : Set α
f : α → β
s : Set α
p : β → Prop
⊢ (∀ (y : β), y ∈ f '' s → p y) ↔ ∀ (x : α), x ∈ s → p (f x)
Theorem: Finset.insert_union_comm
File: Mathlib/Data/Finset/Basic.lean

tactic: rw [insert_union, union_insert]
state_before: α : Type u_1
β : Type ?u.262419
γ : Type ?u.262422
inst✝ : DecidableEq α
s✝ t✝ u v : Finset α
a✝ b : α
s t : Finset α
a : α
⊢ insert a s ∪ t = s ∪ insert a t
Theorem: MeasureTheory.Measure.ext_iff_of_iUnion_eq_univ
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [← restrict_iUnion_congr, hs, restrict_univ, restrict_univ]
state_before: α : Type u_2
β : Type ?u.319493
γ : Type ?u.319496
δ : Type ?u.319499
ι : Type u_1
R : Type ?u.319505
R' : Type ?u.319508
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : Countable ι
s : ι → Set α
hs : (⋃ (i : ι), s i) = univ
⊢ μ = ν ↔ ∀ (i : ι), restrict μ (s i) = restrict ν (s i)
Theorem: Orthonormal.comp
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: classical!
state_before: 𝕜 : Type u_2
E : Type u_3
F : Type ?u.2137301
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
dec_E : DecidableEq E
ι : Type u_4
dec_ι : DecidableEq ι
ι' : Type u_1
v : ι → E
hv : Orthonormal 𝕜 v
f : ι' → ι
hf : Function.Injective f
⊢ Orthonormal 𝕜 (v ∘ f)

tactic: rw [orthonormal_iff_ite] at hv ⊢
state_before: 𝕜 : Type u_2
E : Type u_3
F : Type ?u.2137301
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
dec_E : DecidableEq E
ι : Type u_4
dec_ι : DecidableEq ι
ι' : Type u_1
v : ι → E
hv : Orthonormal 𝕜 v
f : ι' → ι
hf : Function.Injective f
em✝ : (a : Prop) → Decidable a
⊢ Orthonormal 𝕜 (v ∘ f)

tactic: intro i j
state_before: 𝕜 : Type u_2
E : Type u_3
F : Type ?u.2137301
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
dec_E : DecidableEq E
ι : Type u_4
dec_ι : DecidableEq ι
ι' : Type u_1
v : ι → E
f : ι' → ι
hf : Function.Injective f
em✝ : (a : Prop) → Decidable a
hv : ∀ (i j : ι), inner (v i) (v j) = if i = j then 1 else 0
⊢ ∀ (i j : ι'), inner ((v ∘ f) i) ((v ∘ f) j) = if i = j then 1 else 0

tactic: convert hv (f i) (f j) using 1
state_before: 𝕜 : Type u_2
E : Type u_3
F : Type ?u.2137301
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
dec_E : DecidableEq E
ι : Type u_4
dec_ι : DecidableEq ι
ι' : Type u_1
v : ι → E
f : ι' → ι
hf : Function.Injective f
em✝ : (a : Prop) → Decidable a
hv : ∀ (i j : ι), inner (v i) (v j) = if i = j then 1 else 0
i j : ι'
⊢ inner ((v ∘ f) i) ((v ∘ f) j) = if i = j then 1 else 0

tactic: simp [hf.eq_iff]
state_before: case h.e'_3
𝕜 : Type u_2
E : Type u_3
F : Type ?u.2137301
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
dec_E : DecidableEq E
ι : Type u_4
dec_ι : DecidableEq ι
ι' : Type u_1
v : ι → E
f : ι' → ι
hf : Function.Injective f
em✝ : (a : Prop) → Decidable a
hv : ∀ (i j : ι), inner (v i) (v j) = if i = j then 1 else 0
i j : ι'
⊢ (if i = j then 1 else 0) = if f i = f j then 1 else 0
Theorem: OrderMonoidHom.toMonoidHom_injective
File: Mathlib/Algebra/Order/Hom/Monoid.lean

tactic: convert FunLike.ext_iff.1 h using 0
state_before: F : Type ?u.77965
α : Type u_1
β : Type u_2
γ : Type ?u.77974
δ : Type ?u.77977
inst✝⁷ : Preorder α
inst✝⁶ : Preorder β
inst✝⁵ : Preorder γ
inst✝⁴ : Preorder δ
inst✝³ : MulOneClass α
inst✝² : MulOneClass β
inst✝¹ : MulOneClass γ
inst✝ : MulOneClass δ
f✝ g✝ f g : α →*o β
h : f.toMonoidHom = g.toMonoidHom
⊢ ∀ (a : α), ↑f a = ↑g a
Theorem: AddSubgroup.int_cast_mem_zmultiples_one
File: Mathlib/GroupTheory/Subgroup/ZPowers.lean

tactic: simp
state_before: G : Type ?u.29981
inst✝³ : Group G
A : Type ?u.29987
inst✝² : AddGroup A
N : Type ?u.29993
inst✝¹ : Group N
R : Type u_1
inst✝ : Ring R
r : R
k : ℤ
⊢ (fun x => x • 1) k = ↑k
Theorem: ContinuousLinearEquiv.nhds
File: Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean

tactic: simp
state_before: 𝕜 : Type u_2
inst✝⁷ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
G : Type ?u.467019
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace E
e : E ≃L[𝕜] F
⊢ ↑e ∈ range toContinuousLinearMap
Theorem: half_lt_self_iff
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rw [div_lt_iff (zero_lt_two' α), mul_two, lt_add_iff_pos_left]
state_before: ι : Type ?u.96170
α : Type u_1
β : Type ?u.96176
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
⊢ a / 2 < a ↔ 0 < a
Theorem: Complex.tan_ne_zero_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean

tactic: rw [← not_exists, not_iff_not, tan_eq_zero_iff]
state_before: θ : ℂ
⊢ tan θ ≠ 0 ↔ ∀ (k : ℤ), θ ≠ ↑k * ↑π / 2
Theorem: CategoryTheory.congrArg_mpr_hom_right
File: Mathlib/CategoryTheory/EqToHom.lean

tactic: cases q
state_before: C : Type u₁
inst✝ : Category C
X Y Z : C
p : X ⟶ Y
q : Z = Y
⊢ Eq.mpr (_ : (X ⟶ Z) = (X ⟶ Y)) p = p ≫ eqToHom (_ : Y = Z)

tactic: simp
state_before: case refl
C : Type u₁
inst✝ : Category C
X Y : C
p : X ⟶ Y
⊢ Eq.mpr (_ : (X ⟶ Y) = (X ⟶ Y)) p = p ≫ eqToHom (_ : Y = Y)
Theorem: Matrix.det_mul_right_comm
File: Mathlib/LinearAlgebra/Matrix/Determinant.lean

tactic: rw [Matrix.mul_assoc, Matrix.mul_assoc, det_mul, det_mul_comm N P, ← det_mul]
state_before: m : Type u_1
n : Type ?u.903620
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
R : Type v
inst✝ : CommRing R
M N P : Matrix m m R
⊢ det (M ⬝ N ⬝ P) = det (M ⬝ P ⬝ N)
Theorem: LinearOrderedField.cutMap_coe
File: Mathlib/Algebra/Order/CompleteField.lean

tactic: simp_rw [cutMap, Rat.cast_lt]
state_before: F : Type ?u.9759
α : Type u_2
β : Type u_1
γ : Type ?u.9768
inst✝¹ : LinearOrderedField α
inst✝ : LinearOrderedField β
a a₁ a₂ : α
b : β
q✝ q : ℚ
⊢ cutMap β ↑q = Rat.cast '' {r | ↑r < ↑q}
Theorem: SeparationQuotient.continuousOn_lift
File: Mathlib/Topology/Inseparable.lean

tactic: simp only [ContinuousOn, surjective_mk.forall, continuousWithinAt_lift, mem_preimage]
state_before: X : Type u_1
Y : Type u_2
Z : Type ?u.103929
α : Type ?u.103932
ι : Type ?u.103935
π : ι → Type ?u.103940
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x y z : X
s✝ : Set X
f✝ : X → Y
t : Set (SeparationQuotient X)
f : X → Y
hf : ∀ (x y : X), (x ~ᵢ y) → f x = f y
s : Set (SeparationQuotient X)
⊢ ContinuousOn (lift f hf) s ↔ ContinuousOn f (mk ⁻¹' s)
Theorem: Convex.cthickening
File: Mathlib/Analysis/Convex/Normed.lean

tactic: obtain hδ | hδ := le_total 0 δ
state_before: ι : Type ?u.29650
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s t : Set E
hs : Convex ℝ s
δ : ℝ
⊢ Convex ℝ (Metric.cthickening δ s)

tactic: rw [cthickening_eq_iInter_thickening hδ]
state_before: case inl
ι : Type ?u.29650
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s t : Set E
hs : Convex ℝ s
δ : ℝ
hδ : 0 ≤ δ
⊢ Convex ℝ (Metric.cthickening δ s)

tactic: exact convex_iInter₂ fun _ _ => hs.thickening _
state_before: case inl
ι : Type ?u.29650
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s t : Set E
hs : Convex ℝ s
δ : ℝ
hδ : 0 ≤ δ
⊢ Convex ℝ (⋂ (ε : ℝ) (_ : δ < ε), Metric.thickening ε s)

tactic: rw [cthickening_of_nonpos hδ]
state_before: case inr
ι : Type ?u.29650
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s t : Set E
hs : Convex ℝ s
δ : ℝ
hδ : δ ≤ 0
⊢ Convex ℝ (Metric.cthickening δ s)

tactic: exact hs.closure
state_before: case inr
ι : Type ?u.29650
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s t : Set E
hs : Convex ℝ s
δ : ℝ
hδ : δ ≤ 0
⊢ Convex ℝ (closure s)
Theorem: Quaternion.norm_star
File: Mathlib/Analysis/Quaternion.lean

tactic: simp_rw [norm_eq_sqrt_real_inner, inner_self, normSq_star]
state_before: a : ℍ
⊢ ‖star a‖ = ‖a‖
Theorem: Set.leftInverse_rangeSplitting
File: Mathlib/Data/Set/Image.lean

tactic: apply Subtype.ext
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.98446
ι : Sort ?u.98449
ι' : Sort ?u.98452
f✝ : ι → α
s t : Set α
f : α → β
x : ↑(range f)
⊢ rangeFactorization f (rangeSplitting f x) = x

tactic: simp only [rangeFactorization_coe]
state_before: case a
α : Type u_2
β : Type u_1
γ : Type ?u.98446
ι : Sort ?u.98449
ι' : Sort ?u.98452
f✝ : ι → α
s t : Set α
f : α → β
x : ↑(range f)
⊢ ↑(rangeFactorization f (rangeSplitting f x)) = ↑x

tactic: apply apply_rangeSplitting
state_before: case a
α : Type u_2
β : Type u_1
γ : Type ?u.98446
ι : Sort ?u.98449
ι' : Sort ?u.98452
f✝ : ι → α
s t : Set α
f : α → β
x : ↑(range f)
⊢ f (rangeSplitting f x) = ↑x
Theorem: Behrend.sphere_subset_preimage_metric_sphere
File: Mathlib/Combinatorics/Additive/Behrend.lean

tactic: rw [Set.mem_preimage, mem_sphere_zero_iff_norm, norm_of_mem_sphere hx]
state_before: α : Type ?u.32699
β : Type ?u.32702
n d k N : ℕ
x✝ x : Fin n → ℕ
hx : x ∈ ↑(sphere n d k)
⊢ x ∈ (fun x => ↑(PiLp.equiv 2 fun a => ℝ).symm (Nat.cast ∘ x)) ⁻¹' Metric.sphere 0 (Real.sqrt ↑k)
Theorem: Complex.tan_pi_div_two_sub
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: rw [tan_eq_sin_div_cos, tan_eq_sin_div_cos, inv_div, sin_pi_div_two_sub, cos_pi_div_two_sub]
state_before: x : ℂ
⊢ tan (↑π / 2 - x) = (tan x)⁻¹
Theorem: lowerCentralSeries_eq_bot_iff_nilpotencyClass_le
File: Mathlib/GroupTheory/Nilpotent.lean

tactic: constructor
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : Normal H
hG : Group.IsNilpotent G
n : ℕ
⊢ lowerCentralSeries G n = ⊥ ↔ nilpotencyClass G ≤ n

tactic: intro h
state_before: case mp
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : Normal H
hG : Group.IsNilpotent G
n : ℕ
⊢ lowerCentralSeries G n = ⊥ → nilpotencyClass G ≤ n

tactic: rw [← lowerCentralSeries_length_eq_nilpotencyClass]
state_before: case mp
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : Normal H
hG : Group.IsNilpotent G
n : ℕ
h : lowerCentralSeries G n = ⊥
⊢ nilpotencyClass G ≤ n

tactic: exact Nat.find_le h
state_before: case mp
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : Normal H
hG : Group.IsNilpotent G
n : ℕ
h : lowerCentralSeries G n = ⊥
⊢ Nat.find (_ : ∃ n, lowerCentralSeries G n = ⊥) ≤ n

tactic: intro h
state_before: case mpr
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : Normal H
hG : Group.IsNilpotent G
n : ℕ
⊢ nilpotencyClass G ≤ n → lowerCentralSeries G n = ⊥

tactic: apply eq_bot_iff.mpr
state_before: case mpr
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : Normal H
hG : Group.IsNilpotent G
n : ℕ
h : nilpotencyClass G ≤ n
⊢ lowerCentralSeries G n = ⊥

tactic: rw [← lowerCentralSeries_nilpotencyClass]
state_before: case mpr
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : Normal H
hG : Group.IsNilpotent G
n : ℕ
h : nilpotencyClass G ≤ n
⊢ lowerCentralSeries G n ≤ ⊥

tactic: exact lowerCentralSeries_antitone h
state_before: case mpr
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : Normal H
hG : Group.IsNilpotent G
n : ℕ
h : nilpotencyClass G ≤ n
⊢ lowerCentralSeries G n ≤ lowerCentralSeries G (nilpotencyClass G)
Theorem: Seminorm.cont_normedSpace_to_withSeminorms
File: Mathlib/Analysis/LocallyConvex/WithSeminorms.lean

tactic: rw [← Seminorm.const_isBounded (Fin 1)] at hf
state_before: 𝕜 : Type ?u.658783
𝕜₂ : Type ?u.658786
𝕝 : Type u_2
𝕝₂ : Type u_4
E✝ : Type ?u.658795
F : Type u_3
G : Type ?u.658801
ι : Type u_5
ι' : Type ?u.658807
inst✝¹⁷ : NontriviallyNormedField 𝕜
inst✝¹⁶ : AddCommGroup E✝
inst✝¹⁵ : Module 𝕜 E✝
inst✝¹⁴ : NormedField 𝕝
inst✝¹³ : Module 𝕝 E✝
inst✝¹² : NontriviallyNormedField 𝕜₂
inst✝¹¹ : AddCommGroup F
inst✝¹⁰ : Module 𝕜₂ F
inst✝⁹ : NormedField 𝕝₂
inst✝⁸ : Module 𝕝₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝⁷ : RingHomIsometric σ₁₂
τ₁₂ : 𝕝 →+* 𝕝₂
inst✝⁶ : RingHomIsometric τ₁₂
inst✝⁵ : Nonempty ι
inst✝⁴ : Nonempty ι'
E : Type u_1
inst✝³ : SeminormedAddCommGroup E
inst✝² : NormedSpace 𝕝 E
inst✝¹ : UniformSpace F
inst✝ : UniformAddGroup F
q : ι → Seminorm 𝕝₂ F
hq : WithSeminorms q
f : E →ₛₗ[τ₁₂] F
hf : ∀ (i : ι), ∃ C, comp (q i) f ≤ C • normSeminorm 𝕝 E
⊢ Continuous ↑f

tactic: exact continuous_from_bounded (norm_withSeminorms 𝕝 E) hq f hf
state_before: 𝕜 : Type ?u.658783
𝕜₂ : Type ?u.658786
𝕝 : Type u_2
𝕝₂ : Type u_4
E✝ : Type ?u.658795
F : Type u_3
G : Type ?u.658801
ι : Type u_5
ι' : Type ?u.658807
inst✝¹⁷ : NontriviallyNormedField 𝕜
inst✝¹⁶ : AddCommGroup E✝
inst✝¹⁵ : Module 𝕜 E✝
inst✝¹⁴ : NormedField 𝕝
inst✝¹³ : Module 𝕝 E✝
inst✝¹² : NontriviallyNormedField 𝕜₂
inst✝¹¹ : AddCommGroup F
inst✝¹⁰ : Module 𝕜₂ F
inst✝⁹ : NormedField 𝕝₂
inst✝⁸ : Module 𝕝₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝⁷ : RingHomIsometric σ₁₂
τ₁₂ : 𝕝 →+* 𝕝₂
inst✝⁶ : RingHomIsometric τ₁₂
inst✝⁵ : Nonempty ι
inst✝⁴ : Nonempty ι'
E : Type u_1
inst✝³ : SeminormedAddCommGroup E
inst✝² : NormedSpace 𝕝 E
inst✝¹ : UniformSpace F
inst✝ : UniformAddGroup F
q : ι → Seminorm 𝕝₂ F
hq : WithSeminorms q
f : E →ₛₗ[τ₁₂] F
hf : IsBounded (fun x => normSeminorm 𝕝 E) (fun i => q i) f
⊢ Continuous ↑f
Theorem: Polynomial.coe_bit1
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: rw [bit1, bit1, coe_add, coe_one, coe_bit0]
state_before: σ : Type ?u.4350479
R : Type u_1
inst✝ : CommSemiring R
φ ψ : R[X]
⊢ ↑(bit1 φ) = bit1 ↑φ
Theorem: algebra_compatible_smul
File: Mathlib/Algebra/Algebra/Basic.lean

tactic: rw [← one_smul A m, ← smul_assoc, Algebra.smul_def, mul_one, one_smul]
state_before: R : Type u_2
inst✝¹⁰ : CommSemiring R
A : Type u_3
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
M : Type u_1
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module A M
inst✝⁵ : Module R M
inst✝⁴ : IsScalarTower R A M
N : Type ?u.945384
inst✝³ : AddCommMonoid N
inst✝² : Module A N
inst✝¹ : Module R N
inst✝ : IsScalarTower R A N
r : R
m : M
⊢ r • m = ↑(algebraMap R A) r • m
Theorem: Nat.gcd_add_mul_right_right
File: Mathlib/Data/Nat/GCD/Basic.lean

tactic: simp [gcd_rec m (n + k * m), gcd_rec m n]
state_before: m n k : ℕ
⊢ gcd m (n + k * m) = gcd m n
Theorem: Real.Angle.sin_toReal
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: conv_rhs => rw [← coe_toReal θ, sin_coe]
state_before: θ : Angle
⊢ Real.sin (toReal θ) = sin θ
Theorem: Function.Antiperiodic.const_inv_smul
File: Mathlib/Algebra/Periodic.lean

tactic: simpa only [inv_inv] using h.const_smul a⁻¹
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f g : α → β
c c₁ c₂ x : α
inst✝³ : AddMonoid α
inst✝² : Neg β
inst✝¹ : Group γ
inst✝ : DistribMulAction γ α
h : Antiperiodic f c
a : γ
⊢ Antiperiodic (fun x => f (a⁻¹ • x)) (a • c)
Theorem: WType.depth_pos
File: Mathlib/Data/W/Basic.lean

tactic: cases t
state_before: α : Type u_1
β : α → Type u_2
inst✝ : (a : α) → Fintype (β a)
t : WType β
⊢ 0 < depth t

tactic: apply Nat.succ_pos
state_before: case mk
α : Type u_1
β : α → Type u_2
inst✝ : (a : α) → Fintype (β a)
a✝ : α
f✝ : β a✝ → WType β
⊢ 0 < depth (mk a✝ f✝)
Theorem: Set.biInter_and
File: Mathlib/Data/Set/Lattice.lean

tactic: simp only [iInter_and, @iInter_comm _ ι']
state_before: α : Type u_1
β : Type ?u.91348
γ : Type ?u.91351
ι : Sort u_2
ι' : Sort u_3
ι₂ : Sort ?u.91360
κ : ι → Sort ?u.91365
κ₁ : ι → Sort ?u.91370
κ₂ : ι → Sort ?u.91375
κ' : ι' → Sort ?u.91380
p : ι → Prop
q : ι → ι' → Prop
s : (x : ι) → (y : ι') → p x ∧ q x y → Set α
⊢ (⋂ (x : ι) (y : ι') (h : p x ∧ q x y), s x y h) = ⋂ (x : ι) (hx : p x) (y : ι') (hy : q x y), s x y (_ : p x ∧ q x y)
Theorem: MeasureTheory.SignedMeasure.eq_singularPart
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: by_cases hfi : Integrable f μ
state_before: α : Type u_1
β : Type ?u.582150
m : MeasurableSpace α
μ ν : Measure α
s t✝ t : SignedMeasure α
f : α → ℝ
htμ : t ⟂ᵥ toENNRealVectorMeasure μ
hadd : s = t + withDensityᵥ μ f
⊢ t = singularPart s μ

tactic: refine' eq_singularPart' t hfi.1.measurable_mk (hfi.congr hfi.1.ae_eq_mk) htμ _
state_before: case pos
α : Type u_1
β : Type ?u.582150
m : MeasurableSpace α
μ ν : Measure α
s t✝ t : SignedMeasure α
f : α → ℝ
htμ : t ⟂ᵥ toENNRealVectorMeasure μ
hadd : s = t + withDensityᵥ μ f
hfi : Integrable f
⊢ t = singularPart s μ

tactic: convert hadd using 2
state_before: case pos
α : Type u_1
β : Type ?u.582150
m : MeasurableSpace α
μ ν : Measure α
s t✝ t : SignedMeasure α
f : α → ℝ
htμ : t ⟂ᵥ toENNRealVectorMeasure μ
hadd : s = t + withDensityᵥ μ f
hfi : Integrable f
⊢ s = t + withDensityᵥ μ (AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ))

tactic: exact WithDensityᵥEq.congr_ae hfi.1.ae_eq_mk.symm
state_before: case h.e'_3.h.e'_6
α : Type u_1
β : Type ?u.582150
m : MeasurableSpace α
μ ν : Measure α
s t✝ t : SignedMeasure α
f : α → ℝ
htμ : t ⟂ᵥ toENNRealVectorMeasure μ
hadd : s = t + withDensityᵥ μ f
hfi : Integrable f
⊢ withDensityᵥ μ (AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ)) = withDensityᵥ μ f

tactic: rw [withDensityᵥ, dif_neg hfi, add_zero] at hadd
state_before: case neg
α : Type u_1
β : Type ?u.582150
m : MeasurableSpace α
μ ν : Measure α
s t✝ t : SignedMeasure α
f : α → ℝ
htμ : t ⟂ᵥ toENNRealVectorMeasure μ
hadd : s = t + withDensityᵥ μ f
hfi : ¬Integrable f
⊢ t = singularPart s μ

tactic: refine' eq_singularPart' t measurable_zero (integrable_zero _ _ μ) htμ _
state_before: case neg
α : Type u_1
β : Type ?u.582150
m : MeasurableSpace α
μ ν : Measure α
s t✝ t : SignedMeasure α
f : α → ℝ
htμ : t ⟂ᵥ toENNRealVectorMeasure μ
hadd : s = t
hfi : ¬Integrable f
⊢ t = singularPart s μ

tactic: rwa [withDensityᵥ_zero, add_zero]
state_before: case neg
α : Type u_1
β : Type ?u.582150
m : MeasurableSpace α
μ ν : Measure α
s t✝ t : SignedMeasure α
f : α → ℝ
htμ : t ⟂ᵥ toENNRealVectorMeasure μ
hadd : s = t
hfi : ¬Integrable f
⊢ s = t + withDensityᵥ μ 0
Theorem: lowerSemicontinuousWithinAt_iSup
File: Mathlib/Topology/Semicontinuous.lean

tactic: simp
state_before: α : Type u_1
inst✝³ : TopologicalSpace α
β : Type ?u.115105
inst✝² : Preorder β
f✝ g : α → β
x : α
s t : Set α
y z : β
ι : Sort u_3
δ : Type u_2
δ' : Type ?u.115137
inst✝¹ : CompleteLinearOrder δ
inst✝ : ConditionallyCompleteLinearOrder δ'
f : ι → α → δ
h : ∀ (i : ι), LowerSemicontinuousWithinAt (f i) s x
⊢ ∀ᶠ (y : α) in 𝓝[s] x, BddAbove (range fun i => f i y)
Theorem: Irrational.rat_add
File: Mathlib/Data/Real/Irrational.lean

tactic: rwa [cast_neg, neg_add_cancel_left]
state_before: q : ℚ
x y : ℝ
h : Irrational x
⊢ Irrational (↑(-q) + (↑q + x))