tasksource/leandojo huggingface dataset:
Theorem: EMetric.tendsto_nhdsWithin_nhds
File: Mathlib/Topology/MetricSpace/EMetricSpace.lean

tactic: rw [← nhdsWithin_univ b, tendsto_nhdsWithin_nhdsWithin]
state_before: α : Type u
β : Type v
X : Type ?u.207501
inst✝¹ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s t : Set α
inst✝ : PseudoEMetricSpace β
f : α → β
a : α
b : β
⊢ Tendsto f (𝓝[s] a) (𝓝 b) ↔ ∀ (ε : ℝ≥0∞), ε > 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.207501
inst✝¹ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s t : Set α
inst✝ : PseudoEMetricSpace β
f : α → β
a : α
b : β
⊢ (∀ (ε : ℝ≥0∞), ε > 0 → ∃ δ, δ > 0 ∧ ∀ ⦃x : α⦄, x ∈ s → edist x a < δ → f x ∈ univ ∧ edist (f x) b < ε) ↔
    ∀ (ε : ℝ≥0∞), ε > 0 → ∃ δ, δ > 0 ∧ ∀ {x : α}, x ∈ s → edist x a < δ → edist (f x) b < ε
Theorem: CauSeq.one_not_equiv_zero
File: Mathlib/Data/Real/CauSeq.lean

tactic: simpa using hi _ le_rfl
state_before: α : Type u_2
β : Type u_1
inst✝³ : LinearOrderedField α
inst✝² : Ring β
inst✝¹ : IsDomain β
abv : β → α
inst✝ : IsAbsoluteValue abv
h : const abv 1 ≈ const abv 0
this : ∀ (ε : α), ε > 0 → ∃ i, ∀ (k : ℕ), i ≤ k → abv (1 - 0) < ε
h2 : 0 < abv 1
i : ℕ
hi : ∀ (k : ℕ), i ≤ k → abv (1 - 0) < abv 1
⊢ abv 1 < abv 1
Theorem: CategoryTheory.Limits.HasZeroObject.zeroIsoIsInitial_hom
File: Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean

tactic: ext
state_before: C : Type u
inst✝³ : Category C
D : Type u'
inst✝² : Category D
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
X : C
t : IsInitial X
⊢ (zeroIsoIsInitial t).hom = 0
Theorem: mul_comm_div
File: Mathlib/Algebra/Group/Basic.lean

tactic: simp
state_before: α : Type u_1
β : Type ?u.40920
G : Type ?u.40923
inst✝ : DivisionCommMonoid α
a b c d : α
⊢ a / b * c = a * (c / b)
Theorem: AffineMap.homothety_one
File: Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean

tactic: ext p
state_before: R : Type ?u.804324
k : Type u_3
V1 : Type u_1
P1 : Type u_2
V2 : Type ?u.804336
inst✝⁵ : CommRing k
inst✝⁴ : AddCommGroup V1
inst✝³ : AffineSpace V1 P1
inst✝² : AddCommGroup V2
inst✝¹ : Module k V1
inst✝ : Module k V2
c : P1
⊢ homothety c 1 = id k P1

tactic: simp [homothety_apply]
state_before: case h
R : Type ?u.804324
k : Type u_3
V1 : Type u_1
P1 : Type u_2
V2 : Type ?u.804336
inst✝⁵ : CommRing k
inst✝⁴ : AddCommGroup V1
inst✝³ : AffineSpace V1 P1
inst✝² : AddCommGroup V2
inst✝¹ : Module k V1
inst✝ : Module k V2
c p : P1
⊢ ↑(homothety c 1) p = ↑(id k P1) p
Theorem: Tuple.sort_eq_refl_iff_monotone
File: Mathlib/Data/Fin/Tuple/Sort.lean

tactic: rw [eq_comm, eq_sort_iff, Equiv.coe_refl, Function.comp.right_id]
state_before: n : ℕ
α : Type u_1
inst✝ : LinearOrder α
f : Fin n → α
σ : Equiv.Perm (Fin n)
⊢ sort f = Equiv.refl (Fin n) ↔ Monotone f

tactic: simp only [id.def, and_iff_left_iff_imp]
state_before: n : ℕ
α : Type u_1
inst✝ : LinearOrder α
f : Fin n → α
σ : Equiv.Perm (Fin n)
⊢ (Monotone f ∧ ∀ (i j : Fin n), i < j → f (id i) = f (id j) → id i < id j) ↔ Monotone f

