tasksource/leandojo huggingface dataset:
Theorem: Order.pred_eq_iSup
File: Mathlib/Order/SuccPred/Basic.lean

tactic: refine' le_antisymm _ (iSup_le fun b => iSup_le le_pred_of_lt)
state_before: α : Type u_1
inst✝¹ : CompleteLattice α
inst✝ : PredOrder α
a : α
⊢ pred a = ⨆ (b : α) (_ : b < a), b

tactic: obtain rfl | ha := eq_or_ne a ⊥
state_before: α : Type u_1
inst✝¹ : CompleteLattice α
inst✝ : PredOrder α
a : α
⊢ pred a ≤ ⨆ (b : α) (_ : b < a), b

tactic: rw [pred_bot]
state_before: case inl
α : Type u_1
inst✝¹ : CompleteLattice α
inst✝ : PredOrder α
⊢ pred ⊥ ≤ ⨆ (b : α) (_ : b < ⊥), b

tactic: exact bot_le
state_before: case inl
α : Type u_1
inst✝¹ : CompleteLattice α
inst✝ : PredOrder α
⊢ ⊥ ≤ ⨆ (b : α) (_ : b < ⊥), b

tactic: exact @le_iSup₂ _ _ (fun b => b < a) _ (fun a _ => a) (pred a) (pred_lt_iff_ne_bot.2 ha)
state_before: case inr
α : Type u_1
inst✝¹ : CompleteLattice α
inst✝ : PredOrder α
a : α
ha : a ≠ ⊥
⊢ pred a ≤ ⨆ (b : α) (_ : b < a), b
Theorem: Complex.abs_cpow_of_imp
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rcases ne_or_eq z 0 with (hz | rfl) <;> [exact abs_cpow_of_ne_zero hz w; rw [map_zero]]
state_before: z w : ℂ
h : z = 0 → w.re = 0 → w = 0
⊢ ↑abs (z ^ w) = ↑abs z ^ w.re / Real.exp (arg z * w.im)

tactic: cases' eq_or_ne w.re 0 with hw hw
state_before: case inr
w : ℂ
h : 0 = 0 → w.re = 0 → w = 0
⊢ ↑abs (0 ^ w) = 0 ^ w.re / Real.exp (arg 0 * w.im)

tactic: simp [hw, h rfl hw]
state_before: case inr.inl
w : ℂ
h : 0 = 0 → w.re = 0 → w = 0
hw : w.re = 0
⊢ ↑abs (0 ^ w) = 0 ^ w.re / Real.exp (arg 0 * w.im)

tactic: rw [Real.zero_rpow hw, zero_div, zero_cpow, map_zero]
state_before: case inr.inr
w : ℂ
h : 0 = 0 → w.re = 0 → w = 0
hw : w.re ≠ 0
⊢ ↑abs (0 ^ w) = 0 ^ w.re / Real.exp (arg 0 * w.im)

tactic: exact ne_of_apply_ne re hw
state_before: case inr.inr
w : ℂ
h : 0 = 0 → w.re = 0 → w = 0
hw : w.re ≠ 0
⊢ w ≠ 0
Theorem: affinity_unitBall
File: Mathlib/Analysis/NormedSpace/Pointwise.lean

tactic: rw [smul_unitBall_of_pos hr, vadd_ball_zero]
state_before: 𝕜 : Type ?u.1779223
E : Type u_1
inst✝³ : NormedField 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
r : ℝ
hr : 0 < r
x : E
⊢ x +ᵥ r • ball 0 1 = ball x r
Theorem: commutator_centralizer_commutator_le_center
File: Mathlib/GroupTheory/Abelianization.lean

tactic: rw [← Subgroup.centralizer_top, ← Subgroup.commutator_eq_bot_iff_le_centralizer]
state_before: G : Type u
inst✝ : Group G
⊢ ⁅Subgroup.centralizer (commutator G), Subgroup.centralizer (commutator G)⁆ ≤ Subgroup.center G

tactic: suffices ⁅⁅⊤, (commutator G).centralizer⁆, (commutator G).centralizer⁆ = ⊥ by
  refine' Subgroup.commutator_commutator_eq_bot_of_rotate _ this
  rwa [Subgroup.commutator_comm (commutator G).centralizer]
