1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: measurable_find
File: Mathlib/MeasureTheory/MeasurableSpace/Basic.lean

tactic: refine measurable_to_nat fun x => ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
inst✝¹ : MeasurableSpace α
p : α → ℕ → Prop
inst✝ : (x : α) → DecidablePred (p x)
hp : ∀ (x : α), ∃ N, p x N
hm : ∀ (k : ℕ), MeasurableSet {x | p x k}
⊢ Measurable fun x => Nat.find ⋯
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
inst✝¹ : MeasurableSpace α
p : α → ℕ → Prop
inst✝ : (x : α) → DecidablePred (p x)
hp : ∀ (x : α), ∃ N, p x N
hm : ∀ (k : ℕ), MeasurableSet {x | p x k}
x : α
⊢ MeasurableSet ((fun x => Nat.find ⋯) ⁻¹' {Nat.find ⋯})

tactic: rw [preimage_find_eq_disjointed (fun k => {x | p x k})]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
inst✝¹ : MeasurableSpace α
p : α → ℕ → Prop
inst✝ : (x : α) → DecidablePred (p x)
hp : ∀ (x : α), ∃ N, p x N
hm : ∀ (k : ℕ), MeasurableSet {x | p x k}
x : α
⊢ MeasurableSet ((fun x => Nat.find ⋯) ⁻¹' {Nat.find ⋯})
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
inst✝¹ : MeasurableSpace α
p : α → ℕ → Prop
inst✝ : (x : α) → DecidablePred (p x)
hp : ∀ (x : α), ∃ N, p x N
hm : ∀ (k : ℕ), MeasurableSet {x | p x k}
x : α
⊢ MeasurableSet (disjointed (fun k => {x | p x k}) (Nat.find ⋯))

tactic: exact MeasurableSet.disjointed hm _
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s t u : Set α
inst✝¹ : MeasurableSpace α
p : α → ℕ → Prop
inst✝ : (x : α) → DecidablePred (p x)
hp : ∀ (x : α), ∃ N, p x N
hm : ∀ (k : ℕ), MeasurableSet {x | p x k}
x : α
⊢ MeasurableSet (disjointed (fun k => {x | p x k}) (Nat.find ⋯))
state_after: no goals
Theorem: MeasureTheory.setLIntegral_eq_of_support_subset
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: apply le_antisymm (setLIntegral_le_lintegral s fun x ↦ f x)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
s : Set α
f : α → ℝ≥0∞
hsf : support f ⊆ s
⊢ ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α), f x ∂μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
s : Set α
f : α → ℝ≥0∞
hsf : support f ⊆ s
⊢ ∫⁻ (x : α), f x ∂μ ≤ ∫⁻ (x : α) in s, f x ∂μ

tactic: apply le_trans (le_of_eq _) (lintegral_indicator_le _ _)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
s : Set α
f : α → ℝ≥0∞
hsf : support f ⊆ s
⊢ ∫⁻ (x : α), f x ∂μ ≤ ∫⁻ (x : α) in s, f x ∂μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
s : Set α
f : α → ℝ≥0∞
hsf : support f ⊆ s
⊢ ∫⁻ (x : α), f x ∂μ = ∫⁻ (a : α), s.indicator f a ∂μ

tactic: congr with x
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
s : Set α
f : α → ℝ≥0∞
hsf : support f ⊆ s
⊢ ∫⁻ (x : α), f x ∂μ = ∫⁻ (a : α), s.indicator f a ∂μ
state_after: case e_f.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
s : Set α
f : α → ℝ≥0∞
hsf : support f ⊆ s
x : α
⊢ f x = s.indicator f x

tactic: simp only [indicator]
state_before: case e_f.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
s : Set α
f : α → ℝ≥0∞
hsf : support f ⊆ s
x : α
⊢ f x = s.indicator f x
state_after: case e_f.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
s : Set α
f : α → ℝ≥0∞
hsf : support f ⊆ s
x : α
⊢ f x = if x ∈ s then f x else 0

tactic: split_ifs with h
state_before: case e_f.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
s : Set α
f : α → ℝ≥0∞
hsf : support f ⊆ s
x : α
⊢ f x = if x ∈ s then f x else 0
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
s : Set α
f : α → ℝ≥0∞
hsf : support f ⊆ s
x : α
h : x ∈ s
⊢ f x = f x

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
s : Set α
f : α → ℝ≥0∞
hsf : support f ⊆ s
x : α
h : x ∉ s
⊢ f x = 0

tactic: rfl
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
s : Set α
f : α → ℝ≥0∞
hsf : support f ⊆ s
x : α
h : x ∈ s
⊢ f x = f x
state_after: no goals

tactic: exact Function.support_subset_iff'.1 hsf x h
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
s : Set α
f : α → ℝ≥0∞
hsf : support f ⊆ s
x : α
h : x ∉ s
⊢ f x = 0
state_after: no goals
Theorem: TopCat.PrelocalPredicate.sheafifyOf
File: Mathlib/Topology/Sheaves/LocalPredicate.lean

tactic: convert h
state_before: X : TopCat
T✝ T : ↑X → Type v
P : PrelocalPredicate T
U : Opens ↑X
f : (x : ↥U) → T ↑x
h : P.pred f
x : ↥U
⊢ P.pred fun x => f ((fun x => ⟨↑x, ⋯⟩) x)
state_after: no goals
Theorem: ZetaAsymptotics.zeta_limit_aux1
File: Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean

tactic: rw [term_tsum_of_lt hs]
state_before: s : ℝ
hs : 1 < s
⊢ ∑' (n : ℕ), 1 / (↑n + 1) ^ s - 1 / (s - 1) = 1 - s * term_tsum s
state_after: s : ℝ
hs : 1 < s
⊢ ∑' (n : ℕ), 1 / (↑n + 1) ^ s - 1 / (s - 1) = 1 - s * (1 / (s - 1) - 1 / s * ∑' (n : ℕ), 1 / (↑n + 1) ^ s)

