1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Substring.Valid.toString_extract
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

tactic: let ⟨l, m, r, h₁⟩ := h₁.validFor
state_before: b e : Pos
x✝ : Substring
h₁ : x✝.Valid
h₂ : { str := x✝.toString, startPos := b, stopPos := e }.Valid
⊢ (x✝.extract b e).toString = x✝.toString.extract b e
state_after: b e : Pos
x✝ : Substring
h₁✝ : x✝.Valid
h₂ : { str := x✝.toString, startPos := b, stopPos := e }.Valid
l m r : List Char
h₁ : ValidFor l m r x✝
⊢ (x✝.extract b e).toString = x✝.toString.extract b e

tactic: rw [h₁.toString] at h₂
state_before: b e : Pos
x✝ : Substring
h₁✝ : x✝.Valid
h₂ : { str := x✝.toString, startPos := b, stopPos := e }.Valid
l m r : List Char
h₁ : ValidFor l m r x✝
⊢ (x✝.extract b e).toString = x✝.toString.extract b e
state_after: b e : Pos
x✝ : Substring
h₁✝ : x✝.Valid
l m : List Char
h₂ : { str := { data := m }, startPos := b, stopPos := e }.Valid
r : List Char
h₁ : ValidFor l m r x✝
⊢ (x✝.extract b e).toString = x✝.toString.extract b e

tactic: let ⟨ml, mm, mr, h₂⟩ := h₂.validFor
state_before: b e : Pos
x✝ : Substring
h₁✝ : x✝.Valid
l m : List Char
h₂ : { str := { data := m }, startPos := b, stopPos := e }.Valid
r : List Char
h₁ : ValidFor l m r x✝
⊢ (x✝.extract b e).toString = x✝.toString.extract b e
state_after: b e : Pos
x✝ : Substring
h₁✝ : x✝.Valid
l m : List Char
h₂✝ : { str := { data := m }, startPos := b, stopPos := e }.Valid
r : List Char
h₁ : ValidFor l m r x✝
ml mm mr : List Char
h₂ : ValidFor ml mm mr { str := { data := m }, startPos := b, stopPos := e }
⊢ (x✝.extract b e).toString = x✝.toString.extract b e

tactic: have ⟨l', r', h₃⟩ := h₁.extract h₂
state_before: b e : Pos
x✝ : Substring
h₁✝ : x✝.Valid
l m : List Char
h₂✝ : { str := { data := m }, startPos := b, stopPos := e }.Valid
r : List Char
h₁ : ValidFor l m r x✝
ml mm mr : List Char
h₂ : ValidFor ml mm mr { str := { data := m }, startPos := b, stopPos := e }
⊢ (x✝.extract b e).toString = x✝.toString.extract b e
state_after: b e : Pos
x✝ : Substring
h₁✝ : x✝.Valid
l m : List Char
h₂✝ : { str := { data := m }, startPos := b, stopPos := e }.Valid
r : List Char
h₁ : ValidFor l m r x✝
ml mm mr : List Char
h₂ : ValidFor ml mm mr { str := { data := m }, startPos := b, stopPos := e }
l' r' : List Char
h₃ : ValidFor l' mm r' (x✝.extract b e)
⊢ (x✝.extract b e).toString = x✝.toString.extract b e

tactic: rw [h₃.toString, h₁.toString, ← h₂.toString, toString]
state_before: b e : Pos
x✝ : Substring
h₁✝ : x✝.Valid
l m : List Char
h₂✝ : { str := { data := m }, startPos := b, stopPos := e }.Valid
r : List Char
h₁ : ValidFor l m r x✝
ml mm mr : List Char
h₂ : ValidFor ml mm mr { str := { data := m }, startPos := b, stopPos := e }
l' r' : List Char
h₃ : ValidFor l' mm r' (x✝.extract b e)
⊢ (x✝.extract b e).toString = x✝.toString.extract b e
state_after: no goals
Theorem: Real.arcsin_projIcc
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: rw [arcsin, Function.comp_apply, IccExtend_val, Function.comp_apply, IccExtend,
      Function.comp_apply]
