ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: BoxIntegral.Prepartition.iUnion_top
File: Mathlib/Analysis/BoxIntegral/Partition/Basic.lean

Proof steps:
state_before: ι : Type u_1
I J J₁ J₂ : Box ι
π π₁ π₂ : Prepartition I
x : ι → ℝ
⊢ ⊤.iUnion = ↑I
state_after: no goals
tactic: simp [Prepartition.iUnion]
Theorem: HomologicalComplex₂.D₁_D₂
File: Mathlib/Algebra/Homology/TotalComplex.lean

Proof steps:
state_before: C : Type u_1
inst✝⁴ : Category.{u_5, u_1} C
inst✝³ : Preadditive C
I₁ : Type u_2
I₂ : Type u_3
I₁₂ : Type u_4
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
K L M : HomologicalComplex₂ C c₁ c₂
φ : K ⟶ L
e : K ≅ L
ψ : L ⟶ M
c₁₂ : ComplexShape I₁₂
inst✝² : DecidableEq I₁₂
inst✝¹ : TotalComplexShape c₁ c₂ c₁₂
inst✝ : K.HasTotal c₁₂
i₁₂ i₁₂' i₁₂'' : I₁₂
⊢ K.D₁ c₁₂ i₁₂ i₁₂' ≫ K.D₂ c₁₂ i₁₂' i₁₂'' = -K.D₂ c₁₂ i₁₂ i₁₂' ≫ K.D₁ c₁₂ i₁₂' i₁₂''
state_after: no goals
tactic: simp
Theorem: Set.swap_mem_mulAntidiagonal_aux
File: Mathlib/Data/Set/MulAntidiagonal.lean

Proof steps:
state_before: α : Type u_1
inst✝ : CommSemigroup α
s t : Set α
a : α
x : α × α
⊢ x.2 ∈ s ∧ x.1 ∈ t ∧ x.2 * x.1 = a ↔ x ∈ t.mulAntidiagonal s a
state_after: no goals
tactic: simp [mul_comm, and_left_comm]
Theorem: CategoryTheory.Center.isoMk_inv_f
File: Mathlib/CategoryTheory/Monoidal/Center.lean

Proof steps:
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : MonoidalCategory C
X Y : Center C
f : X ⟶ Y
inst✝ : IsIso f.f
U : C
⊢ inv f.f ▷ U ≫ (X.snd.β U).hom = (Y.snd.β U).hom ≫ U ◁ inv f.f
state_after: no goals
tactic: simp [← cancel_epi (f.f ▷ U), ← comp_whiskerRight_assoc,
      ← MonoidalCategory.whiskerLeft_comp]
Theorem: toIocDiv_sub_zsmul
File: Mathlib/Algebra/Order/ToIntervalMod.lean

Proof steps:
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
m : ℤ
⊢ toIocDiv hp a (b - m • p) = toIocDiv hp a b - m
state_after: no goals
tactic: rw [sub_eq_add_neg, ← neg_smul, toIocDiv_add_zsmul, sub_eq_add_neg]
Theorem: Seminorm.continuous_of_continuousAt_zero
File: Mathlib/Analysis/Seminorm.lean

Proof steps:
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : Seminorm 𝕝 E
hp : ContinuousAt (⇑p) 0
⊢ Continuous ⇑p
state_after: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : Seminorm 𝕝 E
hp : ContinuousAt (⇑p) 0
this : UniformSpace E := TopologicalAddGroup.toUniformSpace E
⊢ Continuous ⇑p
tactic: letI := TopologicalAddGroup.toUniformSpace E
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : Seminorm 𝕝 E
hp : ContinuousAt (⇑p) 0
this : UniformSpace E := TopologicalAddGroup.toUniformSpace E
⊢ Continuous ⇑p
state_after: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : Seminorm 𝕝 E
hp : ContinuousAt (⇑p) 0
this✝ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this : UniformAddGroup E
⊢ Continuous ⇑p
tactic: haveI : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : SeminormedRing 𝕝
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : Module 𝕝 E
inst✝¹ : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : Seminorm 𝕝 E
hp : ContinuousAt (⇑p) 0
this✝ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this : UniformAddGroup E
⊢ Continuous ⇑p
state_after: no goals
tactic: exact (Seminorm.uniformContinuous_of_continuousAt_zero hp).continuous
Theorem: Nat.log_eq_zero_iff
File: Mathlib/Data/Nat/Log.lean

