1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: padicValRat.finite_int_prime_iff
File: Mathlib/NumberTheory/Padics/PadicVal.lean

tactic: simp [finite_int_iff, hp.1.ne_one]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
a : ℤ
⊢ multiplicity.Finite (↑p) a ↔ a ≠ 0
state_after: no goals
Theorem: EMetric.tendsto_nhdsWithin_nhds
File: Mathlib/Topology/EMetricSpace/Basic.lean

tactic: rw [← nhdsWithin_univ b, tendsto_nhdsWithin_nhdsWithin]
state_before: α : Type u
β : Type v
X : Type u_1
inst✝¹ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s t : Set α
inst✝ : PseudoEMetricSpace β
f : α → β
a : α
b : β
⊢ Tendsto f (𝓝[s] a) (𝓝 b) ↔ ∀ ε > 0, ∃ δ > 0, ∀ {x : α}, x ∈ s → edist x a < δ → edist (f x) b < ε
state_after: α : Type u
β : Type v
X : Type u_1
inst✝¹ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s t : Set α
inst✝ : PseudoEMetricSpace β
f : α → β
a : α
b : β
⊢ (∀ ε > 0, ∃ δ > 0, ∀ ⦃x : α⦄, x ∈ s → edist x a < δ → f x ∈ univ ∧ edist (f x) b < ε) ↔
    ∀ ε > 0, ∃ δ > 0, ∀ {x : α}, x ∈ s → edist x a < δ → edist (f x) b < ε

tactic: simp only [mem_univ, true_and_iff]
state_before: α : Type u
β : Type v
X : Type u_1
inst✝¹ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s t : Set α
inst✝ : PseudoEMetricSpace β
f : α → β
a : α
b : β
⊢ (∀ ε > 0, ∃ δ > 0, ∀ ⦃x : α⦄, x ∈ s → edist x a < δ → f x ∈ univ ∧ edist (f x) b < ε) ↔
    ∀ ε > 0, ∃ δ > 0, ∀ {x : α}, x ∈ s → edist x a < δ → edist (f x) b < ε
state_after: no goals
Theorem: Function.LeftInverse.list_map
File: Mathlib/Data/List/Basic.lean

tactic: simp_rw [map_nil]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : α → β
g : β → α
h : LeftInverse f g
⊢ map f (map g []) = []
state_after: no goals

tactic: simp_rw [map_cons, h x, h.list_map xs]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : α → β
g : β → α
h : LeftInverse f g
x : β
xs : List β
⊢ map f (map g (x :: xs)) = x :: xs
state_after: no goals
Theorem: MonoidHom.mker_one
File: Mathlib/Algebra/Group/Submonoid/Operations.lean

tactic: ext
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝⁴ : MulOneClass M
inst✝³ : MulOneClass N
inst✝² : MulOneClass P
S : Submonoid M
A : Type u_4
inst✝¹ : SetLike A M
hA : SubmonoidClass A M
S' : A
F : Type u_5
inst✝ : FunLike F M N
mc : MonoidHomClass F M N
⊢ mker 1 = ⊤
state_after: case h
M : Type u_1
N : Type u_2
P : Type u_3
inst✝⁴ : MulOneClass M
inst✝³ : MulOneClass N
inst✝² : MulOneClass P
S : Submonoid M
A : Type u_4
inst✝¹ : SetLike A M
hA : SubmonoidClass A M
S' : A
F : Type u_5
inst✝ : FunLike F M N
mc : MonoidHomClass F M N
x✝ : M
⊢ x✝ ∈ mker 1 ↔ x✝ ∈ ⊤

tactic: simp [mem_mker]
state_before: case h
M : Type u_1
N : Type u_2
P : Type u_3
inst✝⁴ : MulOneClass M
inst✝³ : MulOneClass N
inst✝² : MulOneClass P
S : Submonoid M
A : Type u_4
inst✝¹ : SetLike A M
hA : SubmonoidClass A M
S' : A
F : Type u_5
inst✝ : FunLike F M N
mc : MonoidHomClass F M N
x✝ : M
⊢ x✝ ∈ mker 1 ↔ x✝ ∈ ⊤
state_after: no goals
Theorem: Ideal.IsPrime.mem_of_pow_mem
File: Mathlib/RingTheory/Ideal/Basic.lean

