ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Wbtw.sameRay_vsub_left
File: Mathlib/Analysis/Convex/Between.lean

Proof steps:
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : StrictOrderedCommRing R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y z : P
h : Wbtw R x y z
⊢ SameRay R (y -ᵥ x) (z -ᵥ x)
state_after: case intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : StrictOrderedCommRing R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x z : P
t : R
ht0 : 0 ≤ t
right✝ : t ≤ 1
⊢ SameRay R ((lineMap x z) t -ᵥ x) (z -ᵥ x)
tactic: rcases h with ⟨t, ⟨ht0, _⟩, rfl⟩
state_before: case intro.intro.intro
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : StrictOrderedCommRing R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x z : P
t : R
ht0 : 0 ≤ t
right✝ : t ≤ 1
⊢ SameRay R ((lineMap x z) t -ᵥ x) (z -ᵥ x)
state_after: no goals
tactic: simpa [lineMap_apply] using SameRay.sameRay_nonneg_smul_left (z -ᵥ x) ht0
Theorem: multiplicity.finite_of_finite_mul_left
File: Mathlib/RingTheory/Multiplicity.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝ : CommMonoid α
a b c : α
⊢ Finite a (b * c) → Finite a c
state_after: α : Type u_1
β : Type u_2
inst✝ : CommMonoid α
a b c : α
⊢ Finite a (c * b) → Finite a c
tactic: rw [mul_comm]
state_before: α : Type u_1
β : Type u_2
inst✝ : CommMonoid α
a b c : α
⊢ Finite a (c * b) → Finite a c
state_after: no goals
tactic: exact finite_of_finite_mul_right
Theorem: CategoryTheory.Limits.pullback_symmetry_hom_of_epi_eq
File: Mathlib/CategoryTheory/Limits/Shapes/Pullback/Mono.lean

Proof steps:
state_before: C : Type u
inst✝¹ : Category.{v, u} C
W X Y Z : C
f : X ⟶ Y
inst✝ : Epi f
⊢ (pushoutSymmetry f f).hom = 𝟙 (pushout f f)
state_after: no goals
tactic: ext <;> simp [inl_eq_inr_of_epi_eq]
Theorem: intervalIntegral.integral_comp_neg
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

Proof steps:
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c d : ℝ
f : ℝ → E
⊢ ∫ (x : ℝ) in a..b, f (-x) = ∫ (x : ℝ) in -b..-a, f x
state_after: no goals
tactic: simpa only [zero_sub] using integral_comp_sub_left f 0
Theorem: AddSubgroup.relindex_inf_mul_relindex
File: Mathlib/GroupTheory/Index.lean

Proof steps:
state_before: G : Type u_1
G' : Type u_2
inst✝¹ : Group G
inst✝ : Group G'
H K L : Subgroup G
⊢ H.relindex (K ⊓ L) * K.relindex L = (H ⊓ K).relindex L
state_after: no goals
tactic: rw [← inf_relindex_right H (K ⊓ L), ← inf_relindex_right K L, ← inf_relindex_right (H ⊓ K) L,
    inf_assoc, relindex_mul_relindex (H ⊓ (K ⊓ L)) (K ⊓ L) L inf_le_right inf_le_right]
Theorem: IsPreconnected.eq_or_eq_neg_of_sq_eq
File: Mathlib/Topology/Algebra/Field.lean