state_before: G : Type u
inst✝ : Group G
⊢ ⁅⁅Subgroup.centralizer (commutator G), Subgroup.centralizer (commutator G)⁆, ⊤⁆ = ⊥

tactic: rw [Subgroup.commutator_comm, Subgroup.commutator_eq_bot_iff_le_centralizer]
state_before: G : Type u
inst✝ : Group G
⊢ ⁅⁅⊤, Subgroup.centralizer (commutator G)⁆, Subgroup.centralizer (commutator G)⁆ = ⊥

tactic: exact Set.centralizer_subset (Subgroup.commutator_mono le_top le_top)
state_before: G : Type u
inst✝ : Group G
⊢ Subgroup.centralizer (commutator G) ≤ Subgroup.centralizer ⁅⊤, Subgroup.centralizer (commutator G)⁆

tactic: refine' Subgroup.commutator_commutator_eq_bot_of_rotate _ this
state_before: G : Type u
inst✝ : Group G
this : ⁅⁅⊤, Subgroup.centralizer (commutator G)⁆, Subgroup.centralizer (commutator G)⁆ = ⊥
⊢ ⁅⁅Subgroup.centralizer (commutator G), Subgroup.centralizer (commutator G)⁆, ⊤⁆ = ⊥

tactic: rwa [Subgroup.commutator_comm (commutator G).centralizer]
state_before: G : Type u
inst✝ : Group G
this : ⁅⁅⊤, Subgroup.centralizer (commutator G)⁆, Subgroup.centralizer (commutator G)⁆ = ⊥
⊢ ⁅⁅Subgroup.centralizer (commutator G), ⊤⁆, Subgroup.centralizer (commutator G)⁆ = ⊥
Theorem: Real.hasStrictDerivAt_rpow_const
File: Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean

tactic: rwa [← Nat.cast_one] at hx
state_before: z x✝ y x p : ℝ
hx : x ≠ 0 ∨ 1 ≤ p
⊢ x ≠ 0 ∨ ↑One.one ≤ p
Theorem: Fin.succAbove_ne_zero_zero
File: Mathlib/Data/Fin/Basic.lean

tactic: rw [Fin.succAbove_below]
state_before: n m : ℕ
inst✝ : NeZero n
a : Fin (n + 1)
ha : a ≠ 0
⊢ ↑(succAbove a) 0 = 0

tactic: simp
state_before: n m : ℕ
inst✝ : NeZero n
a : Fin (n + 1)
ha : a ≠ 0
⊢ ↑castSucc 0 = 0

tactic: simp only [castSucc_zero]
state_before: case h
n m : ℕ
inst✝ : NeZero n
a : Fin (n + 1)
ha : a ≠ 0
⊢ ↑castSucc 0 < a

tactic: exact bot_lt_iff_ne_bot.mpr ha
state_before: case h
n m : ℕ
inst✝ : NeZero n
a : Fin (n + 1)
ha : a ≠ 0
⊢ 0 < a
Theorem: Quaternion.normSq_nonneg
File: Mathlib/Algebra/Quaternion.lean