tactic: induction' n with n ih
state_before: α : Type u
β : Type v
inst✝ : Semiring α
I✝ : Ideal α
a b : α
I : Ideal α
hI : I.IsPrime
r : α
n : ℕ
H : r ^ n ∈ I
⊢ r ∈ I
state_after: case zero
α : Type u
β : Type v
inst✝ : Semiring α
I✝ : Ideal α
a b : α
I : Ideal α
hI : I.IsPrime
r : α
H : r ^ 0 ∈ I
⊢ r ∈ I

case succ
α : Type u
β : Type v
inst✝ : Semiring α
I✝ : Ideal α
a b : α
I : Ideal α
hI : I.IsPrime
r : α
n : ℕ
ih : r ^ n ∈ I → r ∈ I
H : r ^ (n + 1) ∈ I
⊢ r ∈ I

tactic: rw [pow_zero] at H
state_before: case zero
α : Type u
β : Type v
inst✝ : Semiring α
I✝ : Ideal α
a b : α
I : Ideal α
hI : I.IsPrime
r : α
H : r ^ 0 ∈ I
⊢ r ∈ I
state_after: case zero
α : Type u
β : Type v
inst✝ : Semiring α
I✝ : Ideal α
a b : α
I : Ideal α
hI : I.IsPrime
r : α
H : 1 ∈ I
⊢ r ∈ I

tactic: exact (mt (eq_top_iff_one _).2 hI.1).elim H
state_before: case zero
α : Type u
β : Type v
inst✝ : Semiring α
I✝ : Ideal α
a b : α
I : Ideal α
hI : I.IsPrime
r : α
H : 1 ∈ I
⊢ r ∈ I
state_after: no goals

tactic: rw [pow_succ] at H
state_before: case succ
α : Type u
β : Type v
inst✝ : Semiring α
I✝ : Ideal α
a b : α
I : Ideal α
hI : I.IsPrime
r : α
n : ℕ
ih : r ^ n ∈ I → r ∈ I
H : r ^ (n + 1) ∈ I
⊢ r ∈ I
state_after: case succ
α : Type u
β : Type v
inst✝ : Semiring α
I✝ : Ideal α
a b : α
I : Ideal α
hI : I.IsPrime
r : α
n : ℕ
ih : r ^ n ∈ I → r ∈ I
H : r ^ n * r ∈ I
⊢ r ∈ I

tactic: exact Or.casesOn (hI.mem_or_mem H) ih id
state_before: case succ
α : Type u
β : Type v
inst✝ : Semiring α
I✝ : Ideal α
a b : α
I : Ideal α
hI : I.IsPrime
r : α
n : ℕ
ih : r ^ n ∈ I → r ∈ I
H : r ^ n * r ∈ I
⊢ r ∈ I
state_after: no goals
Theorem: Finset.not_mem_empty
File: Mathlib/Data/Finset/Basic.lean

