tasksource/leandojo huggingface dataset:
Theorem: Metric.eventually_nhds_prod_iff
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: refine (nhds_basis_ball.prod f.basis_sets).eventually_iff.trans ?_
state_before: α✝ : Type u
β : Type v
X : Type ?u.91426
ι✝ : Type ?u.91429
inst✝¹ : PseudoMetricSpace α✝
x y z : α✝
δ ε ε₁ ε₂ : ℝ
s : Set α✝
ι : Type u_1
α : Type u_2
inst✝ : PseudoMetricSpace α
f : Filter ι
x₀ : α
p : α × ι → Prop
⊢ (∀ᶠ (x : α × ι) in 𝓝 x₀ ×ˢ f, p x) ↔
    ∃ ε, ε > 0 ∧ ∃ pa, (∀ᶠ (i : ι) in f, pa i) ∧ ∀ {x : α}, dist x x₀ < ε → ∀ {i : ι}, pa i → p (x, i)

tactic: simp only [Prod.exists, forall_prod_set, id, mem_ball, and_assoc, exists_and_left, and_imp]
state_before: α✝ : Type u
β : Type v
X : Type ?u.91426
ι✝ : Type ?u.91429
inst✝¹ : PseudoMetricSpace α✝
x y z : α✝
δ ε ε₁ ε₂ : ℝ
s : Set α✝
ι : Type u_1
α : Type u_2
inst✝ : PseudoMetricSpace α
f : Filter ι
x₀ : α
p : α × ι → Prop
⊢ (∃ i, (0 < i.fst ∧ i.snd ∈ f) ∧ ∀ ⦃x : α × ι⦄, x ∈ ball x₀ i.fst ×ˢ id i.snd → p x) ↔
    ∃ ε, ε > 0 ∧ ∃ pa, (∀ᶠ (i : ι) in f, pa i) ∧ ∀ {x : α}, dist x x₀ < ε → ∀ {i : ι}, pa i → p (x, i)

tactic: rfl
state_before: α✝ : Type u
β : Type v
X : Type ?u.91426
ι✝ : Type ?u.91429
inst✝¹ : PseudoMetricSpace α✝
x y z : α✝
δ ε ε₁ ε₂ : ℝ
s : Set α✝
ι : Type u_1
α : Type u_2
inst✝ : PseudoMetricSpace α
f : Filter ι
x₀ : α
p : α × ι → Prop
⊢ (∃ a, 0 < a ∧ ∃ x, x ∈ f ∧ ∀ (x_1 : α), dist x_1 x₀ < a → ∀ (y : ι), y ∈ x → p (x_1, y)) ↔
    ∃ ε, ε > 0 ∧ ∃ pa, (∀ᶠ (i : ι) in f, pa i) ∧ ∀ {x : α}, dist x x₀ < ε → ∀ {i : ι}, pa i → p (x, i)
Theorem: Multiset.count_eq_of_nodup
File: Mathlib/Data/Multiset/Nodup.lean

tactic: split_ifs with h
state_before: α : Type u_1
β : Type ?u.3481
γ : Type ?u.3484
r : α → α → Prop
s✝ t : Multiset α
a✝ : α
inst✝ : DecidableEq α
a : α
s : Multiset α
d : Nodup s
⊢ count a s = if a ∈ s then 1 else 0

tactic: exact count_eq_one_of_mem d h
state_before: case inl
α : Type u_1
β : Type ?u.3481
γ : Type ?u.3484
r : α → α → Prop
s✝ t : Multiset α
a✝ : α
inst✝ : DecidableEq α
a : α
s : Multiset α
d : Nodup s
h : a ∈ s
⊢ count a s = 1

tactic: exact count_eq_zero_of_not_mem h
state_before: case inr
α : Type u_1
β : Type ?u.3481
γ : Type ?u.3484
r : α → α → Prop
s✝ t : Multiset α
a✝ : α
inst✝ : DecidableEq α
a : α
s : Multiset α
d : Nodup s
h : ¬a ∈ s
⊢ count a s = 0
Theorem: MultilinearMap.map_zero
File: Mathlib/LinearAlgebra/Multilinear/Basic.lean