Proof steps:
state_before: K : Type u_1
inst✝⁷ : DivisionRing K
inst✝⁶ : TopologicalSpace K
α : Type u_2
𝕜 : Type u_3
f g : α → 𝕜
S : Set α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace 𝕜
inst✝³ : T1Space 𝕜
inst✝² : Field 𝕜
inst✝¹ : HasContinuousInv₀ 𝕜
inst✝ : ContinuousMul 𝕜
hS : IsPreconnected S
hf : ContinuousOn f S
hg : ContinuousOn g S
hsq : EqOn (f ^ 2) (g ^ 2) S
hg_ne : ∀ {x : α}, x ∈ S → g x ≠ 0
⊢ EqOn f g S ∨ EqOn f (-g) S
state_after: K : Type u_1
inst✝⁷ : DivisionRing K
inst✝⁶ : TopologicalSpace K
α : Type u_2
𝕜 : Type u_3
f g : α → 𝕜
S : Set α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace 𝕜
inst✝³ : T1Space 𝕜
inst✝² : Field 𝕜
inst✝¹ : HasContinuousInv₀ 𝕜
inst✝ : ContinuousMul 𝕜
hS : IsPreconnected S
hf : ContinuousOn f S
hg : ContinuousOn g S
hsq✝ : EqOn (f ^ 2) (g ^ 2) S
hg_ne : ∀ {x : α}, x ∈ S → g x ≠ 0
hsq : EqOn ((f / g) ^ 2) 1 S
⊢ EqOn f g S ∨ EqOn f (-g) S
tactic: have hsq : EqOn ((f / g) ^ 2) 1 S := fun x hx => by
    simpa [div_eq_one_iff_eq (pow_ne_zero _ (hg_ne hx))] using hsq hx
state_before: K : Type u_1
inst✝⁷ : DivisionRing K
inst✝⁶ : TopologicalSpace K
α : Type u_2
𝕜 : Type u_3
f g : α → 𝕜
S : Set α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace 𝕜
inst✝³ : T1Space 𝕜
inst✝² : Field 𝕜
inst✝¹ : HasContinuousInv₀ 𝕜
inst✝ : ContinuousMul 𝕜
hS : IsPreconnected S
hf : ContinuousOn f S
hg : ContinuousOn g S
hsq✝ : EqOn (f ^ 2) (g ^ 2) S
hg_ne : ∀ {x : α}, x ∈ S → g x ≠ 0
hsq : EqOn ((f / g) ^ 2) 1 S
⊢ EqOn f g S ∨ EqOn f (-g) S
state_after: no goals
tactic: simpa (config := { contextual := true }) [EqOn, div_eq_iff (hg_ne _)]
    using hS.eq_one_or_eq_neg_one_of_sq_eq (hf.div hg fun z => hg_ne) hsq
Theorem: FreeAlgebra.lift_comp_ι
File: Mathlib/Algebra/FreeAlgebra.lean

Proof steps:
state_before: R : Type u_1
inst✝² : CommSemiring R
X : Type u_2
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
g : FreeAlgebra R X →ₐ[R] A
⊢ (lift R) (⇑g ∘ ι R) = g
state_after: R : Type u_1
inst✝² : CommSemiring R
X : Type u_2
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
g : FreeAlgebra R X →ₐ[R] A
⊢ (lift R) ((lift R).symm g) = g
tactic: rw [← lift_symm_apply]
state_before: R : Type u_1
inst✝² : CommSemiring R
X : Type u_2
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
g : FreeAlgebra R X →ₐ[R] A
⊢ (lift R) ((lift R).symm g) = g
state_after: no goals
tactic: exact (lift R).apply_symm_apply g
Theorem: CategoryTheory.Limits.coprod.triangle
File: Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean

Proof steps:
state_before: C : Type u
inst✝³ : Category.{v, u} C
X✝ Y✝ : C
inst✝² : Category.{v, u} C
inst✝¹ : HasBinaryCoproducts C
inst✝ : HasInitial C
X Y : C
⊢ (associator X (⊥_ C) Y).hom ≫ map (𝟙 X) (leftUnitor Y).hom = map (rightUnitor X).hom (𝟙 Y)
state_after: no goals
tactic: ext <;> simp
Theorem: AddValuation.map_add_eq_of_lt_left
File: Mathlib/RingTheory/Valuation/Basic.lean

Proof steps:
state_before: K : Type u_1
F : Type u_2
R : Type u_3
inst✝² : DivisionRing K
Γ₀ : Type u_4
Γ'₀ : Type u_5
inst✝¹ : LinearOrderedAddCommGroupWithTop Γ₀
inst✝ : Ring R
v : AddValuation R Γ₀
x✝ y✝ z x y : R
h : v x < v y
⊢ v (x + y) = v x
state_after: no goals
tactic: rw [map_add_of_distinct_val _ h.ne, min_eq_left h.le]
Theorem: CategoryTheory.Idempotents.DoldKan.hη
File: Mathlib/AlgebraicTopology/DoldKan/EquivalencePseudoabelian.lean