Proof steps:
state_before: b n : ℕ
⊢ log b n = 0 ↔ n < b ∨ b ≤ 1
state_after: b n : ℕ
⊢ b ≤ n ∧ 1 < b → log b (n / b) + 1 = 0 ↔ n < b ∨ b ≤ 1
tactic: rw [log, dite_eq_right_iff]
state_before: b n : ℕ
⊢ b ≤ n ∧ 1 < b → log b (n / b) + 1 = 0 ↔ n < b ∨ b ≤ 1
state_after: no goals
tactic: simp only [Nat.add_eq_zero_iff, Nat.one_ne_zero, and_false, imp_false, not_and_or, not_le, not_lt]
Theorem: Polynomial.nodup_aroots_iff_of_splits
File: Mathlib/FieldTheory/Separable.lean

Proof steps:
state_before: F : Type u
inst✝² : Field F
K : Type v
inst✝¹ : Field K
inst✝ : Algebra F K
f : F[X]
hf : f ≠ 0
h : Splits (algebraMap F K) f
⊢ (f.aroots K).Nodup ↔ f.Separable
state_after: F : Type u
inst✝² : Field F
K : Type v
inst✝¹ : Field K
inst✝ : Algebra F K
f : F[X]
hf : f ≠ 0
h : Splits (RingHom.id K) (map (algebraMap F K) f)
⊢ (f.aroots K).Nodup ↔ f.Separable
tactic: rw [← (algebraMap F K).id_comp, ← splits_map_iff] at h
state_before: F : Type u
inst✝² : Field F
K : Type v
inst✝¹ : Field K
inst✝ : Algebra F K
f : F[X]
hf : f ≠ 0
h : Splits (RingHom.id K) (map (algebraMap F K) f)
⊢ (f.aroots K).Nodup ↔ f.Separable
state_after: no goals
tactic: rw [nodup_roots_iff_of_splits (map_ne_zero hf) h, separable_map]
Theorem: LieModule.isNilpotent_toEnd_weightSpace_zero
File: Mathlib/Algebra/Lie/Weights/Basic.lean

Proof steps:
state_before: K : Type u_1
R : Type u_2
L : Type u_3
M : Type u_4
inst✝⁸ : CommRing R
inst✝⁷ : LieRing L
inst✝⁶ : LieAlgebra R L
inst✝⁵ : LieAlgebra.IsNilpotent R L
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : LieRingModule L M
inst✝¹ : LieModule R L M
inst✝ : IsNoetherian R M
x : L
⊢ _root_.IsNilpotent ((toEnd R L ↥↑(weightSpace M 0)) x)
state_after: no goals
tactic: simpa using isNilpotent_toEnd_sub_algebraMap M (0 : L → R) x
Theorem: injective_stoneCechUnit_of_t35Space
File: Mathlib/Topology/CompletelyRegular.lean

Proof steps:
state_before: X : Type u
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : T35Space X
⊢ Function.Injective stoneCechUnit
state_after: X : Type u
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : T35Space X
a b : X
hab : stoneCechUnit a = stoneCechUnit b
⊢ a = b
tactic: intros a b hab
state_before: X : Type u
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : T35Space X
a b : X
hab : stoneCechUnit a = stoneCechUnit b
⊢ a = b
state_after: X : Type u
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : T35Space X
a b : X
hab : ¬a = b
⊢ ¬stoneCechUnit a = stoneCechUnit b
tactic: contrapose hab
state_before: X : Type u
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : T35Space X
a b : X
hab : ¬a = b
⊢ ¬stoneCechUnit a = stoneCechUnit b
state_after: case intro.intro
X : Type u
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : T35Space X
a b : X
hab : ¬a = b
f : X → ↑I
fc : f ∈ Continuous
fab : f a ≠ f b
⊢ ¬stoneCechUnit a = stoneCechUnit b
tactic: obtain ⟨f, fc, fab⟩ := separatesPoints_continuous_of_t35Space_Icc hab
state_before: case intro.intro
X : Type u
inst✝² : TopologicalSpace X
inst✝¹ : T1Space X
inst✝ : T35Space X
a b : X
hab : ¬a = b
f : X → ↑I
fc : f ∈ Continuous
fab : f a ≠ f b
⊢ ¬stoneCechUnit a = stoneCechUnit b
state_after: no goals
tactic: exact fun q ↦ fab (eq_if_stoneCechUnit_eq fc q)
Theorem: Combinatorics.Subspace.reindex_isMono
File: Mathlib/Combinatorics/HalesJewett.lean