tactic: exact fun _ _ _ hij _ => hij
state_before: n : ℕ
α : Type u_1
inst✝ : LinearOrder α
f : Fin n → α
σ : Equiv.Perm (Fin n)
⊢ Monotone f → ∀ (i j : Fin n), i < j → f i = f j → i < j
Theorem: List.length_zipWith
File: Std/Data/List/Lemmas.lean

tactic: induction l₁ generalizing l₂ <;> cases l₂ <;>
  simp_all [add_one, min_succ_succ, Nat.zero_min, Nat.min_zero]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β → γ
l₁ : List α
l₂ : List β
⊢ length (zipWith f l₁ l₂) = min (length l₁) (length l₂)
Theorem: CategoryTheory.Limits.biproduct.ι_π_ne
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

tactic: simp [biproduct.ι_π, h]
state_before: J : Type w
C : Type u
inst✝² : Category C
inst✝¹ : HasZeroMorphisms C
f : J → C
inst✝ : HasBiproduct f
j j' : J
h : j ≠ j'
⊢ ι f j ≫ π f j' = 0
Theorem: Finset.inter_sdiff
File: Mathlib/Data/Finset/Basic.lean

tactic: ext x
state_before: α : Type u_1
β : Type ?u.224919
γ : Type ?u.224922
inst✝ : DecidableEq α
s✝ t✝ u✝ v : Finset α
a b : α
s t u : Finset α
⊢ s ∩ (t \ u) = (s ∩ t) \ u

tactic: simp [and_assoc]
state_before: case a
α : Type u_1
β : Type ?u.224919
γ : Type ?u.224922
inst✝ : DecidableEq α
s✝ t✝ u✝ v : Finset α
a b : α
s t u : Finset α
x : α
⊢ x ∈ s ∩ (t \ u) ↔ x ∈ (s ∩ t) \ u
Theorem: ContinuousLinearMap.map_smul₂
File: Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean

tactic: rw [f.map_smul, smul_apply]
state_before: 𝕜 : Type u_1
inst✝¹³ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace 𝕜 E
F : Type u_4
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
G : Type u_3
inst✝⁸ : NormedAddCommGroup G
inst✝⁷ : NormedSpace 𝕜 G
R : Type ?u.242967
𝕜₂ : Type ?u.242970
𝕜' : Type ?u.242973
inst✝⁶ : NontriviallyNormedField 𝕜'
inst✝⁵ : NontriviallyNormedField 𝕜₂
M : Type ?u.242982
inst✝⁴ : TopologicalSpace M
σ₁₂ : 𝕜 →+* 𝕜₂
G' : Type ?u.243329
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace 𝕜₂ G'
inst✝¹ : NormedSpace 𝕜' G'
inst✝ : SMulCommClass 𝕜₂ 𝕜' G'
f : E →L[𝕜] F →L[𝕜] G
c : 𝕜
x : E
y : F
⊢ ↑(↑f (c • x)) y = c • ↑(↑f x) y
Theorem: AffineSubspace.sSameSide_comm
File: Mathlib/Analysis/Convex/Side.lean

tactic: rw [SSameSide, SSameSide, wSameSide_comm, and_comm (b := x ∉ s)]
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.86416
P : Type u_3
P' : Type ?u.86422
inst✝⁶ : StrictOrderedCommRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
⊢ SSameSide s x y ↔ SSameSide s y x
Theorem: Real.rpow_le_one_of_one_le_of_nonpos
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: convert rpow_le_rpow_of_exponent_le hx hz
state_before: x✝ y z✝ x z : ℝ
hx : 1 ≤ x
hz : z ≤ 0
⊢ x ^ z ≤ 1

tactic: exact (rpow_zero x).symm
state_before: case h.e'_4
x✝ y z✝ x z : ℝ
hx : 1 ≤ x
hz : z ≤ 0
⊢ 1 = x ^ 0
Theorem: Real.toNNReal_lt_iff_lt_coe
File: Mathlib/Data/Real/NNReal.lean

tactic: rw [← NNReal.coe_lt_coe, Real.coe_toNNReal r ha]
state_before: r : ℝ
p : ℝ≥0
ha : 0 ≤ r
⊢ toNNReal r < p ↔ r < ↑p
Theorem: Polynomial.natDegree_derivative_le
File: Mathlib/Data/Polynomial/Derivative.lean

