1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: TopCat.prodIsoProd_hom_apply
File: Mathlib/Topology/Category/TopCat/Limits/Products.lean

tactic: apply Prod.ext
state_before: J : Type v
inst✝ : SmallCategory J
X Y : TopCat
x : ↑(X ⨯ Y)
⊢ (X.prodIsoProd Y).hom x = (prod.fst x, prod.snd x)
state_after: case a
J : Type v
inst✝ : SmallCategory J
X Y : TopCat
x : ↑(X ⨯ Y)
⊢ ((X.prodIsoProd Y).hom x).1 = (prod.fst x, prod.snd x).1

case a
J : Type v
inst✝ : SmallCategory J
X Y : TopCat
x : ↑(X ⨯ Y)
⊢ ((X.prodIsoProd Y).hom x).2 = (prod.fst x, prod.snd x).2

tactic: exact ConcreteCategory.congr_hom (prodIsoProd_hom_fst X Y) x
state_before: case a
J : Type v
inst✝ : SmallCategory J
X Y : TopCat
x : ↑(X ⨯ Y)
⊢ ((X.prodIsoProd Y).hom x).1 = (prod.fst x, prod.snd x).1
state_after: no goals

tactic: exact ConcreteCategory.congr_hom (prodIsoProd_hom_snd X Y) x
state_before: case a
J : Type v
inst✝ : SmallCategory J
X Y : TopCat
x : ↑(X ⨯ Y)
⊢ ((X.prodIsoProd Y).hom x).2 = (prod.fst x, prod.snd x).2
state_after: no goals
Theorem: Multiset.toList_eq_nil
File: Mathlib/Data/Multiset/Basic.lean

tactic: rw [← coe_eq_zero, coe_toList]
state_before: α : Type u_1
β : Type v
γ : Type u_2
s : Multiset α
⊢ s.toList = [] ↔ s = 0
state_after: no goals
Theorem: Polynomial.coe_normUnit_of_ne_zero
File: Mathlib/Algebra/Polynomial/FieldDivision.lean

tactic: have : p.leadingCoeff ≠ 0 := mt leadingCoeff_eq_zero.mp hp
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝¹ : Field R
p q : R[X]
inst✝ : DecidableEq R
hp : p ≠ 0
⊢ ↑(normUnit p) = C p.leadingCoeff⁻¹
state_after: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝¹ : Field R
p q : R[X]
inst✝ : DecidableEq R
hp : p ≠ 0
this : p.leadingCoeff ≠ 0
⊢ ↑(normUnit p) = C p.leadingCoeff⁻¹

tactic: simp [CommGroupWithZero.coe_normUnit _ this]
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝¹ : Field R
p q : R[X]
inst✝ : DecidableEq R
hp : p ≠ 0
this : p.leadingCoeff ≠ 0
⊢ ↑(normUnit p) = C p.leadingCoeff⁻¹
state_after: no goals
Theorem: IsClosed.prod
File: Mathlib/Topology/Constructions.lean

tactic: simp only [h₁.closure_eq, h₂.closure_eq, closure_prod_eq]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
s₁ : Set X
s₂ : Set Y
h₁ : IsClosed s₁
h₂ : IsClosed s₂
⊢ closure (s₁ ×ˢ s₂) = s₁ ×ˢ s₂
state_after: no goals
Theorem: MeasureTheory.condexp_of_not_le
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean

tactic: rw [condexp, dif_neg hm_not]
state_before: α : Type u_1
F : Type u_2
F' : Type u_3
𝕜 : Type u_4
p : ℝ≥0∞
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f g : α → F'
s : Set α
hm_not : ¬m ≤ m0
⊢ μ[f|m] = 0
state_after: no goals
Theorem: Module.End.eigenspace_div
File: Mathlib/LinearAlgebra/Eigenspace/Basic.lean

tactic: rw [div_eq_mul_inv, mul_comm]
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End K V
a b : K
hb : b ≠ 0
⊢ f.eigenspace (a / b) = f.eigenspace (b⁻¹ * a)
state_after: no goals