tactic: obtain ⟨i, _⟩ : ∃ i : ι, i ∈ Set.univ := Set.exists_mem_of_nonempty ι
state_before: R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : Nonempty ι
⊢ ↑f 0 = 0

tactic: exact map_coord_zero f i rfl
state_before: case intro
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : Nonempty ι
i : ι
h✝ : i ∈ univ
⊢ ↑f 0 = 0
Theorem: hasStrictFDerivAt_id
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

tactic: simp
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type ?u.564139
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.564234
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.564329
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
x : E
⊢ ∀ (x : E × E), 0 = _root_.id x.fst - _root_.id x.snd - ↑(ContinuousLinearMap.id 𝕜 E) (x.fst - x.snd)
Theorem: List.filter_eq_foldr
File: Mathlib/Data/List/Basic.lean

tactic: induction l <;> simp [*, filter]
state_before: ι : Type ?u.369991
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
p✝ p : α → Bool
l : List α
⊢ filter p l = foldr (fun a out => bif p a then a :: out else out) [] l

tactic: rfl
state_before: case cons
ι : Type ?u.369991
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
p✝ p : α → Bool
head✝ : α
tail✝ : List α
tail_ih✝ : filter p tail✝ = foldr (fun a out => bif p a then a :: out else out) [] tail✝
⊢ (match p head✝ with
    | true => head✝ :: foldr (fun a out => bif p a then a :: out else out) [] tail✝
    | false => foldr (fun a out => bif p a then a :: out else out) [] tail✝) =
    bif p head✝ then head✝ :: foldr (fun a out => bif p a then a :: out else out) [] tail✝
    else foldr (fun a out => bif p a then a :: out else out) [] tail✝
Theorem: aemeasurable_add_measure_iff
File: Mathlib/MeasureTheory/Measure/AEMeasurable.lean

tactic: rw [← sum_cond, aemeasurable_sum_measure_iff, Bool.forall_bool, and_comm]
state_before: ι : Type ?u.1320516
α : Type u_1
β : Type u_2
γ : Type ?u.1320525
δ : Type ?u.1320528
R : Type ?u.1320531
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
f g : α → β
μ ν : MeasureTheory.Measure α
⊢ AEMeasurable f ↔ AEMeasurable f ∧ AEMeasurable f

tactic: rfl
state_before: ι : Type ?u.1320516
α : Type u_1
β : Type u_2
γ : Type ?u.1320525
δ : Type ?u.1320528
R : Type ?u.1320531
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
f g : α → β
μ ν : MeasureTheory.Measure α
⊢ AEMeasurable f ∧ AEMeasurable f ↔ AEMeasurable f ∧ AEMeasurable f
Theorem: Finset.Ico_subset_Ico_iff
File: Mathlib/Data/Finset/LocallyFinite.lean

tactic: rw [← coe_subset, coe_Ico, coe_Ico, Set.Ico_subset_Ico_iff h]
state_before: ι : Type ?u.121361
α : Type u_1
inst✝¹ : LinearOrder α
inst✝ : LocallyFiniteOrder α
a b a₁ b₁ a₂ b₂ : α
h : a₁ < b₁
⊢ Ico a₁ b₁ ⊆ Ico a₂ b₂ ↔ a₂ ≤ a₁ ∧ b₁ ≤ b₂
Theorem: MeasureTheory.HasFiniteIntegral.neg
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simpa [HasFiniteIntegral] using hfi
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.724403
δ : Type ?u.724406
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
hfi : HasFiniteIntegral f
⊢ HasFiniteIntegral (-f)
Theorem: Submodule.prod_top
File: Mathlib/LinearAlgebra/Span.lean

tactic: ext
state_before: R : Type u_3
R₂ : Type ?u.249983
K : Type ?u.249986
M : Type u_1
M₂ : Type ?u.249992
V : Type ?u.249995
S : Type ?u.249998
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
s t : Set M
M' : Type u_2
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
q₁ q₁' : Submodule R M'
⊢ prod ⊤ ⊤ = ⊤