tactic: simp only [mem_def, empty_val, not_mem_zero, not_false_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s : Finset α
a : α
⊢ a ∉ ∅
state_after: no goals
Theorem: AnalyticOn.fderiv
File: Mathlib/Analysis/Calculus/FDeriv/Analytic.lean

tactic: intro y hy
state_before: 𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
f : E → F
x : E
s : Set E
inst✝ : CompleteSpace F
h : AnalyticOn 𝕜 f s
⊢ AnalyticOn 𝕜 (_root_.fderiv 𝕜 f) s
state_after: 𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
f : E → F
x : E
s : Set E
inst✝ : CompleteSpace F
h : AnalyticOn 𝕜 f s
y : E
hy : y ∈ s
⊢ AnalyticAt 𝕜 (_root_.fderiv 𝕜 f) y

tactic: rcases h y hy with ⟨p, r, hp⟩
state_before: 𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
f : E → F
x : E
s : Set E
inst✝ : CompleteSpace F
h : AnalyticOn 𝕜 f s
y : E
hy : y ∈ s
⊢ AnalyticAt 𝕜 (_root_.fderiv 𝕜 f) y
state_after: case intro.intro
𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
p✝ : FormalMultilinearSeries 𝕜 E F
r✝ : ℝ≥0∞
f : E → F
x : E
s : Set E
inst✝ : CompleteSpace F
h : AnalyticOn 𝕜 f s
y : E
hy : y ∈ s
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
hp : HasFPowerSeriesOnBall f p y r
⊢ AnalyticAt 𝕜 (_root_.fderiv 𝕜 f) y

tactic: exact hp.fderiv.analyticAt
state_before: case intro.intro
𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
F : Type v
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 F
p✝ : FormalMultilinearSeries 𝕜 E F
r✝ : ℝ≥0∞
f : E → F
x : E
s : Set E
inst✝ : CompleteSpace F
h : AnalyticOn 𝕜 f s
y : E
hy : y ∈ s
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
hp : HasFPowerSeriesOnBall f p y r
⊢ AnalyticAt 𝕜 (_root_.fderiv 𝕜 f) y
state_after: no goals
Theorem: MvPolynomial.homogeneousComponent_eq_zero
File: Mathlib/RingTheory/MvPolynomial/Homogeneous.lean

tactic: apply homogeneousComponent_eq_zero'
state_before: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝¹ inst✝ : CommSemiring R
n : ℕ
φ ψ : MvPolynomial σ R
h : φ.totalDegree < n
⊢ (homogeneousComponent n) φ = 0
state_after: case h
σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝¹ inst✝ : CommSemiring R
n : ℕ
φ ψ : MvPolynomial σ R
h : φ.totalDegree < n
⊢ ∀ d ∈ φ.support, degree d ≠ n

tactic: rw [totalDegree, Finset.sup_lt_iff] at h
state_before: case h
σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝¹ inst✝ : CommSemiring R
n : ℕ
φ ψ : MvPolynomial σ R
h : φ.totalDegree < n
⊢ ∀ d ∈ φ.support, degree d ≠ n
state_after: case h
σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝¹ inst✝ : CommSemiring R
n : ℕ
φ ψ : MvPolynomial σ R
h : ∀ b ∈ φ.support, (b.sum fun x e => e) < n
⊢ ∀ d ∈ φ.support, degree d ≠ n

case h
σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝¹ inst✝ : CommSemiring R
n : ℕ
φ ψ : MvPolynomial σ R
h : (φ.support.sup fun s => s.sum fun x e => e) < n
⊢ ⊥ < n

tactic: intro d hd
state_before: case h
σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝¹ inst✝ : CommSemiring R
n : ℕ
φ ψ : MvPolynomial σ R
h : ∀ b ∈ φ.support, (b.sum fun x e => e) < n
⊢ ∀ d ∈ φ.support, degree d ≠ n
state_after: case h
σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝¹ inst✝ : CommSemiring R
n : ℕ
φ ψ : MvPolynomial σ R
h : ∀ b ∈ φ.support, (b.sum fun x e => e) < n
d : σ →₀ ℕ
hd : d ∈ φ.support
⊢ degree d ≠ n

tactic: exact ne_of_lt (h d hd)
state_before: case h
σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝¹ inst✝ : CommSemiring R
n : ℕ
φ ψ : MvPolynomial σ R
h : ∀ b ∈ φ.support, (b.sum fun x e => e) < n
d : σ →₀ ℕ
hd : d ∈ φ.support
⊢ degree d ≠ n
state_after: no goals

tactic: exact lt_of_le_of_lt (Nat.zero_le _) h
state_before: case h
σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝¹ inst✝ : CommSemiring R
n : ℕ
φ ψ : MvPolynomial σ R
h : (φ.support.sup fun s => s.sum fun x e => e) < n
⊢ ⊥ < n
state_after: no goals
Theorem: CategoryTheory.Limits.π_comp_cokernelIsoOfEq_hom
File: Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean

tactic: cases h
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
X Y : C
f✝ : X ⟶ Y
inst✝² : HasCokernel f✝
f g : X ⟶ Y
inst✝¹ : HasCokernel f
inst✝ : HasCokernel g
h : f = g
⊢ cokernel.π f ≫ (cokernelIsoOfEq h).hom = cokernel.π g
state_after: case refl
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
X Y : C
f✝ : X ⟶ Y
inst✝² : HasCokernel f✝
f : X ⟶ Y
inst✝¹ inst✝ : HasCokernel f
⊢ cokernel.π f ≫ (cokernelIsoOfEq ⋯).hom = cokernel.π f

tactic: simp
state_before: case refl
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
X Y : C
f✝ : X ⟶ Y
inst✝² : HasCokernel f✝
f : X ⟶ Y
inst✝¹ inst✝ : HasCokernel f
⊢ cokernel.π f ≫ (cokernelIsoOfEq ⋯).hom = cokernel.π f
state_after: no goals
Theorem: Bornology.isBounded_union
File: Mathlib/Topology/Bornology/Basic.lean

tactic: simp only [← isCobounded_compl_iff, compl_union, isCobounded_inter]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
x✝ : Bornology α
s t : Set α
x : α
⊢ IsBounded (s ∪ t) ↔ IsBounded s ∧ IsBounded t
state_after: no goals
Theorem: symmDiff_symmDiff_inf
File: Mathlib/Order/SymmDiff.lean

tactic: rw [← symmDiff_sdiff_inf a, sdiff_symmDiff_eq_sup, symmDiff_sup_inf]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedCoheytingAlgebra α
a b c d : α
⊢ a ∆ b ∆ (a ⊓ b) = a ⊔ b
state_after: no goals
Theorem: Real.cos_pi_over_two_pow
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: simp
state_before: x : ℝ
⊢ cos (π / 2 ^ (0 + 1)) = sqrtTwoAddSeries 0 0 / 2
state_after: no goals

tactic: have A : (1 : ℝ) < 2 ^ (n + 1) := one_lt_pow one_lt_two n.succ_ne_zero
state_before: x : ℝ
n : ℕ
⊢ cos (π / 2 ^ (n + 1 + 1)) = sqrtTwoAddSeries 0 (n + 1) / 2
state_after: x : ℝ
n : ℕ
A : 1 < 2 ^ (n + 1)
⊢ cos (π / 2 ^ (n + 1 + 1)) = sqrtTwoAddSeries 0 (n + 1) / 2

tactic: have B : π / 2 ^ (n + 1) < π := div_lt_self pi_pos A
state_before: x : ℝ
n : ℕ
A : 1 < 2 ^ (n + 1)
⊢ cos (π / 2 ^ (n + 1 + 1)) = sqrtTwoAddSeries 0 (n + 1) / 2
state_after: x : ℝ
n : ℕ
A : 1 < 2 ^ (n + 1)
B : π / 2 ^ (n + 1) < π
⊢ cos (π / 2 ^ (n + 1 + 1)) = sqrtTwoAddSeries 0 (n + 1) / 2

tactic: have C : 0 < π / 2 ^ (n + 1) := by positivity
state_before: x : ℝ
n : ℕ
A : 1 < 2 ^ (n + 1)
B : π / 2 ^ (n + 1) < π
⊢ cos (π / 2 ^ (n + 1 + 1)) = sqrtTwoAddSeries 0 (n + 1) / 2
state_after: x : ℝ
n : ℕ
A : 1 < 2 ^ (n + 1)
B : π / 2 ^ (n + 1) < π
C : 0 < π / 2 ^ (n + 1)
⊢ cos (π / 2 ^ (n + 1 + 1)) = sqrtTwoAddSeries 0 (n + 1) / 2

tactic: rw [pow_succ, div_mul_eq_div_div, cos_half, cos_pi_over_two_pow n, sqrtTwoAddSeries,
  add_div_eq_mul_add_div, one_mul, ← div_mul_eq_div_div, sqrt_div, sqrt_mul_self] <;>
  linarith [sqrtTwoAddSeries_nonneg le_rfl n]
state_before: x : ℝ
n : ℕ
A : 1 < 2 ^ (n + 1)
B : π / 2 ^ (n + 1) < π
C : 0 < π / 2 ^ (n + 1)
⊢ cos (π / 2 ^ (n + 1 + 1)) = sqrtTwoAddSeries 0 (n + 1) / 2
state_after: no goals

tactic: positivity
state_before: x : ℝ
n : ℕ
A : 1 < 2 ^ (n + 1)
B : π / 2 ^ (n + 1) < π
⊢ 0 < π / 2 ^ (n + 1)
state_after: no goals
Theorem: Real.log_lt_sub_one_of_pos
File: Mathlib/Analysis/SpecialFunctions/Log/Basic.lean

tactic: have h : log x ≠ 0 := by
  rwa [← log_one, log_injOn_pos.ne_iff hx1]
  exact mem_Ioi.mpr zero_lt_one
state_before: x y : ℝ
hx1 : 0 < x
hx2 : x ≠ 1
⊢ log x < x - 1
state_after: x y : ℝ
hx1 : 0 < x
hx2 : x ≠ 1
h : log x ≠ 0
⊢ log x < x - 1

tactic: linarith [add_one_lt_exp h, exp_log hx1]
state_before: x y : ℝ
hx1 : 0 < x
hx2 : x ≠ 1
h : log x ≠ 0
⊢ log x < x - 1
state_after: no goals

tactic: rwa [← log_one, log_injOn_pos.ne_iff hx1]
state_before: x y : ℝ
hx1 : 0 < x
hx2 : x ≠ 1
⊢ log x ≠ 0
state_after: x y : ℝ
hx1 : 0 < x
hx2 : x ≠ 1
⊢ 1 ∈ Ioi 0

tactic: exact mem_Ioi.mpr zero_lt_one
state_before: x y : ℝ
hx1 : 0 < x
hx2 : x ≠ 1
⊢ 1 ∈ Ioi 0
state_after: no goals
Theorem: PartialHomeomorph.tendsto_symm
File: Mathlib/Topology/PartialHomeomorph.lean

tactic: simpa only [ContinuousAt, e.left_inv hx] using e.continuousAt_symm (e.map_source hx)
state_before: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
x : X
hx : x ∈ e.source
⊢ Tendsto (↑e.symm) (𝓝 (↑e x)) (𝓝 x)
state_after: no goals
Theorem: Nat.range_of_succ
File: Mathlib/Data/Nat/Set.lean

tactic: rw [← image_singleton, range_comp, ← image_union, zero_union_range_succ, image_univ]
state_before: α : Type u_1
f : ℕ → α
⊢ {f 0} ∪ range (f ∘ succ) = range f
state_after: no goals
Theorem: Ordinal.lt_sup
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: simpa only [not_forall, not_le] using not_congr (@sup_le_iff.{_, v} _ f a)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
a : Ordinal.{max u v}
⊢ a < sup f ↔ ∃ i, a < f i
state_after: no goals
Theorem: LieSubmodule.Quotient.mk'_ker
File: Mathlib/Algebra/Lie/Quotient.lean

tactic: ext
state_before: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N N' : LieSubmodule R L M
I J : LieIdeal R L
⊢ (mk' N).ker = N
state_after: case h
R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N N' : LieSubmodule R L M
I J : LieIdeal R L
m✝ : M
⊢ m✝ ∈ (mk' N).ker ↔ m✝ ∈ N

tactic: simp
state_before: case h
R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
N N' : LieSubmodule R L M
I J : LieIdeal R L
m✝ : M
⊢ m✝ ∈ (mk' N).ker ↔ m✝ ∈ N
state_after: no goals
Theorem: SetTheory.PGame.star_fuzzy_zero
File: Mathlib/SetTheory/Game/PGame.lean

tactic: rw [lf_zero]
state_before: xl xr : Type u
⊢ star ⧏ 0
state_after: xl xr : Type u
⊢ ∃ j, ∀ (i : (star.moveRight j).LeftMoves), (star.moveRight j).moveLeft i ⧏ 0

tactic: use default
state_before: xl xr : Type u
⊢ ∃ j, ∀ (i : (star.moveRight j).LeftMoves), (star.moveRight j).moveLeft i ⧏ 0
state_after: case h
xl xr : Type u
⊢ ∀ (i : (star.moveRight default).LeftMoves), (star.moveRight default).moveLeft i ⧏ 0

tactic: rintro ⟨⟩
state_before: case h
xl xr : Type u
⊢ ∀ (i : (star.moveRight default).LeftMoves), (star.moveRight default).moveLeft i ⧏ 0
state_after: no goals

tactic: rw [zero_lf]
state_before: xl xr : Type u
⊢ 0 ⧏ star
state_after: xl xr : Type u
⊢ ∃ i, ∀ (j : (star.moveLeft i).RightMoves), 0 ⧏ (star.moveLeft i).moveRight j

tactic: use default
state_before: xl xr : Type u
⊢ ∃ i, ∀ (j : (star.moveLeft i).RightMoves), 0 ⧏ (star.moveLeft i).moveRight j
state_after: case h
xl xr : Type u
⊢ ∀ (j : (star.moveLeft default).RightMoves), 0 ⧏ (star.moveLeft default).moveRight j

tactic: rintro ⟨⟩
state_before: case h
xl xr : Type u
⊢ ∀ (j : (star.moveLeft default).RightMoves), 0 ⧏ (star.moveLeft default).moveRight j
state_after: no goals
Theorem: Nat.Partrec'.cons
File: Mathlib/Computability/Halting.lean

tactic: simpa using hf
state_before: n m : ℕ
f : Vector ℕ n → ℕ
g : Vector ℕ n → Vector ℕ m
hf : Partrec' ↑f
hg : Vec g
i : Fin m.succ
⊢ Partrec' fun v => ↑(some (((fun v => f v ::ᵥ g v) v).get 0))
state_after: no goals

tactic: simp only [hg i, get_cons_succ]
state_before: n m : ℕ
f : Vector ℕ n → ℕ
g : Vector ℕ n → Vector ℕ m
hf : Partrec' ↑f
hg : Vec g
i✝ : Fin m.succ
i : Fin m
⊢ Partrec' fun v => ↑(some (((fun v => f v ::ᵥ g v) v).get i.succ))
state_after: no goals
Theorem: Finset.eq_zero_iff_eq_zero_of_mem_box
File: Mathlib/Order/Interval/Finset/Box.lean

tactic: rwa [hn, box_zero, mem_singleton] at hx
state_before: α : Type u_1
inst✝² : OrderedRing α
inst✝¹ : LocallyFiniteOrder α
inst✝ : DecidableEq α
n : ℕ
x : α
hx : x ∈ box n
hn : n = 0
⊢ x = 0
state_after: no goals
Theorem: Complex.HadamardThreeLines.sSupNormIm_eps_pos
File: Mathlib/Analysis/Complex/Hadamard.lean

tactic: linarith [sSupNormIm_nonneg f x]
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℂ → E
z : ℂ
ε : ℝ
hε : ε > 0
x : ℝ
⊢ 0 < ε + sSupNormIm f x
state_after: no goals
Theorem: MvPolynomial.optionEquivLeft_X_some
File: Mathlib/Algebra/MvPolynomial/Equiv.lean

tactic: simp [optionEquivLeft_apply, aeval_X]
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
s : σ →₀ ℕ
inst✝ : CommSemiring R
x : S₁
⊢ (optionEquivLeft R S₁) (X (Option.some x)) = Polynomial.C (X x)
state_after: no goals
Theorem: Finset.sdiff_insert_insert_of_mem_of_not_mem
File: Mathlib/Data/Finset/Basic.lean

tactic: rw [sdiff_insert, insert_erase (mem_sdiff.mpr ⟨hxs, hxt⟩)]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s✝ t✝ u v : Finset α
a b : α
s t : Finset α
x : α
hxs : x ∈ s
hxt : x ∉ t
⊢ insert x (s \ insert x t) = s \ t
state_after: no goals
Theorem: schnirelmannDensity_le_one
File: Mathlib/Combinatorics/Schnirelmann.lean

tactic: rw [Nat.cast_one, div_one, Nat.cast_le_one]
state_before: A : Set ℕ
inst✝ : DecidablePred fun x => x ∈ A
⊢ ↑(filter (fun x => x ∈ A) (Ioc 0 1)).card / ↑1 ≤ 1
state_after: A : Set ℕ
inst✝ : DecidablePred fun x => x ∈ A
⊢ (filter (fun x => x ∈ A) (Ioc 0 1)).card ≤ 1

tactic: exact card_filter_le _ _
state_before: A : Set ℕ
inst✝ : DecidablePred fun x => x ∈ A
⊢ (filter (fun x => x ∈ A) (Ioc 0 1)).card ≤ 1
state_after: no goals
Theorem: Matrix.PosDef.det_pos
File: Mathlib/LinearAlgebra/Matrix/PosDef.lean

tactic: rw [hM.isHermitian.det_eq_prod_eigenvalues]
state_before: m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
M : Matrix n n 𝕜
hM : M.PosDef
⊢ 0 < M.det
state_after: m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
M : Matrix n n 𝕜
hM : M.PosDef
⊢ 0 < ∏ i : n, ↑(⋯.eigenvalues i)

tactic: apply Finset.prod_pos
state_before: m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
M : Matrix n n 𝕜
hM : M.PosDef
⊢ 0 < ∏ i : n, ↑(⋯.eigenvalues i)
state_after: case h0
m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
M : Matrix n n 𝕜
hM : M.PosDef
⊢ ∀ i ∈ Finset.univ, 0 < ↑(⋯.eigenvalues i)

tactic: intro i _
state_before: case h0
m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
M : Matrix n n 𝕜
hM : M.PosDef
⊢ ∀ i ∈ Finset.univ, 0 < ↑(⋯.eigenvalues i)
state_after: case h0
m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
M : Matrix n n 𝕜
hM : M.PosDef
i : n
a✝ : i ∈ Finset.univ
⊢ 0 < ↑(⋯.eigenvalues i)

tactic: simpa using hM.eigenvalues_pos i
state_before: case h0
m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁷ : Fintype m
inst✝⁶ : Fintype n
inst✝⁵ : CommRing R
inst✝⁴ : PartialOrder R
inst✝³ : StarRing R
inst✝² : StarOrderedRing R
inst✝¹ : RCLike 𝕜
inst✝ : DecidableEq n
M : Matrix n n 𝕜
hM : M.PosDef
i : n
a✝ : i ∈ Finset.univ
⊢ 0 < ↑(⋯.eigenvalues i)
state_after: no goals
Theorem: NormedAddGroupHom.norm_comp_le_of_le
File: Mathlib/Analysis/Normed/Group/Hom.lean

tactic: gcongr
state_before: V : Type u_1
V₁ : Type u_2
V₂ : Type u_3
V₃ : Type u_4
inst✝³ : SeminormedAddCommGroup V
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f g✝ : NormedAddGroupHom V₁ V₂
g : NormedAddGroupHom V₂ V₃
C₁ C₂ : ℝ
hg : ‖g‖ ≤ C₂
hf : ‖f‖ ≤ C₁
⊢ ‖g‖ * ‖f‖ ≤ C₂ * C₁
state_after: case b0
V : Type u_1
V₁ : Type u_2
V₂ : Type u_3
V₃ : Type u_4
inst✝³ : SeminormedAddCommGroup V
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f g✝ : NormedAddGroupHom V₁ V₂
g : NormedAddGroupHom V₂ V₃
C₁ C₂ : ℝ
hg : ‖g‖ ≤ C₂
hf : ‖f‖ ≤ C₁
⊢ 0 ≤ C₂

tactic: exact le_trans (norm_nonneg _) hg
state_before: case b0
V : Type u_1
V₁ : Type u_2
V₂ : Type u_3
V₃ : Type u_4
inst✝³ : SeminormedAddCommGroup V
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f g✝ : NormedAddGroupHom V₁ V₂
g : NormedAddGroupHom V₂ V₃
C₁ C₂ : ℝ
hg : ‖g‖ ≤ C₂
hf : ‖f‖ ≤ C₁
⊢ 0 ≤ C₂
state_after: no goals
Theorem: Complex.UnitDisc.normSq_lt_one
File: Mathlib/Analysis/Complex/UnitDisc/Basic.lean

tactic: convert (Real.sqrt_lt' one_pos).1 z.abs_lt_one
state_before: z : 𝔻
⊢ normSq ↑z < 1
state_after: case h.e'_4
z : 𝔻
⊢ 1 = 1 ^ 2

tactic: exact (one_pow 2).symm
state_before: case h.e'_4
z : 𝔻
⊢ 1 = 1 ^ 2
state_after: no goals
Theorem: Equiv.piCongrLeft_sum_inr
File: Mathlib/Logic/Equiv/Basic.lean

tactic: simp_rw [piCongrLeft_apply_eq_cast, sumPiEquivProdPi_symm_apply,
  sum_rec_congr _ _ _ (e.symm_apply_apply (inr j)), cast_cast, cast_eq]
state_before: β : Sort ?u.114438
α : Sort ?u.114443
P : β → Sort w
e✝ : α ≃ β
ι'' : Sort u_2
ι : Type u_3
ι' : Type u_4
π : ι'' → Type u_1
e : ι ⊕ ι' ≃ ι''
f : (i : ι) → π (e (inl i))
g : (i : ι') → π (e (inr i))
j : ι'
⊢ (piCongrLeft π e) ((sumPiEquivProdPi fun x => π (e x)).symm (f, g)) (e (inr j)) = g j
state_after: no goals
Theorem: Lists'.mem_cons
File: Mathlib/SetTheory/Lists.lean

tactic: simp [mem_def, or_and_right, exists_or]
state_before: α : Type u_1
a y : Lists α
l : Lists' α true
⊢ a ∈ cons y l ↔ a ~ y ∨ a ∈ l
state_after: no goals
Theorem: SimpleGraph.not_mem_neighborSet_self
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: simp
state_before: ι : Sort u_1
V : Type u
G : SimpleGraph V
a b c u v w : V
e : Sym2 V
⊢ a ∉ G.neighborSet a
state_after: no goals
Theorem: RatFunc.induction_on'
File: Mathlib/FieldTheory/RatFunc/Defs.lean

tactic: simpa only [mk_coe_def, Localization.mk_eq_mk'] using
  f p q (mem_nonZeroDivisors_iff_ne_zero.mp q.2)
state_before: K : Type u
inst✝¹ : CommRing K
inst✝ : IsDomain K
P : RatFunc K → Prop
x : FractionRing K[X]
f : ∀ (p q : K[X]), q ≠ 0 → P (RatFunc.mk p q)
x✝ : K[X] × ↥K[X]⁰
p : K[X]
q : ↥K[X]⁰
⊢ P { toFractionRing := Localization.mk (p, q).1 (p, q).2 }
state_after: no goals
Theorem: ENNReal.div_lt_of_lt_mul'
File: Mathlib/Data/ENNReal/Inv.lean

tactic: rwa [mul_comm]
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
h : a < b * c
⊢ a < c * b
state_after: no goals