1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.shiftFunctorAdd_inv_app_obj_of_induced
File: Mathlib/CategoryTheory/Shift/Induced.lean

tactic: letI := HasShift.induced F A s i
state_before: C : Type u_4
D : Type u_2
inst✝⁵ : Category.{u_5, u_4} C
inst✝⁴ : Category.{u_1, u_2} D
F : C ⥤ D
A : Type u_3
inst✝³ : AddMonoid A
inst✝² : HasShift C A
s : A → D ⥤ D
i : (a : A) → F ⋙ s a ≅ shiftFunctor C a ⋙ F
inst✝¹ : ((whiskeringLeft C D D).obj F).Full
inst✝ : ((whiskeringLeft C D D).obj F).Faithful
a b : A
X : C
⊢ (shiftFunctorAdd D a b).inv.app (F.obj X) =
    (s b).map ((i a).hom.app X) ≫
      (i b).hom.app ((shiftFunctor C a).obj X) ≫ F.map ((shiftFunctorAdd C a b).inv.app X) ≫ (i (a + b)).inv.app X
state_after: C : Type u_4
D : Type u_2
inst✝⁵ : Category.{u_5, u_4} C
inst✝⁴ : Category.{u_1, u_2} D
F : C ⥤ D
A : Type u_3
inst✝³ : AddMonoid A
inst✝² : HasShift C A
s : A → D ⥤ D
i : (a : A) → F ⋙ s a ≅ shiftFunctor C a ⋙ F
inst✝¹ : ((whiskeringLeft C D D).obj F).Full
inst✝ : ((whiskeringLeft C D D).obj F).Faithful
a b : A
X : C
this : HasShift D A := HasShift.induced F A s i
⊢ (shiftFunctorAdd D a b).inv.app (F.obj X) =
    (s b).map ((i a).hom.app X) ≫
      (i b).hom.app ((shiftFunctor C a).obj X) ≫ F.map ((shiftFunctorAdd C a b).inv.app X) ≫ (i (a + b)).inv.app X

tactic: simp only [ShiftMkCore.shiftFunctorAdd_eq, HasShift.Induced.add_inv_app_obj]
state_before: C : Type u_4
D : Type u_2
inst✝⁵ : Category.{u_5, u_4} C
inst✝⁴ : Category.{u_1, u_2} D
F : C ⥤ D
A : Type u_3
inst✝³ : AddMonoid A
inst✝² : HasShift C A
s : A → D ⥤ D
i : (a : A) → F ⋙ s a ≅ shiftFunctor C a ⋙ F
inst✝¹ : ((whiskeringLeft C D D).obj F).Full
inst✝ : ((whiskeringLeft C D D).obj F).Faithful
a b : A
X : C
this : HasShift D A := HasShift.induced F A s i
⊢ (shiftFunctorAdd D a b).inv.app (F.obj X) =
    (s b).map ((i a).hom.app X) ≫
      (i b).hom.app ((shiftFunctor C a).obj X) ≫ F.map ((shiftFunctorAdd C a b).inv.app X) ≫ (i (a + b)).inv.app X
state_after: no goals
Theorem: padicNorm.sub
File: Mathlib/NumberTheory/Padics/PadicNorm.lean

tactic: rw [sub_eq_add_neg, ← padicNorm.neg r]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
q r : ℚ
⊢ padicNorm p (q - r) ≤ max (padicNorm p q) (padicNorm p r)
state_after: p : ℕ
hp : Fact (Nat.Prime p)
q r : ℚ
⊢ padicNorm p (q + -r) ≤ max (padicNorm p q) (padicNorm p (-r))

tactic: exact padicNorm.nonarchimedean
state_before: p : ℕ
hp : Fact (Nat.Prime p)
q r : ℚ
⊢ padicNorm p (q + -r) ≤ max (padicNorm p q) (padicNorm p (-r))
state_after: no goals
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)⁻¹
state_after: no goals
Theorem: MonoidHom.transferSylow_eq_pow_aux
File: Mathlib/GroupTheory/Transfer.lean

tactic: haveI : (P : Subgroup G).IsCommutative :=
  ⟨⟨fun a b => Subtype.ext (hP (le_normalizer b.2) a a.2)⟩⟩