state_before: x✝ y x : ℝ
⊢ arcsin ↑(projIcc (-1) 1 ⋯ x) = arcsin x
state_after: no goals
Theorem: CategoryTheory.Bicategory.leftUnitor_whiskerRight
File: Mathlib/CategoryTheory/Bicategory/Basic.lean

tactic: rw [← whiskerLeft_iff, whiskerLeft_comp, ← cancel_epi (α_ _ _ _).hom, ←
    cancel_epi ((α_ _ _ _).hom ▷ _), pentagon_assoc, triangle, ← associator_naturality_middle, ←
    comp_whiskerRight_assoc, triangle, associator_naturality_left]
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
f : a ⟶ b
g : b ⟶ c
⊢ (λ_ f).hom ▷ g = (α_ (𝟙 a) f g).hom ≫ (λ_ (f ≫ g)).hom
state_after: no goals
Theorem: jacobiSym.sq_one
File: Mathlib/NumberTheory/LegendreSymbol/JacobiSymbol.lean

tactic: cases' eq_one_or_neg_one h with h₁ h₁ <;> rw [h₁] <;> rfl
state_before: a : ℤ
b : ℕ
h : a.gcd ↑b = 1
⊢ J(a | b) ^ 2 = 1
state_after: no goals
Theorem: finprod_mem_singleton
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: rw [← Finset.coe_singleton, finprod_mem_coe_finset, Finset.prod_singleton]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g : α → M
a b : α
s t : Set α
⊢ ∏ᶠ (i : α) (_ : i ∈ {a}), f i = f a
state_after: no goals
Theorem: LaurentSeries.powerSeriesPart_eq_zero
File: Mathlib/RingTheory/LaurentSeries.lean

tactic: constructor
state_before: R : Type u_1
inst✝ : Semiring R
x : LaurentSeries R
⊢ x.powerSeriesPart = 0 ↔ x = 0
state_after: case mp
R : Type u_1
inst✝ : Semiring R
x : LaurentSeries R
⊢ x.powerSeriesPart = 0 → x = 0

case mpr
R : Type u_1
inst✝ : Semiring R
x : LaurentSeries R
⊢ x = 0 → x.powerSeriesPart = 0

tactic: contrapose!
state_before: case mp
R : Type u_1
inst✝ : Semiring R
x : LaurentSeries R
⊢ x.powerSeriesPart = 0 → x = 0
state_after: case mp
R : Type u_1
inst✝ : Semiring R
x : LaurentSeries R
⊢ x ≠ 0 → x.powerSeriesPart ≠ 0

tactic: simp only [ne_eq]
state_before: case mp
R : Type u_1
inst✝ : Semiring R
x : LaurentSeries R
⊢ x ≠ 0 → x.powerSeriesPart ≠ 0
state_after: case mp
R : Type u_1
inst✝ : Semiring R
x : LaurentSeries R
⊢ ¬x = 0 → ¬x.powerSeriesPart = 0

tactic: intro h
state_before: case mp
R : Type u_1
inst✝ : Semiring R
x : LaurentSeries R
⊢ ¬x = 0 → ¬x.powerSeriesPart = 0
state_after: case mp
R : Type u_1
inst✝ : Semiring R
x : LaurentSeries R
h : ¬x = 0
⊢ ¬x.powerSeriesPart = 0

tactic: rw [PowerSeries.ext_iff, not_forall]
state_before: case mp
R : Type u_1
inst✝ : Semiring R
x : LaurentSeries R
h : ¬x = 0
⊢ ¬x.powerSeriesPart = 0
state_after: case mp
R : Type u_1
inst✝ : Semiring R
x : LaurentSeries R
h : ¬x = 0
⊢ ∃ x_1, ¬(PowerSeries.coeff R x_1) x.powerSeriesPart = (PowerSeries.coeff R x_1) 0