tactic: by_cases p0 : p.natDegree = 0
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Semiring R
p : R[X]
⊢ natDegree (↑derivative p) ≤ natDegree p - 1

tactic: simp [p0, derivative_of_natDegree_zero]
state_before: case pos
R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Semiring R
p : R[X]
p0 : natDegree p = 0
⊢ natDegree (↑derivative p) ≤ natDegree p - 1

tactic: exact Nat.le_pred_of_lt (natDegree_derivative_lt p0)
state_before: case neg
R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Semiring R
p : R[X]
p0 : ¬natDegree p = 0
⊢ natDegree (↑derivative p) ≤ natDegree p - 1
Theorem: Real.log_lt_iff_lt_exp
File: Mathlib/Analysis/SpecialFunctions/Log/Basic.lean

tactic: rw [← exp_lt_exp, exp_log hx]
state_before: x y : ℝ
hx : 0 < x
⊢ log x < y ↔ x < exp y
Theorem: Real.cauchy_mul
File: Mathlib/Data/Real/Basic.lean

tactic: rw [mul_def]
state_before: x y : ℝ
a b : Cauchy abs
⊢ (Real.mul { cauchy := a } { cauchy := b }).cauchy = { cauchy := a }.cauchy * { cauchy := b }.cauchy
Theorem: tsum_comp_le_tsum_of_inj
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: lift f to α → ℝ≥0 using hn
state_before: α : Type u_2
β✝ : Type ?u.339127
γ : Type ?u.339130
β : Type u_1
f : α → ℝ
hf : Summable f
hn : ∀ (a : α), 0 ≤ f a
i : β → α
hi : Injective i
⊢ tsum (f ∘ i) ≤ tsum f

tactic: rw [NNReal.summable_coe] at hf
state_before: case intro
α : Type u_2
β✝ : Type ?u.339127
γ : Type ?u.339130
β : Type u_1
i : β → α
hi : Injective i
f : α → ℝ≥0
hf : Summable fun i => ↑(f i)
⊢ tsum ((fun i => ↑(f i)) ∘ i) ≤ ∑' (i : α), ↑(f i)
Theorem: Filter.Tendsto.atBot_mul
File: Mathlib/Topology/Algebra/Order/Field.lean

tactic: have := (tendsto_neg_atBot_atTop.comp hf).atTop_mul hC hg
state_before: 𝕜 : Type u_1
α : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
l : Filter α
f g : α → 𝕜
C : 𝕜
hC : 0 < C
hf : Tendsto f l atBot
hg : Tendsto g l (𝓝 C)
⊢ Tendsto (fun x => f x * g x) l atBot
Theorem: frontier_inter_open_inter
File: Mathlib/Topology/ContinuousOn.lean

tactic: simp only [← Subtype.preimage_coe_eq_preimage_coe_iff,
  ht.isOpenMap_subtype_val.preimage_frontier_eq_frontier_preimage continuous_subtype_val,
  Subtype.preimage_coe_inter_self]
state_before: α : Type u_1
β : Type ?u.400653
γ : Type ?u.400656
δ : Type ?u.400659
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
s t : Set α
ht : IsOpen t
⊢ frontier (s ∩ t) ∩ t = frontier s ∩ t
Theorem: Multiset.cons_subset
File: Mathlib/Data/Multiset/Basic.lean

