1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: PFunctor.M.children_mk
File: Mathlib/Data/PFunctor/Univariate/M.lean

tactic: rw [head_mk]
state_before: F : PFunctor.{u}
X : Type u_1
f : X → ↑F X
a : F.A
x : F.B a → F.M
i : F.B (M.mk ⟨a, x⟩).head
⊢ F.B (M.mk ⟨a, x⟩).head = F.B a
state_after: no goals

tactic: apply ext'
state_before: F : PFunctor.{u}
X : Type u_1
f : X → ↑F X
a : F.A
x : F.B a → F.M
i : F.B (M.mk ⟨a, x⟩).head
⊢ (M.mk ⟨a, x⟩).children i = x (cast ⋯ i)
state_after: case H
F : PFunctor.{u}
X : Type u_1
f : X → ↑F X
a : F.A
x : F.B a → F.M
i : F.B (M.mk ⟨a, x⟩).head
⊢ ∀ (i_1 : ℕ), ((M.mk ⟨a, x⟩).children i).approx i_1 = (x (cast ⋯ i)).approx i_1

tactic: intro n
state_before: case H
F : PFunctor.{u}
X : Type u_1
f : X → ↑F X
a : F.A
x : F.B a → F.M
i : F.B (M.mk ⟨a, x⟩).head
⊢ ∀ (i_1 : ℕ), ((M.mk ⟨a, x⟩).children i).approx i_1 = (x (cast ⋯ i)).approx i_1
state_after: case H
F : PFunctor.{u}
X : Type u_1
f : X → ↑F X
a : F.A
x : F.B a → F.M
i : F.B (M.mk ⟨a, x⟩).head
n : ℕ
⊢ ((M.mk ⟨a, x⟩).children i).approx n = (x (cast ⋯ i)).approx n

tactic: rfl
state_before: case H
F : PFunctor.{u}
X : Type u_1
f : X → ↑F X
a : F.A
x : F.B a → F.M
i : F.B (M.mk ⟨a, x⟩).head
n : ℕ
⊢ ((M.mk ⟨a, x⟩).children i).approx n = (x (cast ⋯ i)).approx n
state_after: no goals
Theorem: CategoryTheory.eq_of_comp_right_eq'
File: Mathlib/CategoryTheory/Category/Basic.lean

tactic: convert congr_fun (congr_fun w X) h
state_before: C : Type u
inst✝ : Category.{v, u} C
X✝ Y Z : C
f g : Y ⟶ Z
w : (fun {X} h => h ≫ f) = fun {X} h => h ≫ g
X : C
h : X ⟶ Y
⊢ h ≫ f = h ≫ g
state_after: no goals
Theorem: smul_nonpos_of_nonpos_of_nonneg
File: Mathlib/Algebra/Order/Module/Defs.lean

tactic: simpa only [zero_smul] using smul_le_smul_of_nonneg_right ha hb
state_before: α : Type u_1
β : Type u_2
a a₁ a₂ : α
b b₁ b₂ : β
inst✝⁵ : Zero α
inst✝⁴ : Zero β
inst✝³ : SMulWithZero α β
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : SMulPosMono α β
ha : a ≤ 0
hb : 0 ≤ b
⊢ a • b ≤ 0
state_after: no goals
Theorem: TopologicalSpace.isOpen_sUnion_countable
File: Mathlib/Topology/Bases.lean

tactic: simpa only [and_left_comm, sUnion_eq_biUnion] using isOpen_biUnion_countable S id H
state_before: α : Type u
t : TopologicalSpace α
inst✝ : SecondCountableTopology α
S : Set (Set α)
H : ∀ s ∈ S, IsOpen s
⊢ ∃ T, T.Countable ∧ T ⊆ S ∧ ⋃₀ T = ⋃₀ S
state_after: no goals
Theorem: toMul_list_sum
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: simp [toMul, ofMul]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : Monoid α
s : List (Additive α)
⊢ toMul s.sum = (List.map (⇑toMul) s).prod
state_after: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : Monoid α
s : List (Additive α)
⊢ s.sum = s.prod

tactic: rfl
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f g : α → β
inst✝ : Monoid α
s : List (Additive α)
⊢ s.sum = s.prod
state_after: no goals
Theorem: hasFDerivWithinAt_euclidean
File: Mathlib/Analysis/InnerProductSpace/Calculus.lean