tactic: refine ⟨0, ?_⟩
state_before: case mp
R : Type u_1
inst✝ : Semiring R
x : LaurentSeries R
h : ¬x = 0
⊢ ∃ x_1, ¬(PowerSeries.coeff R x_1) x.powerSeriesPart = (PowerSeries.coeff R x_1) 0
state_after: case mp
R : Type u_1
inst✝ : Semiring R
x : LaurentSeries R
h : ¬x = 0
⊢ ¬(PowerSeries.coeff R 0) x.powerSeriesPart = (PowerSeries.coeff R 0) 0

tactic: simp [coeff_order_ne_zero h]
state_before: case mp
R : Type u_1
inst✝ : Semiring R
x : LaurentSeries R
h : ¬x = 0
⊢ ¬(PowerSeries.coeff R 0) x.powerSeriesPart = (PowerSeries.coeff R 0) 0
state_after: no goals

tactic: rintro rfl
state_before: case mpr
R : Type u_1
inst✝ : Semiring R
x : LaurentSeries R
⊢ x = 0 → x.powerSeriesPart = 0
state_after: case mpr
R : Type u_1
inst✝ : Semiring R
⊢ powerSeriesPart 0 = 0

tactic: simp
state_before: case mpr
R : Type u_1
inst✝ : Semiring R
⊢ powerSeriesPart 0 = 0
state_after: no goals
Theorem: Filter.EventuallyEq.hasFDerivAtFilter_iff
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

tactic: simp only [hasFDerivAtFilter_iff_isLittleO]
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
h₀ : f₀ =ᶠ[L] f₁
hx : f₀ x = f₁ x
h₁ : ∀ (x : E), f₀' x = f₁' x
⊢ HasFDerivAtFilter f₀ f₀' x L ↔ HasFDerivAtFilter f₁ f₁' x L
state_after: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
h₀ : f₀ =ᶠ[L] f₁
hx : f₀ x = f₁ x
h₁ : ∀ (x : E), f₀' x = f₁' x
⊢ ((fun x' => f₀ x' - f₀ x - f₀' (x' - x)) =o[L] fun x' => x' - x) ↔
    (fun x' => f₁ x' - f₁ x - f₁' (x' - x)) =o[L] fun x' => x' - x

tactic: exact isLittleO_congr (h₀.mono fun y hy => by simp only [hy, h₁, hx]) .rfl
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
h₀ : f₀ =ᶠ[L] f₁
hx : f₀ x = f₁ x
h₁ : ∀ (x : E), f₀' x = f₁' x
⊢ ((fun x' => f₀ x' - f₀ x - f₀' (x' - x)) =o[L] fun x' => x' - x) ↔
    (fun x' => f₁ x' - f₁ x - f₁' (x' - x)) =o[L] fun x' => x' - x
state_after: no goals

tactic: simp only [hy, h₁, hx]
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
h₀ : f₀ =ᶠ[L] f₁
hx : f₀ x = f₁ x
h₁ : ∀ (x : E), f₀' x = f₁' x
y : E
hy : f₀ y = f₁ y
⊢ (fun x' => f₀ x' - f₀ x - f₀' (x' - x)) y = (fun x' => f₁ x' - f₁ x - f₁' (x' - x)) y
state_after: no goals
Theorem: Subgroup.card_le_one_iff_eq_bot
File: Mathlib/Algebra/Group/Subgroup/Finite.lean

tactic: simp [h]
state_before: G : Type u_1
inst✝² : Group G
A : Type u_2
inst✝¹ : AddGroup A
H K : Subgroup G
inst✝ : Finite ↥H
h : H = ⊥
⊢ Nat.card ↥H ≤ 1
state_after: no goals
Theorem: MulRingNorm.equiv_refl
File: Mathlib/Analysis/Normed/Ring/Seminorm.lean

tactic: exact ⟨1, Real.zero_lt_one, by simp only [Real.rpow_one]⟩
state_before: F : Type u_1
R✝ : Type u_2
S : Type u_3
x y : R✝
r : ℝ
inst✝⁴ : NonAssocRing R✝
inst✝³ : DecidableEq R✝
inst✝² : NoZeroDivisors R✝
inst✝¹ : Nontrivial R✝
R : Type u_4
inst✝ : Ring R
f : MulRingNorm R
⊢ f.equiv f
state_after: no goals