tactic: rw [normSq_def']
state_before: R : Type u_1
inst✝ : LinearOrderedCommRing R
a : ℍ[R]
⊢ 0 ≤ ↑normSq a

tactic: apply_rules [sq_nonneg, add_nonneg]
state_before: R : Type u_1
inst✝ : LinearOrderedCommRing R
a : ℍ[R]
⊢ 0 ≤ a.re ^ 2 + a.imI ^ 2 + a.imJ ^ 2 + a.imK ^ 2
Theorem: LaurentPolynomial.mul_T_assoc
File: Mathlib/Data/Polynomial/Laurent.lean

tactic: simp [← T_add, mul_assoc]
state_before: R : Type u_1
inst✝ : Semiring R
f : R[T;T⁻¹]
m n : ℤ
⊢ f * T m * T n = f * T (m + n)
Theorem: List.keys_kerase
File: Mathlib/Data/List/Sigma.lean

tactic: rw [keys, kerase, erase_eq_eraseP, eraseP_map]
state_before: α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
l : List (Sigma β)
⊢ keys (kerase a l) = List.erase (keys l) a

tactic: dsimp [Function.comp]
state_before: α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
l : List (Sigma β)
⊢ map Sigma.fst (eraseP (fun s => decide (a = s.fst)) l) =
    map Sigma.fst (eraseP ((fun b => decide (a = b)) ∘ Sigma.fst) l)
Theorem: isOpen_iSup_iff
File: Mathlib/Topology/Order.lean

tactic: simp [setOf_isOpen_iSup]
state_before: α : Type u
ι : Sort v
t : ι → TopologicalSpace α
s : Set α
⊢ s ∈ {s | IsOpen s} ↔ s ∈ {x | ∀ (i : ι), IsOpen x}
Theorem: convexIndependent_iff_not_mem_convexHull_diff
File: Mathlib/Analysis/Convex/Independent.lean

tactic: refine' ⟨fun hc i s h => _, fun h s i hi => _⟩
state_before: 𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t : Set E
p : ι → E
⊢ ConvexIndependent 𝕜 p ↔ ∀ (i : ι) (s : Set ι), ¬p i ∈ ↑(convexHull 𝕜).toOrderHom (p '' (s \ {i}))

tactic: rw [hc.mem_convexHull_iff] at h
state_before: case refine'_1
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s✝ t : Set E
p : ι → E
hc : ConvexIndependent 𝕜 p
i : ι
s : Set ι
h : p i ∈ ↑(convexHull 𝕜).toOrderHom (p '' (s \ {i}))
⊢ False

tactic: exact h.2 (Set.mem_singleton _)
state_before: case refine'_1
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s✝ t : Set E
p : ι → E
hc : ConvexIndependent 𝕜 p
i : ι
s : Set ι
h : i ∈ s \ {i}
⊢ False

tactic: by_contra H
state_before: case refine'_2
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s✝ t : Set E
p : ι → E
h : ∀ (i : ι) (s : Set ι), ¬p i ∈ ↑(convexHull 𝕜).toOrderHom (p '' (s \ {i}))
s : Set ι
i : ι
hi : p i ∈ ↑(convexHull 𝕜).toOrderHom (p '' s)
⊢ i ∈ s

tactic: refine' h i s _
state_before: case refine'_2
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s✝ t : Set E
p : ι → E
h : ∀ (i : ι) (s : Set ι), ¬p i ∈ ↑(convexHull 𝕜).toOrderHom (p '' (s \ {i}))
s : Set ι
i : ι
hi : p i ∈ ↑(convexHull 𝕜).toOrderHom (p '' s)
H : ¬i ∈ s
⊢ False

tactic: rw [Set.diff_singleton_eq_self H]
state_before: case refine'_2
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s✝ t : Set E
p : ι → E
h : ∀ (i : ι) (s : Set ι), ¬p i ∈ ↑(convexHull 𝕜).toOrderHom (p '' (s \ {i}))
s : Set ι
i : ι
hi : p i ∈ ↑(convexHull 𝕜).toOrderHom (p '' s)
H : ¬i ∈ s
⊢ p i ∈ ↑(convexHull 𝕜).toOrderHom (p '' (s \ {i}))

tactic: exact hi
state_before: case refine'_2
𝕜 : Type u_1
E : Type u_2
ι : Type u_3
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s✝ t : Set E
p : ι → E
h : ∀ (i : ι) (s : Set ι), ¬p i ∈ ↑(convexHull 𝕜).toOrderHom (p '' (s \ {i}))
s : Set ι
i : ι
hi : p i ∈ ↑(convexHull 𝕜).toOrderHom (p '' s)
H : ¬i ∈ s
⊢ p i ∈ ↑(convexHull 𝕜).toOrderHom (p '' s)
Theorem: ENNReal.tendsto_coe_nhds_top
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: rw [tendsto_nhds_top_iff_nnreal, atTop_basis_Ioi.tendsto_right_iff]
state_before: α : Type u_1
β : Type ?u.42377
γ : Type ?u.42380
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ≥0
l : Filter α
⊢ Tendsto (fun x => ↑(f x)) l (𝓝 ⊤) ↔ Tendsto f l atTop

tactic: simp
state_before: α : Type u_1
β : Type ?u.42377
γ : Type ?u.42380
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f : α → ℝ≥0
l : Filter α
⊢ (∀ (x : ℝ≥0), ∀ᶠ (a : α) in l, ↑x < ↑(f a)) ↔ ∀ (i : ℝ≥0), True → ∀ᶠ (x : α) in l, f x ∈ Ioi i
Theorem: genericPoint_spec
File: Mathlib/Topology/Sober.lean

tactic: simpa using (IrreducibleSpace.isIrreducible_univ α).genericPoint_spec
state_before: α : Type u_1
β : Type ?u.5277
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : QuasiSober α
inst✝ : IrreducibleSpace α
⊢ IsGenericPoint (genericPoint α) ⊤
Theorem: MeasureTheory.OuterMeasure.le_smul_caratheodory
File: Mathlib/MeasureTheory/Measure/OuterMeasure.lean

tactic: simp [smul_apply]
state_before: α : Type u_1
a : ℝ≥0∞
m : OuterMeasure α
s : Set α
h : MeasurableSet s
t : Set α
⊢ ↑(a • m) t = ↑(a • m) (t ∩ s) + ↑(a • m) (t \ s)

tactic: rw [(isCaratheodory_iff m).mp h t]
state_before: α : Type u_1
a : ℝ≥0∞
m : OuterMeasure α
s : Set α
h : MeasurableSet s
t : Set α
⊢ a * ↑m t = a * ↑m (t ∩ s) + a * ↑m (t \ s)

tactic: simp [mul_add]
state_before: α : Type u_1
a : ℝ≥0∞
m : OuterMeasure α
s : Set α
h : MeasurableSet s
t : Set α
⊢ a * (↑m (t ∩ s) + ↑m (t \ s)) = a * ↑m (t ∩ s) + a * ↑m (t \ s)
Theorem: measurableSet_range_inl
File: Mathlib/MeasureTheory/MeasurableSpace.lean

tactic: rw [← image_univ]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.378292
δ : Type ?u.378295
δ' : Type ?u.378298
ι : Sort uι
s t u : Set α
m : MeasurableSpace α
mβ : MeasurableSpace β
inst✝ : MeasurableSpace α
⊢ MeasurableSet (range Sum.inl)

tactic: exact MeasurableSet.univ.inl_image
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.378292
δ : Type ?u.378295
δ' : Type ?u.378298
ι : Sort uι
s t u : Set α
m : MeasurableSpace α
mβ : MeasurableSpace β
inst✝ : MeasurableSpace α
⊢ MeasurableSet (Sum.inl '' univ)
Theorem: QuadraticForm.polar_comm
File: Mathlib/LinearAlgebra/QuadraticForm/Basic.lean

tactic: rw [polar, polar, add_comm, sub_sub, sub_sub, add_comm (f x) (f y)]
state_before: S : Type ?u.7320
R : Type u_1
R₁ : Type ?u.7326
M : Type u_2
inst✝² : Ring R
inst✝¹ : CommRing R₁
inst✝ : AddCommGroup M
f : M → R
x y : M
⊢ polar f x y = polar f y x
Theorem: Int.mul_le_mul_of_nonpos_right
File: Std/Data/Int/Lemmas.lean

tactic: rwa [← Int.neg_mul_eq_mul_neg, ← Int.neg_mul_eq_mul_neg] at this
state_before: a b c : Int
h : b ≤ a
hc : c ≤ 0
this✝ : -c ≥ 0
this : b * -c ≤ a * -c
⊢ -(b * c) ≤ -(a * c)
Theorem: RegularExpression.zero_rmatch
File: Mathlib/Computability/RegularExpressions.lean

tactic: induction x <;> simp [rmatch, matchEpsilon, *]
state_before: α : Type u_1
β : Type ?u.31475
γ : Type ?u.31478
dec : DecidableEq α
a b : α
x : List α
⊢ rmatch 0 x = false
Theorem: Setoid.sup_eq_eqvGen
File: Mathlib/Data/Setoid/Basic.lean

tactic: rw [eqvGen_eq]
state_before: α : Type u_1
β : Type ?u.7133
r s : Setoid α
⊢ r ⊔ s = EqvGen.Setoid fun x y => Rel r x y ∨ Rel s x y

tactic: apply congr_arg sInf
state_before: α : Type u_1
β : Type ?u.7133
r s : Setoid α
⊢ r ⊔ s = sInf {s_1 | ∀ ⦃x y : α⦄, Rel r x y ∨ Rel s x y → Rel s_1 x y}

tactic: simp only [le_def, or_imp, ← forall_and]
state_before: α : Type u_1
β : Type ?u.7133
r s : Setoid α
⊢ {x | r ≤ x ∧ s ≤ x} = {s_1 | ∀ ⦃x y : α⦄, Rel r x y ∨ Rel s x y → Rel s_1 x y}
Theorem: Nat.ArithmeticFunction.cardFactors_one
File: Mathlib/NumberTheory/ArithmeticFunction.lean

tactic: simp [cardFactors]
state_before: R : Type ?u.553121
⊢ ↑Ω 1 = 0
Theorem: FractionalIdeal.canonicalEquiv_mk0
File: Mathlib/RingTheory/ClassGroup.lean

tactic: simp only [FractionalIdeal.coe_mk0, FractionalIdeal.canonicalEquiv_coeIdeal]
state_before: R : Type u_1
K : Type u_3
L : Type ?u.985383
inst✝¹⁴ : CommRing R
inst✝¹³ : Field K
inst✝¹² : Field L
inst✝¹¹ : DecidableEq L
inst✝¹⁰ : Algebra R K
inst✝⁹ : IsFractionRing R K
inst✝⁸ : Algebra K L
inst✝⁷ : FiniteDimensional K L
inst✝⁶ : Algebra R L
inst✝⁵ : IsScalarTower R K L
inst✝⁴ : IsDomain R
inst✝³ : IsDedekindDomain R
K' : Type u_2
inst✝² : Field K'
inst✝¹ : Algebra R K'
inst✝ : IsFractionRing R K'
I : { x // x ∈ (Ideal R)⁰ }
⊢ ↑(canonicalEquiv R⁰ K K') ↑(↑(mk0 K) I) = ↑(↑(mk0 K') I)
Theorem: EReal.neg_lt_iff_neg_lt
File: Mathlib/Data/Real/EReal.lean

tactic: rw [← neg_lt_neg_iff, neg_neg]
state_before: a b : EReal
⊢ -a < b ↔ -b < a
Theorem: dist_homothety_self
File: Mathlib/Analysis/NormedSpace/AddTorsor.lean

tactic: rw [homothety_eq_lineMap, dist_lineMap_right]
state_before: α : Type ?u.48468
V : Type u_2
P : Type u_1
W : Type ?u.48477
Q : Type ?u.48480
inst✝⁸ : SeminormedAddCommGroup V
inst✝⁷ : PseudoMetricSpace P
inst✝⁶ : NormedAddTorsor V P
inst✝⁵ : NormedAddCommGroup W
inst✝⁴ : MetricSpace Q
inst✝³ : NormedAddTorsor W Q
𝕜 : Type u_3
inst✝² : NormedField 𝕜
inst✝¹ : NormedSpace 𝕜 V
inst✝ : NormedSpace 𝕜 W
p₁ p₂ : P
c : 𝕜
⊢ dist (↑(homothety p₁ c) p₂) p₂ = ‖1 - c‖ * dist p₁ p₂
Theorem: LieModule.le_max_triv_iff_bracket_eq_bot
File: Mathlib/Algebra/Lie/Abelian.lean

tactic: refine' ⟨fun h => _, fun h m hm => _⟩
state_before: R : Type u
L : Type v
M : Type w
N✝ : Type w₁
inst✝¹⁰ : CommRing R
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 N✝
inst✝² : Module R N✝
inst✝¹ : LieRingModule L N✝
inst✝ : LieModule R L N✝
N : LieSubmodule R L M
⊢ N ≤ maxTrivSubmodule R L M ↔ ⁅⊤, N⁆ = ⊥

tactic: rw [← le_bot_iff, ← ideal_oper_maxTrivSubmodule_eq_bot R L M ⊤]
state_before: case refine'_1
R : Type u
L : Type v
M : Type w
N✝ : Type w₁
inst✝¹⁰ : CommRing R
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 N✝
inst✝² : Module R N✝
inst✝¹ : LieRingModule L N✝
inst✝ : LieModule R L N✝
N : LieSubmodule R L M
h : N ≤ maxTrivSubmodule R L M
⊢ ⁅⊤, N⁆ = ⊥

tactic: exact LieSubmodule.mono_lie_right _ _ ⊤ h
state_before: case refine'_1
R : Type u
L : Type v
M : Type w
N✝ : Type w₁
inst✝¹⁰ : CommRing R
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 N✝
inst✝² : Module R N✝
inst✝¹ : LieRingModule L N✝
inst✝ : LieModule R L N✝
N : LieSubmodule R L M
h : N ≤ maxTrivSubmodule R L M
⊢ ⁅⊤, N⁆ ≤ ⁅⊤, maxTrivSubmodule R L M⁆

tactic: rw [mem_maxTrivSubmodule]
state_before: case refine'_2
R : Type u
L : Type v
M : Type w
N✝ : Type w₁
inst✝¹⁰ : CommRing R
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 N✝
inst✝² : Module R N✝
inst✝¹ : LieRingModule L N✝
inst✝ : LieModule R L N✝
N : LieSubmodule R L M
h : ⁅⊤, N⁆ = ⊥
m : M
hm : m ∈ N
⊢ m ∈ maxTrivSubmodule R L M

tactic: rw [LieSubmodule.lie_eq_bot_iff] at h
state_before: case refine'_2
R : Type u
L : Type v
M : Type w
N✝ : Type w₁
inst✝¹⁰ : CommRing R
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 N✝
inst✝² : Module R N✝
inst✝¹ : LieRingModule L N✝
inst✝ : LieModule R L N✝
N : LieSubmodule R L M
h : ⁅⊤, N⁆ = ⊥
m : M
hm : m ∈ N
⊢ ∀ (x : L), ⁅x, m⁆ = 0

tactic: exact fun x => h x (LieSubmodule.mem_top x) m hm
state_before: case refine'_2
R : Type u
L : Type v
M : Type w
N✝ : Type w₁
inst✝¹⁰ : CommRing R
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 N✝
inst✝² : Module R N✝
inst✝¹ : LieRingModule L N✝
inst✝ : LieModule R L N✝
N : LieSubmodule R L M
h : ∀ (x : L), x ∈ ⊤ → ∀ (m : M), m ∈ N → ⁅x, m⁆ = 0
m : M
hm : m ∈ N
⊢ ∀ (x : L), ⁅x, m⁆ = 0
Theorem: Real.Angle.toReal_zero
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: rw [← coe_zero, toReal_coe_eq_self_iff]
state_before: ⊢ toReal 0 = 0

tactic: exact ⟨Left.neg_neg_iff.2 Real.pi_pos, Real.pi_pos.le⟩
state_before: ⊢ -π < 0 ∧ 0 ≤ π
Theorem: Polynomial.eval₂_mul_eq_zero_of_left
File: Mathlib/Data/Polynomial/Eval.lean

tactic: rw [eval₂_mul f x]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q✝ r : R[X]
inst✝ : CommSemiring S
f : R →+* S
x : S
q : R[X]
hp : eval₂ f x p = 0
⊢ eval₂ f x (p * q) = 0

tactic: exact mul_eq_zero_of_left hp (q.eval₂ f x)
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q✝ r : R[X]
inst✝ : CommSemiring S
f : R →+* S
x : S
q : R[X]
hp : eval₂ f x p = 0
⊢ eval₂ f x p * eval₂ f x q = 0
Theorem: Zsqrtd.not_divides_sq
File: Mathlib/NumberTheory/Zsqrtd/Basic.lean

tactic: have t := (divides_sq_eq_zero e).left
state_before: d : ℕ
dnsq : Nonsquare d
x y : ℕ
e : (x + 1) * (x + 1) = d * (y + 1) * (y + 1)
⊢ False

tactic: contradiction
state_before: d : ℕ
dnsq : Nonsquare d
x y : ℕ
e : (x + 1) * (x + 1) = d * (y + 1) * (y + 1)
t : x + 1 = 0
⊢ False
Theorem: SimpleGraph.Walk.darts_copy
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: subst_vars
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v u' v' : V
p : Walk G u v
hu : u = u'
hv : v = v'
⊢ darts (Walk.copy p hu hv) = darts p

tactic: rfl
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u' v' : V
p : Walk G u' v'
⊢ darts (Walk.copy p (_ : u' = u') (_ : v' = v')) = darts p
Theorem: SubMulAction.coe_pow
File: Mathlib/GroupTheory/GroupAction/SubMulAction/Pointwise.lean

tactic: rw [pow_one, pow_one]
state_before: R : Type u_1
M : Type u_2
inst✝⁴ : Monoid R
inst✝³ : MulAction R M
inst✝² : Monoid M
inst✝¹ : IsScalarTower R M M
inst✝ : SMulCommClass R M M
p : SubMulAction R M
x✝ : 1 ≠ 0
⊢ ↑(p ^ 1) = ↑p ^ 1

tactic: rw [pow_succ _ (n + 1), pow_succ _ (n + 1), coe_mul, coe_pow _ n.succ_ne_zero]
state_before: R : Type u_1
M : Type u_2
inst✝⁴ : Monoid R
inst✝³ : MulAction R M
inst✝² : Monoid M
inst✝¹ : IsScalarTower R M M
inst✝ : SMulCommClass R M M
p : SubMulAction R M
n : ℕ
x✝ : n + 2 ≠ 0
⊢ ↑(p ^ (n + 2)) = ↑p ^ (n + 2)
Theorem: hasSum_ite_sub_hasSum
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: convert hf.update b 0 using 1
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.436486
δ : Type ?u.436489
inst✝³ : AddCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalAddGroup α
f g : β → α
a a₁ a₂ : α
inst✝ : DecidableEq β
hf : HasSum f a
b : β
⊢ HasSum (fun n => if n = b then 0 else f n) (a - f b)

tactic: ext n
state_before: case h.e'_5
α : Type u_2
β : Type u_1
γ : Type ?u.436486
δ : Type ?u.436489
inst✝³ : AddCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalAddGroup α
f g : β → α
a a₁ a₂ : α
inst✝ : DecidableEq β
hf : HasSum f a
b : β
⊢ (fun n => if n = b then 0 else f n) = update f b 0

tactic: rw [Function.update_apply]
state_before: case h.e'_5.h
α : Type u_2
β : Type u_1
γ : Type ?u.436486
δ : Type ?u.436489
inst✝³ : AddCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalAddGroup α
f g : β → α
a a₁ a₂ : α
inst✝ : DecidableEq β
hf : HasSum f a
b n : β
⊢ (if n = b then 0 else f n) = update f b 0 n

tactic: rw [sub_add_eq_add_sub, zero_add]
state_before: case h.e'_6
α : Type u_2
β : Type u_1
γ : Type ?u.436486
δ : Type ?u.436489
inst✝³ : AddCommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalAddGroup α
f g : β → α
a a₁ a₂ : α
inst✝ : DecidableEq β
hf : HasSum f a
b : β
⊢ a - f b = 0 - f b + a
Theorem: List.pmap_eq_map_attach
File: Mathlib/Data/List/Basic.lean

tactic: rw [attach, map_pmap]
state_before: ι : Type ?u.327705
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
p : α → Prop
f : (a : α) → p a → β
l : List α
H : ∀ (a : α), a ∈ l → p a
⊢ pmap f l H = map (fun x => f ↑x (_ : p ↑x)) (attach l)

tactic: exact pmap_congr l fun _ _ _ _ => rfl
state_before: ι : Type ?u.327705
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
p : α → Prop
f : (a : α) → p a → β
l : List α
H : ∀ (a : α), a ∈ l → p a
⊢ pmap f l H =
    pmap (fun a h => f ↑{ val := a, property := h } (_ : p ↑{ val := a, property := h })) l
      (_ : ∀ (x : α), x ∈ l → x ∈ l)
Theorem: List.zipWith_rotate_one
File: Mathlib/Data/List/Rotate.lean

tactic: simp
state_before: α : Type u
β : Type u_1
f : α → α → β
x y : α
l : List α
⊢ zipWith f (x :: y :: l) (rotate (x :: y :: l) 1) = f x y :: zipWith f (y :: l) (l ++ [x])
Theorem: Real.cos_le_one_div_sqrt_sq_add_one
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean

tactic: rcases eq_or_ne x 0 with (rfl | hx3)
state_before: x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
⊢ cos x ≤ 1 / sqrt (x ^ 2 + 1)

tactic: simp
state_before: case inl
hx1 : -(3 * π / 2) ≤ 0
hx2 : 0 ≤ 3 * π / 2
⊢ cos 0 ≤ 1 / sqrt (0 ^ 2 + 1)

tactic: exact (cos_lt_one_div_sqrt_sq_add_one hx1 hx2 hx3).le
state_before: case inr
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
⊢ cos x ≤ 1 / sqrt (x ^ 2 + 1)
Theorem: inv_sub_inv
File: Mathlib/Algebra/Field/Basic.lean

tactic: rw [inv_eq_one_div, inv_eq_one_div, div_sub_div _ _ ha hb, one_mul, mul_one]
state_before: α : Type ?u.54868
β : Type ?u.54871
K : Type u_1
inst✝ : Field K
a b : K
ha : a ≠ 0
hb : b ≠ 0
⊢ a⁻¹ - b⁻¹ = (b - a) / (a * b)
Theorem: IsAlgClosed.of_exists_root
File: Mathlib/FieldTheory/IsAlgClosed/Basic.lean

tactic: refine ⟨fun p ↦ Or.inr ?_⟩
state_before: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), Monic p → Irreducible p → ∃ x, eval x p = 0
⊢ IsAlgClosed k