tactic: generalize (∑' n : ℕ, 1 / (n + 1 : ℝ) ^ s) = Z
state_before: s : ℝ
hs : 1 < s
⊢ ∑' (n : ℕ), 1 / (↑n + 1) ^ s - 1 / (s - 1) = 1 - s * (1 / (s - 1) - 1 / s * ∑' (n : ℕ), 1 / (↑n + 1) ^ s)
state_after: s : ℝ
hs : 1 < s
Z : ℝ
⊢ Z - 1 / (s - 1) = 1 - s * (1 / (s - 1) - 1 / s * Z)

tactic: field_simp [(show s - 1 ≠ 0 by linarith)]
state_before: s : ℝ
hs : 1 < s
Z : ℝ
⊢ Z - 1 / (s - 1) = 1 - s * (1 / (s - 1) - 1 / s * Z)
state_after: s : ℝ
hs : 1 < s
Z : ℝ
⊢ (Z * (s - 1) - 1) * ((s - 1) * s) = ((s - 1) * s - s * (s - (s - 1) * Z)) * (s - 1)

tactic: ring_nf
state_before: s : ℝ
hs : 1 < s
Z : ℝ
⊢ (Z * (s - 1) - 1) * ((s - 1) * s) = ((s - 1) * s - s * (s - (s - 1) * Z)) * (s - 1)
state_after: no goals

tactic: linarith
state_before: s : ℝ
hs : 1 < s
Z : ℝ
⊢ s - 1 ≠ 0
state_after: no goals
Theorem: HasContinuousInv₀.of_nhds_one
File: Mathlib/Topology/Algebra/GroupWithZero.lean