state_before: G : Type u_1
inst✝³ : Group G
H : Subgroup G
A : Type u_2
inst✝² : CommGroup A
ϕ : ↥H →* A
T : ↑(leftTransversals ↑H)
p : ℕ
P : Sylow p G
hP : (↑P).normalizer ≤ centralizer ↑P
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Finite (Sylow p G)
g : G
hg : g ∈ P
k : ℕ
g₀ : G
h : g₀⁻¹ * g ^ k * g₀ ∈ P
⊢ g₀⁻¹ * g ^ k * g₀ = g ^ k
state_after: G : Type u_1
inst✝³ : Group G
H : Subgroup G
A : Type u_2
inst✝² : CommGroup A
ϕ : ↥H →* A
T : ↑(leftTransversals ↑H)
p : ℕ
P : Sylow p G
hP : (↑P).normalizer ≤ centralizer ↑P
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Finite (Sylow p G)
g : G
hg : g ∈ P
k : ℕ
g₀ : G
h : g₀⁻¹ * g ^ k * g₀ ∈ P
this : (↑P).IsCommutative
⊢ g₀⁻¹ * g ^ k * g₀ = g ^ k

tactic: replace hg := (P : Subgroup G).pow_mem hg k
state_before: G : Type u_1
inst✝³ : Group G
H : Subgroup G
A : Type u_2
inst✝² : CommGroup A
ϕ : ↥H →* A
T : ↑(leftTransversals ↑H)
p : ℕ
P : Sylow p G
hP : (↑P).normalizer ≤ centralizer ↑P
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Finite (Sylow p G)
g : G
hg : g ∈ P
k : ℕ
g₀ : G
h : g₀⁻¹ * g ^ k * g₀ ∈ P
this : (↑P).IsCommutative
⊢ g₀⁻¹ * g ^ k * g₀ = g ^ k
state_after: G : Type u_1
inst✝³ : Group G
H : Subgroup G
A : Type u_2
inst✝² : CommGroup A
ϕ : ↥H →* A
T : ↑(leftTransversals ↑H)
p : ℕ
P : Sylow p G
hP : (↑P).normalizer ≤ centralizer ↑P
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Finite (Sylow p G)
g : G
k : ℕ
g₀ : G
h : g₀⁻¹ * g ^ k * g₀ ∈ P
this : (↑P).IsCommutative
hg : g ^ k ∈ ↑P
⊢ g₀⁻¹ * g ^ k * g₀ = g ^ k

tactic: obtain ⟨n, hn, h⟩ := P.conj_eq_normalizer_conj_of_mem (g ^ k) g₀ hg h
state_before: G : Type u_1
inst✝³ : Group G
H : Subgroup G
A : Type u_2
inst✝² : CommGroup A
ϕ : ↥H →* A
T : ↑(leftTransversals ↑H)
p : ℕ
P : Sylow p G
hP : (↑P).normalizer ≤ centralizer ↑P
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Finite (Sylow p G)
g : G
k : ℕ
g₀ : G
h : g₀⁻¹ * g ^ k * g₀ ∈ P
this : (↑P).IsCommutative
hg : g ^ k ∈ ↑P
⊢ g₀⁻¹ * g ^ k * g₀ = g ^ k
state_after: case intro.intro
G : Type u_1
inst✝³ : Group G
H : Subgroup G
A : Type u_2
inst✝² : CommGroup A
ϕ : ↥H →* A
T : ↑(leftTransversals ↑H)
p : ℕ
P : Sylow p G
hP : (↑P).normalizer ≤ centralizer ↑P
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Finite (Sylow p G)
g : G
k : ℕ
g₀ : G
h✝ : g₀⁻¹ * g ^ k * g₀ ∈ P
this : (↑P).IsCommutative
hg : g ^ k ∈ ↑P
n : G
hn : n ∈ (↑P).normalizer
h : g₀⁻¹ * g ^ k * g₀ = n⁻¹ * g ^ k * n
⊢ g₀⁻¹ * g ^ k * g₀ = g ^ k