tactic: simp
state_before: case h
R : Type u_3
R₂ : Type ?u.249983
K : Type ?u.249986
M : Type u_1
M₂ : Type ?u.249992
V : Type ?u.249995
S : Type ?u.249998
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
s t : Set M
M' : Type u_2
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
q₁ q₁' : Submodule R M'
x✝ : M × M'
⊢ x✝ ∈ prod ⊤ ⊤ ↔ x✝ ∈ ⊤
Theorem: CategoryTheory.GradedObject.eqToHom_apply
File: Mathlib/CategoryTheory/GradedObject.lean

tactic: rw [h]
state_before: C : Type u
inst✝ : Category C
β : Type w
X Y : β → C
h : X = Y
b : β
⊢ X b = Y b

tactic: subst h
state_before: C : Type u
inst✝ : Category C
β : Type w
X Y : β → C
h : X = Y
b : β
⊢ eqToHom h b = eqToHom (_ : X b = Y b)

tactic: rfl
state_before: C : Type u
inst✝ : Category C
β : Type w
X : β → C
b : β
⊢ eqToHom (_ : X = X) b = eqToHom (_ : X b = X b)
Theorem: TrivSqZeroExt.hasSum_fst_expSeries
File: Mathlib/Analysis/NormedSpace/TrivSqZeroExt.lean

tactic: simpa [expSeries_apply_eq] using h
state_before: 𝕜 : Type u_1
R : Type u_2
M : Type u_3
inst✝¹⁵ : TopologicalSpace R
inst✝¹⁴ : TopologicalSpace M
inst✝¹³ : Field 𝕜
inst✝¹² : Ring R
inst✝¹¹ : AddCommGroup M
inst✝¹⁰ : Algebra 𝕜 R
inst✝⁹ : Module R M
inst✝⁸ : Module Rᵐᵒᵖ M
inst✝⁷ : SMulCommClass R Rᵐᵒᵖ M
inst✝⁶ : Module 𝕜 M
inst✝⁵ : IsScalarTower 𝕜 R M
inst✝⁴ : IsScalarTower 𝕜 Rᵐᵒᵖ M
inst✝³ : TopologicalRing R
inst✝² : TopologicalAddGroup M
inst✝¹ : ContinuousSMul R M
inst✝ : ContinuousSMul Rᵐᵒᵖ M
x : tsze R M
e : R
h : HasSum (fun n => ↑(expSeries 𝕜 R n) fun x_1 => fst x) e
⊢ HasSum (fun n => fst (↑(expSeries 𝕜 (tsze R M) n) fun x_1 => x)) e
Theorem: Complex.frontier_setOf_im_lt
File: Mathlib/Analysis/Complex/ReImTopology.lean

tactic: simpa only [frontier_Iio] using frontier_preimage_im (Iio a)
state_before: a : ℝ
⊢ frontier {z | z.im < a} = {z | z.im = a}
Theorem: Seminorm.closedBall_sup
File: Mathlib/Analysis/Seminorm.lean

tactic: simp_rw [closedBall, ← Set.setOf_and, coe_sup, Pi.sup_apply, sup_le_iff]
state_before: R : Type ?u.862790
R' : Type ?u.862793
𝕜 : Type u_1
𝕜₂ : Type ?u.862799
𝕜₃ : Type ?u.862802
𝕝 : Type ?u.862805
E : Type u_2
E₂ : Type ?u.862811
E₃ : Type ?u.862814
F : Type ?u.862817
G : Type ?u.862820
ι : Type ?u.862823
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p✝ : Seminorm 𝕜 E
x y : E
r✝ : ℝ
p q : Seminorm 𝕜 E
e : E
r : ℝ
⊢ closedBall (p ⊔ q) e r = closedBall p e r ∩ closedBall q e r
Theorem: Polynomial.content_C
File: Mathlib/RingTheory/Polynomial/Content.lean

tactic: rw [content]
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
r : R
⊢ content (↑C r) = ↑normalize r

tactic: by_cases h0 : r = 0
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
r : R
⊢ Finset.gcd (support (↑C r)) (coeff (↑C r)) = ↑normalize r