Proof steps:
state_before: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : IsIdempotentComplete C
inst✝ : HasFiniteCoproducts C
⊢ Compatibility.τ₀ = Compatibility.τ₁ isoN₁ isoΓ₀ N₁Γ₀
state_after: case w.w.h
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : IsIdempotentComplete C
inst✝ : HasFiniteCoproducts C
K : ChainComplex C ℕ
⊢ Compatibility.τ₀.hom.app K = (Compatibility.τ₁ isoN₁ isoΓ₀ N₁Γ₀).hom.app K
tactic: ext K : 3
state_before: case w.w.h
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : IsIdempotentComplete C
inst✝ : HasFiniteCoproducts C
K : ChainComplex C ℕ
⊢ Compatibility.τ₀.hom.app K = (Compatibility.τ₁ isoN₁ isoΓ₀ N₁Γ₀).hom.app K
state_after: case w.w.h
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : IsIdempotentComplete C
inst✝ : HasFiniteCoproducts C
K : ChainComplex C ℕ
⊢ Preadditive.DoldKan.equivalence.counitIso.hom.app ((toKaroubiEquivalence (ChainComplex C ℕ)).functor.obj K) =
    Preadditive.DoldKan.equivalence.functor.map (isoΓ₀.hom.app K) ≫ isoN₁.hom.app (Γ.obj K) ≫ N₁Γ₀.hom.app K
tactic: simp only [Compatibility.τ₀_hom_app, Compatibility.τ₁_hom_app]
state_before: case w.w.h
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : IsIdempotentComplete C
inst✝ : HasFiniteCoproducts C
K : ChainComplex C ℕ
⊢ Preadditive.DoldKan.equivalence.counitIso.hom.app ((toKaroubiEquivalence (ChainComplex C ℕ)).functor.obj K) =
    Preadditive.DoldKan.equivalence.functor.map (isoΓ₀.hom.app K) ≫ isoN₁.hom.app (Γ.obj K) ≫ N₁Γ₀.hom.app K