tactic: simp only [Real.rpow_one]
state_before: F : Type u_1
R✝ : Type u_2
S : Type u_3
x y : R✝
r : ℝ
inst✝⁴ : NonAssocRing R✝
inst✝³ : DecidableEq R✝
inst✝² : NoZeroDivisors R✝
inst✝¹ : Nontrivial R✝
R : Type u_4
inst✝ : Ring R
f : MulRingNorm R
⊢ (fun x => f x ^ 1) = ⇑f
state_after: no goals
Theorem: CategoryTheory.Pretriangulated.Triangle.isZero₁_iff
File: Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean

tactic: refine (isZero₂_iff _ (inv_rot_of_distTriang _ hT)).trans ?_
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (CategoryTheory.shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ IsZero T.obj₁ ↔ T.mor₁ = 0 ∧ T.mor₃ = 0
state_after: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (CategoryTheory.shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ T.invRotate.mor₁ = 0 ∧ T.invRotate.mor₂ = 0 ↔ T.mor₁ = 0 ∧ T.mor₃ = 0

tactic: dsimp
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (CategoryTheory.shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ T.invRotate.mor₁ = 0 ∧ T.invRotate.mor₂ = 0 ↔ T.mor₁ = 0 ∧ T.mor₃ = 0
state_after: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (CategoryTheory.shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ -(CategoryTheory.shiftFunctor C (-1)).map T.mor₃ ≫ (shiftFunctorCompIsoId C 1 (-1) ⋯).hom.app T.obj₁ = 0 ∧
      T.mor₁ = 0 ↔
    T.mor₁ = 0 ∧ T.mor₃ = 0

tactic: simp only [neg_eq_zero, IsIso.comp_right_eq_zero, Functor.map_eq_zero_iff]
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (CategoryTheory.shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ -(CategoryTheory.shiftFunctor C (-1)).map T.mor₃ ≫ (shiftFunctorCompIsoId C 1 (-1) ⋯).hom.app T.obj₁ = 0 ∧
      T.mor₁ = 0 ↔
    T.mor₁ = 0 ∧ T.mor₃ = 0
state_after: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (CategoryTheory.shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ T.mor₃ = 0 ∧ T.mor₁ = 0 ↔ T.mor₁ = 0 ∧ T.mor₃ = 0

tactic: tauto
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (CategoryTheory.shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ T.mor₃ = 0 ∧ T.mor₁ = 0 ↔ T.mor₁ = 0 ∧ T.mor₃ = 0
state_after: no goals
Theorem: Multiset.toFinset_nsmul
File: Mathlib/Data/Finset/Basic.lean

tactic: contradiction
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s✝ t s : Multiset α
h : 0 ≠ 0
⊢ (0 • s).toFinset = s.toFinset
state_after: no goals

tactic: by_cases h : n = 0
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s✝ t s : Multiset α
n : ℕ
x✝ : n + 1 ≠ 0
⊢ ((n + 1) • s).toFinset = s.toFinset
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s✝ t s : Multiset α
n : ℕ
x✝ : n + 1 ≠ 0
h : n = 0
⊢ ((n + 1) • s).toFinset = s.toFinset

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s✝ t s : Multiset α
n : ℕ
x✝ : n + 1 ≠ 0
h : ¬n = 0
⊢ ((n + 1) • s).toFinset = s.toFinset

tactic: rw [h, zero_add, one_nsmul]
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s✝ t s : Multiset α
n : ℕ
x✝ : n + 1 ≠ 0
h : n = 0
⊢ ((n + 1) • s).toFinset = s.toFinset
state_after: no goals

tactic: rw [add_nsmul, toFinset_add, one_nsmul, toFinset_nsmul s n h, Finset.union_idempotent]
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s✝ t s : Multiset α
n : ℕ
x✝ : n + 1 ≠ 0
h : ¬n = 0
⊢ ((n + 1) • s).toFinset = s.toFinset
state_after: no goals
Theorem: Set.Finite.coeSort_toFinset
File: Mathlib/Data/Set/Finite.lean

tactic: rw [← Finset.coe_sort_coe _, hs.coe_toFinset]
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
s t : Set α
a : α
hs : s.Finite
ht : t.Finite
⊢ { x // x ∈ hs.toFinset } = ↑s
state_after: no goals
Theorem: Set.maps_range_to
File: Mathlib/Data/Set/Function.lean

tactic: rw [← image_univ, mapsTo_image_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s✝ s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f✝ f₁ f₂ f₃ : α → β
g✝ g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
f : α → β
g : γ → α
s : Set β
⊢ MapsTo f (range g) s ↔ MapsTo (f ∘ g) univ s
state_after: no goals
Theorem: FiniteDimensional.basisSingleton_apply
File: Mathlib/LinearAlgebra/FiniteDimensional.lean

tactic: cases Unique.uniq ‹Unique ι› i
state_before: K : Type u
V : Type v
inst✝⁵ : DivisionRing K
inst✝⁴ : AddCommGroup V
inst✝³ : Module K V
V₂ : Type v'
inst✝² : AddCommGroup V₂
inst✝¹ : Module K V₂
ι : Type u_1
inst✝ : Unique ι
h : finrank K V = 1
v : V
hv : v ≠ 0
i : ι
⊢ (basisSingleton ι h v hv) i = v
state_after: case refl
K : Type u
V : Type v
inst✝⁵ : DivisionRing K
inst✝⁴ : AddCommGroup V
inst✝³ : Module K V
V₂ : Type v'
inst✝² : AddCommGroup V₂
inst✝¹ : Module K V₂
ι : Type u_1
inst✝ : Unique ι
h : finrank K V = 1
v : V
hv : v ≠ 0
⊢ (basisSingleton ι h v hv) default = v

tactic: simp [basisSingleton]
state_before: case refl
K : Type u
V : Type v
inst✝⁵ : DivisionRing K
inst✝⁴ : AddCommGroup V
inst✝³ : Module K V
V₂ : Type v'
inst✝² : AddCommGroup V₂
inst✝¹ : Module K V₂
ι : Type u_1
inst✝ : Unique ι
h : finrank K V = 1
v : V
hv : v ≠ 0
⊢ (basisSingleton ι h v hv) default = v
state_after: no goals
Theorem: Topology.scottHausdorff_le_isLawson
File: Mathlib/Topology/Order/LawsonTopology.lean

tactic: rw [@IsLawson.topology_eq_lawson α _ L _]
state_before: α : Type u_1
β : Type u_2
inst✝² : Preorder α
L S : TopologicalSpace α
inst✝¹ : IsLawson α
inst✝ : IsScott α
⊢ scottHausdorff α ≤ L
state_after: α : Type u_1
β : Type u_2
inst✝² : Preorder α
L S : TopologicalSpace α
inst✝¹ : IsLawson α
inst✝ : IsScott α
⊢ scottHausdorff α ≤ lawson α

tactic: exact scottHausdorff_le_lawson
state_before: α : Type u_1
β : Type u_2
inst✝² : Preorder α
L S : TopologicalSpace α
inst✝¹ : IsLawson α
inst✝ : IsScott α
⊢ scottHausdorff α ≤ lawson α
state_after: no goals
Theorem: SignType.range_eq
File: Mathlib/Data/Sign.lean

tactic: classical rw [← Fintype.coe_image_univ, univ_eq]
state_before: α : Type u_1
f : SignType → α
⊢ Set.range f = {f zero, f neg, f pos}
state_after: α : Type u_1
f : SignType → α
⊢ ↑(Finset.image f {0, -1, 1}) = {f zero, f neg, f pos}

tactic: classical simp [Finset.coe_insert]
state_before: α : Type u_1
f : SignType → α
⊢ ↑(Finset.image f {0, -1, 1}) = {f zero, f neg, f pos}
state_after: no goals

tactic: rw [← Fintype.coe_image_univ, univ_eq]
state_before: α : Type u_1
f : SignType → α
⊢ Set.range f = {f zero, f neg, f pos}
state_after: α : Type u_1
f : SignType → α
⊢ ↑(Finset.image f {0, -1, 1}) = {f zero, f neg, f pos}

tactic: simp [Finset.coe_insert]
state_before: α : Type u_1
f : SignType → α
⊢ ↑(Finset.image f {0, -1, 1}) = {f zero, f neg, f pos}
state_after: no goals
Theorem: Field.FiniteDimensional.of_exists_primitive_element
File: Mathlib/FieldTheory/PrimitiveElement.lean

tactic: obtain ⟨α, hprim⟩ := h
state_before: F : Type u_1
E : Type u_2
inst✝³ : Field F
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : Algebra.IsAlgebraic F E
h : ∃ α, F⟮α⟯ = ⊤
⊢ FiniteDimensional F E
state_after: case intro
F : Type u_1
E : Type u_2
inst✝³ : Field F
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : Algebra.IsAlgebraic F E
α : E
hprim : F⟮α⟯ = ⊤
⊢ FiniteDimensional F E

tactic: have hfin := adjoin.finiteDimensional (Algebra.IsIntegral.isIntegral (R := F) α)
state_before: case intro
F : Type u_1
E : Type u_2
inst✝³ : Field F
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : Algebra.IsAlgebraic F E
α : E
hprim : F⟮α⟯ = ⊤
⊢ FiniteDimensional F E
state_after: case intro
F : Type u_1
E : Type u_2
inst✝³ : Field F
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : Algebra.IsAlgebraic F E
α : E
hprim : F⟮α⟯ = ⊤
hfin : FiniteDimensional F ↥F⟮α⟯
⊢ FiniteDimensional F E

tactic: rw [hprim] at hfin
state_before: case intro
F : Type u_1
E : Type u_2
inst✝³ : Field F
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : Algebra.IsAlgebraic F E
α : E
hprim : F⟮α⟯ = ⊤
hfin : FiniteDimensional F ↥F⟮α⟯
⊢ FiniteDimensional F E
state_after: case intro
F : Type u_1
E : Type u_2
inst✝³ : Field F
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : Algebra.IsAlgebraic F E
α : E
hprim : F⟮α⟯ = ⊤
hfin : FiniteDimensional F ↥⊤
⊢ FiniteDimensional F E

tactic: exact topEquiv.toLinearEquiv.finiteDimensional
state_before: case intro
F : Type u_1
E : Type u_2
inst✝³ : Field F
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : Algebra.IsAlgebraic F E
α : E
hprim : F⟮α⟯ = ⊤
hfin : FiniteDimensional F ↥⊤
⊢ FiniteDimensional F E
state_after: no goals
Theorem: fderivWithin_add_const
File: Mathlib/Analysis/Calculus/FDeriv/Add.lean

tactic: rw [fderivWithin_zero_of_not_differentiableWithinAt hf,
  fderivWithin_zero_of_not_differentiableWithinAt]
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
hxs : UniqueDiffWithinAt 𝕜 s x
c : F
hf : ¬DifferentiableWithinAt 𝕜 f s x
⊢ fderivWithin 𝕜 (fun y => f y + c) s x = fderivWithin 𝕜 f s x
state_after: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
hxs : UniqueDiffWithinAt 𝕜 s x
c : F
hf : ¬DifferentiableWithinAt 𝕜 f s x
⊢ ¬DifferentiableWithinAt 𝕜 (fun y => f y + c) s x

tactic: simpa
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
hxs : UniqueDiffWithinAt 𝕜 s x
c : F
hf : ¬DifferentiableWithinAt 𝕜 f s x
⊢ ¬DifferentiableWithinAt 𝕜 (fun y => f y + c) s x
state_after: no goals
Theorem: ProbabilityTheory.iCondIndepSet_iff_iCondIndep
File: Mathlib/Probability/Independence/Conditional.lean

tactic: simp only [iCondIndepSet, iCondIndep, kernel.iIndepSet]
state_before: Ω : Type u_1
ι : Type u_2
m' mΩ : MeasurableSpace Ω
inst✝² : StandardBorelSpace Ω
inst✝¹ : Nonempty Ω
hm' : m' ≤ mΩ
s : ι → Set Ω
μ : Measure Ω
inst✝ : IsFiniteMeasure μ
⊢ iCondIndepSet m' hm' s μ ↔ iCondIndep m' hm' (fun i => generateFrom {s i}) μ
state_after: no goals
Theorem: imp_and_neg_imp_iff
File: Mathlib/Logic/Basic.lean

tactic: simp
state_before: a b p q : Prop
⊢ (p → q) ∧ (¬p → q) ↔ q
state_after: no goals
Theorem: Subgroup.comap_injective
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: simp only [le_antisymm_iff, comap_le_comap_of_surjective h, imp_self]
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁴ : Group G
inst✝³ : Group G'
inst✝² : Group G''
A : Type u_4
inst✝¹ : AddGroup A
N : Type u_5
inst✝ : Group N
f✝ f : G →* N
h : Surjective ⇑f
K L : Subgroup N
⊢ comap f K = comap f L → K = L
state_after: no goals
Theorem: List.continuous_insertNth
File: Mathlib/Topology/List.lean

tactic: rw [ContinuousAt, nhds_prod_eq]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
n : ℕ
x✝ : α × List α
a : α
l : List α
⊢ ContinuousAt (fun p => insertNth n p.1 p.2) (a, l)
state_after: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
n : ℕ
x✝ : α × List α
a : α
l : List α
⊢ Tendsto (fun p => insertNth n p.1 p.2) (𝓝 a ×ˢ 𝓝 l) (𝓝 (insertNth n (a, l).1 (a, l).2))

tactic: exact tendsto_insertNth'
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
n : ℕ
x✝ : α × List α
a : α
l : List α
⊢ Tendsto (fun p => insertNth n p.1 p.2) (𝓝 a ×ˢ 𝓝 l) (𝓝 (insertNth n (a, l).1 (a, l).2))
state_after: no goals
Theorem: StrictConcaveOn.slope_lt_of_hasDerivWithinAt
File: Mathlib/Analysis/Convex/Deriv.lean

tactic: simpa only [Pi.neg_def, slope_neg, neg_neg] using
  neg_lt_neg (hfc.neg.lt_slope_of_hasDerivWithinAt hx hy hxy hfd.neg)
state_before: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : StrictConcaveOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hfd : HasDerivWithinAt f f' S x
⊢ slope f x y < f'
state_after: no goals
Theorem: hyperoperation_one
File: Mathlib/Data/Nat/Hyperoperation.lean

tactic: ext m k
state_before: ⊢ hyperoperation 1 = fun x x_1 => x + x_1
state_after: case h.h
m k : ℕ
⊢ hyperoperation 1 m k = m + k

tactic: induction' k with bn bih
state_before: case h.h
m k : ℕ
⊢ hyperoperation 1 m k = m + k
state_after: case h.h.zero
m : ℕ
⊢ hyperoperation 1 m 0 = m + 0

case h.h.succ
m bn : ℕ
bih : hyperoperation 1 m bn = m + bn
⊢ hyperoperation 1 m (bn + 1) = m + (bn + 1)

tactic: rw [Nat.add_zero m, hyperoperation]
state_before: case h.h.zero
m : ℕ
⊢ hyperoperation 1 m 0 = m + 0
state_after: no goals

tactic: rw [hyperoperation_recursion, bih, hyperoperation_zero]
state_before: case h.h.succ
m bn : ℕ
bih : hyperoperation 1 m bn = m + bn
⊢ hyperoperation 1 m (bn + 1) = m + (bn + 1)
state_after: case h.h.succ
m bn : ℕ
bih : hyperoperation 1 m bn = m + bn
⊢ (m + bn).succ = m + (bn + 1)

tactic: exact Nat.add_assoc m bn 1
state_before: case h.h.succ
m bn : ℕ
bih : hyperoperation 1 m bn = m + bn
⊢ (m + bn).succ = m + (bn + 1)
state_after: no goals