tactic: have h : (C r).support = {0} := support_monomial _ h0
state_before: case neg
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
r : R
h0 : ¬r = 0
⊢ Finset.gcd (support (↑C r)) (coeff (↑C r)) = ↑normalize r

tactic: simp [h]
state_before: case neg
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
r : R
h0 : ¬r = 0
h : support (↑C r) = {0}
⊢ Finset.gcd (support (↑C r)) (coeff (↑C r)) = ↑normalize r

tactic: simp [h0]
state_before: case pos
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
r : R
h0 : r = 0
⊢ Finset.gcd (support (↑C r)) (coeff (↑C r)) = ↑normalize r
Theorem: SemidirectProduct.map_comp_inr
File: Mathlib/GroupTheory/SemidirectProduct.lean

tactic: ext <;> simp [map]
state_before: N : Type u_4
G : Type u_1
H : Type ?u.270290
inst✝⁴ : Group N
inst✝³ : Group G
inst✝² : Group H
φ : G →* MulAut N
N₁ : Type u_2
G₁ : Type u_3
inst✝¹ : Group N₁
inst✝ : Group G₁
φ₁ : G₁ →* MulAut N₁
f₁ : N →* N₁
f₂ : G →* G₁
h : ∀ (g : G), MonoidHom.comp f₁ (MulEquiv.toMonoidHom (↑φ g)) = MonoidHom.comp (MulEquiv.toMonoidHom (↑φ₁ (↑f₂ g))) f₁
⊢ MonoidHom.comp (map f₁ f₂ h) inr = MonoidHom.comp inr f₂
Theorem: Finset.image₂_inter_subset_left
File: Mathlib/Data/Finset/NAry.lean