tactic: rw [eigenspace]
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End K V
a b : K
hb : b ≠ 0
⊢ f.eigenspace (b⁻¹ * a) = LinearMap.ker (f - (b⁻¹ * a) • LinearMap.id)
state_after: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End K V
a b : K
hb : b ≠ 0
⊢ LinearMap.ker (f - (algebraMap K (End K V)) (b⁻¹ * a)) = LinearMap.ker (f - (b⁻¹ * a) • LinearMap.id)

tactic: rfl
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End K V
a b : K
hb : b ≠ 0
⊢ LinearMap.ker (f - (algebraMap K (End K V)) (b⁻¹ * a)) = LinearMap.ker (f - (b⁻¹ * a) • LinearMap.id)
state_after: no goals

tactic: rw [smul_smul]
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End K V
a b : K
hb : b ≠ 0
⊢ LinearMap.ker (f - (b⁻¹ * a) • LinearMap.id) = LinearMap.ker (f - b⁻¹ • a • LinearMap.id)
state_after: no goals

tactic: rw [LinearMap.ker_smul _ b hb]
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End K V
a b : K
hb : b ≠ 0
⊢ LinearMap.ker (f - b⁻¹ • (algebraMap K (End K V)) a) = LinearMap.ker (b • (f - b⁻¹ • (algebraMap K (End K V)) a))
state_after: no goals

tactic: rw [smul_sub, smul_inv_smul₀ hb]
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End K V
a b : K
hb : b ≠ 0
⊢ LinearMap.ker (b • (f - b⁻¹ • (algebraMap K (End K V)) a)) = LinearMap.ker (b • f - (algebraMap K (End K V)) a)
state_after: no goals
Theorem: MeasureTheory.setLIntegral_univ
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: rw [Measure.restrict_univ]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
⊢ ∫⁻ (x : α) in univ, f x ∂μ = ∫⁻ (x : α), f x ∂μ
state_after: no goals
Theorem: dist_mono_left_pi
File: Mathlib/Analysis/Normed/Order/UpperLower.lean

tactic: refine' fun y₁ hy₁ y₂ hy₂ hy ↦ NNReal.coe_le_coe.2 (Finset.sup_mono_fun fun i _ ↦ _)
state_before: α : Type u_1
ι : Type u_2
inst✝ : Fintype ι
s t : Set (ι → ℝ)
a₁ a₂ b₁ b₂ x y : ι → ℝ
δ : ℝ
⊢ MonotoneOn (fun x => dist x y) (Ici y)
state_after: α : Type u_1
ι : Type u_2
inst✝ : Fintype ι
s t : Set (ι → ℝ)
a₁ a₂ b₁ b₂ x y : ι → ℝ
δ : ℝ
y₁ : ι → ℝ
hy₁ : y₁ ∈ Ici y
y₂ : ι → ℝ
hy₂ : y₂ ∈ Ici y
hy : y₁ ≤ y₂
i : ι
x✝ : i ∈ Finset.univ
⊢ nndist (y₁ i) (y i) ≤ nndist (y₂ i) (y i)

tactic: rw [Real.nndist_eq, Real.nnabs_of_nonneg (sub_nonneg_of_le (‹y ≤ _› i : y i ≤ y₁ i)),
  Real.nndist_eq, Real.nnabs_of_nonneg (sub_nonneg_of_le (‹y ≤ _› i : y i ≤ y₂ i))]
state_before: α : Type u_1
ι : Type u_2
inst✝ : Fintype ι
s t : Set (ι → ℝ)
a₁ a₂ b₁ b₂ x y : ι → ℝ
δ : ℝ
y₁ : ι → ℝ
hy₁ : y₁ ∈ Ici y
y₂ : ι → ℝ
hy₂ : y₂ ∈ Ici y
hy : y₁ ≤ y₂
i : ι
x✝ : i ∈ Finset.univ
⊢ nndist (y₁ i) (y i) ≤ nndist (y₂ i) (y i)
state_after: α : Type u_1
ι : Type u_2
inst✝ : Fintype ι
s t : Set (ι → ℝ)
a₁ a₂ b₁ b₂ x y : ι → ℝ
δ : ℝ
y₁ : ι → ℝ
hy₁ : y₁ ∈ Ici y
y₂ : ι → ℝ
hy₂ : y₂ ∈ Ici y
hy : y₁ ≤ y₂
i : ι
x✝ : i ∈ Finset.univ
⊢ (y₁ i - y i).toNNReal ≤ (y₂ i - y i).toNNReal