tactic: simp [subset_iff, or_imp, forall_and]
state_before: α : Type u_1
β : Type ?u.28283
γ : Type ?u.28286
a : α
s t : Multiset α
⊢ a ::ₘ s ⊆ t ↔ a ∈ t ∧ s ⊆ t
Theorem: LocalHomeomorph.extend_coord_change_source_mem_nhdsWithin
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rw [f.extend_coord_change_source] at hx ⊢
state_before: 𝕜 : Type u_3
E : Type u_1
M : Type u_2
H : Type u_4
E' : Type ?u.171224
M' : Type ?u.171227
H' : Type ?u.171230
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : LocalHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
x✝ : M
s t : Set M
x : E
hx : x ∈ (LocalEquiv.symm (extend f I) ≫ extend f' I).source
⊢ (LocalEquiv.symm (extend f I) ≫ extend f' I).source ∈ 𝓝[range ↑I] x

tactic: obtain ⟨x, hx, rfl⟩ := hx
state_before: 𝕜 : Type u_3
E : Type u_1
M : Type u_2
H : Type u_4
E' : Type ?u.171224
M' : Type ?u.171227
H' : Type ?u.171230
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : LocalHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
x✝ : M
s t : Set M
x : E
hx : x ∈ ↑I '' (LocalHomeomorph.symm f ≫ₕ f').toLocalEquiv.source
⊢ ↑I '' (LocalHomeomorph.symm f ≫ₕ f').toLocalEquiv.source ∈ 𝓝[range ↑I] x

tactic: refine' I.image_mem_nhdsWithin _
state_before: case intro.intro
𝕜 : Type u_3
E : Type u_1
M : Type u_2
H : Type u_4
E' : Type ?u.171224
M' : Type ?u.171227
H' : Type ?u.171230
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : LocalHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
x✝ : M
s t : Set M
x : H
hx : x ∈ (LocalHomeomorph.symm f ≫ₕ f').toLocalEquiv.source
⊢ ↑I '' (LocalHomeomorph.symm f ≫ₕ f').toLocalEquiv.source ∈ 𝓝[range ↑I] ↑I x

tactic: refine' (LocalHomeomorph.open_source _).mem_nhds hx
state_before: case intro.intro
𝕜 : Type u_3
E : Type u_1
M : Type u_2
H : Type u_4
E' : Type ?u.171224
M' : Type ?u.171227
H' : Type ?u.171230
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : LocalHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
x✝ : M
s t : Set M
x : H
hx : x ∈ (LocalHomeomorph.symm f ≫ₕ f').toLocalEquiv.source
⊢ (LocalHomeomorph.symm f ≫ₕ f').toLocalEquiv.source ∈ 𝓝 x
Theorem: Filter.frequently_or_distrib
File: Mathlib/Order/Filter/Basic.lean

tactic: simp only [Filter.Frequently, ← not_and_or, not_or, eventually_and]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.163984
ι : Sort x
f : Filter α
p q : α → Prop
⊢ (∃ᶠ (x : α) in f, p x ∨ q x) ↔ (∃ᶠ (x : α) in f, p x) ∨ ∃ᶠ (x : α) in f, q x
Theorem: Finset.map_subtype_embedding_Ioo
File: Mathlib/Order/LocallyFinite.lean

tactic: rw [subtype_Ioo_eq]
state_before: α : Type u_1
β : Type ?u.221543
inst✝² : Preorder α
p : α → Prop
inst✝¹ : DecidablePred p
inst✝ : LocallyFiniteOrder α
a b : Subtype p
hp : ∀ ⦃a b x : α⦄, a ≤ x → x ≤ b → p a → p b → p x
⊢ map (Embedding.subtype p) (Ioo a b) = Ioo ↑a ↑b

tactic: refine' Finset.subtype_map_of_mem fun x hx => _
state_before: α : Type u_1
β : Type ?u.221543
inst✝² : Preorder α
p : α → Prop
inst✝¹ : DecidablePred p
inst✝ : LocallyFiniteOrder α
a b : Subtype p
hp : ∀ ⦃a b x : α⦄, a ≤ x → x ≤ b → p a → p b → p x
⊢ map (Embedding.subtype p) (Finset.subtype p (Ioo ↑a ↑b)) = Ioo ↑a ↑b

tactic: rw [mem_Ioo] at hx
state_before: α : Type u_1
β : Type ?u.221543
inst✝² : Preorder α
p : α → Prop
inst✝¹ : DecidablePred p
inst✝ : LocallyFiniteOrder α
a b : Subtype p
hp : ∀ ⦃a b x : α⦄, a ≤ x → x ≤ b → p a → p b → p x
x : α
hx : x ∈ Ioo ↑a ↑b
⊢ p x

tactic: exact hp hx.1.le hx.2.le a.prop b.prop
state_before: α : Type u_1
β : Type ?u.221543
inst✝² : Preorder α
p : α → Prop
inst✝¹ : DecidablePred p
inst✝ : LocallyFiniteOrder α
a b : Subtype p
hp : ∀ ⦃a b x : α⦄, a ≤ x → x ≤ b → p a → p b → p x
x : α
hx : ↑a < x ∧ x < ↑b
⊢ p x
Theorem: MvPolynomial.weightedHomogeneousComponent_eq_zero
File: Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean

tactic: classical
rw [weightedHomogeneousComponent_apply, sum_eq_zero]
intro d hd
rw [Finset.mem_filter] at hd
exfalso
apply lt_irrefl n
nth_rw 1 [← hd.2]
exact lt_of_le_of_lt (le_weightedTotalDegree w hd.1) h
state_before: R : Type u_2
M : Type u_1
inst✝³ : CommSemiring R
σ : Type u_3
inst✝² : AddCommMonoid M
w : σ → M
n : M
φ ψ : MvPolynomial σ R
inst✝¹ : SemilatticeSup M
inst✝ : OrderBot M
h : weightedTotalDegree w φ < n
⊢ ↑(weightedHomogeneousComponent w n) φ = 0

tactic: rw [weightedHomogeneousComponent_apply, sum_eq_zero]
state_before: R : Type u_2
M : Type u_1
inst✝³ : CommSemiring R
σ : Type u_3
inst✝² : AddCommMonoid M
w : σ → M
n : M
φ ψ : MvPolynomial σ R
inst✝¹ : SemilatticeSup M
inst✝ : OrderBot M
h : weightedTotalDegree w φ < n
⊢ ↑(weightedHomogeneousComponent w n) φ = 0

tactic: intro d hd
state_before: R : Type u_2
M : Type u_1
inst✝³ : CommSemiring R
σ : Type u_3
inst✝² : AddCommMonoid M
w : σ → M
n : M
φ ψ : MvPolynomial σ R
inst✝¹ : SemilatticeSup M
inst✝ : OrderBot M
h : weightedTotalDegree w φ < n
⊢ ∀ (x : σ →₀ ℕ), x ∈ Finset.filter (fun d => ↑(weightedDegree' w) d = n) (support φ) → ↑(monomial x) (coeff x φ) = 0

tactic: rw [Finset.mem_filter] at hd
state_before: R : Type u_2
M : Type u_1
inst✝³ : CommSemiring R
σ : Type u_3
inst✝² : AddCommMonoid M
w : σ → M
n : M
φ ψ : MvPolynomial σ R
inst✝¹ : SemilatticeSup M
inst✝ : OrderBot M
h : weightedTotalDegree w φ < n
d : σ →₀ ℕ
hd : d ∈ Finset.filter (fun d => ↑(weightedDegree' w) d = n) (support φ)
⊢ ↑(monomial d) (coeff d φ) = 0

tactic: exfalso
state_before: R : Type u_2
M : Type u_1
inst✝³ : CommSemiring R
σ : Type u_3
inst✝² : AddCommMonoid M
w : σ → M
n : M
φ ψ : MvPolynomial σ R
inst✝¹ : SemilatticeSup M
inst✝ : OrderBot M
h : weightedTotalDegree w φ < n
d : σ →₀ ℕ
hd : d ∈ support φ ∧ ↑(weightedDegree' w) d = n
⊢ ↑(monomial d) (coeff d φ) = 0

tactic: apply lt_irrefl n
state_before: case h
R : Type u_2
M : Type u_1
inst✝³ : CommSemiring R
σ : Type u_3
inst✝² : AddCommMonoid M
w : σ → M
n : M
φ ψ : MvPolynomial σ R
inst✝¹ : SemilatticeSup M
inst✝ : OrderBot M
h : weightedTotalDegree w φ < n
d : σ →₀ ℕ
hd : d ∈ support φ ∧ ↑(weightedDegree' w) d = n
⊢ False

tactic: nth_rw 1 [← hd.2]
state_before: case h
R : Type u_2
M : Type u_1
inst✝³ : CommSemiring R
σ : Type u_3
inst✝² : AddCommMonoid M
w : σ → M
n : M
φ ψ : MvPolynomial σ R
inst✝¹ : SemilatticeSup M
inst✝ : OrderBot M
h : weightedTotalDegree w φ < n
d : σ →₀ ℕ
hd : d ∈ support φ ∧ ↑(weightedDegree' w) d = n
⊢ n < n

tactic: exact lt_of_le_of_lt (le_weightedTotalDegree w hd.1) h
state_before: case h
R : Type u_2
M : Type u_1
inst✝³ : CommSemiring R
σ : Type u_3
inst✝² : AddCommMonoid M
w : σ → M
n : M
φ ψ : MvPolynomial σ R
inst✝¹ : SemilatticeSup M
inst✝ : OrderBot M
h : weightedTotalDegree w φ < n
d : σ →₀ ℕ
hd : d ∈ support φ ∧ ↑(weightedDegree' w) d = n
⊢ ↑(weightedDegree' w) d < n
Theorem: Real.arsinh_nonneg_iff
File: Mathlib/Analysis/SpecialFunctions/Arsinh.lean

tactic: rw [← sinh_le_sinh, sinh_zero, sinh_arsinh]
state_before: x y : ℝ
⊢ 0 ≤ arsinh x ↔ 0 ≤ x
Theorem: divp_eq_one_iff_eq
File: Mathlib/Algebra/Group/Units.lean

tactic: rw [divp_mul_cancel, one_mul]
state_before: α : Type u
inst✝ : Monoid α
a✝ b c a : α
u : αˣ
⊢ a /ₚ u * ↑u = 1 * ↑u ↔ a = ↑u
Theorem: Affine.Simplex.range_face_points
File: Mathlib/LinearAlgebra/AffineSpace/Independent.lean

tactic: rw [face_points', Set.range_comp, Finset.range_orderEmbOfFin]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
n : ℕ
s : Simplex k P n
fs : Finset (Fin (n + 1))
m : ℕ
h : Finset.card fs = m + 1
⊢ Set.range (face s h).points = s.points '' ↑fs
Theorem: uniformContinuous_monoidHom_of_continuous
File: Mathlib/Topology/Algebra/UniformGroup.lean

tactic: rwa [map_one] at this
state_before: α : Type u_3
β : Type u_2
inst✝⁶ : UniformSpace α
inst✝⁵ : Group α
inst✝⁴ : UniformGroup α
hom : Type u_1
inst✝³ : UniformSpace β
inst✝² : Group β
inst✝¹ : UniformGroup β
inst✝ : MonoidHomClass hom α β
f : hom
h : Continuous ↑f
this : Tendsto (↑f) (𝓝 1) (𝓝 (↑f 1))
⊢ Tendsto (↑f) (𝓝 1) (𝓝 1)
Theorem: HasDerivAt.eventually_ne
File: Mathlib/Analysis/Calculus/Deriv/Inverse.lean

tactic: field_simp [norm_smul, mt norm_eq_zero.1 hf']
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 𝕜
h : HasDerivAt f f' x
hf' : f' ≠ 0
z : 𝕜
⊢ ‖z‖ ≤ ‖f'‖⁻¹ * ‖↑(ContinuousLinearMap.smulRight 1 f') z‖
Theorem: Ideal.FG.map
File: Mathlib/RingTheory/Finiteness.lean

tactic: classical
  obtain ⟨s, hs⟩ := h
  refine' ⟨s.image f, _⟩
  rw [Finset.coe_image, ← Ideal.map_span, hs]
state_before: R✝ : Type ?u.327753
M : Type ?u.327756
inst✝⁴ : Semiring R✝
inst✝³ : AddCommMonoid M
inst✝² : Module R✝ M
R : Type u_1
S : Type u_2
inst✝¹ : Semiring R
inst✝ : Semiring S
I : Ideal R
h : FG I
f : R →+* S
⊢ FG (Ideal.map f I)

tactic: obtain ⟨s, hs⟩ := h
state_before: R✝ : Type ?u.327753
M : Type ?u.327756
inst✝⁴ : Semiring R✝
inst✝³ : AddCommMonoid M
inst✝² : Module R✝ M
R : Type u_1
S : Type u_2
inst✝¹ : Semiring R
inst✝ : Semiring S
I : Ideal R
h : FG I
f : R →+* S
⊢ FG (Ideal.map f I)

tactic: refine' ⟨s.image f, _⟩
state_before: case intro
R✝ : Type ?u.327753
M : Type ?u.327756
inst✝⁴ : Semiring R✝
inst✝³ : AddCommMonoid M
inst✝² : Module R✝ M
R : Type u_1
S : Type u_2
inst✝¹ : Semiring R
inst✝ : Semiring S
I : Ideal R
f : R →+* S
s : Finset R
hs : span ↑s = I
⊢ FG (Ideal.map f I)

tactic: rw [Finset.coe_image, ← Ideal.map_span, hs]
state_before: case intro
R✝ : Type ?u.327753
M : Type ?u.327756
inst✝⁴ : Semiring R✝
inst✝³ : AddCommMonoid M
inst✝² : Module R✝ M
R : Type u_1
S : Type u_2
inst✝¹ : Semiring R
inst✝ : Semiring S
I : Ideal R
f : R →+* S
s : Finset R
hs : span ↑s = I
⊢ span ↑(Finset.image (↑f) s) = Ideal.map f I
Theorem: Nat.pair_lt_pair_left
File: Mathlib/Data/Nat/Pairing.lean

tactic: by_cases h₁ : a₁ < b <;> simp [pair, h₁, add_assoc]
state_before: a₁ a₂ b : ℕ
h : a₁ < a₂
⊢ pair a₁ b < pair a₂ b

tactic: by_cases h₂ : a₂ < b <;> simp [pair, h₂, h]
state_before: case pos
a₁ a₂ b : ℕ
h : a₁ < a₂
h₁ : a₁ < b
⊢ b * b + a₁ < if a₂ < b then b * b + a₂ else a₂ * a₂ + (a₂ + b)

tactic: simp at h₂
state_before: case neg
a₁ a₂ b : ℕ
h : a₁ < a₂
h₁ : a₁ < b
h₂ : ¬a₂ < b
⊢ b * b + a₁ < a₂ * a₂ + (a₂ + b)

tactic: apply add_lt_add_of_le_of_lt
state_before: case neg
a₁ a₂ b : ℕ
h : a₁ < a₂
h₁ : a₁ < b
h₂ : b ≤ a₂
⊢ b * b + a₁ < a₂ * a₂ + (a₂ + b)

tactic: exact mul_self_le_mul_self h₂
state_before: case neg.h₁
a₁ a₂ b : ℕ
h : a₁ < a₂
h₁ : a₁ < b
h₂ : b ≤ a₂
⊢ b * b ≤ a₂ * a₂

case neg.h₂
a₁ a₂ b : ℕ
h : a₁ < a₂
h₁ : a₁ < b
h₂ : b ≤ a₂
⊢ a₁ < a₂ + b

tactic: exact Nat.lt_add_right _ _ _ h
state_before: case neg.h₂
a₁ a₂ b : ℕ
h : a₁ < a₂
h₁ : a₁ < b
h₂ : b ≤ a₂
⊢ a₁ < a₂ + b

tactic: simp at h₁
state_before: case neg
a₁ a₂ b : ℕ
h : a₁ < a₂
h₁ : ¬a₁ < b
⊢ a₁ * a₁ + (a₁ + b) < if a₂ < b then b * b + a₂ else a₂ * a₂ + (a₂ + b)

tactic: simp [not_lt_of_gt (lt_of_le_of_lt h₁ h)]
state_before: case neg
a₁ a₂ b : ℕ
h : a₁ < a₂
h₁ : b ≤ a₁
⊢ a₁ * a₁ + (a₁ + b) < if a₂ < b then b * b + a₂ else a₂ * a₂ + (a₂ + b)

tactic: apply add_lt_add
state_before: case neg
a₁ a₂ b : ℕ
h : a₁ < a₂
h₁ : b ≤ a₁
⊢ a₁ * a₁ + (a₁ + b) < a₂ * a₂ + (a₂ + b)

tactic: exact mul_self_lt_mul_self h
state_before: case neg.h₁
a₁ a₂ b : ℕ
h : a₁ < a₂
h₁ : b ≤ a₁
⊢ a₁ * a₁ < a₂ * a₂

case neg.h₂
a₁ a₂ b : ℕ
h : a₁ < a₂
h₁ : b ≤ a₁
⊢ a₁ + b < a₂ + b

tactic: apply add_lt_add_right
state_before: case neg.h₂
a₁ a₂ b : ℕ
h : a₁ < a₂
h₁ : b ≤ a₁
⊢ a₁ + b < a₂ + b

tactic: assumption
state_before: case neg.h₂.bc
a₁ a₂ b : ℕ
h : a₁ < a₂
h₁ : b ≤ a₁
⊢ a₁ < a₂
Theorem: Int.le_add_of_neg_add_le
File: Std/Data/Int/Lemmas.lean

tactic: have h := Int.add_le_add_left h b
state_before: a b c : Int
h : -b + a ≤ c
⊢ a ≤ b + c

tactic: rwa [Int.add_neg_cancel_left] at h
state_before: a b c : Int
h✝ : -b + a ≤ c
h : b + (-b + a) ≤ b + c
⊢ a ≤ b + c
Theorem: Bool.and_eq_false_eq_eq_false_or_eq_false
File: Mathlib/Init/Data/Bool/Lemmas.lean

tactic: cases a <;> cases b <;> simp
state_before: a b : Bool
⊢ ((a && b) = false) = (a = false ∨ b = false)
Theorem: Matrix.bit1_apply_ne
File: Mathlib/Data/Matrix/Basic.lean

tactic: simp [bit1_apply, h]
state_before: l : Type ?u.83546
m : Type ?u.83549
n : Type u_1
o : Type ?u.83555
m' : o → Type ?u.83560
n' : o → Type ?u.83565
R : Type ?u.83568
S : Type ?u.83571
α : Type v
β : Type w
γ : Type ?u.83578
inst✝² : DecidableEq n
inst✝¹ : AddZeroClass α
inst✝ : One α
M : Matrix n n α
i j : n
h : i ≠ j
⊢ bit1 M i j = bit0 (M i j)
Theorem: Set.indicator_prod_one
File: Mathlib/Algebra/IndicatorFunction.lean

tactic: simp_rw [indicator, mem_prod_eq]
state_before: α : Type u_1
β : Type u_2
ι : Type ?u.132367
M : Type u_3
N : Type ?u.132373
inst✝ : MulZeroOneClass M
s : Set α
t : Set β
x : α
y : β
⊢ indicator (s ×ˢ t) 1 (x, y) = indicator s 1 x * indicator t 1 y

tactic: split_ifs with h₀ <;> simp only [Pi.one_apply, mul_one, mul_zero] <;> tauto
state_before: α : Type u_1
β : Type u_2
ι : Type ?u.132367
M : Type u_3
N : Type ?u.132373
inst✝ : MulZeroOneClass M
s : Set α
t : Set β
x : α
y : β
⊢ (if x ∈ s ∧ y ∈ t then OfNat.ofNat 1 (x, y) else 0) =
    (if x ∈ s then OfNat.ofNat 1 x else 0) * if y ∈ t then OfNat.ofNat 1 y else 0
Theorem: Complex.add_conj
File: Mathlib/Data/Complex/Basic.lean

tactic: simp [two_mul, ofReal']
state_before: z : ℂ
⊢ (z + ↑(starRingEnd ℂ) z).re = (↑(2 * z.re)).re ∧ (z + ↑(starRingEnd ℂ) z).im = (↑(2 * z.re)).im
Theorem: Polynomial.roots.le_of_dvd
File: Mathlib/Data/Polynomial/RingDivision.lean

tactic: rintro ⟨k, rfl⟩
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p q : R[X]
h : q ≠ 0
⊢ p ∣ q → roots p ≤ roots q

tactic: exact Multiset.le_iff_exists_add.mpr ⟨k.roots, roots_mul h⟩
state_before: case intro
R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p k : R[X]
h : p * k ≠ 0
⊢ roots p ≤ roots (p * k)
Theorem: Polynomial.coeff_C_mul_X
File: Mathlib/Data/Polynomial/Coeff.lean

tactic: rw [← pow_one X, coeff_C_mul_X_pow]
state_before: R : Type u
S : Type v
a b : R
n✝ m : ℕ
inst✝ : Semiring R
p q r : R[X]
x : R
n : ℕ
⊢ coeff (↑C x * X) n = if n = 1 then x else 0
Theorem: SimpleGraph.edgeFinset_sdiff
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: simp [edgeFinset]
state_before: ι : Sort ?u.132431
𝕜 : Type ?u.132434
V : Type u
W : Type v
X : Type w
G : SimpleGraph V
G' : SimpleGraph W
a b c u v w : V
e : Sym2 V
G₁ G₂ : SimpleGraph V
inst✝³ : Fintype ↑(edgeSet G)
inst✝² : Fintype ↑(edgeSet G₁)
inst✝¹ : Fintype ↑(edgeSet G₂)
inst✝ : DecidableEq V
⊢ edgeFinset (G₁ \ G₂) = edgeFinset G₁ \ edgeFinset G₂