tactic: push_cast
state_before: α : Type u_1
α' : Type ?u.42795
β : Type u_3
β' : Type ?u.42801
γ : Type u_2
γ' : Type ?u.42807
δ : Type ?u.42810
δ' : Type ?u.42813
ε : Type ?u.42816
ε' : Type ?u.42819
ζ : Type ?u.42822
ζ' : Type ?u.42825
ν : Type ?u.42828
inst✝⁸ : DecidableEq α'
inst✝⁷ : DecidableEq β'
inst✝⁶ : DecidableEq γ
inst✝⁵ : DecidableEq γ'
inst✝⁴ : DecidableEq δ
inst✝³ : DecidableEq δ'
inst✝² : DecidableEq ε
inst✝¹ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝ : DecidableEq α
⊢ ↑(image₂ f (s ∩ s') t) ⊆ ↑(image₂ f s t ∩ image₂ f s' t)

tactic: exact image2_inter_subset_left
state_before: α : Type u_1
α' : Type ?u.42795
β : Type u_3
β' : Type ?u.42801
γ : Type u_2
γ' : Type ?u.42807
δ : Type ?u.42810
δ' : Type ?u.42813
ε : Type ?u.42816
ε' : Type ?u.42819
ζ : Type ?u.42822
ζ' : Type ?u.42825
ν : Type ?u.42828
inst✝⁸ : DecidableEq α'
inst✝⁷ : DecidableEq β'
inst✝⁶ : DecidableEq γ
inst✝⁵ : DecidableEq γ'
inst✝⁴ : DecidableEq δ
inst✝³ : DecidableEq δ'
inst✝² : DecidableEq ε
inst✝¹ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝ : DecidableEq α
⊢ image2 f (↑s ∩ ↑s') ↑t ⊆ image2 f ↑s ↑t ∩ image2 f ↑s' ↑t
Theorem: Partrec.nat_iff
File: Mathlib/Computability/Partrec.lean

tactic: simp [Partrec, map_id']
state_before: α : Type ?u.81753
β : Type ?u.81756
γ : Type ?u.81759
σ : Type ?u.81762
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
f : ℕ →. ℕ
⊢ Partrec f ↔ Nat.Partrec f
Theorem: CircleDeg1Lift.translationNumber_mul_of_commute
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: refine tendsto_nhds_unique ?_
  (f.tendsto_translationNumber_aux.add g.tendsto_translationNumber_aux)
state_before: f✝ g✝ f g : CircleDeg1Lift
h : Commute f g
⊢ τ (f * g) = τ f + τ g

tactic: simp only [transnumAuxSeq, ← add_div]
state_before: f✝ g✝ f g : CircleDeg1Lift
h : Commute f g
⊢ Tendsto (fun x => transnumAuxSeq f x + transnumAuxSeq g x) atTop (𝓝 (τ (f * g)))

tactic: refine (f * g).tendsto_translationNumber_of_dist_bounded_aux
  (fun n ↦ (f ^ n) 0 + (g ^ n) 0) 1 fun n ↦ ?_
state_before: f✝ g✝ f g : CircleDeg1Lift
h : Commute f g
⊢ Tendsto (fun x => (↑(f ^ 2 ^ x) 0 + ↑(g ^ 2 ^ x) 0) / 2 ^ x) atTop (𝓝 (τ (f * g)))

tactic: rw [h.mul_pow, dist_comm]
state_before: f✝ g✝ f g : CircleDeg1Lift
h : Commute f g
n : ℕ
⊢ dist (↑((f * g) ^ n) 0) ((fun n => ↑(f ^ n) 0 + ↑(g ^ n) 0) n) ≤ 1

tactic: exact le_of_lt ((f ^ n).dist_map_map_zero_lt (g ^ n))
state_before: f✝ g✝ f g : CircleDeg1Lift
h : Commute f g
n : ℕ
⊢ dist ((fun n => ↑(f ^ n) 0 + ↑(g ^ n) 0) n) (↑(f ^ n * g ^ n) 0) ≤ 1
Theorem: Nat.sum_range_choose
File: Mathlib/Data/Nat/Choose/Sum.lean

tactic: have := (add_pow 1 1 n).symm
state_before: R : Type ?u.145590
n : ℕ
⊢ ∑ m in range (n + 1), choose n m = 2 ^ n

tactic: simpa [one_add_one_eq_two] using this
state_before: R : Type ?u.145590
n : ℕ
this : ∑ m in range (n + 1), 1 ^ m * 1 ^ (n - m) * ↑(choose n m) = (1 + 1) ^ n
⊢ ∑ m in range (n + 1), choose n m = 2 ^ n
Theorem: Ordnode.balancedSz_up
File: Mathlib/Data/Ordmap/Ordset.lean

tactic: refine' or_iff_not_imp_left.2 fun h => _
state_before: α : Type ?u.9339
l r₁ r₂ : ℕ
h₁ : r₁ ≤ r₂
h₂ : l + r₂ ≤ 1 ∨ r₂ ≤ delta * l
H : BalancedSz l r₁
⊢ BalancedSz l r₂

tactic: refine' ⟨_, h₂.resolve_left h⟩
state_before: α : Type ?u.9339
l r₁ r₂ : ℕ
h₁ : r₁ ≤ r₂
h₂ : l + r₂ ≤ 1 ∨ r₂ ≤ delta * l
H : BalancedSz l r₁
h : ¬l + r₂ ≤ 1
⊢ l ≤ delta * r₂ ∧ r₂ ≤ delta * l

tactic: cases r₂
state_before: case inl
α : Type ?u.9339
l r₁ r₂ : ℕ
h₁ : r₁ ≤ r₂
h₂ : l + r₂ ≤ 1 ∨ r₂ ≤ delta * l
h : ¬l + r₂ ≤ 1
H : l + r₁ ≤ 1
⊢ l ≤ delta * r₂

tactic: cases h (le_trans (Nat.add_le_add_left (Nat.zero_le _) _) H)
state_before: case inl.zero
α : Type ?u.9339
l r₁ : ℕ
H : l + r₁ ≤ 1
h₁ : r₁ ≤ Nat.zero
h₂ : l + Nat.zero ≤ 1 ∨ Nat.zero ≤ delta * l
h : ¬l + Nat.zero ≤ 1
⊢ l ≤ delta * Nat.zero

tactic: exact le_trans (le_trans (Nat.le_add_right _ _) H) (Nat.le_add_left 1 _)
state_before: case inl.succ
α : Type ?u.9339
l r₁ : ℕ
H : l + r₁ ≤ 1
n✝ : ℕ
h₁ : r₁ ≤ Nat.succ n✝
h₂ : l + Nat.succ n✝ ≤ 1 ∨ Nat.succ n✝ ≤ delta * l
h : ¬l + Nat.succ n✝ ≤ 1
⊢ l ≤ delta * Nat.succ n✝

tactic: exact le_trans H.1 (Nat.mul_le_mul_left _ h₁)
state_before: case inr
α : Type ?u.9339
l r₁ r₂ : ℕ
h₁ : r₁ ≤ r₂
h₂ : l + r₂ ≤ 1 ∨ r₂ ≤ delta * l
h : ¬l + r₂ ≤ 1
H : l ≤ delta * r₁ ∧ r₁ ≤ delta * l
⊢ l ≤ delta * r₂
Theorem: padicNorm.padicNorm_p
File: Mathlib/NumberTheory/Padics/PadicNorm.lean

tactic: simp [padicNorm, (pos_of_gt hp).ne', padicValNat.self hp]
state_before: p : ℕ
hp : 1 < p
⊢ padicNorm p ↑p = (↑p)⁻¹
Theorem: PGame.zero_le_neg_iff
File: Mathlib/SetTheory/Game/PGame.lean

tactic: rw [le_neg_iff, neg_zero]
state_before: x : PGame
⊢ 0 ≤ -x ↔ x ≤ 0
Theorem: Real.add_one_lt_exp_of_pos
File: Mathlib/Data/Complex/Exponential.lean

tactic: nlinarith
state_before: x✝ y x : ℝ
hx : 0 < x
⊢ x + 1 < 1 + x + x ^ 2 / 2
Theorem: NormedField.exists_lt_norm
File: Mathlib/Analysis/Normed/Field/Basic.lean

tactic: rwa [norm_pow]
state_before: α : Type u_1
β : Type ?u.372611
γ : Type ?u.372614
ι : Type ?u.372617
inst✝ : NontriviallyNormedField α
r : ℝ
w : α
hw : 1 < ‖w‖
n : ℕ
hn : r < ‖w‖ ^ n
⊢ r < ‖w ^ n‖
Theorem: CategoryTheory.Abelian.comp_coimage_π_eq_zero
File: Mathlib/CategoryTheory/Abelian/Basic.lean

tactic: simp [h]
state_before: C : Type u
inst✝¹ : Category C
inst✝ : Abelian C
P Q : C
f : P ⟶ Q
R : C
g : Q ⟶ R
h : f ≫ g = 0
⊢ (f ≫ coimage.π g) ≫ Abelian.factorThruCoimage g = 0
Theorem: Nat.mul_div_cancel_left'
File: Mathlib/Data/Nat/Basic.lean

tactic: rw [mul_comm, Nat.div_mul_cancel Hd]
state_before: m n k a b : ℕ
Hd : a ∣ b
⊢ a * (b / a) = b
Theorem: MvPolynomial.mapRange_eq_map
File: Mathlib/RingTheory/MvPolynomial/Basic.lean

tactic: change Finsupp.mapRange (f : R →+ S) (f : R →+ S).map_zero p = map f p
state_before: σ : Type u
R✝ : Type v
inst✝² : CommRing R✝
p✝ m : ℕ
R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
p : MvPolynomial σ R
f : R →+* S
⊢ Finsupp.mapRange ↑f (_ : ↑f 0 = 0) p = ↑(map f) p

tactic: rw [p.as_sum, Finsupp.mapRange_finset_sum, (map f).map_sum]
state_before: σ : Type u
R✝ : Type v
inst✝² : CommRing R✝
p✝ m : ℕ
R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
p : MvPolynomial σ R
f : R →+* S
⊢ Finsupp.mapRange ↑↑f (_ : ↑↑f 0 = 0) p = ↑(map f) p

tactic: refine' Finset.sum_congr rfl fun n _ => _
state_before: σ : Type u
R✝ : Type v
inst✝² : CommRing R✝
p✝ m : ℕ
R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
p : MvPolynomial σ R
f : R →+* S
⊢ ∑ x in support p, Finsupp.mapRange ↑↑f (_ : ↑↑f 0 = 0) (↑(monomial x) (coeff x p)) =
    ∑ x in support p, ↑(map f) (↑(monomial x) (coeff x p))

tactic: rw [map_monomial, ← single_eq_monomial, Finsupp.mapRange_single, single_eq_monomial]
state_before: σ : Type u
R✝ : Type v
inst✝² : CommRing R✝
p✝ m : ℕ
R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
p : MvPolynomial σ R
f : R →+* S
n : σ →₀ ℕ
x✝ : n ∈ support p
⊢ Finsupp.mapRange ↑↑f (_ : ↑↑f 0 = 0) (↑(monomial n) (coeff n p)) = ↑(map f) (↑(monomial n) (coeff n p))

tactic: simp_all only [AddMonoidHom.coe_coe]
state_before: σ : Type u
R✝ : Type v
inst✝² : CommRing R✝
p✝ m : ℕ
R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
p : MvPolynomial σ R
f : R →+* S
n : σ →₀ ℕ
x✝ : n ∈ support p
⊢ ↑(monomial n) (↑↑f (coeff n p)) = ↑(monomial n) (↑f (coeff n p))
Theorem: CategoryTheory.Limits.biproduct.isoCoproduct_hom
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

tactic: simp [← Iso.eq_comp_inv]
state_before: J : Type w
C : Type u
inst✝² : Category C
inst✝¹ : HasZeroMorphisms C
f : J → C
inst✝ : HasBiproduct f
j : J
⊢ ι f j ≫ (isoCoproduct f).hom = ι f j ≫ desc (Sigma.ι f)
Theorem: PNat.one_add_natPred
File: Mathlib/Data/PNat/Basic.lean

tactic: rw [natPred, add_tsub_cancel_iff_le.mpr <| show 1 ≤ (n : ℕ) from n.2]
state_before: n : ℕ+
⊢ 1 + natPred n = ↑n
Theorem: inner_matrix_row_row
File: Mathlib/Analysis/InnerProductSpace/PiL2.lean

tactic: simp_rw [EuclideanSpace.inner_piLp_equiv_symm, Matrix.mul_apply', Matrix.dotProduct_comm,
  Matrix.conjTranspose_apply, Pi.star_def]
state_before: ι : Type ?u.1855701
ι' : Type ?u.1855704
𝕜 : Type u_3
inst✝¹⁰ : IsROrC 𝕜
E : Type ?u.1855713
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : InnerProductSpace 𝕜 E
E' : Type ?u.1855733
inst✝⁷ : NormedAddCommGroup E'
inst✝⁶ : InnerProductSpace 𝕜 E'
F : Type ?u.1855751
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace ℝ F
F' : Type ?u.1855771
inst✝³ : NormedAddCommGroup F'
inst✝² : InnerProductSpace ℝ F'
inst✝¹ : Fintype ι
m : Type u_2
n : Type u_1
inst✝ : Fintype n
A B : Matrix m n 𝕜
i j : m
⊢ inner (↑(PiLp.equiv 2 fun i => 𝕜).symm (A i)) (↑(PiLp.equiv 2 fun i => 𝕜).symm (B j)) = (B ⬝ Aᴴ) j i
Theorem: Pell.dz_val
File: Mathlib/NumberTheory/PellMatiyasevic.lean

tactic: rw [Pell.d, Int.ofNat_sub this]
state_before: a : ℕ
a1 : 1 < a
this : 1 ≤ a * a
⊢ ↑(Pell.d a1) = az a * az a - 1

tactic: rfl
state_before: a : ℕ
a1 : 1 < a
this : 1 ≤ a * a
⊢ ↑(a * a) - ↑1 = az a * az a - 1
Theorem: ContDiff.div
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: simp only [contDiff_iff_contDiffAt] at *
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D : Type uD
inst✝¹⁵ : NormedAddCommGroup D
inst✝¹⁴ : NormedSpace 𝕜 D
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type ?u.2683629
inst✝⁷ : NormedAddCommGroup X
inst✝⁶ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
R : Type ?u.2687107
inst✝⁵ : NormedRing R
inst✝⁴ : NormedAlgebra 𝕜 R
𝕜' : Type ?u.2687176
inst✝³ : NormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : CompleteSpace 𝕜'
inst✝ : CompleteSpace 𝕜
f g : E → 𝕜
n : ℕ∞
hf : ContDiff 𝕜 n f
hg : ContDiff 𝕜 n g
h0 : ∀ (x : E), g x ≠ 0
⊢ ContDiff 𝕜 n fun x => f x / g x

tactic: exact fun x => (hf x).div (hg x) (h0 x)
state_before: 𝕜 : Type u_1
inst✝¹⁶ : NontriviallyNormedField 𝕜
D : Type uD
inst✝¹⁵ : NormedAddCommGroup D
inst✝¹⁴ : NormedSpace 𝕜 D
E : Type uE
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
F : Type uF
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
G : Type uG
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedSpace 𝕜 G
X : Type ?u.2683629
inst✝⁷ : NormedAddCommGroup X
inst✝⁶ : NormedSpace 𝕜 X
s s₁ t u : Set E
f✝ f₁ : E → F
g✝ : F → G
x x₀ : E
c : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
R : Type ?u.2687107
inst✝⁵ : NormedRing R
inst✝⁴ : NormedAlgebra 𝕜 R
𝕜' : Type ?u.2687176
inst✝³ : NormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : CompleteSpace 𝕜'
inst✝ : CompleteSpace 𝕜
f g : E → 𝕜
n : ℕ∞
h0 : ∀ (x : E), g x ≠ 0
hf : ∀ (x : E), ContDiffAt 𝕜 n f x
hg : ∀ (x : E), ContDiffAt 𝕜 n g x
⊢ ∀ (x : E), ContDiffAt 𝕜 n (fun x => f x / g x) x
Theorem: FiniteField.pow_card_pow
File: Mathlib/FieldTheory/Finite/Basic.lean

tactic: induction' n with n ih
state_before: K : Type u_1
R : Type ?u.348147
inst✝¹ : GroupWithZero K
inst✝ : Fintype K
n : ℕ
a : K
⊢ a ^ q ^ n = a

tactic: simp
state_before: case zero
K : Type u_1
R : Type ?u.348147
inst✝¹ : GroupWithZero K
inst✝ : Fintype K
a : K
⊢ a ^ q ^ Nat.zero = a

tactic: simp [pow_succ, pow_mul, ih, pow_card]
state_before: case succ
K : Type u_1
R : Type ?u.348147
inst✝¹ : GroupWithZero K
inst✝ : Fintype K
a : K
n : ℕ
ih : a ^ q ^ n = a
⊢ a ^ q ^ Nat.succ n = a
Theorem: Polynomial.nonempty_support_iff
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: rw [Ne.def, nonempty_iff_ne_empty, Ne.def, ← support_eq_empty]
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p q r : R[X]
⊢ Finset.Nonempty (support p) ↔ p ≠ 0
Theorem: Complex.tan_eq_zero_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean

tactic: have h := (sin_two_mul θ).symm
state_before: θ : ℂ
⊢ tan θ = 0 ↔ ∃ k, θ = ↑k * ↑π / 2

tactic: rw [mul_assoc] at h
state_before: θ : ℂ
h : 2 * sin θ * cos θ = sin (2 * θ)
⊢ tan θ = 0 ↔ ∃ k, θ = ↑k * ↑π / 2

tactic: rw [tan, div_eq_zero_iff, ← mul_eq_zero, ← MulZeroClass.zero_mul (1 / 2 : ℂ), mul_one_div,
  CancelDenoms.cancel_factors_eq_div h two_ne_zero, mul_comm]
state_before: θ : ℂ
h : 2 * (sin θ * cos θ) = sin (2 * θ)
⊢ tan θ = 0 ↔ ∃ k, θ = ↑k * ↑π / 2

tactic: simpa only [zero_div, MulZeroClass.zero_mul, Ne.def, not_false_iff, field_simps] using
  sin_eq_zero_iff
state_before: θ : ℂ
h : 2 * (sin θ * cos θ) = sin (2 * θ)
⊢ sin (θ * 2) / 2 = 0 / 2 ↔ ∃ k, θ = ↑k * ↑π / 2