tactic: exact Real.toNNReal_mono (sub_le_sub_right (hy _) _)
state_before: α : Type u_1
ι : Type u_2
inst✝ : Fintype ι
s t : Set (ι → ℝ)
a₁ a₂ b₁ b₂ x y : ι → ℝ
δ : ℝ
y₁ : ι → ℝ
hy₁ : y₁ ∈ Ici y
y₂ : ι → ℝ
hy₂ : y₂ ∈ Ici y
hy : y₁ ≤ y₂
i : ι
x✝ : i ∈ Finset.univ
⊢ (y₁ i - y i).toNNReal ≤ (y₂ i - y i).toNNReal
state_after: no goals
Theorem: MeasureTheory.AEStronglyMeasurable'.add
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean

tactic: rcases hf with ⟨f', h_f'_meas, hff'⟩
state_before: α : Type u_1
β : Type u_2
𝕜 : Type u_3
m m0 : MeasurableSpace α
μ : Measure α
inst✝² : TopologicalSpace β
f g : α → β
inst✝¹ : Add β
inst✝ : ContinuousAdd β
hf : AEStronglyMeasurable' m f μ
hg : AEStronglyMeasurable' m g μ
⊢ AEStronglyMeasurable' m (f + g) μ
state_after: case intro.intro
α : Type u_1
β : Type u_2
𝕜 : Type u_3
m m0 : MeasurableSpace α
μ : Measure α
inst✝² : TopologicalSpace β
f g : α → β
inst✝¹ : Add β
inst✝ : ContinuousAdd β
hg : AEStronglyMeasurable' m g μ
f' : α → β
h_f'_meas : StronglyMeasurable f'
hff' : f =ᶠ[ae μ] f'
⊢ AEStronglyMeasurable' m (f + g) μ

tactic: rcases hg with ⟨g', h_g'_meas, hgg'⟩
state_before: case intro.intro
α : Type u_1
β : Type u_2
𝕜 : Type u_3
m m0 : MeasurableSpace α
μ : Measure α
inst✝² : TopologicalSpace β
f g : α → β
inst✝¹ : Add β
inst✝ : ContinuousAdd β
hg : AEStronglyMeasurable' m g μ
f' : α → β
h_f'_meas : StronglyMeasurable f'
hff' : f =ᶠ[ae μ] f'
⊢ AEStronglyMeasurable' m (f + g) μ
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
𝕜 : Type u_3
m m0 : MeasurableSpace α
μ : Measure α
inst✝² : TopologicalSpace β
f g : α → β
inst✝¹ : Add β
inst✝ : ContinuousAdd β
f' : α → β
h_f'_meas : StronglyMeasurable f'
hff' : f =ᶠ[ae μ] f'
g' : α → β
h_g'_meas : StronglyMeasurable g'
hgg' : g =ᶠ[ae μ] g'
⊢ AEStronglyMeasurable' m (f + g) μ

tactic: exact ⟨f' + g', h_f'_meas.add h_g'_meas, hff'.add hgg'⟩
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
𝕜 : Type u_3
m m0 : MeasurableSpace α
μ : Measure α
inst✝² : TopologicalSpace β
f g : α → β
inst✝¹ : Add β
inst✝ : ContinuousAdd β
f' : α → β
h_f'_meas : StronglyMeasurable f'
hff' : f =ᶠ[ae μ] f'
g' : α → β
h_g'_meas : StronglyMeasurable g'
hgg' : g =ᶠ[ae μ] g'
⊢ AEStronglyMeasurable' m (f + g) μ
state_after: no goals
Theorem: Finsupp.lcongr_single
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: simp [lcongr]
state_before: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
ι : Type u_7
κ : Type u_8
e₁ : ι ≃ κ
e₂ : M ≃ₗ[R] N
i : ι
m : M
⊢ (lcongr e₁ e₂) (single i m) = single (e₁ i) (e₂ m)
state_after: no goals
Theorem: div_ne_zero
File: Mathlib/Algebra/GroupWithZero/Units/Basic.lean

tactic: rw [div_eq_mul_inv]
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a b c d : G₀
m n : ℕ
ha : a ≠ 0
hb : b ≠ 0
⊢ a / b ≠ 0
state_after: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a b c d : G₀
m n : ℕ
ha : a ≠ 0
hb : b ≠ 0
⊢ a * b⁻¹ ≠ 0

