tasksource/leandojo huggingface dataset:
Theorem: CategoryTheory.MorphismProperty.StableUnderCobaseChange.mk
File: Mathlib/CategoryTheory/MorphismProperty.lean

tactic: let e := sq.flip.isoPushout
state_before: C : Type u
inst✝² : Category C
D : Type ?u.40576
inst✝¹ : Category D
P : MorphismProperty C
inst✝ : HasPushouts C
hP₁ : RespectsIso P
hP₂ : ∀ (A B A' : C) (f : A ⟶ A') (g : A ⟶ B), P f → P pushout.inr
A A' B B' : C
f : A ⟶ A'
g : A ⟶ B
f' : B ⟶ B'
g' : A' ⟶ B'
sq : IsPushout g f f' g'
hf : P f
⊢ P f'

tactic: rw [← hP₁.cancel_right_isIso _ e.hom, sq.flip.inr_isoPushout_hom]
state_before: C : Type u
inst✝² : Category C
D : Type ?u.40576
inst✝¹ : Category D
P : MorphismProperty C
inst✝ : HasPushouts C
hP₁ : RespectsIso P
hP₂ : ∀ (A B A' : C) (f : A ⟶ A') (g : A ⟶ B), P f → P pushout.inr
A A' B B' : C
f : A ⟶ A'
g : A ⟶ B
f' : B ⟶ B'
g' : A' ⟶ B'
sq : IsPushout g f f' g'
hf : P f
e : B' ≅ pushout f g := IsPushout.isoPushout (_ : IsPushout f g g' f')
⊢ P f'

tactic: exact hP₂ _ _ _ f g hf
state_before: C : Type u
inst✝² : Category C
D : Type ?u.40576
inst✝¹ : Category D
P : MorphismProperty C
inst✝ : HasPushouts C
hP₁ : RespectsIso P
hP₂ : ∀ (A B A' : C) (f : A ⟶ A') (g : A ⟶ B), P f → P pushout.inr
A A' B B' : C
f : A ⟶ A'
g : A ⟶ B
f' : B ⟶ B'
g' : A' ⟶ B'
sq : IsPushout g f f' g'
hf : P f
e : B' ≅ pushout f g := IsPushout.isoPushout (_ : IsPushout f g g' f')
⊢ P pushout.inr
Theorem: skewAdjointPart_comp_subtype_skewAdjoint
File: Mathlib/Algebra/Star/Module.lean

tactic: simp only [LinearMap.comp_apply, Submodule.subtype_apply, skewAdjointPart_apply_coe, hx,
  sub_neg_eq_add, smul_add, invOf_two_smul_add_invOf_two_smul]
