1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le
File: Mathlib/MeasureTheory/Integral/FundThmCalculus.lean

tactic: refine (NormedSpace.eq_iff_forall_dual_eq ℝ).2 fun g => ?_
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
f✝ : ℝ → E
g' g φ : ℝ → ℝ
a b : ℝ
inst✝ : CompleteSpace E
f f' : ℝ → E
hab : a ≤ b
hcont : ContinuousOn f (Icc a b)
hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt f (f' x) (Ioi x) x
f'int : IntervalIntegrable f' volume a b
⊢ ∫ (y : ℝ) in a..b, f' y = f b - f a
state_after: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
f✝ : ℝ → E
g' g✝ φ : ℝ → ℝ
a b : ℝ
inst✝ : CompleteSpace E
f f' : ℝ → E
hab : a ≤ b
hcont : ContinuousOn f (Icc a b)
hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt f (f' x) (Ioi x) x
f'int : IntervalIntegrable f' volume a b
g : NormedSpace.Dual ℝ E
⊢ g (∫ (y : ℝ) in a..b, f' y) = g (f b - f a)

tactic: rw [← g.intervalIntegral_comp_comm f'int, g.map_sub]
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
f✝ : ℝ → E
g' g✝ φ : ℝ → ℝ
a b : ℝ
inst✝ : CompleteSpace E
f f' : ℝ → E
hab : a ≤ b
hcont : ContinuousOn f (Icc a b)
hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt f (f' x) (Ioi x) x
f'int : IntervalIntegrable f' volume a b
g : NormedSpace.Dual ℝ E
⊢ g (∫ (y : ℝ) in a..b, f' y) = g (f b - f a)
state_after: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
f✝ : ℝ → E
g' g✝ φ : ℝ → ℝ
a b : ℝ
inst✝ : CompleteSpace E
f f' : ℝ → E
hab : a ≤ b
hcont : ContinuousOn f (Icc a b)
hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt f (f' x) (Ioi x) x
f'int : IntervalIntegrable f' volume a b
g : NormedSpace.Dual ℝ E
⊢ ∫ (x : ℝ) in a..b, g (f' x) = g (f b) - g (f a)

tactic: exact integral_eq_sub_of_hasDeriv_right_of_le_real hab (g.continuous.comp_continuousOn hcont)
  (fun x hx => g.hasFDerivAt.comp_hasDerivWithinAt x (hderiv x hx))
  (g.integrable_comp ((intervalIntegrable_iff_integrableOn_Icc_of_le hab).1 f'int))
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
f✝ : ℝ → E
g' g✝ φ : ℝ → ℝ
a b : ℝ
inst✝ : CompleteSpace E
f f' : ℝ → E
hab : a ≤ b
hcont : ContinuousOn f (Icc a b)
hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt f (f' x) (Ioi x) x
f'int : IntervalIntegrable f' volume a b
g : NormedSpace.Dual ℝ E
⊢ ∫ (x : ℝ) in a..b, g (f' x) = g (f b) - g (f a)
state_after: no goals
Theorem: Polynomial.eraseLead_add_of_natDegree_lt_right
File: Mathlib/Algebra/Polynomial/EraseLead.lean

tactic: ext n
state_before: R : Type u_1
inst✝ : Semiring R
f p q : R[X]
pq : p.natDegree < q.natDegree
⊢ (p + q).eraseLead = p + q.eraseLead
state_after: case a
R : Type u_1
inst✝ : Semiring R
f p q : R[X]
pq : p.natDegree < q.natDegree
n : ℕ
⊢ (p + q).eraseLead.coeff n = (p + q.eraseLead).coeff n

tactic: by_cases nd : n = q.natDegree
state_before: case a
R : Type u_1
inst✝ : Semiring R
f p q : R[X]
pq : p.natDegree < q.natDegree
n : ℕ
⊢ (p + q).eraseLead.coeff n = (p + q.eraseLead).coeff n
state_after: case pos
R : Type u_1
inst✝ : Semiring R
f p q : R[X]
pq : p.natDegree < q.natDegree
n : ℕ
nd : n = q.natDegree
⊢ (p + q).eraseLead.coeff n = (p + q.eraseLead).coeff n

case neg
R : Type u_1
inst✝ : Semiring R
f p q : R[X]
pq : p.natDegree < q.natDegree
n : ℕ
nd : ¬n = q.natDegree
⊢ (p + q).eraseLead.coeff n = (p + q.eraseLead).coeff n

tactic: rw [nd, eraseLead_coeff, if_pos (natDegree_add_eq_right_of_natDegree_lt pq).symm]
state_before: case pos
R : Type u_1
inst✝ : Semiring R
f p q : R[X]
pq : p.natDegree < q.natDegree
n : ℕ
nd : n = q.natDegree
⊢ (p + q).eraseLead.coeff n = (p + q.eraseLead).coeff n
state_after: case pos
R : Type u_1
inst✝ : Semiring R
f p q : R[X]
pq : p.natDegree < q.natDegree
n : ℕ
nd : n = q.natDegree
⊢ 0 = (p + q.eraseLead).coeff q.natDegree

tactic: simpa using (coeff_eq_zero_of_natDegree_lt pq).symm
state_before: case pos
R : Type u_1
inst✝ : Semiring R
f p q : R[X]
pq : p.natDegree < q.natDegree
n : ℕ
nd : n = q.natDegree
⊢ 0 = (p + q.eraseLead).coeff q.natDegree
state_after: no goals

tactic: rw [eraseLead_coeff, coeff_add, coeff_add, eraseLead_coeff, if_neg, if_neg nd]
state_before: case neg
R : Type u_1
inst✝ : Semiring R
f p q : R[X]
pq : p.natDegree < q.natDegree
n : ℕ
nd : ¬n = q.natDegree
⊢ (p + q).eraseLead.coeff n = (p + q.eraseLead).coeff n
state_after: case neg.hnc
R : Type u_1
inst✝ : Semiring R
f p q : R[X]
pq : p.natDegree < q.natDegree
n : ℕ
nd : ¬n = q.natDegree
⊢ ¬n = (p + q).natDegree

tactic: rintro rfl
state_before: case neg.hnc
R : Type u_1
inst✝ : Semiring R
f p q : R[X]
pq : p.natDegree < q.natDegree
n : ℕ
nd : ¬n = q.natDegree
⊢ ¬n = (p + q).natDegree
state_after: case neg.hnc
R : Type u_1
inst✝ : Semiring R
f p q : R[X]
pq : p.natDegree < q.natDegree
nd : ¬(p + q).natDegree = q.natDegree
⊢ False

tactic: exact nd (natDegree_add_eq_right_of_natDegree_lt pq)
state_before: case neg.hnc
R : Type u_1
inst✝ : Semiring R
f p q : R[X]
pq : p.natDegree < q.natDegree
nd : ¬(p + q).natDegree = q.natDegree
⊢ False
state_after: no goals
Theorem: Set.iInter₂_eq_empty_iff
File: Mathlib/Data/Set/Lattice.lean

tactic: simp only [eq_empty_iff_forall_not_mem, mem_iInter, not_forall]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
s : (i : ι) → κ i → Set α
⊢ ⋂ i, ⋂ j, s i j = ∅ ↔ ∀ (a : α), ∃ i j, a ∉ s i j
state_after: no goals
Theorem: CategoryTheory.Pseudofunctor.map₂_inv
File: Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean

tactic: apply IsIso.eq_inv_of_hom_inv_id
state_before: B : Type u₁
inst✝³ : Bicategory B
C : Type u₂
inst✝² : Bicategory C
D : Type u₃
inst✝¹ : Bicategory D
F : Pseudofunctor B C
a b : B
f g : a ⟶ b
η : f ⟶ g
inst✝ : IsIso η
⊢ F.map₂ (inv η) = inv (F.map₂ η)
state_after: case hom_inv_id
B : Type u₁
inst✝³ : Bicategory B
C : Type u₂
inst✝² : Bicategory C
D : Type u₃
inst✝¹ : Bicategory D
F : Pseudofunctor B C
a b : B
f g : a ⟶ b
η : f ⟶ g
inst✝ : IsIso η
⊢ F.map₂ η ≫ F.map₂ (inv η) = 𝟙 ((↑F.toPrelaxFunctor).map f)

tactic: simp [← F.map₂_comp η (inv η)]
state_before: case hom_inv_id
B : Type u₁
inst✝³ : Bicategory B
C : Type u₂
inst✝² : Bicategory C
D : Type u₃
inst✝¹ : Bicategory D
F : Pseudofunctor B C
a b : B
f g : a ⟶ b
η : f ⟶ g
inst✝ : IsIso η
⊢ F.map₂ η ≫ F.map₂ (inv η) = 𝟙 ((↑F.toPrelaxFunctor).map f)
state_after: no goals
Theorem: EulerProduct.prod_filter_prime_geometric_eq_tsum_factoredNumbers
File: Mathlib/NumberTheory/EulerProduct/Basic.lean

tactic: refine (summable_and_hasSum_factoredNumbers_prod_filter_prime_geometric ?_ s).2.tsum_eq.symm
state_before: F : Type u_1
inst✝¹ : NormedField F
inst✝ : CompleteSpace F
f : ℕ →* F
hsum : Summable ⇑f
s : Finset ℕ
⊢ ∏ p ∈ filter Nat.Prime s, (1 - f p)⁻¹ = ∑' (m : ↑(factoredNumbers s)), f ↑m
state_after: F : Type u_1
inst✝¹ : NormedField F
inst✝ : CompleteSpace F
f : ℕ →* F
hsum : Summable ⇑f
s : Finset ℕ
⊢ ∀ {p : ℕ}, Nat.Prime p → ‖f p‖ < 1

tactic: exact fun {_} hp ↦ hsum.norm_lt_one hp.one_lt
state_before: F : Type u_1
inst✝¹ : NormedField F
inst✝ : CompleteSpace F
f : ℕ →* F
hsum : Summable ⇑f
s : Finset ℕ
⊢ ∀ {p : ℕ}, Nat.Prime p → ‖f p‖ < 1
state_after: no goals
Theorem: Finset.affineCombinationLineMapWeights_apply_left
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: simp [affineCombinationLineMapWeights, h.symm, sub_eq_neg_add]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
S : AffineSpace V P
ι : Type u_4
s : Finset ι
ι₂ : Type u_5
s₂ : Finset ι₂
inst✝ : DecidableEq ι
i j : ι
h : i ≠ j
c : k
⊢ affineCombinationLineMapWeights i j c i = 1 - c
state_after: no goals
Theorem: Metric.tendsto_atTop'
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: simp only [true_and, gt_iff_lt, mem_Ioi, mem_ball]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝³ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
inst✝² : Nonempty β
inst✝¹ : SemilatticeSup β
inst✝ : NoMaxOrder β
u : β → α
a : α
⊢ (∀ (ib : ℝ), 0 < ib → ∃ ia, True ∧ ∀ x ∈ Ioi ia, u x ∈ ball a ib) ↔ ∀ ε > 0, ∃ N, ∀ n > N, dist (u n) a < ε
state_after: no goals
Theorem: ProbabilityTheory.gaussianPDF_pos
File: Mathlib/Probability/Distributions/Gaussian.lean

tactic: rw [gaussianPDF, ENNReal.ofReal_pos]
state_before: μ : ℝ
v : ℝ≥0
hv : v ≠ 0
x : ℝ
⊢ 0 < gaussianPDF μ v x
state_after: μ : ℝ
v : ℝ≥0
hv : v ≠ 0
x : ℝ
⊢ 0 < gaussianPDFReal μ v x

tactic: exact gaussianPDFReal_pos _ _ _ hv
state_before: μ : ℝ
v : ℝ≥0
hv : v ≠ 0
x : ℝ
⊢ 0 < gaussianPDFReal μ v x
state_after: no goals
Theorem: QuadraticForm.associated_linMulLin
File: Mathlib/LinearAlgebra/QuadraticForm/Basic.lean

tactic: ext
state_before: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
inst✝⁵ : CommSemiring S
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Algebra S R
inst✝¹ : Module R M
inst✝ : Invertible 2
f g : M →ₗ[R] R
⊢ associated (linMulLin f g) = ⅟2 • ((mul R R).compl₁₂ f g + (mul R R).compl₁₂ g f)
state_after: case h.h
S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
inst✝⁵ : CommSemiring S
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Algebra S R
inst✝¹ : Module R M
inst✝ : Invertible 2
f g : M →ₗ[R] R
x✝¹ x✝ : M
⊢ ((associated (linMulLin f g)) x✝¹) x✝ = ((⅟2 • ((mul R R).compl₁₂ f g + (mul R R).compl₁₂ g f)) x✝¹) x✝

tactic: simp only [associated_apply, linMulLin_apply, map_add, smul_add, LinearMap.add_apply,
  LinearMap.smul_apply, compl₁₂_apply, mul_apply', smul_eq_mul]
state_before: case h.h
S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
inst✝⁵ : CommSemiring S
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Algebra S R
inst✝¹ : Module R M
inst✝ : Invertible 2
f g : M →ₗ[R] R
x✝¹ x✝ : M
⊢ ((associated (linMulLin f g)) x✝¹) x✝ = ((⅟2 • ((mul R R).compl₁₂ f g + (mul R R).compl₁₂ g f)) x✝¹) x✝
state_after: case h.h
S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
inst✝⁵ : CommSemiring S
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Algebra S R
inst✝¹ : Module R M
inst✝ : Invertible 2
f g : M →ₗ[R] R
x✝¹ x✝ : M
⊢ ⅟2 * ((f x✝¹ + f x✝) * (g x✝¹ + g x✝) - f x✝¹ * g x✝¹ - f x✝ * g x✝) = ⅟2 * (f x✝¹ * g x✝) + ⅟2 * (g x✝¹ * f x✝)

tactic: ring_nf
state_before: case h.h
S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
inst✝⁵ : CommSemiring S
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Algebra S R
inst✝¹ : Module R M
inst✝ : Invertible 2
f g : M →ₗ[R] R
x✝¹ x✝ : M
⊢ ⅟2 * ((f x✝¹ + f x✝) * (g x✝¹ + g x✝) - f x✝¹ * g x✝¹ - f x✝ * g x✝) = ⅟2 * (f x✝¹ * g x✝) + ⅟2 * (g x✝¹ * f x✝)
state_after: no goals
Theorem: CategoryTheory.Subobject.map_id
File: Mathlib/CategoryTheory/Subobject/Basic.lean

tactic: induction' x using Quotient.inductionOn' with f
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X Y Z : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
x : Subobject X
⊢ (map (𝟙 X)).obj x = x
state_after: case h
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X Y Z : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
f : MonoOver X
⊢ (map (𝟙 X)).obj (Quotient.mk'' f) = Quotient.mk'' f

tactic: exact Quotient.sound ⟨(MonoOver.mapId _).app f⟩
state_before: case h
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X Y Z : C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
f : MonoOver X
⊢ (map (𝟙 X)).obj (Quotient.mk'' f) = Quotient.mk'' f
state_after: no goals
Theorem: UniformFun.tendsto_iff_tendstoUniformly
File: Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean

tactic: rw [(UniformFun.hasBasis_nhds α β f).tendsto_right_iff, TendstoUniformly]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
F : ι → α →ᵤ β
f : α →ᵤ β
⊢ Tendsto F p (𝓝 f) ↔ TendstoUniformly (⇑toFun ∘ F) (toFun f) p
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
F : ι → α →ᵤ β
f : α →ᵤ β
⊢ (∀ i ∈ 𝓤 β, ∀ᶠ (x : ι) in p, F x ∈ {g | (f, g) ∈ UniformFun.gen α β i}) ↔
    ∀ u ∈ 𝓤 β, ∀ᶠ (n : ι) in p, ∀ (x : α), (toFun f x, (⇑toFun ∘ F) n x) ∈ u

tactic: simp only [mem_setOf, UniformFun.gen, Function.comp_def]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
F : ι → α →ᵤ β
f : α →ᵤ β
⊢ (∀ i ∈ 𝓤 β, ∀ᶠ (x : ι) in p, F x ∈ {g | (f, g) ∈ UniformFun.gen α β i}) ↔
    ∀ u ∈ 𝓤 β, ∀ᶠ (n : ι) in p, ∀ (x : α), (toFun f x, (⇑toFun ∘ F) n x) ∈ u
state_after: no goals
Theorem: measurableSet_of_differentiableWithinAt_Ici
File: Mathlib/Analysis/Calculus/FDeriv/Measurable.lean

tactic: have : IsComplete (univ : Set F) := complete_univ
state_before: F : Type u_1
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
f : ℝ → F
K : Set F
inst✝ : CompleteSpace F
⊢ MeasurableSet {x | DifferentiableWithinAt ℝ f (Ici x) x}
state_after: F : Type u_1
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
f : ℝ → F
K : Set F
inst✝ : CompleteSpace F
this : IsComplete univ
⊢ MeasurableSet {x | DifferentiableWithinAt ℝ f (Ici x) x}

tactic: convert measurableSet_of_differentiableWithinAt_Ici_of_isComplete f this
state_before: F : Type u_1
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
f : ℝ → F
K : Set F
inst✝ : CompleteSpace F
this : IsComplete univ
⊢ MeasurableSet {x | DifferentiableWithinAt ℝ f (Ici x) x}
state_after: case h.e'_3.h.e'_2.h.a
F : Type u_1
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
f : ℝ → F
K : Set F
inst✝ : CompleteSpace F
this : IsComplete univ
x✝ : ℝ
⊢ DifferentiableWithinAt ℝ f (Ici x✝) x✝ ↔ DifferentiableWithinAt ℝ f (Ici x✝) x✝ ∧ derivWithin f (Ici x✝) x✝ ∈ univ

tactic: simp
state_before: case h.e'_3.h.e'_2.h.a
F : Type u_1
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
f : ℝ → F
K : Set F
inst✝ : CompleteSpace F
this : IsComplete univ
x✝ : ℝ
⊢ DifferentiableWithinAt ℝ f (Ici x✝) x✝ ↔ DifferentiableWithinAt ℝ f (Ici x✝) x✝ ∧ derivWithin f (Ici x✝) x✝ ∈ univ
state_after: no goals
Theorem: PowerSeries.coeff_X_pow_mul'
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: split_ifs with h
state_before: R : Type u_1
inst✝ : Semiring R
p : R⟦X⟧
n d : ℕ
⊢ (coeff R d) (X ^ n * p) = if n ≤ d then (coeff R (d - n)) p else 0
state_after: case pos
R : Type u_1
inst✝ : Semiring R
p : R⟦X⟧
n d : ℕ
h : n ≤ d
⊢ (coeff R d) (X ^ n * p) = (coeff R (d - n)) p

case neg
R : Type u_1
inst✝ : Semiring R
p : R⟦X⟧
n d : ℕ
h : ¬n ≤ d
⊢ (coeff R d) (X ^ n * p) = 0

tactic: rw [← tsub_add_cancel_of_le h, coeff_X_pow_mul]
state_before: case pos
R : Type u_1
inst✝ : Semiring R
p : R⟦X⟧
n d : ℕ
h : n ≤ d
⊢ (coeff R d) (X ^ n * p) = (coeff R (d - n)) p
state_after: case pos
R : Type u_1
inst✝ : Semiring R
p : R⟦X⟧
n d : ℕ
h : n ≤ d
⊢ (coeff R (d - n)) p = (coeff R (d - n + n - n)) p

tactic: simp
state_before: case pos
R : Type u_1
inst✝ : Semiring R
p : R⟦X⟧
n d : ℕ
h : n ≤ d
⊢ (coeff R (d - n)) p = (coeff R (d - n + n - n)) p
state_after: no goals

tactic: refine (coeff_mul _ _ _).trans (Finset.sum_eq_zero fun x hx => ?_)
state_before: case neg
R : Type u_1
inst✝ : Semiring R
p : R⟦X⟧
n d : ℕ
h : ¬n ≤ d
⊢ (coeff R d) (X ^ n * p) = 0
state_after: case neg
R : Type u_1
inst✝ : Semiring R
p : R⟦X⟧
n d : ℕ
h : ¬n ≤ d
x : ℕ × ℕ
hx : x ∈ antidiagonal d
⊢ (coeff R x.1) (X ^ n) * (coeff R x.2) p = 0

tactic: rw [coeff_X_pow, if_neg, zero_mul]
state_before: case neg
R : Type u_1
inst✝ : Semiring R
p : R⟦X⟧
n d : ℕ
h : ¬n ≤ d
x : ℕ × ℕ
hx : x ∈ antidiagonal d
⊢ (coeff R x.1) (X ^ n) * (coeff R x.2) p = 0
state_after: case neg.hnc
R : Type u_1
inst✝ : Semiring R
p : R⟦X⟧
n d : ℕ
h : ¬n ≤ d
x : ℕ × ℕ
hx : x ∈ antidiagonal d
⊢ ¬x.1 = n

tactic: have := mem_antidiagonal.mp hx
state_before: case neg.hnc
R : Type u_1
inst✝ : Semiring R
p : R⟦X⟧
n d : ℕ
h : ¬n ≤ d
x : ℕ × ℕ
hx : x ∈ antidiagonal d
⊢ ¬x.1 = n
state_after: case neg.hnc
R : Type u_1
inst✝ : Semiring R
p : R⟦X⟧
n d : ℕ
h : ¬n ≤ d
x : ℕ × ℕ
hx : x ∈ antidiagonal d
this : x.1 + x.2 = d
⊢ ¬x.1 = n

tactic: rw [add_comm] at this
state_before: case neg.hnc
R : Type u_1
inst✝ : Semiring R
p : R⟦X⟧
n d : ℕ
h : ¬n ≤ d
x : ℕ × ℕ
hx : x ∈ antidiagonal d
this : x.1 + x.2 = d
⊢ ¬x.1 = n
state_after: case neg.hnc
R : Type u_1
inst✝ : Semiring R
p : R⟦X⟧
n d : ℕ
h : ¬n ≤ d
x : ℕ × ℕ
hx : x ∈ antidiagonal d
this : x.2 + x.1 = d
⊢ ¬x.1 = n

tactic: exact ((le_of_add_le_right this.le).trans_lt <| not_le.mp h).ne
state_before: case neg.hnc
R : Type u_1
inst✝ : Semiring R
p : R⟦X⟧
n d : ℕ
h : ¬n ≤ d
x : ℕ × ℕ
hx : x ∈ antidiagonal d
this : x.2 + x.1 = d
⊢ ¬x.1 = n
state_after: no goals
Theorem: ENNReal.top_div_of_ne_top
File: Mathlib/Data/ENNReal/Inv.lean

tactic: simp [top_div, h]
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
h : a ≠ ⊤
⊢ ⊤ / a = ⊤
state_after: no goals
Theorem: neg_one_pow_eq_or
File: Mathlib/Algebra/Ring/Commute.lean

tactic: rw [pow_succ, h, neg_one_mul, neg_neg]
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝¹ : Monoid R
inst✝ : HasDistribNeg R
n : ℕ
h : (-1) ^ n = -1
⊢ (-1) ^ (n + 1) = 1
state_after: no goals

tactic: rw [pow_succ, h, one_mul]
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝¹ : Monoid R
inst✝ : HasDistribNeg R
n : ℕ
h : (-1) ^ n = 1
⊢ (-1) ^ (n + 1) = -1
state_after: no goals
Theorem: Function.nodup_periodicOrbit
File: Mathlib/Dynamics/PeriodicPts.lean

tactic: rw [periodicOrbit, Cycle.nodup_coe_iff, List.nodup_map_iff_inj_on (List.nodup_range _)]
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
⊢ (periodicOrbit f x).Nodup
state_after: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
⊢ ∀ x_1 ∈ List.range (minimalPeriod f x), ∀ y ∈ List.range (minimalPeriod f x), f^[x_1] x = f^[y] x → x_1 = y

tactic: intro m hm n hn hmn
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
⊢ ∀ x_1 ∈ List.range (minimalPeriod f x), ∀ y ∈ List.range (minimalPeriod f x), f^[x_1] x = f^[y] x → x_1 = y
state_after: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m✝ n✝ m : ℕ
hm : m ∈ List.range (minimalPeriod f x)
n : ℕ
hn : n ∈ List.range (minimalPeriod f x)
hmn : f^[m] x = f^[n] x
⊢ m = n

tactic: rw [List.mem_range] at hm hn
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m✝ n✝ m : ℕ
hm : m ∈ List.range (minimalPeriod f x)
n : ℕ
hn : n ∈ List.range (minimalPeriod f x)
hmn : f^[m] x = f^[n] x
⊢ m = n
state_after: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m✝ n✝ m : ℕ
hm : m < minimalPeriod f x
n : ℕ
hn : n < minimalPeriod f x
hmn : f^[m] x = f^[n] x
⊢ m = n

tactic: rwa [iterate_eq_iterate_iff_of_lt_minimalPeriod hm hn] at hmn
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m✝ n✝ m : ℕ
hm : m < minimalPeriod f x
n : ℕ
hn : n < minimalPeriod f x
hmn : f^[m] x = f^[n] x
⊢ m = n
state_after: no goals
Theorem: Finmap.insert_toFinmap
File: Mathlib/Data/Finmap.lean

tactic: simp [insert]
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
a : α
b : β a
s : AList β
⊢ insert a b ⟦s⟧ = ⟦AList.insert a b s⟧
state_after: no goals
Theorem: PSigma.ext_iff
File: Mathlib/Data/Sigma/Basic.lean

tactic: cases x₀
state_before: α : Sort u_1
β : α → Sort u_2
x₀ x₁ : PSigma β
⊢ x₀ = x₁ ↔ x₀.fst = x₁.fst ∧ HEq x₀.snd x₁.snd
state_after: case mk
α : Sort u_1
β : α → Sort u_2
x₁ : PSigma β
fst✝ : α
snd✝ : β fst✝
⊢ ⟨fst✝, snd✝⟩ = x₁ ↔ ⟨fst✝, snd✝⟩.fst = x₁.fst ∧ HEq ⟨fst✝, snd✝⟩.snd x₁.snd

tactic: cases x₁
state_before: case mk
α : Sort u_1
β : α → Sort u_2
x₁ : PSigma β
fst✝ : α
snd✝ : β fst✝
⊢ ⟨fst✝, snd✝⟩ = x₁ ↔ ⟨fst✝, snd✝⟩.fst = x₁.fst ∧ HEq ⟨fst✝, snd✝⟩.snd x₁.snd
state_after: case mk.mk
α : Sort u_1
β : α → Sort u_2
fst✝¹ : α
snd✝¹ : β fst✝¹
fst✝ : α
snd✝ : β fst✝
⊢ ⟨fst✝¹, snd✝¹⟩ = ⟨fst✝, snd✝⟩ ↔ ⟨fst✝¹, snd✝¹⟩.fst = ⟨fst✝, snd✝⟩.fst ∧ HEq ⟨fst✝¹, snd✝¹⟩.snd ⟨fst✝, snd✝⟩.snd

tactic: exact PSigma.mk.inj_iff
state_before: case mk.mk
α : Sort u_1
β : α → Sort u_2
fst✝¹ : α
snd✝¹ : β fst✝¹
fst✝ : α
snd✝ : β fst✝
⊢ ⟨fst✝¹, snd✝¹⟩ = ⟨fst✝, snd✝⟩ ↔ ⟨fst✝¹, snd✝¹⟩.fst = ⟨fst✝, snd✝⟩.fst ∧ HEq ⟨fst✝¹, snd✝¹⟩.snd ⟨fst✝, snd✝⟩.snd
state_after: no goals
Theorem: Submodule.map_zero
File: Mathlib/Algebra/Module/Submodule/Map.lean

tactic: simp [this, eq_comm]
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
inst✝¹² : Semiring R
inst✝¹¹ : Semiring R₂
inst✝¹⁰ : Semiring R₃
inst✝⁹ : AddCommMonoid M
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : Module R M
inst✝⁵ : Module R₂ M₂
inst✝⁴ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝³ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
p p' : Submodule R M
q q' : Submodule R₂ M₂
x : M
inst✝² : RingHomSurjective σ₁₂
F : Type u_9
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
this : ∃ x, x ∈ p
⊢ ∀ (x : M₂), x ∈ map 0 p ↔ x ∈ ⊥
state_after: no goals
Theorem: geom_le
File: Mathlib/Analysis/SpecificLimits/Basic.lean

tactic: apply (monotone_mul_left_of_nonneg hc).seq_le_seq n _ _ h <;>
  simp [_root_.pow_succ', mul_assoc, le_refl]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
u : ℕ → ℝ
c : ℝ
hc : 0 ≤ c
n : ℕ
h : ∀ k < n, c * u k ≤ u (k + 1)
⊢ c ^ n * u 0 ≤ u n
state_after: no goals
Theorem: Ordinal.mk_initialSeg
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [lift_card, ← type_subrel_lt, card_type]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u}
⊢ #↑{o' | o' < o} = Cardinal.lift.{u + 1, u} o.card
state_after: no goals
Theorem: Finset.centerMass_neg_left
File: Mathlib/Analysis/Convex/Combination.lean

tactic: simp [centerMass, inv_neg]
state_before: R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
inst✝⁷ : LinearOrderedField R'
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s : Set E
i j : ι
c : R
t : Finset ι
w : ι → R
z : ι → E
⊢ t.centerMass (-w) z = t.centerMass w z
state_after: no goals
Theorem: extChartAt_target_mem_nhdsWithin'
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rwa [← extChartAt_source I]
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x y : M
hy : y ∈ (extChartAt I x).source
⊢ y ∈ (chartAt H x).source
state_after: no goals
Theorem: CochainComplex.HomComplex.Cochain.neg_comp
File: Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean

tactic: ext p q hpq
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n m n₁ n₂ n₁₂ : ℤ
z₁ : Cochain F G n₁
z₂ : Cochain G K n₂
h : n₁ + n₂ = n₁₂
⊢ (-z₁).comp z₂ h = -z₁.comp z₂ h
state_after: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n m n₁ n₂ n₁₂ : ℤ
z₁ : Cochain F G n₁
z₂ : Cochain G K n₂
h : n₁ + n₂ = n₁₂
p q : ℤ
hpq : p + n₁₂ = q
⊢ ((-z₁).comp z₂ h).v p q hpq = (-z₁.comp z₂ h).v p q hpq

tactic: simp only [comp_v _ _ h p _ q rfl (by omega), neg_v, neg_comp]
state_before: case h
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n m n₁ n₂ n₁₂ : ℤ
z₁ : Cochain F G n₁
z₂ : Cochain G K n₂
h : n₁ + n₂ = n₁₂
p q : ℤ
hpq : p + n₁₂ = q
⊢ ((-z₁).comp z₂ h).v p q hpq = (-z₁.comp z₂ h).v p q hpq
state_after: no goals

tactic: omega
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n m n₁ n₂ n₁₂ : ℤ
z₁ : Cochain F G n₁
z₂ : Cochain G K n₂
h : n₁ + n₂ = n₁₂
p q : ℤ
hpq : p + n₁₂ = q
⊢ p + n₁ + n₂ = q
state_after: no goals