tactic: exact h.trans (Commute.inv_mul_cancel (hP hn (g ^ k) hg).symm)
state_before: case intro.intro
G : Type u_1
inst✝³ : Group G
H : Subgroup G
A : Type u_2
inst✝² : CommGroup A
ϕ : ↥H →* A
T : ↑(leftTransversals ↑H)
p : ℕ
P : Sylow p G
hP : (↑P).normalizer ≤ centralizer ↑P
inst✝¹ : Fact (Nat.Prime p)
inst✝ : Finite (Sylow p G)
g : G
k : ℕ
g₀ : G
h✝ : g₀⁻¹ * g ^ k * g₀ ∈ P
this : (↑P).IsCommutative
hg : g ^ k ∈ ↑P
n : G
hn : n ∈ (↑P).normalizer
h : g₀⁻¹ * g ^ k * g₀ = n⁻¹ * g ^ k * n
⊢ g₀⁻¹ * g ^ k * g₀ = g ^ k
state_after: no goals
Theorem: Algebra.norm_complex_apply
File: Mathlib/RingTheory/Complex.lean

tactic: rw [Algebra.norm_eq_matrix_det Complex.basisOneI, Algebra.leftMulMatrix_complex,
  Matrix.det_fin_two, normSq_apply]
state_before: z : ℂ
⊢ (norm ℝ) z = normSq z
state_after: z : ℂ
⊢ Matrix.of ![![z.re, -z.im], ![z.im, z.re]] 0 0 * Matrix.of ![![z.re, -z.im], ![z.im, z.re]] 1 1 -
      Matrix.of ![![z.re, -z.im], ![z.im, z.re]] 0 1 * Matrix.of ![![z.re, -z.im], ![z.im, z.re]] 1 0 =
    z.re * z.re + z.im * z.im

tactic: simp
state_before: z : ℂ
⊢ Matrix.of ![![z.re, -z.im], ![z.im, z.re]] 0 0 * Matrix.of ![![z.re, -z.im], ![z.im, z.re]] 1 1 -
      Matrix.of ![![z.re, -z.im], ![z.im, z.re]] 0 1 * Matrix.of ![![z.re, -z.im], ![z.im, z.re]] 1 0 =
    z.re * z.re + z.im * z.im
state_after: no goals
Theorem: Num.ofInt'_toZNum
File: Mathlib/Data/Num/Lemmas.lean

tactic: rw [Nat.cast_succ, Num.add_one, toZNum_succ, ofInt'_toZNum n, Nat.cast_succ, succ_ofInt',
  ZNum.add_one]
state_before: α : Type u_1
n : ℕ
⊢ (↑(n + 1)).toZNum = ZNum.ofInt' ↑(n + 1)
state_after: no goals
Theorem: Nat.gcd_self_add_left
File: Mathlib/Data/Nat/GCD/Basic.lean

tactic: rw [add_comm, gcd_add_self_left]
state_before: m n : ℕ
⊢ (m + n).gcd m = n.gcd m
state_after: no goals
Theorem: WeierstrassCurve.leadingCoeff_preΨ₄
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean

tactic: rw [leadingCoeff, W.natDegree_preΨ₄ h, coeff_preΨ₄]
state_before: R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
h : 2 ≠ 0
⊢ W.preΨ₄.leadingCoeff = 2
state_after: no goals
Theorem: EReal.le_div_iff_mul_le
File: Mathlib/Data/Real/EReal.lean