state_before: R : Type u_2
A : Type u_1
inst✝⁷ : Semiring R
inst✝⁶ : StarSemigroup R
inst✝⁵ : TrivialStar R
inst✝⁴ : AddCommGroup A
inst✝³ : Module R A
inst✝² : StarAddMonoid A
inst✝¹ : StarModule R A
inst✝ : Invertible 2
x✝ : { x // x ∈ skewAdjoint.submodule R A }
x : A
hx : star x = -x
⊢ ↑(↑(LinearMap.comp (skewAdjointPart R) (Submodule.subtype (skewAdjoint.submodule R A)))
        { val := x, property := hx }) =
    ↑(↑LinearMap.id { val := x, property := hx })

tactic: rfl
state_before: R : Type u_2
A : Type u_1
inst✝⁷ : Semiring R
inst✝⁶ : StarSemigroup R
inst✝⁵ : TrivialStar R
inst✝⁴ : AddCommGroup A
inst✝³ : Module R A
inst✝² : StarAddMonoid A
inst✝¹ : StarModule R A
inst✝ : Invertible 2
x✝ : { x // x ∈ skewAdjoint.submodule R A }
x : A
hx : star x = -x
⊢ x = ↑(↑LinearMap.id { val := x, property := hx })
Theorem: Even.neg_one_zpow
File: Mathlib/Algebra/Parity.lean

tactic: rw [h.neg_zpow, one_zpow]
state_before: F : Type ?u.44652
α : Type u_1
β : Type ?u.44658
R : Type ?u.44661
inst✝¹ : DivisionMonoid α
a : α
inst✝ : HasDistribNeg α
n : ℤ
h : Even n
⊢ (-1) ^ n = 1
Theorem: Real.sqrtAux_nonneg
File: Mathlib/Data/Real/Sqrt.lean

tactic: rw [sqrtAux, Rat.mkRat_eq, Rat.divInt_eq_div]
state_before: f : CauSeq ℚ abs
⊢ 0 ≤ sqrtAux f 0

tactic: apply div_nonneg <;>
exact Int.cast_nonneg.2 (Int.ofNat_nonneg _)
state_before: f : CauSeq ℚ abs
⊢ 0 ≤ ↑↑(Nat.sqrt (Int.toNat (↑f 0).num)) / ↑↑(Nat.sqrt (↑f 0).den)
Theorem: ManyOneDegree.le_add_right
File: Mathlib/Computability/Reduce.lean

tactic: rfl
state_before: α : Type u
inst✝⁵ : Primcodable α
inst✝⁴ : Inhabited α
β : Type v
inst✝³ : Primcodable β
inst✝² : Inhabited β
γ : Type w
inst✝¹ : Primcodable γ
inst✝ : Inhabited γ
d₁ d₂ : ManyOneDegree
⊢ ?m.115538 d₁ d₂ + d₂ ≤ d₁ + d₂
Theorem: sub_self_div_two
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: suffices a / 2 + a / 2 - a / 2 = a / 2 by rwa [add_halves] at this
state_before: ι : Type ?u.183426
α : Type u_1
β : Type ?u.183432
inst✝ : LinearOrderedField α
a✝ b c d : α
n : ℤ
a : α
⊢ a - a / 2 = a / 2

tactic: rw [add_sub_cancel]
state_before: ι : Type ?u.183426
α : Type u_1
β : Type ?u.183432
inst✝ : LinearOrderedField α
a✝ b c d : α
n : ℤ
a : α
⊢ a / 2 + a / 2 - a / 2 = a / 2

tactic: rwa [add_halves] at this
state_before: ι : Type ?u.183426
α : Type u_1
β : Type ?u.183432
inst✝ : LinearOrderedField α
a✝ b c d : α
n : ℤ
a : α
this : a / 2 + a / 2 - a / 2 = a / 2
⊢ a - a / 2 = a / 2
Theorem: lie_sub
File: Mathlib/Algebra/Lie/Basic.lean

tactic: simp [sub_eq_add_neg]
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
t : R
x y z : L
m n : M
⊢ ⁅x, m - n⁆ = ⁅x, m⁆ - ⁅x, n⁆
Theorem: irreducible_units_mul
File: Mathlib/Algebra/Associated.lean

tactic: simp only [irreducible_iff, Units.isUnit_units_mul, and_congr_right_iff]
state_before: α : Type u_1
β : Type ?u.87841
γ : Type ?u.87844
δ : Type ?u.87847
inst✝ : Monoid α
a : αˣ
b : α
⊢ Irreducible (↑a * b) ↔ Irreducible b

tactic: refine' fun _ => ⟨fun h A B HAB => _, fun h A B HAB => _⟩
state_before: α : Type u_1
β : Type ?u.87841
γ : Type ?u.87844
δ : Type ?u.87847
inst✝ : Monoid α
a : αˣ
b : α
⊢ ¬IsUnit b →
    ((∀ (a_2 b_1 : α), ↑a * b = a_2 * b_1 → IsUnit a_2 ∨ IsUnit b_1) ↔
      ∀ (a b_1 : α), b = a * b_1 → IsUnit a ∨ IsUnit b_1)

tactic: rw [← a.isUnit_units_mul]
state_before: case refine'_1
α : Type u_1
β : Type ?u.87841
γ : Type ?u.87844
δ : Type ?u.87847
inst✝ : Monoid α
a : αˣ
b : α
x✝ : ¬IsUnit b
h : ∀ (a_1 b_1 : α), ↑a * b = a_1 * b_1 → IsUnit a_1 ∨ IsUnit b_1
A B : α
HAB : b = A * B
⊢ IsUnit A ∨ IsUnit B

tactic: apply h
state_before: case refine'_1
α : Type u_1
β : Type ?u.87841
γ : Type ?u.87844
δ : Type ?u.87847
inst✝ : Monoid α
a : αˣ
b : α
x✝ : ¬IsUnit b
h : ∀ (a_1 b_1 : α), ↑a * b = a_1 * b_1 → IsUnit a_1 ∨ IsUnit b_1
A B : α
HAB : b = A * B
⊢ IsUnit (↑a * A) ∨ IsUnit B

tactic: rw [mul_assoc, ← HAB]
state_before: case refine'_1.a
α : Type u_1
β : Type ?u.87841
γ : Type ?u.87844
δ : Type ?u.87847
inst✝ : Monoid α
a : αˣ
b : α
x✝ : ¬IsUnit b
h : ∀ (a_1 b_1 : α), ↑a * b = a_1 * b_1 → IsUnit a_1 ∨ IsUnit b_1
A B : α
HAB : b = A * B
⊢ ↑a * b = ↑a * A * B

tactic: rw [← a⁻¹.isUnit_units_mul]
state_before: case refine'_2
α : Type u_1
β : Type ?u.87841
γ : Type ?u.87844
δ : Type ?u.87847
inst✝ : Monoid α
a : αˣ
b : α
x✝ : ¬IsUnit b
h : ∀ (a b_1 : α), b = a * b_1 → IsUnit a ∨ IsUnit b_1
A B : α
HAB : ↑a * b = A * B
⊢ IsUnit A ∨ IsUnit B

tactic: apply h
state_before: case refine'_2
α : Type u_1
β : Type ?u.87841
γ : Type ?u.87844
δ : Type ?u.87847
inst✝ : Monoid α
a : αˣ
b : α
x✝ : ¬IsUnit b
h : ∀ (a b_1 : α), b = a * b_1 → IsUnit a ∨ IsUnit b_1
A B : α
HAB : ↑a * b = A * B
⊢ IsUnit (↑a⁻¹ * A) ∨ IsUnit B

tactic: rw [mul_assoc, ← HAB, Units.inv_mul_cancel_left]
state_before: case refine'_2.a
α : Type u_1
β : Type ?u.87841
γ : Type ?u.87844
δ : Type ?u.87847
inst✝ : Monoid α
a : αˣ
b : α
x✝ : ¬IsUnit b
h : ∀ (a b_1 : α), b = a * b_1 → IsUnit a ∨ IsUnit b_1
A B : α
HAB : ↑a * b = A * B
⊢ b = ↑a⁻¹ * A * B
Theorem: Nat.zero_eq_mul
File: Mathlib/Data/Nat/Order/Basic.lean

tactic: rw [eq_comm, Nat.mul_eq_zero]
state_before: m n k l : ℕ
⊢ 0 = m * n ↔ m = 0 ∨ n = 0
Theorem: ENNReal.mul_lt_mul
File: Mathlib/Data/Real/ENNReal.lean

tactic: rcases lt_iff_exists_nnreal_btwn.1 ac with ⟨a', aa', a'c⟩
state_before: α : Type ?u.152394
β : Type ?u.152397
a b c d : ℝ≥0∞
r p q : ℝ≥0
ac : a < c
bd : b < d
⊢ a * b < c * d

tactic: lift a to ℝ≥0 using ne_top_of_lt aa'
state_before: case intro.intro
α : Type ?u.152394
β : Type ?u.152397
a b c d : ℝ≥0∞
r p q : ℝ≥0
ac : a < c
bd : b < d
a' : ℝ≥0
aa' : a < ↑a'
a'c : ↑a' < c
⊢ a * b < c * d

tactic: rcases lt_iff_exists_nnreal_btwn.1 bd with ⟨b', bb', b'd⟩
state_before: case intro.intro.intro
α : Type ?u.152394
β : Type ?u.152397
b c d : ℝ≥0∞
r p q : ℝ≥0
bd : b < d
a' : ℝ≥0
a'c : ↑a' < c
a : ℝ≥0
ac : ↑a < c
aa' : ↑a < ↑a'
⊢ ↑a * b < c * d

tactic: lift b to ℝ≥0 using ne_top_of_lt bb'
state_before: case intro.intro.intro.intro.intro
α : Type ?u.152394
β : Type ?u.152397
b c d : ℝ≥0∞
r p q : ℝ≥0
bd : b < d
a' : ℝ≥0
a'c : ↑a' < c
a : ℝ≥0
ac : ↑a < c
aa' : ↑a < ↑a'
b' : ℝ≥0
bb' : b < ↑b'
b'd : ↑b' < d
⊢ ↑a * b < c * d

tactic: norm_cast at *
state_before: case intro.intro.intro.intro.intro.intro
α : Type ?u.152394
β : Type ?u.152397
c d : ℝ≥0∞
r p q a' : ℝ≥0
a'c : ↑a' < c
a : ℝ≥0
ac : ↑a < c
aa' : ↑a < ↑a'
b' : ℝ≥0
b'd : ↑b' < d
b : ℝ≥0
bd : ↑b < d
bb' : ↑b < ↑b'
⊢ ↑a * ↑b < c * d

tactic: calc
  ↑(a * b) < ↑(a' * b') := coe_lt_coe.2 (mul_lt_mul₀ aa' bb')
  _ = ↑a' * ↑b' := coe_mul
  _ ≤ c * d := mul_le_mul' a'c.le b'd.le
state_before: case intro.intro.intro.intro.intro.intro
α : Type ?u.152394
β : Type ?u.152397
c d : ℝ≥0∞
r p q a' : ℝ≥0
a'c : ↑a' < c
a : ℝ≥0
ac : ↑a < c
b' : ℝ≥0
b'd : ↑b' < d
b : ℝ≥0
bd : ↑b < d
aa' : a < a'
bb' : b < b'
⊢ ↑(a * b) < c * d
Theorem: Measurable.dite
File: Mathlib/MeasureTheory/MeasurableSpace.lean

tactic: simpa
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.74519
δ : Type ?u.74522
δ' : Type ?u.74525
ι : Sort uι
s t u : Set α
m : MeasurableSpace α
mβ : MeasurableSpace β
inst✝ : (x : α) → Decidable (x ∈ s)
f : ↑s → β
hf : Measurable f
g : ↑(sᶜ) → β
hg : Measurable g
hs : MeasurableSet s
⊢ Measurable (restrict s fun x => if hx : x ∈ s then f { val := x, property := hx } else g { val := x, property := hx })

tactic: simpa
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.74519
δ : Type ?u.74522
δ' : Type ?u.74525
ι : Sort uι
s t u : Set α
m : MeasurableSpace α
mβ : MeasurableSpace β
inst✝ : (x : α) → Decidable (x ∈ s)
f : ↑s → β
hf : Measurable f
g : ↑(sᶜ) → β
hg : Measurable g
hs : MeasurableSet s
⊢ Measurable
    (restrict (sᶜ) fun x => if hx : x ∈ s then f { val := x, property := hx } else g { val := x, property := hx })
Theorem: Gamma_zero_bot
File: Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean

tactic: ext
state_before: N : ℕ
⊢ Gamma 0 = ⊥

tactic: simp only [Gamma_mem, coe_matrix_coe, Int.coe_castRingHom, map_apply, Int.cast_id,
  Subgroup.mem_bot]
state_before: case h
N : ℕ
x✝ : SL(2, ℤ)
⊢ x✝ ∈ Gamma 0 ↔ x✝ ∈ ⊥

tactic: constructor
state_before: case h
N : ℕ
x✝ : SL(2, ℤ)
⊢ ↑(↑x✝ 0 0) = 1 ∧ ↑(↑x✝ 0 1) = 0 ∧ ↑(↑x✝ 1 0) = 0 ∧ ↑(↑x✝ 1 1) = 1 ↔ x✝ = 1

tactic: intro h
state_before: case h.mp
N : ℕ
x✝ : SL(2, ℤ)
⊢ ↑(↑x✝ 0 0) = 1 ∧ ↑(↑x✝ 0 1) = 0 ∧ ↑(↑x✝ 1 0) = 0 ∧ ↑(↑x✝ 1 1) = 1 → x✝ = 1

tactic: ext i
state_before: case h.mp
N : ℕ
x✝ : SL(2, ℤ)
h : ↑(↑x✝ 0 0) = 1 ∧ ↑(↑x✝ 0 1) = 0 ∧ ↑(↑x✝ 1 0) = 0 ∧ ↑(↑x✝ 1 1) = 1
⊢ x✝ = 1

tactic: intro j
state_before: case h.mp.a
N : ℕ
x✝ : SL(2, ℤ)
h : ↑(↑x✝ 0 0) = 1 ∧ ↑(↑x✝ 0 1) = 0 ∧ ↑(↑x✝ 1 0) = 0 ∧ ↑(↑x✝ 1 1) = 1
i : Fin 2
⊢ ∀ (j : Fin 2), ↑x✝ i j = ↑1 i j

tactic: fin_cases i <;> fin_cases j <;> simp only [h]
state_before: case h.mp.a
N : ℕ
x✝ : SL(2, ℤ)
h : ↑(↑x✝ 0 0) = 1 ∧ ↑(↑x✝ 0 1) = 0 ∧ ↑(↑x✝ 1 0) = 0 ∧ ↑(↑x✝ 1 1) = 1
i j : Fin 2
⊢ ↑x✝ i j = ↑1 i j

tactic: exacts [h.1, h.2.1, h.2.2.1, h.2.2.2]
state_before: case h.mp.a.head.head
N : ℕ
x✝ : SL(2, ℤ)
h : ↑(↑x✝ 0 0) = 1 ∧ ↑(↑x✝ 0 1) = 0 ∧ ↑(↑x✝ 1 0) = 0 ∧ ↑(↑x✝ 1 1) = 1
⊢ ↑x✝ { val := 0, isLt := (_ : 0 < 2) } { val := 0, isLt := (_ : 0 < 2) } =
    ↑1 { val := 0, isLt := (_ : 0 < 2) } { val := 0, isLt := (_ : 0 < 2) }

case h.mp.a.head.tail.head
N : ℕ
x✝ : SL(2, ℤ)
h : ↑(↑x✝ 0 0) = 1 ∧ ↑(↑x✝ 0 1) = 0 ∧ ↑(↑x✝ 1 0) = 0 ∧ ↑(↑x✝ 1 1) = 1
⊢ ↑x✝ { val := 0, isLt := (_ : 0 < 2) } { val := 1, isLt := (_ : (fun a => a < 2) 1) } =
    ↑1 { val := 0, isLt := (_ : 0 < 2) } { val := 1, isLt := (_ : (fun a => a < 2) 1) }

case h.mp.a.tail.head.head
N : ℕ
x✝ : SL(2, ℤ)
h : ↑(↑x✝ 0 0) = 1 ∧ ↑(↑x✝ 0 1) = 0 ∧ ↑(↑x✝ 1 0) = 0 ∧ ↑(↑x✝ 1 1) = 1
⊢ ↑x✝ { val := 1, isLt := (_ : (fun a => a < 2) 1) } { val := 0, isLt := (_ : 0 < 2) } =
    ↑1 { val := 1, isLt := (_ : (fun a => a < 2) 1) } { val := 0, isLt := (_ : 0 < 2) }

case h.mp.a.tail.head.tail.head
N : ℕ
x✝ : SL(2, ℤ)
h : ↑(↑x✝ 0 0) = 1 ∧ ↑(↑x✝ 0 1) = 0 ∧ ↑(↑x✝ 1 0) = 0 ∧ ↑(↑x✝ 1 1) = 1
⊢ ↑x✝ { val := 1, isLt := (_ : (fun a => a < 2) 1) } { val := 1, isLt := (_ : (fun a => a < 2) 1) } =
    ↑1 { val := 1, isLt := (_ : (fun a => a < 2) 1) } { val := 1, isLt := (_ : (fun a => a < 2) 1) }

tactic: intro h
state_before: case h.mpr
N : ℕ
x✝ : SL(2, ℤ)
⊢ x✝ = 1 → ↑(↑x✝ 0 0) = 1 ∧ ↑(↑x✝ 0 1) = 0 ∧ ↑(↑x✝ 1 0) = 0 ∧ ↑(↑x✝ 1 1) = 1

tactic: simp [h]
state_before: case h.mpr
N : ℕ
x✝ : SL(2, ℤ)
h : x✝ = 1
⊢ ↑(↑x✝ 0 0) = 1 ∧ ↑(↑x✝ 0 1) = 0 ∧ ↑(↑x✝ 1 0) = 0 ∧ ↑(↑x✝ 1 1) = 1
Theorem: HasDerivAtFilter.scomp
File: Mathlib/Analysis/Calculus/Deriv/Comp.lean

tactic: simpa using ((hg.restrictScalars 𝕜).comp x hh hL).hasDerivAtFilter
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_1
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
s' t' : Set 𝕜'
h : 𝕜 → 𝕜'
h₁ : 𝕜 → 𝕜
h₂ : 𝕜' → 𝕜'
h' h₂' : 𝕜'
h₁' : 𝕜
g₁ : 𝕜' → F
g₁' : F
L' : Filter 𝕜'
hg : HasDerivAtFilter g₁ g₁' (h x) L'
hh : HasDerivAtFilter h h' x L
hL : Tendsto h L L'
⊢ HasDerivAtFilter (g₁ ∘ h) (h' • g₁') x L
Theorem: Finset.offDiag_inter
File: Mathlib/Data/Finset/Prod.lean

tactic: push_cast
state_before: α : Type u_1
β : Type ?u.122500
γ : Type ?u.122503
inst✝ : DecidableEq α
s t : Finset α
x : α × α
⊢ ↑(offDiag (s ∩ t)) = ↑(offDiag s ∩ offDiag t)

tactic: exact Set.offDiag_inter _ _
state_before: α : Type u_1
β : Type ?u.122500
γ : Type ?u.122503
inst✝ : DecidableEq α
s t : Finset α
x : α × α
⊢ Set.offDiag (↑s ∩ ↑t) = Set.offDiag ↑s ∩ Set.offDiag ↑t
Theorem: Submodule.mem_iInf
File: Mathlib/Algebra/Module/Submodule/Lattice.lean

tactic: rw [← SetLike.mem_coe, iInf_coe, Set.mem_iInter]
state_before: R : Type u_2
S : Type ?u.144585
M : Type u_3
inst✝⁶ : Semiring R
inst✝⁵ : Semiring S
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : Module S M
inst✝¹ : SMul S R
inst✝ : IsScalarTower S R M
p✝ q : Submodule R M
ι : Sort u_1
p : ι → Submodule R M
x : M
⊢ (x ∈ ⨅ (i : ι), p i) ↔ ∀ (i : ι), x ∈ p i

tactic: rfl
state_before: R : Type u_2
S : Type ?u.144585
M : Type u_3
inst✝⁶ : Semiring R
inst✝⁵ : Semiring S
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : Module S M
inst✝¹ : SMul S R
inst✝ : IsScalarTower S R M
p✝ q : Submodule R M
ι : Sort u_1
p : ι → Submodule R M
x : M
⊢ (∀ (i : ι), x ∈ ↑(p i)) ↔ ∀ (i : ι), x ∈ p i
Theorem: Cubic.splits_iff_roots_eq_three
File: Mathlib/Algebra/CubicDiscriminant.lean

tactic: rw [splits_iff_card_roots ha, card_eq_three]
state_before: R : Type ?u.714741
S : Type ?u.714744
F : Type u_1
K : Type u_2
P : Cubic F
inst✝¹ : Field F
inst✝ : Field K
φ : F →+* K
x y z : K
ha : P.a ≠ 0
⊢ Splits φ (toPoly P) ↔ ∃ x y z, roots (map φ P) = {x, y, z}
Theorem: padicValNat.pow
File: Mathlib/NumberTheory/Padics/PadicVal.lean

tactic: simpa only [← @Nat.cast_inj ℤ, push_cast] using padicValRat.pow (Nat.cast_ne_zero.mpr ha)
state_before: p a b : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
ha : a ≠ 0
⊢ padicValNat p (a ^ n) = n * padicValNat p a
Theorem: MeasureTheory.L1.setToL1_indicatorConstLp
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: rw [← Lp.simpleFunc.coe_indicatorConst hs hμs x]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.1189632
G : Type ?u.1189635
𝕜 : Type ?u.1189638
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜 F
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
hT : DominatedFinMeasAdditive μ T C
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s ≠ ⊤
x : E
⊢ ↑(setToL1 hT) (indicatorConstLp 1 hs hμs x) = ↑(T s) x

tactic: exact setToL1_simpleFunc_indicatorConst hT hs hμs.lt_top x
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type ?u.1189632
G : Type ?u.1189635
𝕜 : Type ?u.1189638
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜 F
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
hT : DominatedFinMeasAdditive μ T C
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s ≠ ⊤
x : E
⊢ ↑(setToL1 hT) ↑(indicatorConst 1 hs hμs x) = ↑(T s) x
Theorem: Complex.abs_mul_exp_arg_mul_I
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: rcases eq_or_ne x 0 with (rfl | hx)
state_before: x : ℂ
⊢ ↑(↑abs x) * exp (↑(arg x) * I) = x

tactic: simp
state_before: case inl

⊢ ↑(↑abs 0) * exp (↑(arg 0) * I) = 0

tactic: have : abs x ≠ 0 := abs.ne_zero hx
state_before: case inr
x : ℂ
hx : x ≠ 0
⊢ ↑(↑abs x) * exp (↑(arg x) * I) = x

tactic: ext <;> field_simp [sin_arg, cos_arg hx, this, mul_comm (abs x)]
state_before: case inr
x : ℂ
hx : x ≠ 0
this : ↑abs x ≠ 0
⊢ ↑(↑abs x) * exp (↑(arg x) * I) = x
Theorem: Nat.ArithmeticFunction.cardDistinctFactors_apply_prime
File: Mathlib/NumberTheory/ArithmeticFunction.lean

tactic: rw [← pow_one p, cardDistinctFactors_apply_prime_pow hp one_ne_zero]
state_before: R : Type ?u.570430
p : ℕ
hp : Prime p
⊢ ↑ω p = 1
Theorem: MeasureTheory.integral_norm_eq_lintegral_nnnorm
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: rw [integral_eq_lintegral_of_nonneg_ae _ hf.norm]
state_before: α : Type u_2
E : Type ?u.1049026
F : Type ?u.1049029
𝕜 : Type ?u.1049032
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : CompleteSpace E
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : SMulCommClass ℝ 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1051723
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
G : Type u_1
inst✝ : NormedAddCommGroup G
f : α → G
hf : AEStronglyMeasurable f μ
⊢ (∫ (x : α), ‖f x‖ ∂μ) = ENNReal.toReal (∫⁻ (x : α), ↑‖f x‖₊ ∂μ)

tactic: simp_rw [ofReal_norm_eq_coe_nnnorm]
state_before: α : Type u_2
E : Type ?u.1049026
F : Type ?u.1049029
𝕜 : Type ?u.1049032
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : CompleteSpace E
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : SMulCommClass ℝ 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1051723
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
G : Type u_1
inst✝ : NormedAddCommGroup G
f : α → G
hf : AEStronglyMeasurable f μ
⊢ ENNReal.toReal (∫⁻ (a : α), ENNReal.ofReal ‖f a‖ ∂μ) = ENNReal.toReal (∫⁻ (x : α), ↑‖f x‖₊ ∂μ)

tactic: refine' ae_of_all _ _
state_before: α : Type u_2
E : Type ?u.1049026
F : Type ?u.1049029
𝕜 : Type ?u.1049032
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : CompleteSpace E
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : SMulCommClass ℝ 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1051723
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
G : Type u_1
inst✝ : NormedAddCommGroup G
f : α → G
hf : AEStronglyMeasurable f μ
⊢ 0 ≤ᵐ[μ] fun x => ‖f x‖

tactic: simp_rw [Pi.zero_apply, norm_nonneg, imp_true_iff]
state_before: α : Type u_2
E : Type ?u.1049026
F : Type ?u.1049029
𝕜 : Type ?u.1049032
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : CompleteSpace E
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : SMulCommClass ℝ 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1051723
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
G : Type u_1
inst✝ : NormedAddCommGroup G
f : α → G
hf : AEStronglyMeasurable f μ
⊢ ∀ (a : α), OfNat.ofNat 0 a ≤ (fun x => ‖f x‖) a
Theorem: Homotopy.nullHomotopicMap_comp
File: Mathlib/Algebra/Homology/Homotopy.lean

tactic: ext n
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g✝ : C ⟶ D
h k : D ⟶ E
i : ι
hom : (i j : ι) → X C i ⟶ X D j
g : D ⟶ E
⊢ nullHomotopicMap hom ≫ g = nullHomotopicMap fun i j => hom i j ≫ Hom.f g j

tactic: dsimp [nullHomotopicMap, fromNext, toPrev, AddMonoidHom.mk'_apply]
state_before: case h
ι : Type u_1
V : Type u
inst✝¹ : Category V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g✝ : C ⟶ D
h k : D ⟶ E
i : ι
hom : (i j : ι) → X C i ⟶ X D j
g : D ⟶ E
n : ι
⊢ Hom.f (nullHomotopicMap hom ≫ g) n = Hom.f (nullHomotopicMap fun i j => hom i j ≫ Hom.f g j) n

tactic: simp only [Preadditive.add_comp, Category.assoc, g.comm]
state_before: case h
ι : Type u_1
V : Type u
inst✝¹ : Category V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g✝ : C ⟶ D
h k : D ⟶ E
i : ι
hom : (i j : ι) → X C i ⟶ X D j
g : D ⟶ E
n : ι
⊢ (dFrom C n ≫ hom (ComplexShape.next c n) n + hom n (ComplexShape.prev c n) ≫ dTo D n) ≫ Hom.f g n =
    dFrom C n ≫ hom (ComplexShape.next c n) n ≫ Hom.f g n +
      (hom n (ComplexShape.prev c n) ≫ Hom.f g (ComplexShape.prev c n)) ≫ dTo E n
Theorem: Basis.prod_apply_inr_snd
File: Mathlib/LinearAlgebra/Basis.lean

tactic: ext i
state_before: ι : Type u_3
ι' : Type u_4
R : Type u_5
R₂ : Type ?u.583731
K : Type ?u.583734
M : Type u_2
M' : Type u_1
M'' : Type ?u.583743
V : Type u
V' : Type ?u.583748
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
b b₁ : Basis ι R M
i✝ : ι
c : R
x : M
b' : Basis ι' R M'
i : ι'
⊢ ↑b'.repr (↑(Basis.prod b b') (Sum.inr i)).snd = ↑b'.repr (↑b' i)