Proof steps:
state_before: η✝ : Type u_1
α✝ : Type u_2
ι✝ : Type u_3
κ✝ : Type u_4
η : Type u_5
α : Type u_6
ι : Type u_7
κ : Type u_8
l : Subspace η α ι
x : η → α
i : ι
a : α
e : η
η' : Type u_9
α' : Type u_10
ι' : Type u_11
eη : η ≃ η'
eα : α ≃ α'
eι : ι ≃ ι'
C : (ι' → α') → κ
⊢ IsMono C (l.reindex eη eα eι) ↔ IsMono (fun x => C (⇑eα ∘ x ∘ ⇑eι.symm)) l
state_after: η✝ : Type u_1
α✝ : Type u_2
ι✝ : Type u_3
κ✝ : Type u_4
η : Type u_5
α : Type u_6
ι : Type u_7
κ : Type u_8
l : Subspace η α ι
x : η → α
i : ι
a : α
e : η
η' : Type u_9
α' : Type u_10
ι' : Type u_11
eη : η ≃ η'
eα : α ≃ α'
eι : ι ≃ ι'
C : (ι' → α') → κ
⊢ (∃ c, ∀ (x : η' → α'), (C fun x_1 => eα (Sum.elim id (⇑eα.symm ∘ x ∘ ⇑eη) (l.idxFun (eι.symm x_1)))) = c) ↔
    ∃ c, ∀ (x : η → α), C (⇑eα ∘ ↑l x ∘ ⇑eι.symm) = c
tactic: simp only [IsMono, funext (reindex_apply _ _ _ _ _), coe_apply]
state_before: η✝ : Type u_1
α✝ : Type u_2
ι✝ : Type u_3
κ✝ : Type u_4
η : Type u_5
α : Type u_6
ι : Type u_7
κ : Type u_8
l : Subspace η α ι
x : η → α
i : ι
a : α
e : η
η' : Type u_9
α' : Type u_10
ι' : Type u_11
eη : η ≃ η'
eα : α ≃ α'
eι : ι ≃ ι'
C : (ι' → α') → κ
⊢ (∃ c, ∀ (x : η' → α'), (C fun x_1 => eα (Sum.elim id (⇑eα.symm ∘ x ∘ ⇑eη) (l.idxFun (eι.symm x_1)))) = c) ↔
    ∃ c, ∀ (x : η → α), C (⇑eα ∘ ↑l x ∘ ⇑eι.symm) = c
state_after: no goals
tactic: exact exists_congr fun c ↦ (eη.arrowCongr eα).symm.forall_congr <| by aesop
Theorem: WeierstrassCurve.Jacobian.dblXYZ_of_Y_eq
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

Proof steps:
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P Q : Fin 3 → F
hQz : Q z ≠ 0
hx : P x * Q z ^ 2 = Q x * P z ^ 2
hy : P y * Q z ^ 3 = Q y * P z ^ 3
hy' : P y * Q z ^ 3 = W.negY Q * P z ^ 3
⊢ W.dblXYZ P = W.dblU P • ![1, 1, 0]
state_after: no goals
tactic: erw [dblXYZ_of_Y_eq' hQz hx hy hy', smul_fin3, mul_one, mul_one, mul_zero]
Theorem: ModuleCat.MonoidalCategory.associator_naturality
File: Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean

Proof steps:
state_before: R : Type u
inst✝ : CommRing R
X₁ : ModuleCat R
X₂ : ModuleCat R
X₃ : ModuleCat R
Y₁ : ModuleCat R
Y₂ : ModuleCat R
Y₃ : ModuleCat R
f₁ : X₁ ⟶ Y₁
f₂ : X₂ ⟶ Y₂
f₃ : X₃ ⟶ Y₃
⊢ tensorHom (tensorHom f₁ f₂) f₃ ≫ (associator Y₁ Y₂ Y₃).hom =
    (associator X₁ X₂ X₃).hom ≫ tensorHom f₁ (tensorHom f₂ f₃)
state_after: no goals
tactic: convert associator_naturality_aux f₁ f₂ f₃ using 1
Theorem: CochainComplex.shiftFunctorZero_hom_app_f
File: Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean

Proof steps:
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : Preadditive D
K : CochainComplex C ℤ
n : ℤ
⊢ n + { as := 0 }.as = n
state_after: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : Preadditive D
K : CochainComplex C ℤ
n : ℤ
⊢ n + 0 = n
tactic: dsimp
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : Preadditive D
K : CochainComplex C ℤ
n : ℤ
⊢ n + 0 = n
state_after: no goals
tactic: rw [add_zero]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : Preadditive D
K : CochainComplex C ℤ
n : ℤ
⊢ ((shiftFunctorZero (CochainComplex C ℤ) ℤ).hom.app K).f n = (XIsoOfEq K ⋯).hom
state_after: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : Preadditive D
K : CochainComplex C ℤ
n : ℤ
this : IsIso (((shiftFunctorZero (CochainComplex C ℤ) ℤ).inv.app K).f n)
⊢ ((shiftFunctorZero (CochainComplex C ℤ) ℤ).hom.app K).f n = (XIsoOfEq K ⋯).hom
tactic: have : IsIso (((shiftFunctorZero (CochainComplex C ℤ) ℤ).inv.app K).f n) := by
    rw [shiftFunctorZero_inv_app_f]
    infer_instance
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : Preadditive D
K : CochainComplex C ℤ
n : ℤ
this : IsIso (((shiftFunctorZero (CochainComplex C ℤ) ℤ).inv.app K).f n)
⊢ ((shiftFunctorZero (CochainComplex C ℤ) ℤ).hom.app K).f n = (XIsoOfEq K ⋯).hom
state_after: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : Preadditive D
K : CochainComplex C ℤ
n : ℤ
this : IsIso (((shiftFunctorZero (CochainComplex C ℤ) ℤ).inv.app K).f n)
⊢ 𝟙 (((CategoryTheory.shiftFunctor (CochainComplex C ℤ) 0).obj K).X n) = (XIsoOfEq K ⋯).hom ≫ (XIsoOfEq K ⋯).hom
tactic: rw [← cancel_mono (((shiftFunctorZero (CochainComplex C ℤ) ℤ).inv.app K).f n), ← comp_f,
    Iso.hom_inv_id_app, id_f, shiftFunctorZero_inv_app_f]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : Preadditive D
K : CochainComplex C ℤ
n : ℤ
this : IsIso (((shiftFunctorZero (CochainComplex C ℤ) ℤ).inv.app K).f n)
⊢ 𝟙 (((CategoryTheory.shiftFunctor (CochainComplex C ℤ) 0).obj K).X n) = (XIsoOfEq K ⋯).hom ≫ (XIsoOfEq K ⋯).hom
state_after: no goals
tactic: simp only [XIsoOfEq, eqToIso.hom, eqToHom_trans, eqToHom_refl]
Theorem: MvPolynomial.vanishingIdeal_pointToPoint
File: Mathlib/RingTheory/Nullstellensatz.lean

Proof steps:
state_before: k : Type u_1
inst✝ : Field k
σ : Type u_2
V : Set (σ → k)
p : MvPolynomial σ k
hp : p ∈ PrimeSpectrum.vanishingIdeal (pointToPoint '' V)
x : σ → k
hx : x ∈ V
⊢ (vanishingIdeal {x}).IsPrime
state_after: no goals
tactic: infer_instance
state_before: k : Type u_1
inst✝ : Field k
σ : Type u_2
V : Set (σ → k)
p : MvPolynomial σ k
hp : p ∈ PrimeSpectrum.vanishingIdeal (pointToPoint '' V)
x : σ → k
hx : x ∈ V
⊢ { asIdeal := vanishingIdeal {x}, isPrime := ⋯ } ∈ pointToPoint '' V
state_after: no goals
tactic: exact ⟨x, ⟨hx, rfl⟩⟩
Theorem: Algebra.TensorProduct.intCast_def'
File: Mathlib/RingTheory/TensorProduct/Basic.lean

Proof steps:
state_before: R : Type uR
S : Type uS
A : Type uA
B : Type uB
C : Type uC
D : Type uD
E : Type uE
F : Type uF
inst✝⁴ : CommRing R
inst✝³ : Ring A
inst✝² : Algebra R A
inst✝¹ : Ring B
inst✝ : Algebra R B
z : ℤ
⊢ ↑z = 1 ⊗ₜ[R] ↑z
state_after: no goals
tactic: rw [intCast_def, ← zsmul_one, smul_tmul, zsmul_one]
Theorem: SimpleGraph.incMatrix_mul_transpose
File: Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean

Proof steps:
state_before: R : Type u_1
α : Type u_2
G : SimpleGraph α
inst✝⁴ : Fintype (Sym2 α)
inst✝³ : Semiring R
a b : α
e : Sym2 α
inst✝² : (a : α) → Fintype ↑(G.neighborSet a)
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
⊢ incMatrix R G * (incMatrix R G)ᵀ = fun a b => if a = b then ↑(G.degree a) else if G.Adj a b then 1 else 0
state_after: case a
R : Type u_1
α : Type u_2
G : SimpleGraph α
inst✝⁴ : Fintype (Sym2 α)
inst✝³ : Semiring R
a✝ b✝ : α
e : Sym2 α
inst✝² : (a : α) → Fintype ↑(G.neighborSet a)
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
a b : α
⊢ (incMatrix R G * (incMatrix R G)ᵀ) a b = if a = b then ↑(G.degree a) else if G.Adj a b then 1 else 0
tactic: ext a b
state_before: case a
R : Type u_1
α : Type u_2
G : SimpleGraph α
inst✝⁴ : Fintype (Sym2 α)
inst✝³ : Semiring R
a✝ b✝ : α
e : Sym2 α
inst✝² : (a : α) → Fintype ↑(G.neighborSet a)
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
a b : α
⊢ (incMatrix R G * (incMatrix R G)ᵀ) a b = if a = b then ↑(G.degree a) else if G.Adj a b then 1 else 0
state_after: case pos
R : Type u_1
α : Type u_2
G : SimpleGraph α
inst✝⁴ : Fintype (Sym2 α)
inst✝³ : Semiring R
a✝ b✝ : α
e : Sym2 α
inst✝² : (a : α) → Fintype ↑(G.neighborSet a)
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
a b : α
h : a = b
⊢ (incMatrix R G * (incMatrix R G)ᵀ) a b = ↑(G.degree a)

case pos
R : Type u_1
α : Type u_2
G : SimpleGraph α
inst✝⁴ : Fintype (Sym2 α)
inst✝³ : Semiring R
a✝ b✝ : α
e : Sym2 α
inst✝² : (a : α) → Fintype ↑(G.neighborSet a)
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
a b : α
h : ¬a = b
h' : G.Adj a b
⊢ (incMatrix R G * (incMatrix R G)ᵀ) a b = 1

case neg
R : Type u_1
α : Type u_2
G : SimpleGraph α
inst✝⁴ : Fintype (Sym2 α)
inst✝³ : Semiring R
a✝ b✝ : α
e : Sym2 α
inst✝² : (a : α) → Fintype ↑(G.neighborSet a)
inst✝¹ : DecidableEq α
inst✝ : DecidableRel G.Adj
a b : α
h : ¬a = b
h' : ¬G.Adj a b
⊢ (incMatrix R G * (incMatrix R G)ᵀ) a b = 0
tactic: split_ifs with h h'
Theorem: CategoryTheory.Localization.Construction.liftToPathCategory_obj
File: Mathlib/CategoryTheory/Localization/Construction.lean