tactic: intro q hq _
state_before: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), Monic p → Irreducible p → ∃ x, eval x p = 0
p : k[X]
⊢ ∀ {g : k[X]}, Irreducible g → g ∣ map (RingHom.id k) p → degree g = 1

tactic: have : Irreducible (q * C (leadingCoeff q)⁻¹) := by
  rw [← coe_normUnit_of_ne_zero hq.ne_zero]
  exact (associated_normalize _).irreducible hq
state_before: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), Monic p → Irreducible p → ∃ x, eval x p = 0
p q : k[X]
hq : Irreducible q
a✝ : q ∣ map (RingHom.id k) p
⊢ degree q = 1

tactic: obtain ⟨x, hx⟩ := H (q * C (leadingCoeff q)⁻¹) (monic_mul_leadingCoeff_inv hq.ne_zero) this
state_before: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), Monic p → Irreducible p → ∃ x, eval x p = 0
p q : k[X]
hq : Irreducible q
a✝ : q ∣ map (RingHom.id k) p
this : Irreducible (q * ↑C (leadingCoeff q)⁻¹)
⊢ degree q = 1

tactic: exact degree_mul_leadingCoeff_inv q hq.ne_zero ▸ degree_eq_one_of_irreducible_of_root this hx
state_before: case intro
k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), Monic p → Irreducible p → ∃ x, eval x p = 0
p q : k[X]
hq : Irreducible q
a✝ : q ∣ map (RingHom.id k) p
this : Irreducible (q * ↑C (leadingCoeff q)⁻¹)
x : k
hx : eval x (q * ↑C (leadingCoeff q)⁻¹) = 0
⊢ degree q = 1

tactic: rw [← coe_normUnit_of_ne_zero hq.ne_zero]
state_before: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), Monic p → Irreducible p → ∃ x, eval x p = 0
p q : k[X]
hq : Irreducible q
a✝ : q ∣ map (RingHom.id k) p
⊢ Irreducible (q * ↑C (leadingCoeff q)⁻¹)

tactic: exact (associated_normalize _).irreducible hq
state_before: k : Type u
inst✝ : Field k
H : ∀ (p : k[X]), Monic p → Irreducible p → ∃ x, eval x p = 0
p q : k[X]
hq : Irreducible q
a✝ : q ∣ map (RingHom.id k) p
⊢ Irreducible (q * ↑(normUnit q))