tactic: rw [← (EuclideanSpace.equiv ι 𝕜).comp_hasFDerivWithinAt_iff, hasFDerivWithinAt_pi']
state_before: 𝕜 : Type u_1
ι : Type u_2
H : Type u_3
inst✝³ : _root_.RCLike 𝕜
inst✝² : NormedAddCommGroup H
inst✝¹ : NormedSpace 𝕜 H
inst✝ : Fintype ι
f : H → EuclideanSpace 𝕜 ι
f' : H →L[𝕜] EuclideanSpace 𝕜 ι
t : Set H
y : H
⊢ HasFDerivWithinAt f f' t y ↔ ∀ (i : ι), HasFDerivWithinAt (fun x => f x i) ((EuclideanSpace.proj i).comp f') t y
state_after: 𝕜 : Type u_1
ι : Type u_2
H : Type u_3
inst✝³ : _root_.RCLike 𝕜
inst✝² : NormedAddCommGroup H
inst✝¹ : NormedSpace 𝕜 H
inst✝ : Fintype ι
f : H → EuclideanSpace 𝕜 ι
f' : H →L[𝕜] EuclideanSpace 𝕜 ι
t : Set H
y : H
⊢ (∀ (i : ι),
      HasFDerivWithinAt (fun x => (⇑(EuclideanSpace.equiv ι 𝕜) ∘ f) x i)
        ((proj i).comp ((↑(EuclideanSpace.equiv ι 𝕜)).comp f')) t y) ↔
    ∀ (i : ι), HasFDerivWithinAt (fun x => f x i) ((EuclideanSpace.proj i).comp f') t y

tactic: rfl
state_before: 𝕜 : Type u_1
ι : Type u_2
H : Type u_3
inst✝³ : _root_.RCLike 𝕜
inst✝² : NormedAddCommGroup H
inst✝¹ : NormedSpace 𝕜 H
inst✝ : Fintype ι
f : H → EuclideanSpace 𝕜 ι
f' : H →L[𝕜] EuclideanSpace 𝕜 ι
t : Set H
y : H
⊢ (∀ (i : ι),
      HasFDerivWithinAt (fun x => (⇑(EuclideanSpace.equiv ι 𝕜) ∘ f) x i)
        ((proj i).comp ((↑(EuclideanSpace.equiv ι 𝕜)).comp f')) t y) ↔
    ∀ (i : ι), HasFDerivWithinAt (fun x => f x i) ((EuclideanSpace.proj i).comp f') t y
state_after: no goals
Theorem: List.toFinset_eq_empty_iff
File: Mathlib/Data/Finset/Basic.lean

tactic: cases l <;> simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
l✝ l' : List α
a : α
l : List α
⊢ l.toFinset = ∅ ↔ l = []
state_after: no goals
Theorem: Polynomial.leadingCoeff_X_sub_C
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: rw [sub_eq_add_neg, ← map_neg C r, leadingCoeff_X_add_C]
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝² : Ring R
inst✝¹ : Nontrivial R
inst✝ : Ring S
r : S
⊢ (X - C r).leadingCoeff = 1
state_after: no goals
Theorem: Complex.norm_log_one_add_sub_self_le
File: Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean

tactic: convert norm_log_sub_logTaylor_le 1 hz using 2
state_before: z : ℂ
hz : ‖z‖ < 1
⊢ ‖log (1 + z) - z‖ ≤ ‖z‖ ^ 2 * (1 - ‖z‖)⁻¹ / 2
state_after: case h.e'_3.h.e'_3
z : ℂ
hz : ‖z‖ < 1
⊢ log (1 + z) - z = log (1 + z) - logTaylor (1 + 1) z

case h.e'_4.h.e'_6
z : ℂ
hz : ‖z‖ < 1
⊢ 2 = ↑1 + 1

tactic: simp [logTaylor_succ, logTaylor_zero, sub_eq_add_neg]
state_before: case h.e'_3.h.e'_3
z : ℂ
hz : ‖z‖ < 1
⊢ log (1 + z) - z = log (1 + z) - logTaylor (1 + 1) z
state_after: no goals

tactic: norm_num
state_before: case h.e'_4.h.e'_6
z : ℂ
hz : ‖z‖ < 1
⊢ 2 = ↑1 + 1
state_after: no goals
Theorem: inner_self_im
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: rw [← @ofReal_inj 𝕜, im_eq_conj_sub]
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
x : E
⊢ im ⟪x, x⟫_𝕜 = 0
state_after: 𝕜 : 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
x : E
⊢ I * ((starRingEnd 𝕜) ⟪x, x⟫_𝕜 - ⟪x, x⟫_𝕜) / 2 = ↑0

tactic: simp
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
x : E
⊢ I * ((starRingEnd 𝕜) ⟪x, x⟫_𝕜 - ⟪x, x⟫_𝕜) / 2 = ↑0
state_after: no goals
Theorem: Submodule.map₂_bot_right
File: Mathlib/Algebra/Module/Submodule/Bilinear.lean

tactic: rw [Submodule.mem_bot] at hn
state_before: ι : Sort uι
R : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid N
inst✝³ : AddCommMonoid P
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R P
f : M →ₗ[R] N →ₗ[R] P
p : Submodule R M
m : M
_hm : m ∈ p
n : N
hn : n ∈ ⊥
⊢ (f m) n ∈ ⊥
state_after: ι : Sort uι
R : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid N
inst✝³ : AddCommMonoid P
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R P
f : M →ₗ[R] N →ₗ[R] P
p : Submodule R M
m : M
_hm : m ∈ p
n : N
hn : n = 0
⊢ (f m) n ∈ ⊥

tactic: rw [hn, LinearMap.map_zero]
state_before: ι : Sort uι
R : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid N
inst✝³ : AddCommMonoid P
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R P
f : M →ₗ[R] N →ₗ[R] P
p : Submodule R M
m : M
_hm : m ∈ p
n : N
hn : n = 0
⊢ (f m) n ∈ ⊥
state_after: ι : Sort uι
R : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid N
inst✝³ : AddCommMonoid P
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R P
f : M →ₗ[R] N →ₗ[R] P
p : Submodule R M
m : M
_hm : m ∈ p
n : N
hn : n = 0
⊢ 0 ∈ ⊥

tactic: simp only [mem_bot]
state_before: ι : Sort uι
R : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid N
inst✝³ : AddCommMonoid P
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R P
f : M →ₗ[R] N →ₗ[R] P
p : Submodule R M
m : M
_hm : m ∈ p
n : N
hn : n = 0
⊢ 0 ∈ ⊥
state_after: no goals
Theorem: Nat.Prime.pow_minFac
File: Mathlib/Data/Nat/Prime.lean

tactic: rw [Nat.pow_minFac hk, hp.minFac_eq]
state_before: n p k : ℕ
hp : Prime p
hk : k ≠ 0
⊢ (p ^ k).minFac = p
state_after: no goals
Theorem: MeasureTheory.SimpleFunc.setToSimpleFunc_smul_real
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: rw [smul_eq_map c f, map_setToSimpleFunc T h_add hf]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
c : ℝ
f : α →ₛ E
hf : Integrable (↑f) μ
⊢ setToSimpleFunc T (c • f) = ∑ x ∈ f.range, (T (↑f ⁻¹' {x})) (c • x)
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
c : ℝ
f : α →ₛ E
hf : Integrable (↑f) μ
⊢ c • 0 = 0

tactic: rw [smul_zero]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
c : ℝ
f : α →ₛ E
hf : Integrable (↑f) μ
⊢ c • 0 = 0
state_after: no goals

tactic: rw [ContinuousLinearMap.map_smul (T (f ⁻¹' {b})) c b]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
c : ℝ
f : α →ₛ E
hf : Integrable (↑f) μ
b : E
x✝ : b ∈ f.range
⊢ (T (↑f ⁻¹' {b})) (c • b) = c • (T (↑f ⁻¹' {b})) b
state_after: no goals

tactic: simp only [setToSimpleFunc, smul_sum, smul_smul, mul_comm]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedAddCommGroup F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F
h_add : FinMeasAdditive μ T
c : ℝ
f : α →ₛ E
hf : Integrable (↑f) μ
⊢ ∑ x ∈ f.range, c • (T (↑f ⁻¹' {x})) x = c • setToSimpleFunc T f
state_after: no goals
Theorem: ContinuousMap.toLp_norm_le
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: rw [toLp_norm_eq_toLp_norm_coe]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedAddCommGroup G
inst✝⁷ : TopologicalSpace α
inst✝⁶ : BorelSpace α
inst✝⁵ : SecondCountableTopologyEither α E
inst✝⁴ : CompactSpace α
inst✝³ : IsFiniteMeasure μ
𝕜 : Type u_5
inst✝² : Fact (1 ≤ p)
inst✝¹ : NontriviallyNormedField 𝕜
inst✝ : NormedSpace 𝕜 E
⊢ ‖toLp p μ 𝕜‖ ≤ ↑(measureUnivNNReal μ) ^ p.toReal⁻¹
state_after: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedAddCommGroup G
inst✝⁷ : TopologicalSpace α
inst✝⁶ : BorelSpace α
inst✝⁵ : SecondCountableTopologyEither α E
inst✝⁴ : CompactSpace α
inst✝³ : IsFiniteMeasure μ
𝕜 : Type u_5
inst✝² : Fact (1 ≤ p)
inst✝¹ : NontriviallyNormedField 𝕜
inst✝ : NormedSpace 𝕜 E
⊢ ‖BoundedContinuousFunction.toLp p μ 𝕜‖ ≤ ↑(measureUnivNNReal μ) ^ p.toReal⁻¹

tactic: exact BoundedContinuousFunction.toLp_norm_le μ
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedAddCommGroup G
inst✝⁷ : TopologicalSpace α
inst✝⁶ : BorelSpace α
inst✝⁵ : SecondCountableTopologyEither α E
inst✝⁴ : CompactSpace α
inst✝³ : IsFiniteMeasure μ
𝕜 : Type u_5
inst✝² : Fact (1 ≤ p)
inst✝¹ : NontriviallyNormedField 𝕜
inst✝ : NormedSpace 𝕜 E
⊢ ‖BoundedContinuousFunction.toLp p μ 𝕜‖ ≤ ↑(measureUnivNNReal μ) ^ p.toReal⁻¹
state_after: no goals
Theorem: Finpartition.exists_mem
File: Mathlib/Order/Partition/Finpartition.lean

tactic: simp_rw [← P.sup_parts] at ha
state_before: α : Type u_1
inst✝ : DecidableEq α
s t u : Finset α
P : Finpartition s
a : α
ha : a ∈ s
⊢ ∃ t ∈ P.parts, a ∈ t
state_after: α : Type u_1
inst✝ : DecidableEq α
s t u : Finset α
P : Finpartition s
a : α
ha : a ∈ P.parts.sup id
⊢ ∃ t ∈ P.parts, a ∈ t

tactic: exact mem_sup.1 ha
state_before: α : Type u_1
inst✝ : DecidableEq α
s t u : Finset α
P : Finpartition s
a : α
ha : a ∈ P.parts.sup id
⊢ ∃ t ∈ P.parts, a ∈ t
state_after: no goals
Theorem: Nat.dvd_div_of_mul_dvd
File: Mathlib/Data/Nat/Defs.lean

tactic: simp [ha]
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
h : a * b ∣ c
ha : a = 0
⊢ b ∣ c / a
state_after: no goals

tactic: simpa [Nat.mul_assoc] using hd
state_before: a b c d✝ m n k : ℕ
p q : ℕ → Prop
h : a * b ∣ c
ha✝ : ¬a = 0
ha : 0 < a
h1 : ∃ d, c = a * b * d
d : ℕ
hd : c = a * b * d
⊢ c = a * (b * d)
state_after: no goals
Theorem: Subgroup.IsComplement.coe_equiv_fst_eq_one_iff_mem
File: Mathlib/GroupTheory/Complement.lean

tactic: rw [equiv_fst_eq_mul_inv, mul_inv_eq_one, eq_comm, equiv_snd_eq_self_iff_mem _ h1]
state_before: G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
hST : IsComplement S T
hHT : IsComplement (↑H) T
hSK : IsComplement S ↑K
g : G
h1 : 1 ∈ S
⊢ ↑(hST.equiv g).1 = 1 ↔ g ∈ T
state_after: no goals
Theorem: Padic.rat_dense
File: Mathlib/NumberTheory/Padics/PadicNumbers.lean

tactic: simpa using hε'l
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
q : ℚ_[p]
ε : ℝ
hε : 0 < ε
ε' : ℚ
hε'l : 0 < ↑ε'
hε'r : ↑ε' < ε
⊢ 0 < ε'
state_after: no goals

tactic: simpa [Norm.norm] using hr
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
q : ℚ_[p]
ε : ℝ
hε : 0 < ε
ε' : ℚ
hε'l : 0 < ↑ε'
hε'r : ↑ε' < ε
r : ℚ
hr : padicNormE (q - ↑r) < ε'
⊢ ‖q - ↑r‖ < ↑ε'
state_after: no goals
Theorem: SheafOfModules.freeHomEquiv_freeMap
File: Mathlib/Algebra/Category/ModuleCat/Sheaf/Free.lean

tactic: simp
state_before: C : Type u'
inst✝³ : Category.{v', u'} C
J✝ : GrothendieckTopology C
R : Sheaf J✝ RingCat
inst✝² : HasWeakSheafify J✝ AddCommGrp
inst✝¹ : J✝.WEqualsLocallyBijective AddCommGrp
inst✝ : J✝.HasSheafCompose (forget₂ RingCat AddCommGrp)
I J : Type u
f : I → J
⊢ (free J).freeHomEquiv.symm ((free J).freeHomEquiv (freeMap f)) = (free J).freeHomEquiv.symm (freeSection ∘ f)
state_after: C : Type u'
inst✝³ : Category.{v', u'} C
J✝ : GrothendieckTopology C
R : Sheaf J✝ RingCat
inst✝² : HasWeakSheafify J✝ AddCommGrp
inst✝¹ : J✝.WEqualsLocallyBijective AddCommGrp
inst✝ : J✝.HasSheafCompose (forget₂ RingCat AddCommGrp)
I J : Type u
f : I → J
⊢ freeMap f = (free J).freeHomEquiv.symm (freeSection ∘ f)

tactic: rfl
state_before: C : Type u'
inst✝³ : Category.{v', u'} C
J✝ : GrothendieckTopology C
R : Sheaf J✝ RingCat
inst✝² : HasWeakSheafify J✝ AddCommGrp
inst✝¹ : J✝.WEqualsLocallyBijective AddCommGrp
inst✝ : J✝.HasSheafCompose (forget₂ RingCat AddCommGrp)
I J : Type u
f : I → J
⊢ freeMap f = (free J).freeHomEquiv.symm (freeSection ∘ f)
state_after: no goals
Theorem: ZMod.intCast_zmod_eq_zero_iff_dvd
File: Mathlib/Data/ZMod/Basic.lean

tactic: rw [← Int.cast_zero, ZMod.intCast_eq_intCast_iff, Int.modEq_zero_iff_dvd]
state_before: a : ℤ
b : ℕ
⊢ ↑a = 0 ↔ ↑b ∣ a
state_after: no goals
Theorem: Basis.prod_apply
File: Mathlib/LinearAlgebra/Basis.lean

tactic: ext <;> cases i <;>
  simp only [prod_apply_inl_fst, Sum.elim_inl, LinearMap.inl_apply, prod_apply_inr_fst,
    Sum.elim_inr, LinearMap.inr_apply, prod_apply_inl_snd, prod_apply_inr_snd, Function.comp]
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
b b₁ : Basis ι R M
i✝ : ι
c : R
x : M
b' : Basis ι' R M'
i : ι ⊕ ι'
⊢ (b.prod b') i = Sum.elim (⇑(LinearMap.inl R M M') ∘ ⇑b) (⇑(LinearMap.inr R M M') ∘ ⇑b') i
state_after: no goals
Theorem: Function.mulSupport_update_eq_ite
File: Mathlib/Algebra/Group/Support.lean

tactic: rcases eq_or_ne y 1 with rfl | hy <;> simp [mulSupport_update_one, mulSupport_update_of_ne_one, *]
state_before: α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝⁴ : One M
inst✝³ : One N
inst✝² : One P
inst✝¹ : DecidableEq α
inst✝ : DecidableEq M
f : α → M
x : α
y : M
⊢ mulSupport (update f x y) = if y = 1 then mulSupport f \ {x} else insert x (mulSupport f)
state_after: no goals
Theorem: deriv_norm_ne_zero
File: Mathlib/NumberTheory/Padics/Hensel.lean

tactic: simp [*, sq]
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
F : Polynomial ℤ_[p]
a : ℤ_[p]
hnorm : ‖Polynomial.eval a F‖ < ‖Polynomial.eval a (Polynomial.derivative F)‖ ^ 2
hnsol : Polynomial.eval a F ≠ 0
h : ‖Polynomial.eval a (Polynomial.derivative F)‖ = 0
⊢ ‖Polynomial.eval a (Polynomial.derivative F)‖ ^ 2 = 0
state_after: no goals
Theorem: Mathlib.Meta.Positivity.int_div_self_pos
File: Mathlib/Tactic/Positivity/Basic.lean

tactic: rw [Int.ediv_self ha.ne']
state_before: a : ℤ
ha : 0 < a
⊢ 0 < a / a
state_after: a : ℤ
ha : 0 < a
⊢ 0 < 1

tactic: exact zero_lt_one
state_before: a : ℤ
ha : 0 < a
⊢ 0 < 1
state_after: no goals
Theorem: Int.floor_int_add
File: Mathlib/Algebra/Order/Floor.lean

tactic: simpa only [add_comm] using floor_add_int a z
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z✝ : ℤ
a✝ : α
z : ℤ
a : α
⊢ ⌊↑z + a⌋ = z + ⌊a⌋
state_after: no goals
Theorem: Complex.ofReal_tan_ofReal_re
File: Mathlib/Data/Complex/Exponential.lean

tactic: rw [← tan_conj, conj_ofReal]
state_before: x✝ y : ℂ
x : ℝ
⊢ (starRingEnd ℂ) (tan ↑x) = tan ↑x
state_after: no goals
Theorem: Metric.Sum.dist_eq_glueDist
File: Mathlib/Topology/MetricSpace/Gluing.lean

tactic: cases p <;> cases q <;> first |rfl|simp [Sum.dist, glueDist, dist_comm, add_comm,
  add_left_comm, add_assoc]
state_before: X : Type u
Y : Type v
Z : Type w
inst✝¹ : MetricSpace X
inst✝ : MetricSpace Y
p q : X ⊕ Y
x : X
y : Y
⊢ Sum.dist p q = glueDist (fun x_1 => ⋯.some) (fun x => ⋯.some) 1 p q
state_after: no goals

tactic: rfl
state_before: case inr.inr
X : Type u
Y : Type v
Z : Type w
inst✝¹ : MetricSpace X
inst✝ : MetricSpace Y
x : X
y val✝¹ val✝ : Y
⊢ Sum.dist (Sum.inr val✝¹) (Sum.inr val✝) =
    glueDist (fun x_1 => ⋯.some) (fun x => ⋯.some) 1 (Sum.inr val✝¹) (Sum.inr val✝)
state_after: no goals

tactic: simp [Sum.dist, glueDist, dist_comm, add_comm,
add_left_comm, add_assoc]
state_before: case inr.inl
X : Type u
Y : Type v
Z : Type w
inst✝¹ : MetricSpace X
inst✝ : MetricSpace Y
x : X
y val✝¹ : Y
val✝ : X
⊢ Sum.dist (Sum.inr val✝¹) (Sum.inl val✝) =
    glueDist (fun x_1 => ⋯.some) (fun x => ⋯.some) 1 (Sum.inr val✝¹) (Sum.inl val✝)
state_after: no goals
Theorem: euler_four_squares
File: Mathlib/NumberTheory/SumFourSquares.lean

tactic: ring
state_before: R : Type u_1
inst✝ : CommRing R
a b c d x y z w : R
⊢ (a * x - b * y - c * z - d * w) ^ 2 + (a * y + b * x + c * w - d * z) ^ 2 + (a * z - b * w + c * x + d * y) ^ 2 +
      (a * w + b * z - c * y + d * x) ^ 2 =
    (a ^ 2 + b ^ 2 + c ^ 2 + d ^ 2) * (x ^ 2 + y ^ 2 + z ^ 2 + w ^ 2)
state_after: no goals
Theorem: hasDerivWithinAt_iff_tendsto_slope'
File: Mathlib/Analysis/Calculus/Deriv/Slope.lean

tactic: rw [hasDerivWithinAt_iff_tendsto_slope, diff_singleton_eq_self hs]
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
hs : x ∉ s
⊢ HasDerivWithinAt f f' s x ↔ Tendsto (slope f x) (𝓝[s] x) (𝓝 f')
state_after: no goals
Theorem: ENNReal.rpow_le_one
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: lift x to ℝ≥0 using ne_of_lt (lt_of_le_of_lt hx coe_lt_top)
state_before: x : ℝ≥0∞
z : ℝ
hx : x ≤ 1
hz : 0 ≤ z
⊢ x ^ z ≤ 1
state_after: case intro
z : ℝ
hz : 0 ≤ z
x : ℝ≥0
hx : ↑x ≤ 1
⊢ ↑x ^ z ≤ 1

tactic: simp only [coe_le_one_iff] at hx
state_before: case intro
z : ℝ
hz : 0 ≤ z
x : ℝ≥0
hx : ↑x ≤ 1
⊢ ↑x ^ z ≤ 1
state_after: case intro
z : ℝ
hz : 0 ≤ z
x : ℝ≥0
hx : x ≤ 1
⊢ ↑x ^ z ≤ 1

tactic: simp [coe_rpow_of_nonneg _ hz, NNReal.rpow_le_one hx hz]
state_before: case intro
z : ℝ
hz : 0 ≤ z
x : ℝ≥0
hx : x ≤ 1
⊢ ↑x ^ z ≤ 1
state_after: no goals
Theorem: List.alternatingProd_cons
File: Mathlib/Algebra/BigOperators/Group/List.lean

tactic: rw [div_eq_mul_inv, alternatingProd_cons']
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝ : CommGroup α
a : α
l : List α
⊢ (a :: l).alternatingProd = a / l.alternatingProd
state_after: no goals
Theorem: Multiset.nodup_iff_count_le_one
File: Mathlib/Data/Multiset/Nodup.lean

tactic: simp only [quot_mk_to_coe'', coe_nodup, mem_coe, coe_count]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s✝ t : Multiset α
a : α
inst✝ : DecidableEq α
s : Multiset α
_l : List α
⊢ Nodup (Quot.mk Setoid.r _l) ↔ ∀ (a : α), count a (Quot.mk Setoid.r _l) ≤ 1
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s✝ t : Multiset α
a : α
inst✝ : DecidableEq α
s : Multiset α
_l : List α
⊢ _l.Nodup ↔ ∀ (a : α), List.count a _l ≤ 1

tactic: exact List.nodup_iff_count_le_one
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s✝ t : Multiset α
a : α
inst✝ : DecidableEq α
s : Multiset α
_l : List α
⊢ _l.Nodup ↔ ∀ (a : α), List.count a _l ≤ 1
state_after: no goals
Theorem: List.length_tail
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: cases l <;> rfl
state_before: α : Type u_1
l : List α
⊢ l.tail.length = l.length - 1
state_after: no goals
Theorem: RingCon.sup_eq_ringConGen
File: Mathlib/RingTheory/Congruence/Basic.lean

tactic: rw [ringConGen_eq]
state_before: α : Type u_1
R : Type u_2
inst✝¹ : Add R
inst✝ : Mul R
c d : RingCon R
⊢ c ⊔ d = ringConGen fun x y => c x y ∨ d x y
state_after: α : Type u_1
R : Type u_2
inst✝¹ : Add R
inst✝ : Mul R
c d : RingCon R
⊢ c ⊔ d = sInf {s | ∀ (x y : R), c x y ∨ d x y → s x y}

tactic: apply congr_arg sInf
state_before: α : Type u_1
R : Type u_2
inst✝¹ : Add R
inst✝ : Mul R
c d : RingCon R
⊢ c ⊔ d = sInf {s | ∀ (x y : R), c x y ∨ d x y → s x y}
state_after: α : Type u_1
R : Type u_2
inst✝¹ : Add R
inst✝ : Mul R
c d : RingCon R
⊢ {x | c ≤ x ∧ d ≤ x} = {s | ∀ (x y : R), c x y ∨ d x y → s x y}

tactic: simp only [le_def, or_imp, ← forall_and]
state_before: α : Type u_1
R : Type u_2
inst✝¹ : Add R
inst✝ : Mul R
c d : RingCon R
⊢ {x | c ≤ x ∧ d ≤ x} = {s | ∀ (x y : R), c x y ∨ d x y → s x y}
state_after: no goals
Theorem: AddCommGroup.not_modEq_iff_toIcoDiv_eq_toIocDiv
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [not_modEq_iff_toIcoMod_eq_toIocMod hp, toIcoMod, toIocMod, sub_right_inj,
  (zsmul_strictMono_left hp).injective.eq_iff]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
⊢ ¬a ≡ b [PMOD p] ↔ toIcoDiv hp a b = toIocDiv hp a b
state_after: no goals