tactic: have hx' := inv_ne_zero hx
state_before: α : Type u_1
β : Type u_2
G₀ : Type u_3
inst✝² : TopologicalSpace G₀
inst✝¹ : GroupWithZero G₀
inst✝ : ContinuousMul G₀
a : G₀
h : Tendsto Inv.inv (𝓝 1) (𝓝 1)
x : G₀
hx : x ≠ 0
⊢ ContinuousAt Inv.inv x
state_after: α : Type u_1
β : Type u_2
G₀ : Type u_3
inst✝² : TopologicalSpace G₀
inst✝¹ : GroupWithZero G₀
inst✝ : ContinuousMul G₀
a : G₀
h : Tendsto Inv.inv (𝓝 1) (𝓝 1)
x : G₀
hx : x ≠ 0
hx' : x⁻¹ ≠ 0
⊢ ContinuousAt Inv.inv x

tactic: rw [ContinuousAt, ← map_mul_left_nhds_one₀ hx, ← nhds_translation_mul_inv₀ hx',
  tendsto_map'_iff, tendsto_comap_iff]
state_before: α : Type u_1
β : Type u_2
G₀ : Type u_3
inst✝² : TopologicalSpace G₀
inst✝¹ : GroupWithZero G₀
inst✝ : ContinuousMul G₀
a : G₀
h : Tendsto Inv.inv (𝓝 1) (𝓝 1)
x : G₀
hx : x ≠ 0
hx' : x⁻¹ ≠ 0
⊢ ContinuousAt Inv.inv x
state_after: α : Type u_1
β : Type u_2
G₀ : Type u_3
inst✝² : TopologicalSpace G₀
inst✝¹ : GroupWithZero G₀
inst✝ : ContinuousMul G₀
a : G₀
h : Tendsto Inv.inv (𝓝 1) (𝓝 1)
x : G₀
hx : x ≠ 0
hx' : x⁻¹ ≠ 0
⊢ Tendsto ((fun x_1 => x_1 * x⁻¹⁻¹) ∘ Inv.inv ∘ fun x_1 => x * x_1) (𝓝 1) (𝓝 1)
Theorem: CategoryTheory.NatTrans.mapHomologicalComplex_comp
File: Mathlib/Algebra/Homology/Additive.lean

tactic: aesop_cat
state_before: ι : Type u_1
V : Type u
inst✝¹⁰ : Category.{v, u} V
inst✝⁹ : Preadditive V
W : Type u_2
inst✝⁸ : Category.{?u.74119, u_2} W
inst✝⁷ : Preadditive W
W₁ : Type u_3
W₂ : Type u_4
inst✝⁶ : Category.{u_5, u_3} W₁
inst✝⁵ : Category.{u_6, u_4} W₂
inst✝⁴ : HasZeroMorphisms W₁
inst✝³ : HasZeroMorphisms W₂
c✝ : ComplexShape ι
C D E : HomologicalComplex V c✝
f g : C ⟶ D
h k : D ⟶ E
i : ι
c : ComplexShape ι
F G H : W₁ ⥤ W₂
inst✝² : F.PreservesZeroMorphisms
inst✝¹ : G.PreservesZeroMorphisms
inst✝ : H.PreservesZeroMorphisms
α : F ⟶ G
β : G ⟶ H
⊢ mapHomologicalComplex (α ≫ β) c = mapHomologicalComplex α c ≫ mapHomologicalComplex β c
state_after: no goals
Theorem: PEquiv.trans_eq_none
File: Mathlib/Data/PEquiv.lean

tactic: simp only [eq_none_iff_forall_not_mem, mem_trans, imp_iff_not_or.symm]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
f : α ≃. β
g : β ≃. γ
a : α
⊢ (f.trans g) a = none ↔ ∀ (b : β) (c : γ), b ∉ f a ∨ c ∉ g b
state_after: α : Type u
β : Type v
γ : Type w
δ : Type x
f : α ≃. β
g : β ≃. γ
a : α
⊢ (∀ (a_1 : γ), ¬∃ b ∈ f a, a_1 ∈ g b) ↔ ∀ (b : β) (c : γ), b ∈ f a → c ∉ g b

tactic: push_neg
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
f : α ≃. β
g : β ≃. γ
a : α
⊢ (∀ (a_1 : γ), ¬∃ b ∈ f a, a_1 ∈ g b) ↔ ∀ (b : β) (c : γ), b ∈ f a → c ∉ g b
state_after: α : Type u
β : Type v
γ : Type w
δ : Type x
f : α ≃. β
g : β ≃. γ
a : α
⊢ (∀ (a_1 : γ), ∀ b ∈ f a, a_1 ∉ g b) ↔ ∀ (b : β) (c : γ), b ∈ f a → c ∉ g b

tactic: exact forall_swap
state_before: α : Type u
β : Type v
γ : Type w
δ : Type x
f : α ≃. β
g : β ≃. γ
a : α
⊢ (∀ (a_1 : γ), ∀ b ∈ f a, a_1 ∉ g b) ↔ ∀ (b : β) (c : γ), b ∈ f a → c ∉ g b
state_after: no goals
Theorem: PresheafOfModules.colimitCoconeιApp_naturality
File: Mathlib/Algebra/Category/ModuleCat/Presheaf/Colimits.lean

tactic: ext1 X
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
R : Cᵒᵖ ⥤ RingCat
J : Type u₂
inst✝² : Category.{v₂, u₂} J
F : J ⥤ PresheafOfModules R
inst✝¹ : {X Y : Cᵒᵖ} → (f : X ⟶ Y) → PreservesColimit (F ⋙ evaluation R Y) (ModuleCat.restrictScalars (R.map f))
inst✝ : ∀ (X : Cᵒᵖ), HasColimit (F ⋙ evaluation R X)
i j : J
f : i ⟶ j
⊢ F.map f ≫ colimitCoconeιApp F j = colimitCoconeιApp F i
state_after: case w
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
R : Cᵒᵖ ⥤ RingCat
J : Type u₂
inst✝² : Category.{v₂, u₂} J
F : J ⥤ PresheafOfModules R
inst✝¹ : {X Y : Cᵒᵖ} → (f : X ⟶ Y) → PreservesColimit (F ⋙ evaluation R Y) (ModuleCat.restrictScalars (R.map f))
inst✝ : ∀ (X : Cᵒᵖ), HasColimit (F ⋙ evaluation R X)
i j : J
f : i ⟶ j
X : Cᵒᵖ
⊢ Hom.app (F.map f ≫ colimitCoconeιApp F j) X = Hom.app (colimitCoconeιApp F i) X

tactic: exact colimit.w (F ⋙ evaluation R X) f
state_before: case w
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
R : Cᵒᵖ ⥤ RingCat
J : Type u₂
inst✝² : Category.{v₂, u₂} J
F : J ⥤ PresheafOfModules R
inst✝¹ : {X Y : Cᵒᵖ} → (f : X ⟶ Y) → PreservesColimit (F ⋙ evaluation R Y) (ModuleCat.restrictScalars (R.map f))
inst✝ : ∀ (X : Cᵒᵖ), HasColimit (F ⋙ evaluation R X)
i j : J
f : i ⟶ j
X : Cᵒᵖ
⊢ Hom.app (F.map f ≫ colimitCoconeιApp F j) X = Hom.app (colimitCoconeιApp F i) X
state_after: no goals
Theorem: MeasureTheory.LocallyIntegrable.integrable_of_isBigO_atBot
File: Mathlib/MeasureTheory/Integral/Asymptotics.lean

tactic: refine integrable_iff_integrableAtFilter_atBot.mpr ⟨ho.integrableAtFilter ?_ hg, hf⟩
state_before: α : Type u_1
E : Type u_2
F : Type u_3
inst✝⁸ : MeasurableSpace α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
f : α → E
g : α → F
a b : α
μ : Measure α
l : Filter α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : SecondCountableTopology α
inst✝³ : LinearOrder α
inst✝² : CompactIccSpace α
g' : α → F
inst✝¹ : atBot.IsMeasurablyGenerated
inst✝ : OrderTop α
hf : LocallyIntegrable f μ
ho : f =O[atBot] g
hg : IntegrableAtFilter g atBot μ
⊢ Integrable f μ
state_after: α : Type u_1
E : Type u_2
F : Type u_3
inst✝⁸ : MeasurableSpace α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
f : α → E
g : α → F
a b : α
μ : Measure α
l : Filter α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : SecondCountableTopology α
inst✝³ : LinearOrder α
inst✝² : CompactIccSpace α
g' : α → F
inst✝¹ : atBot.IsMeasurablyGenerated
inst✝ : OrderTop α
hf : LocallyIntegrable f μ
ho : f =O[atBot] g
hg : IntegrableAtFilter g atBot μ
⊢ StronglyMeasurableAtFilter f atBot μ

tactic: exact hf.aestronglyMeasurable.stronglyMeasurableAtFilter
state_before: α : Type u_1
E : Type u_2
F : Type u_3
inst✝⁸ : MeasurableSpace α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
f : α → E
g : α → F
a b : α
μ : Measure α
l : Filter α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : SecondCountableTopology α
inst✝³ : LinearOrder α
inst✝² : CompactIccSpace α
g' : α → F
inst✝¹ : atBot.IsMeasurablyGenerated
inst✝ : OrderTop α
hf : LocallyIntegrable f μ
ho : f =O[atBot] g
hg : IntegrableAtFilter g atBot μ
⊢ StronglyMeasurableAtFilter f atBot μ
state_after: no goals
Theorem: WeierstrassCurve.leadingCoeff_ΨSq
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean

tactic: rw [leadingCoeff, W.natDegree_ΨSq h, coeff_ΨSq]
state_before: R : Type u
inst✝¹ : CommRing R
W : WeierstrassCurve R
inst✝ : NoZeroDivisors R
n : ℤ
h : ↑n ≠ 0
⊢ (W.ΨSq n).leadingCoeff = ↑n ^ 2
state_after: no goals
Theorem: Orientation.oangle_neg_self_right
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

tactic: simp [oangle_neg_right, hx]
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x : V
hx : x ≠ 0
⊢ o.oangle x (-x) = ↑π
state_after: no goals
Theorem: Computation.mem_of_promises
File: Mathlib/Data/Seq/Computation.lean

tactic: cases' h with h
state_before: α : Type u
β : Type v
γ : Type w
s : Computation α
h : s.Terminates
a : α
p : s ~> a
⊢ a ∈ s
state_after: case mk
α : Type u
β : Type v
γ : Type w
s : Computation α
a : α
p : s ~> a
h : ∃ a, a ∈ s
⊢ a ∈ s

tactic: cases' h with a' h
state_before: case mk
α : Type u
β : Type v
γ : Type w
s : Computation α
a : α
p : s ~> a
h : ∃ a, a ∈ s
⊢ a ∈ s
state_after: case mk.intro
α : Type u
β : Type v
γ : Type w
s : Computation α
a : α
p : s ~> a
a' : α
h : a' ∈ s
⊢ a ∈ s

tactic: rw [p h]
state_before: case mk.intro
α : Type u
β : Type v
γ : Type w
s : Computation α
a : α
p : s ~> a
a' : α
h : a' ∈ s
⊢ a ∈ s
state_after: case mk.intro
α : Type u
β : Type v
γ : Type w
s : Computation α
a : α
p : s ~> a
a' : α
h : a' ∈ s
⊢ a' ∈ s

tactic: exact h
state_before: case mk.intro
α : Type u
β : Type v
γ : Type w
s : Computation α
a : α
p : s ~> a
a' : α
h : a' ∈ s
⊢ a' ∈ s
state_after: no goals
Theorem: MeasureTheory.Measure.cdf_eq_iff
File: Mathlib/Probability/Cdf.lean

tactic: rw [h]
state_before: μ ν : Measure ℝ
inst✝¹ : IsProbabilityMeasure μ
inst✝ : IsProbabilityMeasure ν
h : μ = ν
⊢ cdf μ = cdf ν
state_after: no goals
Theorem: Orthonormal.inner_right_sum
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: classical
simp [inner_sum, inner_smul_right, orthonormal_iff_ite.mp hv, hi]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
v : ι → E
hv : Orthonormal 𝕜 v
l : ι → 𝕜
s : Finset ι
i : ι
hi : i ∈ s
⊢ ⟪v i, ∑ i ∈ s, l i • v i⟫_𝕜 = l i
state_after: no goals

tactic: simp [inner_sum, inner_smul_right, orthonormal_iff_ite.mp hv, hi]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
v : ι → E
hv : Orthonormal 𝕜 v
l : ι → 𝕜
s : Finset ι
i : ι
hi : i ∈ s
⊢ ⟪v i, ∑ i ∈ s, l i • v i⟫_𝕜 = l i
state_after: no goals
Theorem: WeierstrassCurve.Affine.map_addX
File: Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean

tactic: simp only [addX]
state_before: R : Type u
inst✝¹ : CommRing R
W : Affine R
S : Type v
inst✝ : CommRing S
f : R →+* S
x₁ x₂ L : R
⊢ (map W f).toAffine.addX (f x₁) (f x₂) (f L) = f (W.addX x₁ x₂ L)
state_after: R : Type u
inst✝¹ : CommRing R
W : Affine R
S : Type v
inst✝ : CommRing S
f : R →+* S
x₁ x₂ L : R
⊢ f L ^ 2 + (map W f).toAffine.a₁ * f L - (map W f).toAffine.a₂ - f x₁ - f x₂ = f (L ^ 2 + W.a₁ * L - W.a₂ - x₁ - x₂)

tactic: map_simp
state_before: R : Type u
inst✝¹ : CommRing R
W : Affine R
S : Type v
inst✝ : CommRing S
f : R →+* S
x₁ x₂ L : R
⊢ f L ^ 2 + (map W f).toAffine.a₁ * f L - (map W f).toAffine.a₂ - f x₁ - f x₂ = f (L ^ 2 + W.a₁ * L - W.a₂ - x₁ - x₂)
state_after: no goals
Theorem: Matrix.cons_eq_zero_iff
File: Mathlib/Data/Fin/VecNotation.lean

tactic: convert congr_arg vecTail h
state_before: α : Type u
m n o : ℕ
m' : Type u_1
n' : Type u_2
o' : Type u_3
inst✝ : Zero α
v : Fin n → α
x : α
h : vecCons x v = 0
⊢ v = 0
state_after: no goals

tactic: simp [hx, hv]
state_before: α : Type u
m n o : ℕ
m' : Type u_1
n' : Type u_2
o' : Type u_3
inst✝ : Zero α
v : Fin n → α
x : α
x✝ : x = 0 ∧ v = 0
hx : x = 0
hv : v = 0
⊢ vecCons x v = 0
state_after: no goals
Theorem: strictMono_of_hasDerivAt_pos
File: Mathlib/Analysis/Calculus/MeanValue.lean

tactic: rw [(hf _).deriv]
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f f' : ℝ → ℝ
hf : ∀ (x : ℝ), HasDerivAt f (f' x) x
hf' : ∀ (x : ℝ), 0 < f' x
x : ℝ
⊢ 0 < deriv f x
state_after: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f f' : ℝ → ℝ
hf : ∀ (x : ℝ), HasDerivAt f (f' x) x
hf' : ∀ (x : ℝ), 0 < f' x
x : ℝ
⊢ 0 < f' x

tactic: exact hf' _
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
f f' : ℝ → ℝ
hf : ∀ (x : ℝ), HasDerivAt f (f' x) x
hf' : ∀ (x : ℝ), 0 < f' x
x : ℝ
⊢ 0 < f' x
state_after: no goals
Theorem: Submodule.FG.sup
File: Mathlib/RingTheory/Finiteness.lean

tactic: rw [span_union, ht₁.2, ht₂.2]
state_before: R : Type u_1
M : Type u_2
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
N₁ N₂ : Submodule R M
hN₁ : N₁.FG
hN₂ : N₂.FG
t₁ : Set M
ht₁ : t₁.Finite ∧ span R t₁ = N₁
t₂ : Set M
ht₂ : t₂.Finite ∧ span R t₂ = N₂
⊢ span R (t₁ ∪ t₂) = N₁ ⊔ N₂
state_after: no goals
Theorem: CategoryTheory.Adjunction.CoreHomEquiv.homEquiv_naturality_right_symm_aux
File: Mathlib/CategoryTheory/Adjunction/Basic.lean

tactic: rw [← homEquiv_naturality_left_symm, Equiv.symm_apply_eq]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F : C ⥤ D
G : D ⥤ C
adj : CoreHomEquiv F G
X' X : C
Y Y' : D
f : X ⟶ G.obj Y
g : Y ⟶ Y'
⊢ F.map f ≫ (adj.homEquiv (G.obj Y) Y').symm (G.map g) = (adj.homEquiv X Y).symm f ≫ g
state_after: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F : C ⥤ D
G : D ⥤ C
adj : CoreHomEquiv F G
X' X : C
Y Y' : D
f : X ⟶ G.obj Y
g : Y ⟶ Y'
⊢ f ≫ G.map g = (adj.homEquiv X Y') ((adj.homEquiv X Y).symm f ≫ g)

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
F : C ⥤ D
G : D ⥤ C
adj : CoreHomEquiv F G
X' X : C
Y Y' : D
f : X ⟶ G.obj Y
g : Y ⟶ Y'
⊢ f ≫ G.map g = (adj.homEquiv X Y') ((adj.homEquiv X Y).symm f ≫ g)
state_after: no goals
Theorem: Nat.bit0_div_bit0
File: Mathlib/Algebra/Ring/Parity.lean

tactic: rw [bit0_eq_two_mul m, ← Nat.div_div_eq_div_mul, bit0_div_two]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
m n : ℕ
⊢ bit0 n / bit0 m = n / m
state_after: no goals
Theorem: exists_nat_gt
File: Mathlib/Algebra/Order/Archimedean.lean

tactic: rwa [← nsmul_one]
state_before: α : Type u_1
M : Type u_2
inst✝¹ : StrictOrderedSemiring α
inst✝ : Archimedean α
y x : α
n : ℕ
hn : x < n • 1
⊢ x < ↑n
state_after: no goals
Theorem: ContinuousLinearMap.exists_mul_lt_of_lt_opNorm
File: Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean

tactic: lift r to ℝ≥0 using hr₀
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type u_3
E : Type u_4
Eₗ : Type u_5
F : Type u_6
Fₗ : Type u_7
G : Type u_8
Gₗ : Type u_9
𝓕 : Type u_10
inst✝¹⁷ : SeminormedAddCommGroup E
inst✝¹⁶ : SeminormedAddCommGroup Eₗ
inst✝¹⁵ : SeminormedAddCommGroup F
inst✝¹⁴ : SeminormedAddCommGroup Fₗ
inst✝¹³ : SeminormedAddCommGroup G
inst✝¹² : SeminormedAddCommGroup Gₗ
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜₂
inst✝⁹ : NontriviallyNormedField 𝕜₃
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 Eₗ
inst✝⁶ : NormedSpace 𝕜₂ F
inst✝⁵ : NormedSpace 𝕜 Fₗ
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Gₗ
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : FunLike 𝓕 E F
inst✝ : RingHomIsometric σ₁₂
f : E →SL[σ₁₂] F
r : ℝ
hr₀ : 0 ≤ r
hr : r < ‖f‖
⊢ ∃ x, r * ‖x‖ < ‖f x‖
state_after: case intro
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type u_3
E : Type u_4
Eₗ : Type u_5
F : Type u_6
Fₗ : Type u_7
G : Type u_8
Gₗ : Type u_9
𝓕 : Type u_10
inst✝¹⁷ : SeminormedAddCommGroup E
inst✝¹⁶ : SeminormedAddCommGroup Eₗ
inst✝¹⁵ : SeminormedAddCommGroup F
inst✝¹⁴ : SeminormedAddCommGroup Fₗ
inst✝¹³ : SeminormedAddCommGroup G
inst✝¹² : SeminormedAddCommGroup Gₗ
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜₂
inst✝⁹ : NontriviallyNormedField 𝕜₃
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 Eₗ
inst✝⁶ : NormedSpace 𝕜₂ F
inst✝⁵ : NormedSpace 𝕜 Fₗ
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Gₗ
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : FunLike 𝓕 E F
inst✝ : RingHomIsometric σ₁₂
f : E →SL[σ₁₂] F
r : ℝ≥0
hr : ↑r < ‖f‖
⊢ ∃ x, ↑r * ‖x‖ < ‖f x‖

tactic: exact f.exists_mul_lt_apply_of_lt_opNNNorm hr
state_before: case intro
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type u_3
E : Type u_4
Eₗ : Type u_5
F : Type u_6
Fₗ : Type u_7
G : Type u_8
Gₗ : Type u_9
𝓕 : Type u_10
inst✝¹⁷ : SeminormedAddCommGroup E
inst✝¹⁶ : SeminormedAddCommGroup Eₗ
inst✝¹⁵ : SeminormedAddCommGroup F
inst✝¹⁴ : SeminormedAddCommGroup Fₗ
inst✝¹³ : SeminormedAddCommGroup G
inst✝¹² : SeminormedAddCommGroup Gₗ
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜₂
inst✝⁹ : NontriviallyNormedField 𝕜₃
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 Eₗ
inst✝⁶ : NormedSpace 𝕜₂ F
inst✝⁵ : NormedSpace 𝕜 Fₗ
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Gₗ
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : FunLike 𝓕 E F
inst✝ : RingHomIsometric σ₁₂
f : E →SL[σ₁₂] F
r : ℝ≥0
hr : ↑r < ‖f‖
⊢ ∃ x, ↑r * ‖x‖ < ‖f x‖
state_after: no goals
Theorem: Batteries.RBNode.Stream.next?_toList
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: cases s <;> simp [next?, toStream_toList']
state_before: α : Type u_1
s : RBNode.Stream α
⊢ Option.map
      (fun x =>
        match x with
        | (a, b) => (a, b.toList))
      s.next? =
    s.toList.next?
state_after: no goals
Theorem: List.perm_option_to_list
File: Mathlib/Data/List/Perm.lean

tactic: refine ⟨fun p => ?_, fun e => e ▸ Perm.refl _⟩
state_before: α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a : α
o₁ o₂ : Option α
⊢ o₁.toList ~ o₂.toList ↔ o₁ = o₂
state_after: α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a : α
o₁ o₂ : Option α
p : o₁.toList ~ o₂.toList
⊢ o₁ = o₂

tactic: cases' o₁ with a <;> cases' o₂ with b
state_before: α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a : α
o₁ o₂ : Option α
p : o₁.toList ~ o₂.toList
⊢ o₁ = o₂
state_after: case none.none
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a : α
p : none.toList ~ none.toList
⊢ none = none

case none.some
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a b : α
p : none.toList ~ (some b).toList
⊢ none = some b

case some.none
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a✝ a : α
p : (some a).toList ~ none.toList
⊢ some a = none

case some.some
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a✝ a b : α
p : (some a).toList ~ (some b).toList
⊢ some a = some b

tactic: rfl
state_before: case none.none
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a : α
p : none.toList ~ none.toList
⊢ none = none
state_after: no goals

tactic: cases p.length_eq
state_before: case none.some
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a b : α
p : none.toList ~ (some b).toList
⊢ none = some b
state_after: no goals

tactic: cases p.length_eq
state_before: case some.none
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a✝ a : α
p : (some a).toList ~ none.toList
⊢ some a = none
state_after: no goals

tactic: exact Option.mem_toList.1 (p.symm.subset <| by simp)
state_before: case some.some
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a✝ a b : α
p : (some a).toList ~ (some b).toList
⊢ some a = some b
state_after: no goals

tactic: simp
state_before: α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a✝ a b : α
p : (some a).toList ~ (some b).toList
⊢ b ∈ (some b).toList
state_after: no goals