tactic: exact mul_ne_zero ha (inv_ne_zero hb)
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝¹ : MonoidWithZero M₀
inst✝ : GroupWithZero G₀
a b c d : G₀
m n : ℕ
ha : a ≠ 0
hb : b ≠ 0
⊢ a * b⁻¹ ≠ 0
state_after: no goals
Theorem: Ring.multichoose_zero_right
File: Mathlib/RingTheory/Binomial.lean

tactic: rw [multichoose_zero_right', npow_zero]
state_before: R : Type u_1
inst✝⁴ : AddCommMonoid R
inst✝³ : Pow R ℕ
inst✝² : BinomialRing R
inst✝¹ : MulOneClass R
inst✝ : NatPowAssoc R
r : R
⊢ multichoose r 0 = 1
state_after: no goals
Theorem: PrimeSpectrum.mem_vanishingIdeal
File: Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean

tactic: rw [← SetLike.mem_coe, coe_vanishingIdeal, Set.mem_setOf_eq]
state_before: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
t : Set (PrimeSpectrum R)
f : R
⊢ f ∈ vanishingIdeal t ↔ ∀ x ∈ t, f ∈ x.asIdeal
state_after: no goals
Theorem: CategoryTheory.Limits.prod.map_id_comp
File: Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean

tactic: simp
state_before: C : Type u
inst✝³ : Category.{v, u} C
X✝ Y✝ X Y Z W : C
f : X ⟶ Y
g : Y ⟶ Z
inst✝² : HasBinaryProduct W X
inst✝¹ : HasBinaryProduct W Y
inst✝ : HasBinaryProduct W Z
⊢ map (𝟙 W) (f ≫ g) = map (𝟙 W) f ≫ map (𝟙 W) g
state_after: no goals
Theorem: continuous_pi_iff
File: Mathlib/Topology/Constructions.lean

tactic: simp only [continuous_iInf_rng, continuous_induced_rng, comp]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
ι : Type u_5
π : ι → Type u_6
κ : Type u_7
inst✝ : TopologicalSpace X
T : (i : ι) → TopologicalSpace (π i)
f : X → (i : ι) → π i
⊢ Continuous f ↔ ∀ (i : ι), Continuous fun a => f a i
state_after: no goals
Theorem: Matrix.row_eq_zero_of_commute_stdBasisMatrix
File: Mathlib/Data/Matrix/Basis.lean

tactic: have := ext_iff.mpr hM i k
state_before: l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝⁴ : DecidableEq l
inst✝³ : DecidableEq m
inst✝² : DecidableEq n
inst✝¹ : Semiring α
inst✝ : Fintype n
i j k : n
M : Matrix n n α
hM : Commute (stdBasisMatrix i j 1) M
hkj : k ≠ j
⊢ M j k = 0
state_after: l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝⁴ : DecidableEq l
inst✝³ : DecidableEq m
inst✝² : DecidableEq n
inst✝¹ : Semiring α
inst✝ : Fintype n
i j k : n
M : Matrix n n α
hM : Commute (stdBasisMatrix i j 1) M
hkj : k ≠ j
this : (stdBasisMatrix i j 1 * M) i k = (M * stdBasisMatrix i j 1) i k
⊢ M j k = 0

tactic: aesop
state_before: l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝⁴ : DecidableEq l
inst✝³ : DecidableEq m
inst✝² : DecidableEq n
inst✝¹ : Semiring α
inst✝ : Fintype n
i j k : n
M : Matrix n n α
hM : Commute (stdBasisMatrix i j 1) M
hkj : k ≠ j
this : (stdBasisMatrix i j 1 * M) i k = (M * stdBasisMatrix i j 1) i k
⊢ M j k = 0
state_after: no goals
Theorem: WithTop.image_coe_Iio
File: Mathlib/Order/Interval/Set/WithBotTop.lean

tactic: rw [← preimage_coe_Iio, image_preimage_eq_inter_range, range_coe,
  inter_eq_self_of_subset_left (Iio_subset_Iio le_top)]
state_before: α : Type u_1
inst✝ : Preorder α
a b : α
⊢ some '' Iio a = Iio ↑a
state_after: no goals
Theorem: SimpleGraph.Walk.toSubgraph_connected
File: Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean

tactic: induction p with
| nil => apply singletonSubgraph_connected
| @cons _ w _ h p ih =>
  apply (subgraphOfAdj_connected h).sup ih
  exists w
  simp
state_before: V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
u v : V
p : G.Walk u v
⊢ p.toSubgraph.Connected
state_after: no goals

tactic: apply singletonSubgraph_connected
state_before: case nil
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
u v u✝ : V
⊢ Walk.nil.toSubgraph.Connected
state_after: no goals

tactic: apply (subgraphOfAdj_connected h).sup ih
state_before: case cons
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
u v u✝ w w✝ : V
h : G.Adj u✝ w
p : G.Walk w w✝
ih : p.toSubgraph.Connected
⊢ (Walk.cons h p).toSubgraph.Connected
state_after: case cons
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
u v u✝ w w✝ : V
h : G.Adj u✝ w
p : G.Walk w w✝
ih : p.toSubgraph.Connected
⊢ (G.subgraphOfAdj h ⊓ p.toSubgraph).verts.Nonempty

tactic: exists w
state_before: case cons
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
u v u✝ w w✝ : V
h : G.Adj u✝ w
p : G.Walk w w✝
ih : p.toSubgraph.Connected
⊢ (G.subgraphOfAdj h ⊓ p.toSubgraph).verts.Nonempty
state_after: case cons
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
u v u✝ w w✝ : V
h : G.Adj u✝ w
p : G.Walk w w✝
ih : p.toSubgraph.Connected
⊢ w ∈ (G.subgraphOfAdj h ⊓ p.toSubgraph).verts

tactic: simp
state_before: case cons
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
u v u✝ w w✝ : V
h : G.Adj u✝ w
p : G.Walk w w✝
ih : p.toSubgraph.Connected
⊢ w ∈ (G.subgraphOfAdj h ⊓ p.toSubgraph).verts
state_after: no goals
Theorem: Finset.diag_inter
File: Mathlib/Data/Finset/Prod.lean

tactic: simpa only [mem_diag, mem_inter] using and_and_right
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t : Finset α
x✝ x : α × α
⊢ x ∈ (s ∩ t).diag ↔ x ∈ s.diag ∩ t.diag
state_after: no goals
Theorem: Polynomial.Monic.as_sum
File: Mathlib/Algebra/Polynomial/Monic.lean

tactic: conv_lhs => rw [p.as_sum_range_C_mul_X_pow, sum_range_succ_comm]
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
⊢ p = X ^ p.natDegree + ∑ i ∈ range p.natDegree, C (p.coeff i) * X ^ i
state_after: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
⊢ C (p.coeff p.natDegree) * X ^ p.natDegree + ∑ x ∈ range p.natDegree, C (p.coeff x) * X ^ x =
    X ^ p.natDegree + ∑ i ∈ range p.natDegree, C (p.coeff i) * X ^ i

tactic: suffices C (p.coeff p.natDegree) = 1 by rw [this, one_mul]
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
⊢ C (p.coeff p.natDegree) * X ^ p.natDegree + ∑ x ∈ range p.natDegree, C (p.coeff x) * X ^ x =
    X ^ p.natDegree + ∑ i ∈ range p.natDegree, C (p.coeff i) * X ^ i
state_after: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
⊢ C (p.coeff p.natDegree) = 1

tactic: exact congr_arg C hp
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
⊢ C (p.coeff p.natDegree) = 1
state_after: no goals

tactic: rw [this, one_mul]
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
this : C (p.coeff p.natDegree) = 1
⊢ C (p.coeff p.natDegree) * X ^ p.natDegree + ∑ x ∈ range p.natDegree, C (p.coeff x) * X ^ x =
    X ^ p.natDegree + ∑ i ∈ range p.natDegree, C (p.coeff i) * X ^ i
state_after: no goals
Theorem: Quiver.Path.hom_heq_of_cons_eq_cons
File: Mathlib/Combinatorics/Quiver/Path.lean

tactic: injection h
state_before: V : Type u
inst✝ : Quiver V
a b c d : V
p : Path a b
p' : Path a c
e : b ⟶ d
e' : c ⟶ d
h : p.cons e = p'.cons e'
⊢ HEq e e'
state_after: no goals
Theorem: Submodule.map_pointwise_smul
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: simp_rw [← ideal_span_singleton_smul, map_smul'']
state_before: R : Type u
M : Type v
M'✝ : Type u_1
F : Type u_2
G : Type u_3
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid M'✝
inst✝² : Module R M'✝
I J : Ideal R
N✝ P : Submodule R M
S : Set R
T : Set M
M' : Type w
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
r : R
N : Submodule R M
f : M →ₗ[R] M'
⊢ map f (r • N) = r • map f N
state_after: no goals
Theorem: NNReal.rpow_le_self_of_le_one
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: rcases eq_bot_or_bot_lt x with (rfl | (h : 0 < x))
state_before: w x✝ y z✝ : ℝ
x : ℝ≥0
z : ℝ
hx : x ≤ 1
h_one_le : 1 ≤ z
⊢ x ^ z ≤ x
state_after: case inl
w x y z✝ z : ℝ
h_one_le : 1 ≤ z
hx : ⊥ ≤ 1
⊢ ⊥ ^ z ≤ ⊥

case inr
w x✝ y z✝ : ℝ
x : ℝ≥0
z : ℝ
hx : x ≤ 1
h_one_le : 1 ≤ z
h : 0 < x
⊢ x ^ z ≤ x

tactic: nth_rw 2 [← NNReal.rpow_one x]
state_before: case inr
w x✝ y z✝ : ℝ
x : ℝ≥0
z : ℝ
hx : x ≤ 1
h_one_le : 1 ≤ z
h : 0 < x
⊢ x ^ z ≤ x
state_after: case inr
w x✝ y z✝ : ℝ
x : ℝ≥0
z : ℝ
hx : x ≤ 1
h_one_le : 1 ≤ z
h : 0 < x
⊢ x ^ z ≤ x ^ 1

tactic: exact NNReal.rpow_le_rpow_of_exponent_ge h hx h_one_le
state_before: case inr
w x✝ y z✝ : ℝ
x : ℝ≥0
z : ℝ
hx : x ≤ 1
h_one_le : 1 ≤ z
h : 0 < x
⊢ x ^ z ≤ x ^ 1
state_after: no goals

tactic: have : z ≠ 0 := by linarith
state_before: case inl
w x y z✝ z : ℝ
h_one_le : 1 ≤ z
hx : ⊥ ≤ 1
⊢ ⊥ ^ z ≤ ⊥
state_after: case inl
w x y z✝ z : ℝ
h_one_le : 1 ≤ z
hx : ⊥ ≤ 1
this : z ≠ 0
⊢ ⊥ ^ z ≤ ⊥

tactic: simp [this]
state_before: case inl
w x y z✝ z : ℝ
h_one_le : 1 ≤ z
hx : ⊥ ≤ 1
this : z ≠ 0
⊢ ⊥ ^ z ≤ ⊥
state_after: no goals

tactic: linarith
state_before: w x y z✝ z : ℝ
h_one_le : 1 ≤ z
hx : ⊥ ≤ 1
⊢ z ≠ 0
state_after: no goals
Theorem: PiTensorProduct.map_smul
File: Mathlib/LinearAlgebra/PiTensorProduct.lean

tactic: ext x
state_before: ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝¹² : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝¹¹ : (i : ι) → AddCommMonoid (s i)
inst✝¹⁰ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
E : Type u_9
inst✝⁷ : AddCommMonoid E
inst✝⁶ : Module R E
F : Type u_10
inst✝⁵ : AddCommMonoid F
t : ι → Type u_11
t' : ι → Type u_12
inst✝⁴ : (i : ι) → AddCommMonoid (t i)
inst✝³ : (i : ι) → Module R (t i)
inst✝² : (i : ι) → AddCommMonoid (t' i)
inst✝¹ : (i : ι) → Module R (t' i)
g : (i : ι) → t i →ₗ[R] t' i
f : (i : ι) → s i →ₗ[R] t i
inst✝ : DecidableEq ι
i : ι
c : R
u : s i →ₗ[R] t i
⊢ map (update f i (c • u)) = c • map (update f i u)
state_after: case H.H
ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝¹² : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝¹¹ : (i : ι) → AddCommMonoid (s i)
inst✝¹⁰ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
E : Type u_9
inst✝⁷ : AddCommMonoid E
inst✝⁶ : Module R E
F : Type u_10
inst✝⁵ : AddCommMonoid F
t : ι → Type u_11
t' : ι → Type u_12
inst✝⁴ : (i : ι) → AddCommMonoid (t i)
inst✝³ : (i : ι) → Module R (t i)
inst✝² : (i : ι) → AddCommMonoid (t' i)
inst✝¹ : (i : ι) → Module R (t' i)
g : (i : ι) → t i →ₗ[R] t' i
f : (i : ι) → s i →ₗ[R] t i
inst✝ : DecidableEq ι
i : ι
c : R
u : s i →ₗ[R] t i
x : (i : ι) → s i
⊢ ((map (update f i (c • u))).compMultilinearMap (tprod R)) x =
    ((c • map (update f i u)).compMultilinearMap (tprod R)) x

tactic: simp only [LinearMap.compMultilinearMap_apply, map_tprod, map_add_smul_aux, LinearMap.smul_apply,
  MultilinearMap.map_smul]
state_before: case H.H
ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝¹² : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝¹¹ : (i : ι) → AddCommMonoid (s i)
inst✝¹⁰ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
E : Type u_9
inst✝⁷ : AddCommMonoid E
inst✝⁶ : Module R E
F : Type u_10
inst✝⁵ : AddCommMonoid F
t : ι → Type u_11
t' : ι → Type u_12
inst✝⁴ : (i : ι) → AddCommMonoid (t i)
inst✝³ : (i : ι) → Module R (t i)
inst✝² : (i : ι) → AddCommMonoid (t' i)
inst✝¹ : (i : ι) → Module R (t' i)
g : (i : ι) → t i →ₗ[R] t' i
f : (i : ι) → s i →ₗ[R] t i
inst✝ : DecidableEq ι
i : ι
c : R
u : s i →ₗ[R] t i
x : (i : ι) → s i
⊢ ((map (update f i (c • u))).compMultilinearMap (tprod R)) x =
    ((c • map (update f i u)).compMultilinearMap (tprod R)) x
state_after: no goals
Theorem: WithTop.add_lt_top
File: Mathlib/Algebra/Order/Monoid/WithTop.lean

tactic: simp_rw [WithTop.lt_top_iff_ne_top, add_ne_top]
state_before: α : Type u
β : Type v
inst✝¹ : Add α
a✝ b✝ c d : WithTop α
x y : α
inst✝ : LT α
a b : WithTop α
⊢ a + b < ⊤ ↔ a < ⊤ ∧ b < ⊤
state_after: no goals
Theorem: MeasureTheory.FiniteMeasure.testAgainstNN_one
File: Mathlib/MeasureTheory/Measure/FiniteMeasure.lean

tactic: simp only [testAgainstNN, coe_one, Pi.one_apply, ENNReal.coe_one, lintegral_one]
state_before: Ω : Type u_1
inst✝⁵ : MeasurableSpace Ω
R : Type u_2
inst✝⁴ : SMul R ℝ≥0
inst✝³ : SMul R ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝¹ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝ : TopologicalSpace Ω
μ : FiniteMeasure Ω
⊢ μ.testAgainstNN 1 = μ.mass
state_after: Ω : Type u_1
inst✝⁵ : MeasurableSpace Ω
R : Type u_2
inst✝⁴ : SMul R ℝ≥0
inst✝³ : SMul R ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝¹ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝ : TopologicalSpace Ω
μ : FiniteMeasure Ω
⊢ (↑μ univ).toNNReal = μ.mass

tactic: rfl
state_before: Ω : Type u_1
inst✝⁵ : MeasurableSpace Ω
R : Type u_2
inst✝⁴ : SMul R ℝ≥0
inst✝³ : SMul R ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝¹ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝ : TopologicalSpace Ω
μ : FiniteMeasure Ω
⊢ (↑μ univ).toNNReal = μ.mass
state_after: no goals
Theorem: ENNReal.tsum_geometric_add_one
File: Mathlib/Analysis/SpecificLimits/Basic.lean

tactic: simp only [_root_.pow_succ', ENNReal.tsum_mul_left, ENNReal.tsum_geometric]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
r : ℝ≥0∞
⊢ ∑' (n : ℕ), r ^ (n + 1) = r * (1 - r)⁻¹
state_after: no goals