tactic: simp only [Basis.prod, Basis.coe_ofRepr, LinearEquiv.symm_trans_apply, LinearEquiv.prod_symm,
  LinearEquiv.prod_apply, b'.repr.apply_symm_apply, LinearEquiv.symm_symm, repr_self,
  Equiv.toFun_as_coe, Finsupp.snd_sumFinsuppLEquivProdFinsupp]
state_before: case h
ι : Type u_3
ι' : Type u_4
R : Type u_5
R₂ : Type ?u.583731
K : Type ?u.583734
M : Type u_2
M' : Type u_1
M'' : Type ?u.583743
V : Type u
V' : Type ?u.583748
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
b b₁ : Basis ι R M
i✝¹ : ι
c : R
x : M
b' : Basis ι' R M'
i✝ i : ι'
⊢ ↑(↑b'.repr (↑(Basis.prod b b') (Sum.inr i✝)).snd) i = ↑(↑b'.repr (↑b' i✝)) i

tactic: apply Finsupp.single_apply_left Sum.inr_injective
state_before: case h
ι : Type u_3
ι' : Type u_4
R : Type u_5
R₂ : Type ?u.583731
K : Type ?u.583734
M : Type u_2
M' : Type u_1
M'' : Type ?u.583743
V : Type u
V' : Type ?u.583748
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
b b₁ : Basis ι R M
i✝¹ : ι
c : R
x : M
b' : Basis ι' R M'
i✝ i : ι'
⊢ ↑(Finsupp.single (Sum.inr i✝) 1) (Sum.inr i) = ↑(Finsupp.single i✝ 1) i