tactic: nth_rw 1 [← @mul_div_cancel a b (ne_bot_of_gt h) h' (ne_of_gt h)]
state_before: a b c : EReal
h : b > 0
h' : b ≠ ⊤
⊢ a ≤ c / b ↔ a * b ≤ c
state_after: a b c : EReal
h : b > 0
h' : b ≠ ⊤
⊢ b * (a / b) ≤ c / b ↔ a * b ≤ c

tactic: rw [mul_div b a b, mul_comm a b]
state_before: a b c : EReal
h : b > 0
h' : b ≠ ⊤
⊢ b * (a / b) ≤ c / b ↔ a * b ≤ c
state_after: a b c : EReal
h : b > 0
h' : b ≠ ⊤
⊢ b * a / b ≤ c / b ↔ b * a ≤ c

tactic: exact StrictMono.le_iff_le (strictMono_div_right_of_pos h h')
state_before: a b c : EReal
h : b > 0
h' : b ≠ ⊤
⊢ b * a / b ≤ c / b ↔ b * a ≤ c
state_after: no goals
Theorem: Ideal.bot_prime
File: Mathlib/RingTheory/Ideal/Basic.lean

tactic: rwa [Ideal.eq_top_iff_one, Submodule.mem_bot] at h
state_before: α : Type u
β : Type v
inst✝¹ : Semiring α
I : Ideal α
a b : α
inst✝ : IsDomain α
h : ⊥ = ⊤
⊢ 1 = 0
state_after: no goals

tactic: simpa only [Submodule.mem_bot] using h
state_before: α : Type u
β : Type v
inst✝¹ : Semiring α
I : Ideal α
a b : α
inst✝ : IsDomain α
x✝ y✝ : α
h : x✝ * y✝ ∈ ⊥
⊢ x✝ * y✝ = 0
state_after: no goals
Theorem: Cubic.degree_of_a_eq_zero
File: Mathlib/Algebra/CubicDiscriminant.lean

tactic: simpa only [of_a_eq_zero ha] using degree_quadratic_le
state_before: R : Type u_1
S : Type u_2
F : Type u_3
K : Type u_4
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
ha : P.a = 0
⊢ P.toPoly.degree ≤ 2
state_after: no goals
Theorem: String.Iterator.forward_eq_nextn
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

tactic: funext it n
state_before: ⊢ forward = nextn
state_after: case h.h
it : Iterator
n : Nat
⊢ it.forward n = it.nextn n

tactic: induction n generalizing it <;> simp [forward, nextn, *]
state_before: case h.h
it : Iterator
n : Nat
⊢ it.forward n = it.nextn n
state_after: no goals
Theorem: EuclideanGeometry.cospherical_iff_exists_sphere
File: Mathlib/Geometry/Euclidean/Sphere/Basic.lean

tactic: refine ⟨fun h => ?_, fun h => ?_⟩
state_before: V : Type u_1
P : Type u_2
inst✝ : MetricSpace P
ps : Set P
⊢ Cospherical ps ↔ ∃ s, ps ⊆ Metric.sphere s.center s.radius
state_after: case refine_1
V : Type u_1
P : Type u_2
inst✝ : MetricSpace P
ps : Set P
h : Cospherical ps
⊢ ∃ s, ps ⊆ Metric.sphere s.center s.radius

case refine_2
V : Type u_1
P : Type u_2
inst✝ : MetricSpace P
ps : Set P
h : ∃ s, ps ⊆ Metric.sphere s.center s.radius
⊢ Cospherical ps

tactic: rcases h with ⟨c, r, h⟩
state_before: case refine_1
V : Type u_1
P : Type u_2
inst✝ : MetricSpace P
ps : Set P
h : Cospherical ps
⊢ ∃ s, ps ⊆ Metric.sphere s.center s.radius
state_after: case refine_1.intro.intro
V : Type u_1
P : Type u_2
inst✝ : MetricSpace P
ps : Set P
c : P
r : ℝ
h : ∀ p ∈ ps, dist p c = r
⊢ ∃ s, ps ⊆ Metric.sphere s.center s.radius

tactic: exact ⟨⟨c, r⟩, h⟩
state_before: case refine_1.intro.intro
V : Type u_1
P : Type u_2
inst✝ : MetricSpace P
ps : Set P
c : P
r : ℝ
h : ∀ p ∈ ps, dist p c = r
⊢ ∃ s, ps ⊆ Metric.sphere s.center s.radius
state_after: no goals

tactic: rcases h with ⟨s, h⟩
state_before: case refine_2
V : Type u_1
P : Type u_2
inst✝ : MetricSpace P
ps : Set P
h : ∃ s, ps ⊆ Metric.sphere s.center s.radius
⊢ Cospherical ps
state_after: case refine_2.intro
V : Type u_1
P : Type u_2
inst✝ : MetricSpace P
ps : Set P
s : Sphere P
h : ps ⊆ Metric.sphere s.center s.radius
⊢ Cospherical ps

tactic: exact ⟨s.center, s.radius, h⟩
state_before: case refine_2.intro
V : Type u_1
P : Type u_2
inst✝ : MetricSpace P
ps : Set P
s : Sphere P
h : ps ⊆ Metric.sphere s.center s.radius
⊢ Cospherical ps
state_after: no goals
Theorem: IsAddGroupHom.sub
File: Mathlib/Deprecated/Group.lean

tactic: simpa only [sub_eq_add_neg] using hf.add hg.neg
state_before: α✝ : Type u
β✝ : Type v
α : Type u_1
β : Type u_2
inst✝¹ : AddGroup α
inst✝ : AddCommGroup β
f g : α → β
hf : IsAddGroupHom f
hg : IsAddGroupHom g
⊢ IsAddGroupHom fun a => f a - g a
state_after: no goals
Theorem: CocompactMap.tendsto_of_forall_preimage
File: Mathlib/Topology/ContinuousFunction/CocompactMap.lean

tactic: simpa using preimage_mono hts
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
h : ∀ (s : Set β), IsCompact s → IsCompact (f ⁻¹' s)
s : Set β
hs : s ∈ cocompact β
t : Set β
ht : IsCompact t
hts : tᶜ ⊆ s
⊢ (f ⁻¹' t)ᶜ ⊆ f ⁻¹' s
state_after: no goals
Theorem: sdiff_eq_right
File: Mathlib/Order/BooleanAlgebra.lean

tactic: rw [disjoint_sdiff_self_left.eq_iff]
state_before: α : Type u
β : Type u_1
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ x \ y = y ↔ x = ⊥ ∧ y = ⊥
state_after: α : Type u
β : Type u_1
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ x \ y = ⊥ ∧ y = ⊥ ↔ x = ⊥ ∧ y = ⊥

tactic: aesop
state_before: α : Type u
β : Type u_1
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ x \ y = ⊥ ∧ y = ⊥ ↔ x = ⊥ ∧ y = ⊥
state_after: no goals
Theorem: Set.Finite.injOn_of_encard_image_eq
File: Mathlib/Data/Set/Card.lean

tactic: obtain (h' | hne) := isEmpty_or_nonempty α
state_before: α : Type u_1
β : Type u_2
s✝ t✝ s : Set α
t : Set β
f : α → β
hs : s.Finite
h : (f '' s).encard = s.encard
⊢ InjOn f s
state_after: case inl
α : Type u_1
β : Type u_2
s✝ t✝ s : Set α
t : Set β
f : α → β
hs : s.Finite
h : (f '' s).encard = s.encard
h' : IsEmpty α
⊢ InjOn f s

case inr
α : Type u_1
β : Type u_2
s✝ t✝ s : Set α
t : Set β
f : α → β
hs : s.Finite
h : (f '' s).encard = s.encard
hne : Nonempty α
⊢ InjOn f s

tactic: rw [← (f.invFunOn_injOn_image s).encard_image] at h
state_before: case inr
α : Type u_1
β : Type u_2
s✝ t✝ s : Set α
t : Set β
f : α → β
hs : s.Finite
h : (f '' s).encard = s.encard
hne : Nonempty α
⊢ InjOn f s
state_after: case inr
α : Type u_1
β : Type u_2
s✝ t✝ s : Set α
t : Set β
f : α → β
hs : s.Finite
hne : Nonempty α
h : (Function.invFunOn f s '' (f '' s)).encard = s.encard
⊢ InjOn f s

tactic: rw [injOn_iff_invFunOn_image_image_eq_self]
state_before: case inr
α : Type u_1
β : Type u_2
s✝ t✝ s : Set α
t : Set β
f : α → β
hs : s.Finite
hne : Nonempty α
h : (Function.invFunOn f s '' (f '' s)).encard = s.encard
⊢ InjOn f s
state_after: case inr
α : Type u_1
β : Type u_2
s✝ t✝ s : Set α
t : Set β
f : α → β
hs : s.Finite
hne : Nonempty α
h : (Function.invFunOn f s '' (f '' s)).encard = s.encard
⊢ Function.invFunOn f s '' (f '' s) = s

tactic: exact hs.eq_of_subset_of_encard_le (f.invFunOn_image_image_subset s) h.symm.le
state_before: case inr
α : Type u_1
β : Type u_2
s✝ t✝ s : Set α
t : Set β
f : α → β
hs : s.Finite
hne : Nonempty α
h : (Function.invFunOn f s '' (f '' s)).encard = s.encard
⊢ Function.invFunOn f s '' (f '' s) = s
state_after: no goals

tactic: rw [s.eq_empty_of_isEmpty]
state_before: case inl
α : Type u_1
β : Type u_2
s✝ t✝ s : Set α
t : Set β
f : α → β
hs : s.Finite
h : (f '' s).encard = s.encard
h' : IsEmpty α
⊢ InjOn f s
state_after: case inl
α : Type u_1
β : Type u_2
s✝ t✝ s : Set α
t : Set β
f : α → β
hs : s.Finite
h : (f '' s).encard = s.encard
h' : IsEmpty α
⊢ InjOn f ∅

tactic: simp
state_before: case inl
α : Type u_1
β : Type u_2
s✝ t✝ s : Set α
t : Set β
f : α → β
hs : s.Finite
h : (f '' s).encard = s.encard
h' : IsEmpty α
⊢ InjOn f ∅
state_after: no goals
Theorem: CochainComplex.mappingCone.inr_f_d
File: Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean

tactic: apply Hom.comm
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
n₁ n₂ : ℤ
⊢ (inr φ).f n₁ ≫ (mappingCone φ).d n₁ n₂ = G.d n₁ n₂ ≫ (inr φ).f n₂
state_after: no goals
Theorem: Nat.dvd_gcd_mul_iff_dvd_mul
File: Mathlib/Data/Nat/GCD/Basic.lean

tactic: rw [← gcd_mul_right, hy, gcd_mul_left]
state_before: x n m : ℕ
x✝ : x ∣ n * m
y : ℕ
hy : n * m = x * y
⊢ x ∣ x.gcd n * m
state_after: x n m : ℕ
x✝ : x ∣ n * m
y : ℕ
hy : n * m = x * y
⊢ x ∣ x * m.gcd y

tactic: exact dvd_mul_right x (gcd m y)
state_before: x n m : ℕ
x✝ : x ∣ n * m
y : ℕ
hy : n * m = x * y
⊢ x ∣ x * m.gcd y
state_after: no goals
Theorem: SimpleGraph.lapMatrix_mulVec_const_eq_zero
File: Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean

tactic: ext1 i
state_before: V : Type u_1
R : Type u_2
inst✝³ : Fintype V
inst✝² : DecidableEq V
G : SimpleGraph V
inst✝¹ : DecidableRel G.Adj
inst✝ : Ring R
⊢ (lapMatrix R G *ᵥ fun x => 1) = 0
state_after: case h
V : Type u_1
R : Type u_2
inst✝³ : Fintype V
inst✝² : DecidableEq V
G : SimpleGraph V
inst✝¹ : DecidableRel G.Adj
inst✝ : Ring R
i : V
⊢ (lapMatrix R G *ᵥ fun x => 1) i = 0 i

tactic: rw [lapMatrix_mulVec_apply]
state_before: case h
V : Type u_1
R : Type u_2
inst✝³ : Fintype V
inst✝² : DecidableEq V
G : SimpleGraph V
inst✝¹ : DecidableRel G.Adj
inst✝ : Ring R
i : V
⊢ (lapMatrix R G *ᵥ fun x => 1) i = 0 i
state_after: case h
V : Type u_1
R : Type u_2
inst✝³ : Fintype V
inst✝² : DecidableEq V
G : SimpleGraph V
inst✝¹ : DecidableRel G.Adj
inst✝ : Ring R
i : V
⊢ ↑(G.degree i) * 1 - ∑ u ∈ G.neighborFinset i, 1 = 0 i

tactic: simp
state_before: case h
V : Type u_1
R : Type u_2
inst✝³ : Fintype V
inst✝² : DecidableEq V
G : SimpleGraph V
inst✝¹ : DecidableRel G.Adj
inst✝ : Ring R
i : V
⊢ ↑(G.degree i) * 1 - ∑ u ∈ G.neighborFinset i, 1 = 0 i
state_after: no goals
Theorem: CategoryTheory.Limits.colimitObjIsoColimitCompEvaluation_ι_inv
File: Mathlib/CategoryTheory/Limits/FunctorCategory.lean

tactic: dsimp [colimitObjIsoColimitCompEvaluation]
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
D : Type u'
inst✝³ : Category.{v', u'} D
J : Type u₁
inst✝² : Category.{v₁, u₁} J
K : Type u₂
inst✝¹ : Category.{v₂, u₂} K
inst✝ : HasColimitsOfShape J C
F : J ⥤ K ⥤ C
j : J
k : K
⊢ colimit.ι (F ⋙ (evaluation K C).obj k) j ≫ (colimitObjIsoColimitCompEvaluation F k).inv = (colimit.ι F j).app k
state_after: C : Type u
inst✝⁴ : Category.{v, u} C
D : Type u'
inst✝³ : Category.{v', u'} D
J : Type u₁
inst✝² : Category.{v₁, u₁} J
K : Type u₂
inst✝¹ : Category.{v₂, u₂} K
inst✝ : HasColimitsOfShape J C
F : J ⥤ K ⥤ C
j : J
k : K
⊢ colimit.ι (F ⋙ (evaluation K C).obj k) j ≫ (preservesColimitIso ((evaluation K C).obj k) F).inv =
    (colimit.ι F j).app k

tactic: simp
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
D : Type u'
inst✝³ : Category.{v', u'} D
J : Type u₁
inst✝² : Category.{v₁, u₁} J
K : Type u₂
inst✝¹ : Category.{v₂, u₂} K
inst✝ : HasColimitsOfShape J C
F : J ⥤ K ⥤ C
j : J
k : K
⊢ colimit.ι (F ⋙ (evaluation K C).obj k) j ≫ (preservesColimitIso ((evaluation K C).obj k) F).inv =
    (colimit.ι F j).app k
state_after: no goals
Theorem: xInTermsOfW_zero
File: Mathlib/RingTheory/WittVector/WittPolynomial.lean

tactic: rw [xInTermsOfW_eq, range_zero, sum_empty, pow_zero, C_1, mul_one, sub_zero]
state_before: p : ℕ
R : Type u_1
inst✝² : CommRing R
inst✝¹ : DecidableEq R
inst✝ : Invertible ↑p
⊢ xInTermsOfW p R 0 = X 0
state_after: no goals
Theorem: Denumerable.lower_raise'
File: Mathlib/Logic/Equiv/List.lean

tactic: simp [raise', lower', add_tsub_cancel_right, lower_raise']
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Denumerable α
inst✝ : Denumerable β
m : ℕ
l : List ℕ
n : ℕ
⊢ lower' (raise' (m :: l) n) n = m :: l
state_after: no goals
Theorem: Nat.floor_of_nonpos
File: Mathlib/Algebra/Order/Floor.lean

tactic: rintro rfl
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
a : α
n : ℕ
ha : a ≤ 0
⊢ a = 0 → ⌊a⌋₊ = 0
state_after: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
n : ℕ
ha : 0 ≤ 0
⊢ ⌊0⌋₊ = 0

tactic: exact floor_zero
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
n : ℕ
ha : 0 ≤ 0
⊢ ⌊0⌋₊ = 0
state_after: no goals
Theorem: ArithmeticFunction.ppow_apply
File: Mathlib/NumberTheory/ArithmeticFunction.lean

tactic: rw [ppow, dif_neg (Nat.ne_of_gt kpos)]
state_before: R : Type u_1
inst✝ : Semiring R
f : ArithmeticFunction R
k x : ℕ
kpos : 0 < k
⊢ (f.ppow k) x = f x ^ k
state_after: R : Type u_1
inst✝ : Semiring R
f : ArithmeticFunction R
k x : ℕ
kpos : 0 < k
⊢ { toFun := fun x => f x ^ k, map_zero' := ⋯ } x = f x ^ k

tactic: rfl
state_before: R : Type u_1
inst✝ : Semiring R
f : ArithmeticFunction R
k x : ℕ
kpos : 0 < k
⊢ { toFun := fun x => f x ^ k, map_zero' := ⋯ } x = f x ^ k
state_after: no goals
Theorem: CategoryTheory.ChosenFiniteProducts.lift_fst
File: Mathlib/CategoryTheory/ChosenFiniteProducts.lean

tactic: simp [lift, fst]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : ChosenFiniteProducts C
T X Y : C
f : T ⟶ X
g : T ⟶ Y
⊢ lift f g ≫ fst X Y = f
state_after: no goals
Theorem: Nat.primeFactors_pow_succ
File: Mathlib/Data/Nat/PrimeFin.lean

tactic: rcases eq_or_ne n 0 with (rfl | hn)
state_before: a b k✝ m n✝ p n k : ℕ
⊢ (n ^ (k + 1)).primeFactors = n.primeFactors
state_after: case inl
a b k✝ m n p k : ℕ
⊢ (0 ^ (k + 1)).primeFactors = primeFactors 0

case inr
a b k✝ m n✝ p n k : ℕ
hn : n ≠ 0
⊢ (n ^ (k + 1)).primeFactors = n.primeFactors

tactic: induction' k with k ih
state_before: case inr
a b k✝ m n✝ p n k : ℕ
hn : n ≠ 0
⊢ (n ^ (k + 1)).primeFactors = n.primeFactors
state_after: case inr.zero
a b k m n✝ p n : ℕ
hn : n ≠ 0
⊢ (n ^ (0 + 1)).primeFactors = n.primeFactors

case inr.succ
a b k✝ m n✝ p n : ℕ
hn : n ≠ 0
k : ℕ
ih : (n ^ (k + 1)).primeFactors = n.primeFactors
⊢ (n ^ (k + 1 + 1)).primeFactors = n.primeFactors

tactic: simp
state_before: case inl
a b k✝ m n p k : ℕ
⊢ (0 ^ (k + 1)).primeFactors = primeFactors 0
state_after: no goals

tactic: simp
state_before: case inr.zero
a b k m n✝ p n : ℕ
hn : n ≠ 0
⊢ (n ^ (0 + 1)).primeFactors = n.primeFactors
state_after: no goals

tactic: rw [pow_succ', primeFactors_mul hn (pow_ne_zero _ hn), ih, Finset.union_idempotent]
state_before: case inr.succ
a b k✝ m n✝ p n : ℕ
hn : n ≠ 0
k : ℕ
ih : (n ^ (k + 1)).primeFactors = n.primeFactors
⊢ (n ^ (k + 1 + 1)).primeFactors = n.primeFactors
state_after: no goals
Theorem: ContinuousLinearMap.add_compLpL
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: ext1 f
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedAddCommGroup G
g : E → F
c : ℝ≥0
𝕜 : Type u_5
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜 F
inst✝ : Fact (1 ≤ p)
L L' : E →L[𝕜] F
⊢ compLpL p μ (L + L') = compLpL p μ L + compLpL p μ L'
state_after: case h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedAddCommGroup G
g : E → F
c : ℝ≥0
𝕜 : Type u_5
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜 F
inst✝ : Fact (1 ≤ p)
L L' : E →L[𝕜] F
f : ↥(Lp E p μ)
⊢ (compLpL p μ (L + L')) f = (compLpL p μ L + compLpL p μ L') f

tactic: exact add_compLp L L' f
state_before: case h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedAddCommGroup G
g : E → F
c : ℝ≥0
𝕜 : Type u_5
inst✝³ : NontriviallyNormedField 𝕜
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace 𝕜 F
inst✝ : Fact (1 ≤ p)
L L' : E →L[𝕜] F
f : ↥(Lp E p μ)
⊢ (compLpL p μ (L + L')) f = (compLpL p μ L + compLpL p μ L') f
state_after: no goals
Theorem: LieSubmodule.toEnd_comp_subtype_mem
File: Mathlib/Algebra/Lie/OfAssociative.lean

tactic: simpa using N.lie_mem hm
state_before: R : Type u
L : Type v
M : 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
N : LieSubmodule R L M
x : L
m : M
hm : m ∈ ↑N
⊢ ((toEnd R L M) x ∘ₗ (↑N).subtype) ⟨m, hm⟩ ∈ ↑N
state_after: no goals
Theorem: inner_add_add_self
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: simp only [inner_add_left, inner_add_right]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
x y : E
⊢ ⟪x + y, x + y⟫_𝕜 = ⟪x, x⟫_𝕜 + ⟪x, y⟫_𝕜 + ⟪y, x⟫_𝕜 + ⟪y, y⟫_𝕜
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
x y : E
⊢ ⟪x, x⟫_𝕜 + ⟪y, x⟫_𝕜 + (⟪x, y⟫_𝕜 + ⟪y, y⟫_𝕜) = ⟪x, x⟫_𝕜 + ⟪x, y⟫_𝕜 + ⟪y, x⟫_𝕜 + ⟪y, y⟫_𝕜

tactic: ring
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
x y : E
⊢ ⟪x, x⟫_𝕜 + ⟪y, x⟫_𝕜 + (⟪x, y⟫_𝕜 + ⟪y, y⟫_𝕜) = ⟪x, x⟫_𝕜 + ⟪x, y⟫_𝕜 + ⟪y, x⟫_𝕜 + ⟪y, y⟫_𝕜
state_after: no goals