state_after: no goals
tactic: exact (N₂Γ₂_compatible_with_N₁Γ₀ K).trans (by simp )
Theorem: Set.exists_ne_of_one_lt_encard
File: Mathlib/Data/Set/Card.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : 1 < s.encard
a : α
⊢ ∃ b ∈ s, b ≠ a
state_after: α : Type u_1
β : Type u_2
s t : Set α
h : 1 < s.encard
a : α
h' : ∀ b ∈ s, b = a
⊢ False
tactic: by_contra! h'
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : 1 < s.encard
a : α
h' : ∀ b ∈ s, b = a
⊢ False
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
s t : Set α
h : 1 < s.encard
a : α
h' : ∀ b ∈ s, b = a
b b' : α
hb : b ∈ s
hb' : b' ∈ s
hne : b ≠ b'
⊢ False
tactic: obtain ⟨b, b', hb, hb', hne⟩ := one_lt_encard_iff.1 h
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
s t : Set α
h : 1 < s.encard
a : α
h' : ∀ b ∈ s, b = a
b b' : α
hb : b ∈ s
hb' : b' ∈ s
hne : b ≠ b'
⊢ False
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
s t : Set α
h : 1 < s.encard
a : α
h' : ∀ b ∈ s, b = a
b b' : α
hb : b ∈ s
hb' : b' ∈ s
hne : b ≠ b'
⊢ b = b'
tactic: apply hne
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
s t : Set α
h : 1 < s.encard
a : α
h' : ∀ b ∈ s, b = a
b b' : α
hb : b ∈ s
hb' : b' ∈ s
hne : b ≠ b'
⊢ b = b'
state_after: no goals
tactic: rw [h' b hb, h' b' hb']
Theorem: ENNReal.tsum_coe_ne_top_iff_summable
File: Mathlib/Topology/Instances/ENNReal.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : β → ℝ≥0
⊢ ∑' (b : β), ↑(f b) ≠ ⊤ ↔ Summable f
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : β → ℝ≥0
h : ∑' (b : β), ↑(f b) ≠ ⊤
⊢ Summable f
tactic: refine ⟨fun h => ?_, fun h => ENNReal.coe_tsum h ▸ ENNReal.coe_ne_top⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : β → ℝ≥0
h : ∑' (b : β), ↑(f b) ≠ ⊤
⊢ Summable f
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : β → ℝ≥0
a : ℝ≥0
ha : ↑a = ∑' (b : β), ↑(f b)
⊢ Summable f
tactic: lift ∑' b, (f b : ℝ≥0∞) to ℝ≥0 using h with a ha
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : β → ℝ≥0
a : ℝ≥0
ha : ↑a = ∑' (b : β), ↑(f b)
⊢ Summable f
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : β → ℝ≥0
a : ℝ≥0
ha : ↑a = ∑' (b : β), ↑(f b)
⊢ HasSum (fun a => ↑(f a)) ↑a
tactic: refine ⟨a, ENNReal.hasSum_coe.1 ?_⟩
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : β → ℝ≥0
a : ℝ≥0
ha : ↑a = ∑' (b : β), ↑(f b)
⊢ HasSum (fun a => ↑(f a)) ↑a
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : β → ℝ≥0
a : ℝ≥0
ha : ↑a = ∑' (b : β), ↑(f b)
⊢ HasSum (fun a => ↑(f a)) (∑' (b : β), ↑(f b))
tactic: rw [ha]
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g : α → ℝ≥0∞
f : β → ℝ≥0
a : ℝ≥0
ha : ↑a = ∑' (b : β), ↑(f b)
⊢ HasSum (fun a => ↑(f a)) (∑' (b : β), ↑(f b))
state_after: no goals
tactic: exact ENNReal.summable.hasSum
Theorem: smul_ne_zero_iff_left
File: Mathlib/Algebra/Module/Defs.lean

Proof steps:
state_before: α : Type u_1
R : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝³ : Zero R
inst✝² : Zero M
inst✝¹ : SMulWithZero R M
inst✝ : NoZeroSMulDivisors R M
c : R
x : M
hx : x ≠ 0
⊢ c • x ≠ 0 ↔ c ≠ 0
state_after: no goals
tactic: simp [hx]
Theorem: Trivialization.coordChange_same_apply
File: Mathlib/Topology/FiberBundle/Trivialization.lean

Proof steps:
state_before: ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F proj
x✝ : Z
e' : Trivialization F TotalSpace.proj
x' : TotalSpace F E
b✝ : B
y : E b✝
e : Trivialization F proj
b : B
h : b ∈ e.baseSet
x : F
⊢ e.coordChange e b x = x
state_after: no goals
tactic: rw [coordChange, e.apply_symm_apply' h]
Theorem: le_one_div_of_neg
File: Mathlib/Algebra/Order/Field/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
ha : a < 0
hb : b < 0
⊢ a ≤ 1 / b ↔ b ≤ 1 / a
state_after: no goals
tactic: simpa using le_inv_of_neg ha hb
Theorem: CategoryTheory.Mat_.ι_additiveObjIsoBiproduct_inv
File: Mathlib/CategoryTheory/Preadditive/Mat.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
F : Mat_ C ⥤ D
inst✝ : F.Additive
M : Mat_ C
i : M.ι
⊢ biproduct.ι (fun i => F.obj ((embedding C).obj (M.X i))) i ≫ (additiveObjIsoBiproduct F M).inv =
    F.map (biproduct.ι (fun i => (embedding C).obj (M.X i)) i ≫ M.isoBiproductEmbedding.inv)
state_after: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
inst✝³ : Preadditive C
D : Type u₁
inst✝² : Category.{v₁, u₁} D
inst✝¹ : Preadditive D
F : Mat_ C ⥤ D
inst✝ : F.Additive
M : Mat_ C
i : M.ι
⊢ biproduct.ι (fun i => F.obj ((embedding C).obj (M.X i))) i ≫
      (biproduct.desc fun j => F.map (biproduct.ι (fun i => (embedding C).obj (M.X i)) j)) ≫
        F.map (biproduct.desc fun i j k => if h : i = k then eqToHom ⋯ else 0) =
    F.map
      (biproduct.ι (fun i => (embedding C).obj (M.X i)) i ≫
        biproduct.desc fun i j k => if h : i = k then eqToHom ⋯ else 0)
tactic: dsimp [additiveObjIsoBiproduct, Functor.mapBiproduct, Functor.mapBicone]
state_before: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
inst✝³ : Preadditive C
D : Type u₁
inst✝² : Category.{v₁, u₁} D
inst✝¹ : Preadditive D
F : Mat_ C ⥤ D
inst✝ : F.Additive
M : Mat_ C
i : M.ι
⊢ biproduct.ι (fun i => F.obj ((embedding C).obj (M.X i))) i ≫
      (biproduct.desc fun j => F.map (biproduct.ι (fun i => (embedding C).obj (M.X i)) j)) ≫
        F.map (biproduct.desc fun i j k => if h : i = k then eqToHom ⋯ else 0) =
    F.map
      (biproduct.ι (fun i => (embedding C).obj (M.X i)) i ≫
        biproduct.desc fun i j k => if h : i = k then eqToHom ⋯ else 0)
state_after: no goals
tactic: simp only [biproduct.ι_desc, biproduct.ι_desc_assoc, ← F.map_comp]
Theorem: ProbabilityTheory.Kernel.prod_apply'
File: Mathlib/Probability/Kernel/Composition.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
γ : Type u_4
mγ : MeasurableSpace γ
κ : Kernel α β
inst✝¹ : IsSFiniteKernel κ
η : Kernel α γ
inst✝ : IsSFiniteKernel η
a : α
s : Set (β × γ)
hs : MeasurableSet s
⊢ ((κ ×ₖ η) a) s = ∫⁻ (b : β), (η a) {c | (b, c) ∈ s} ∂κ a
state_after: no goals
tactic: simp_rw [prod, compProd_apply _ _ _ hs, swapLeft_apply _ _, prodMkLeft_apply, Prod.swap_prod_mk]
Theorem: matPolyEquiv_coeff_apply_aux_2
File: Mathlib/RingTheory/PolynomialAlgebra.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
n : Type w
inst✝¹ : DecidableEq n
inst✝ : Fintype n
i j : n
p : R[X]
k : ℕ
⊢ (matPolyEquiv (stdBasisMatrix i j p)).coeff k = stdBasisMatrix i j (p.coeff k)
state_after: case refine_1
R : Type u_1
A : Type u_2
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
n : Type w
inst✝¹ : DecidableEq n
inst✝ : Fintype n
i j : n
p : R[X]
k : ℕ
⊢ ∀ (p q : R[X]),
    (matPolyEquiv (stdBasisMatrix i j p)).coeff k = stdBasisMatrix i j (p.coeff k) →
      (matPolyEquiv (stdBasisMatrix i j q)).coeff k = stdBasisMatrix i j (q.coeff k) →
        (matPolyEquiv (stdBasisMatrix i j (p + q))).coeff k = stdBasisMatrix i j ((p + q).coeff k)

case refine_2
R : Type u_1
A : Type u_2
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
n : Type w
inst✝¹ : DecidableEq n
inst✝ : Fintype n
i j : n
p : R[X]
k : ℕ
⊢ ∀ (n_1 : ℕ) (a : R),
    (matPolyEquiv (stdBasisMatrix i j ((monomial n_1) a))).coeff k = stdBasisMatrix i j (((monomial n_1) a).coeff k)
tactic: refine Polynomial.induction_on' p ?_ ?_
Theorem: Finset.affineCombinationLineMapWeights_self
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

Proof steps:
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 : ι
c : k
⊢ affineCombinationLineMapWeights i i c = affineCombinationSingleWeights k i
state_after: no goals
tactic: simp [affineCombinationLineMapWeights]
Theorem: NNReal.coe_le_one
File: Mathlib/Data/NNReal/Basic.lean

Proof steps:
state_before: r r₁ r₂ : ℝ≥0
x y : ℝ
⊢ ↑r ≤ 1 ↔ r ≤ 1
state_after: no goals
tactic: rw [← coe_le_coe, coe_one]
Theorem: neg_one_smul
File: Mathlib/Algebra/Module/Defs.lean

Proof steps:
state_before: α : Type u_1
R : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
r s : R
x✝ y x : M
⊢ -1 • x = -x
state_after: no goals
tactic: simp
Theorem: List.Sorted.lt_ord_of_lt
File: Mathlib/SetTheory/Ordinal/Basic.lean

Proof steps:
state_before: α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
inst✝¹ : LinearOrder α
inst✝ : IsWellOrder α fun x x_1 => x < x_1
l m : List α
o : Ordinal.{u}
hl : Sorted (fun x x_1 => x > x_1) l
hm : Sorted (fun x x_1 => x > x_1) m
hlt : ∀ i ∈ l, Ordinal.typein (fun x x_1 => x < x_1) i < o
hmltl : Lex (fun x x_1 => x < x_1) m l
⊢ ∀ i ∈ m, Ordinal.typein (fun x x_1 => x < x_1) i < o
state_after: no goals
tactic: cases l with
  | nil => simp at hmltl
  | cons a as =>
    cases m with
    | nil => intro i hi; simp at hi
    | cons b bs =>
      intro i hi
      suffices h : i ≤ a by refine lt_of_le_of_lt ?_ (hlt a (mem_cons_self a as)); simpa
      cases hi with
      | head as => exact List.head_le_of_lt hmltl
      | tail b hi => exact le_of_lt (lt_of_lt_of_le (List.rel_of_sorted_cons hm _ hi)
          (List.head_le_of_lt hmltl))
Theorem: algebraMap_strictMono
File: Mathlib/Algebra/Order/Module/Algebra.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝³ : OrderedCommSemiring α
inst✝² : StrictOrderedSemiring β
inst✝¹ : Algebra α β
inst✝ : SMulPosStrictMono α β
a a₁✝ a₂✝ a₁ a₂ : α
ha : a₁ < a₂
⊢ (algebraMap α β) a₁ < (algebraMap α β) a₂
state_after: no goals
tactic: simpa only [Algebra.algebraMap_eq_smul_one] using smul_lt_smul_of_pos_right ha zero_lt_one
Theorem: Orientation.abs_areaForm_of_orthogonal
File: Mathlib/Analysis/InnerProductSpace/TwoDim.lean

Proof steps:
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
h : ⟪x, y⟫_ℝ = 0
⊢ |(o.areaForm x) y| = ‖x‖ * ‖y‖
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
h : ⟪x, y⟫_ℝ = 0
⊢ ∏ i : Fin 2, ‖![x, y] i‖ = ‖x‖ * ‖y‖

E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
h : ⟪x, y⟫_ℝ = 0
⊢ Pairwise fun i j => ⟪![x, y] i, ![x, y] j⟫_ℝ = 0
tactic: rw [o.areaForm_to_volumeForm, o.abs_volumeForm_apply_of_pairwise_orthogonal]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
h : ⟪x, y⟫_ℝ = 0
⊢ Pairwise fun i j => ⟪![x, y] i, ![x, y] j⟫_ℝ = 0
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
h : ⟪x, y⟫_ℝ = 0
i j : Fin 2
hij : i ≠ j
⊢ ⟪![x, y] i, ![x, y] j⟫_ℝ = 0
tactic: intro i j hij
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
h : ⟪x, y⟫_ℝ = 0
i j : Fin 2
hij : i ≠ j
⊢ ⟪![x, y] i, ![x, y] j⟫_ℝ = 0
state_after: case head.head
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
h : ⟪x, y⟫_ℝ = 0
hij : ⟨0, ⋯⟩ ≠ ⟨0, ⋯⟩
⊢ ⟪![x, y] ⟨0, ⋯⟩, ![x, y] ⟨0, ⋯⟩⟫_ℝ = 0

case head.tail.head
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
h : ⟪x, y⟫_ℝ = 0
hij : ⟨0, ⋯⟩ ≠ ⟨1, ⋯⟩
⊢ ⟪![x, y] ⟨0, ⋯⟩, ![x, y] ⟨1, ⋯⟩⟫_ℝ = 0

case tail.head.head
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
h : ⟪x, y⟫_ℝ = 0
hij : ⟨1, ⋯⟩ ≠ ⟨0, ⋯⟩
⊢ ⟪![x, y] ⟨1, ⋯⟩, ![x, y] ⟨0, ⋯⟩⟫_ℝ = 0

case tail.head.tail.head
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
h : ⟪x, y⟫_ℝ = 0
hij : ⟨1, ⋯⟩ ≠ ⟨1, ⋯⟩
⊢ ⟪![x, y] ⟨1, ⋯⟩, ![x, y] ⟨1, ⋯⟩⟫_ℝ = 0
tactic: fin_cases i <;> fin_cases j
Theorem: sub_smul_dslope
File: Mathlib/Analysis/Calculus/Dslope.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f✝ : 𝕜 → E
a✝ b✝ : 𝕜
s : Set 𝕜
f : 𝕜 → E
a b : 𝕜
⊢ (b - a) • dslope f a b = f b - f a
state_after: no goals
tactic: rcases eq_or_ne b a with (rfl | hne) <;> simp [dslope_of_ne, *]
Theorem: Quaternion.continuous_im
File: Mathlib/Analysis/Quaternion.lean

Proof steps:
state_before: ⊢ Continuous fun q => q.im
state_after: no goals
tactic: simpa only [← sub_self_re] using continuous_id.sub (continuous_coe.comp continuous_re)
Theorem: isClosed_preCantorSet
File: Mathlib/Topology/Instances/CantorSet.lean

Proof steps:
state_before: n : ℕ
⊢ IsClosed (preCantorSet n)
state_after: n : ℕ
f : ℝ ≃ₜ ℝ := Homeomorph.mulLeft₀ (1 / 3) ⋯
⊢ IsClosed (preCantorSet n)
tactic: let f := Homeomorph.mulLeft₀ (1 / 3 : ℝ) (by norm_num)
state_before: n : ℕ
f : ℝ ≃ₜ ℝ := Homeomorph.mulLeft₀ (1 / 3) ⋯
⊢ IsClosed (preCantorSet n)
state_after: n : ℕ
f : ℝ ≃ₜ ℝ := Homeomorph.mulLeft₀ (1 / 3) ⋯
g : ℝ ≃ₜ ℝ := (Homeomorph.addLeft 2).trans f
⊢ IsClosed (preCantorSet n)
tactic: let g := (Homeomorph.addLeft (2 : ℝ)).trans f
Theorem: indicator_cthickening_eventually_eq_indicator_closure
File: Mathlib/Topology/MetricSpace/ThickenedIndicator.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : PseudoEMetricSpace α
β : Type u_2
inst✝ : One β
f : α → β
E : Set α
x : α
⊢ ∀ᶠ (δ : ℝ) in 𝓝 0, (cthickening δ E).mulIndicator f x = (closure E).mulIndicator f x
state_after: case pos
α : Type u_1
inst✝¹ : PseudoEMetricSpace α
β : Type u_2
inst✝ : One β
f : α → β
E : Set α
x : α
x_mem_closure : x ∈ closure E
⊢ ∀ᶠ (δ : ℝ) in 𝓝 0, (cthickening δ E).mulIndicator f x = (closure E).mulIndicator f x

case neg
α : Type u_1
inst✝¹ : PseudoEMetricSpace α
β : Type u_2
inst✝ : One β
f : α → β
E : Set α
x : α
x_mem_closure : x ∉ closure E
⊢ ∀ᶠ (δ : ℝ) in 𝓝 0, (cthickening δ E).mulIndicator f x = (closure E).mulIndicator f x
tactic: by_cases x_mem_closure : x ∈ closure E