Proof steps:
state_before: C : Type uC
inst✝¹ : Category.{uC', uC} C
W : MorphismProperty C
D : Type uD
inst✝ : Category.{uD', uD} D
G : C ⥤ D
hG : W.IsInvertedBy G
⊢ {X Y : LocQuiver W} → (X ⟶ Y) → ((fun X => G.obj X.obj) X ⟶ (fun X => G.obj X.obj) Y)
state_after: C : Type uC
inst✝¹ : Category.{uC', uC} C
W : MorphismProperty C
D : Type uD
inst✝ : Category.{uD', uD} D
G : C ⥤ D
hG : W.IsInvertedBy G
X Y : LocQuiver W
⊢ (X ⟶ Y) → ((fun X => G.obj X.obj) X ⟶ (fun X => G.obj X.obj) Y)
tactic: intros X Y
state_before: C : Type uC
inst✝¹ : Category.{uC', uC} C
W : MorphismProperty C
D : Type uD
inst✝ : Category.{uD', uD} D
G : C ⥤ D
hG : W.IsInvertedBy G
X Y : LocQuiver W
⊢ (X ⟶ Y) → ((fun X => G.obj X.obj) X ⟶ (fun X => G.obj X.obj) Y)
state_after: case inl
C : Type uC
inst✝¹ : Category.{uC', uC} C
W : MorphismProperty C
D : Type uD
inst✝ : Category.{uD', uD} D
G : C ⥤ D
hG : W.IsInvertedBy G
X Y : LocQuiver W
f : X.obj ⟶ Y.obj
⊢ (fun X => G.obj X.obj) X ⟶ (fun X => G.obj X.obj) Y

case inr.mk
C : Type uC
inst✝¹ : Category.{uC', uC} C
W : MorphismProperty C
D : Type uD
inst✝ : Category.{uD', uD} D
G : C ⥤ D
hG : W.IsInvertedBy G
X Y : LocQuiver W
g : Y.obj ⟶ X.obj
hg : W g
⊢ (fun X => G.obj X.obj) X ⟶ (fun X => G.obj X.obj) Y
tactic: rintro (f | ⟨g, hg⟩)
Theorem: HasFDerivAt.eventually_ne
File: Mathlib/Analysis/Calculus/FDeriv/Equiv.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
h : HasFDerivAt f f' x
hf' : ∃ C, ∀ (z : E), ‖z‖ ≤ C * ‖f' z‖
⊢ ∀ᶠ (z : E) in 𝓝[≠] x, f z ≠ f x
state_after: no goals
tactic: simpa only [compl_eq_univ_diff] using (hasFDerivWithinAt_univ.2 h).eventually_ne hf'
Theorem: WeakFEPair.Λ_residue_zero
File: Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean

Proof steps:
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => s • P.Λ s) (𝓝[≠] 0) (𝓝 (-P.f₀))
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => s • P.Λ₀ s - s • (1 / s) • P.f₀ - s • (P.ε / (↑P.k - s)) • P.g₀) (𝓝[≠] 0)
    (𝓝 (0 • P.Λ₀ 0 - P.f₀ - 0))
tactic: simp_rw [Λ, smul_sub, (by simp : 𝓝 (-P.f₀) = 𝓝 (((0 : ℂ) • P.Λ₀ 0) - P.f₀ - 0))]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => s • P.Λ₀ s - s • (1 / s) • P.f₀ - s • (P.ε / (↑P.k - s)) • P.g₀) (𝓝[≠] 0)
    (𝓝 (0 • P.Λ₀ 0 - P.f₀ - 0))
state_after: case refine_1
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => s • P.Λ₀ s) (𝓝 0) (𝓝 (0 • P.Λ₀ 0))

case refine_2
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => s • (1 / s) • P.f₀) (𝓝[≠] 0) (𝓝 P.f₀)

case refine_3
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => s • (P.ε / (↑P.k - s)) • P.g₀) (𝓝[≠] 0) (𝓝 0)
tactic: refine ((Tendsto.mono_left ?_ nhdsWithin_le_nhds).sub ?_).sub ?_
Theorem: AddMonoid.not_isTorsionFree_iff
File: Mathlib/GroupTheory/Torsion.lean

Proof steps:
state_before: G : Type u_1
H : Type u_2
inst✝ : Monoid G
⊢ ¬IsTorsionFree G ↔ ∃ g, g ≠ 1 ∧ IsOfFinOrder g
state_after: no goals
tactic: simp_rw [IsTorsionFree, Ne, not_forall, Classical.not_not, exists_prop]
Theorem: PrimeSpectrum.vanishingIdeal_eq_top_iff
File: Mathlib/RingTheory/PrimeSpectrum.lean

Proof steps:
state_before: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
s : Set (PrimeSpectrum R)
⊢ vanishingIdeal s = ⊤ ↔ s = ∅
state_after: no goals
tactic: rw [← top_le_iff, ← subset_zeroLocus_iff_le_vanishingIdeal, Submodule.top_coe, zeroLocus_univ,
    Set.subset_empty_iff]
Theorem: AList.ext
File: Mathlib/Data/List/AList.lean

Proof steps:
state_before: α : Type u
β : α → Type v
l₁ : List (Sigma β)
h₁ : l₁.NodupKeys
l₂ : List (Sigma β)
nodupKeys✝ : l₂.NodupKeys
H : { entries := l₁, nodupKeys := h₁ }.entries = { entries := l₂, nodupKeys := nodupKeys✝ }.entries
⊢ { entries := l₁, nodupKeys := h₁ } = { entries := l₂, nodupKeys := nodupKeys✝ }
state_after: no goals
tactic: congr
Theorem: Real.cos_pos_of_le_one
File: Mathlib/Data/Complex/Exponential.lean

Proof steps:
state_before: x : ℝ
hx : |x| ≤ 1
⊢ |x| ^ 4 * (5 / 96) + x ^ 2 / 2 ≤ 1 * (5 / 96) + 1 / 2
state_after: case h₁.h
x : ℝ
hx : |x| ≤ 1
⊢ |x| ^ 4 ≤ 1

case h₂.hab
x : ℝ
hx : |x| ≤ 1
⊢ x ^ 2 ≤ 1
tactic: gcongr
state_before: x : ℝ
hx : |x| ≤ 1
⊢ 1 * (5 / 96) + 1 / 2 < 1
state_after: no goals
tactic: norm_num
Theorem: Set.projIci_of_mem
File: Mathlib/Order/Interval/Set/ProjIcc.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b : α
h : a ≤ b
x : α
hx : x ∈ Ici a
⊢ projIci a x = ⟨x, hx⟩
state_after: no goals
tactic: simpa [projIci]
Theorem: IsLocalization.coeSubmodule_span
File: Mathlib/RingTheory/Localization/Submodule.lean

Proof steps:
state_before: R : Type u_1
inst✝³ : CommRing R
M : Submonoid R
S : Type u_2
inst✝² : CommRing S
inst✝¹ : Algebra R S
P : Type u_3
inst✝ : CommRing P
s : Set R
⊢ coeSubmodule S (Ideal.span s) = Submodule.span R (⇑(algebraMap R S) '' s)
state_after: R : Type u_1
inst✝³ : CommRing R
M : Submonoid R
S : Type u_2
inst✝² : CommRing S
inst✝¹ : Algebra R S
P : Type u_3
inst✝ : CommRing P
s : Set R
⊢ Submodule.span R (⇑(Algebra.linearMap R S) '' s) = Submodule.span R (⇑(algebraMap R S) '' s)
tactic: rw [IsLocalization.coeSubmodule, Ideal.span, Submodule.map_span]
state_before: R : Type u_1
inst✝³ : CommRing R
M : Submonoid R
S : Type u_2
inst✝² : CommRing S
inst✝¹ : Algebra R S
P : Type u_3
inst✝ : CommRing P
s : Set R
⊢ Submodule.span R (⇑(Algebra.linearMap R S) '' s) = Submodule.span R (⇑(algebraMap R S) '' s)
state_after: no goals
tactic: rfl
Theorem: le_of_le_mul_right
File: Mathlib/Algebra/Order/GroupWithZero/Canonical.lean

Proof steps:
state_before: α : Type u_1
inst✝ : LinearOrderedCommGroupWithZero α
a b c d : α
m n : ℕ
h : c ≠ 0
hab : a * c ≤ b * c
⊢ a ≤ b
state_after: no goals
tactic: simpa only [mul_inv_cancel_right₀ h] using mul_le_mul_right' hab c⁻¹
Theorem: Associates.eq_pow_find_of_dvd_irreducible_pow
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

Proof steps:
state_before: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : UniqueFactorizationMonoid α
a p : Associates α
hp : Irreducible p
inst✝ : (n : ℕ) → Decidable (a ∣ p ^ n)
n : ℕ
h : a ∣ p ^ n
⊢ a = p ^ Nat.find ⋯
state_after: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : UniqueFactorizationMonoid α
a p : Associates α
hp : Irreducible p
inst✝ : (n : ℕ) → Decidable (a ∣ p ^ n)
n : ℕ
h : a ∣ p ^ n
⊢ a ∣ p ^ ?m.494287

α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : UniqueFactorizationMonoid α
a p : Associates α
hp : Irreducible p
inst✝ : (n : ℕ) → Decidable (a ∣ p ^ n)
n : ℕ
h : a ∣ p ^ n
⊢ ℕ
tactic: classical rw [count_factors_eq_find_of_dvd_pow hp, ← eq_pow_count_factors_of_dvd_pow hp h]
state_before: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : UniqueFactorizationMonoid α
a p : Associates α
hp : Irreducible p
inst✝ : (n : ℕ) → Decidable (a ∣ p ^ n)
n : ℕ
h : a ∣ p ^ n
⊢ a ∣ p ^ ?m.494287

α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : UniqueFactorizationMonoid α
a p : Associates α
hp : Irreducible p
inst✝ : (n : ℕ) → Decidable (a ∣ p ^ n)
n : ℕ
h : a ∣ p ^ n
⊢ ℕ
state_after: no goals
tactic: exact h