tasksource/leandojo huggingface dataset:
Theorem: NormedCommGroup.uniformity_basis_dist
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: convert Metric.uniformity_basis_dist (α := E) using 1
state_before: 𝓕 : Type ?u.138811
𝕜 : Type ?u.138814
α : Type ?u.138817
ι : Type ?u.138820
κ : Type ?u.138823
E : Type u_1
F : Type ?u.138829
G : Type ?u.138832
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
⊢ HasBasis (𝓤 E) (fun ε => 0 < ε) fun ε => {p | ‖p.fst / p.snd‖ < ε}

tactic: simp [dist_eq_norm_div]
state_before: case h.e'_5
𝓕 : Type ?u.138811
𝕜 : Type ?u.138814
α : Type ?u.138817
ι : Type ?u.138820
κ : Type ?u.138823
E : Type u_1
F : Type ?u.138829
G : Type ?u.138832
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
⊢ (fun ε => {p | ‖p.fst / p.snd‖ < ε}) = fun ε => {p | dist p.fst p.snd < ε}
Theorem: Convex.sub
File: Mathlib/Analysis/Convex/Basic.lean

tactic: rw [sub_eq_add_neg]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.247569
β : Type ?u.247572
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t : Set E
hs : Convex 𝕜 s
ht : Convex 𝕜 t
⊢ Convex 𝕜 (s - t)

tactic: exact hs.add ht.neg
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.247569
β : Type ?u.247572
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t : Set E
hs : Convex 𝕜 s
ht : Convex 𝕜 t
⊢ Convex 𝕜 (s + -t)
Theorem: Primrec.list_getD
File: Mathlib/Computability/Primrec.lean

tactic: simp only [List.getD_eq_getD_get?]
state_before: α : Type u_1
β : Type ?u.308289
γ : Type ?u.308292
σ : Type ?u.308295
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
d : α
⊢ Primrec₂ fun l n => List.getD l n d

tactic: exact option_getD.comp₂ list_get? (const _)
state_before: α : Type u_1
β : Type ?u.308289
γ : Type ?u.308292
σ : Type ?u.308295
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
d : α
⊢ Primrec₂ fun l n => Option.getD (List.get? l n) d
Theorem: Filter.eventually_imp_distrib_left
File: Mathlib/Order/Filter/Basic.lean

tactic: simp only [imp_iff_not_or, eventually_or_distrib_left]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.144553
ι : Sort x
f : Filter α
p : Prop
q : α → Prop
⊢ (∀ᶠ (x : α) in f, p → q x) ↔ p → ∀ᶠ (x : α) in f, q x
Theorem: List.nodup_reverse
File: Mathlib/Data/List/Nodup.lean

tactic: simp only [Nodup, Ne.def, eq_comm]
state_before: α : Type u
β : Type v
l✝ l₁ l₂ : List α
r : α → α → Prop
a b : α
l : List α
⊢ Pairwise (fun a b => b ≠ a) l ↔ Nodup l
Theorem: Function.mulSupport_along_fiber_subset
File: Mathlib/Algebra/Support.lean

tactic: simpa using hx
state_before: α : Type u_1
β : Type u_2
A : Type ?u.17516
B : Type ?u.17519
M : Type u_3
N : Type ?u.17525
P : Type ?u.17528
R : Type ?u.17531
S : Type ?u.17534
G : Type ?u.17537
M₀ : Type ?u.17540
G₀ : Type ?u.17543
ι : Sort ?u.17546
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α × β → M
a : α
x : β
hx : x ∈ mulSupport fun b => f (a, b)
⊢ (a, x) ∈ mulSupport f ∧ (a, x).snd = x
Theorem: Unique.forall_iff
File: Mathlib/Logic/Unique.lean

tactic: rwa [Unique.eq_default x]
state_before: α : Sort u_1
inst✝ : Unique α
p : α → Prop
h : p default
x : α
⊢ p x
Theorem: ProbabilityTheory.condCount_compl
File: Mathlib/Probability/CondCount.lean

tactic: rw [← condCount_union hs disjoint_compl_right, Set.union_compl_self,
  (condCount_isProbabilityMeasure hs hs').measure_univ]
state_before: Ω : Type u_1
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSingletonClass Ω
s t✝ u t : Set Ω
hs : Set.Finite s
hs' : Set.Nonempty s
⊢ ↑↑(condCount s) t + ↑↑(condCount s) (tᶜ) = 1
Theorem: Finset.fold_max_le
File: Mathlib/Data/Finset/Fold.lean

tactic: show _ ≥ _ ↔ _
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.68583
op : β → β → β
hc : IsCommutative β op
ha : IsAssociative β op
f : α → β
b : β
s : Finset α
a : α
inst✝ : LinearOrder β
c : β
⊢ fold max b f s ≤ c ↔ b ≤ c ∧ ∀ (x : α), x ∈ s → f x ≤ c

tactic: apply fold_op_rel_iff_and
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.68583
op : β → β → β
hc : IsCommutative β op
ha : IsAssociative β op
f : α → β
b : β
s : Finset α
a : α
inst✝ : LinearOrder β
c : β
⊢ c ≥ fold max b f s ↔ b ≤ c ∧ ∀ (x : α), x ∈ s → f x ≤ c

tactic: intro x y z
state_before: case hr
α : Type u_2
β : Type u_1
γ : Type ?u.68583
op : β → β → β
hc : IsCommutative β op
ha : IsAssociative β op
f : α → β
b : β
s : Finset α
a : α
inst✝ : LinearOrder β
c : β
⊢ ∀ {x y z : β}, x ≥ max y z ↔ x ≥ y ∧ x ≥ z

tactic: show _ ≤ _ ↔ _
state_before: case hr
α : Type u_2
β : Type u_1
γ : Type ?u.68583
op : β → β → β
hc : IsCommutative β op
ha : IsAssociative β op
f : α → β
b : β
s : Finset α
a : α
inst✝ : LinearOrder β
c x y z : β
⊢ x ≥ max y z ↔ x ≥ y ∧ x ≥ z

tactic: exact max_le_iff
state_before: case hr
α : Type u_2
β : Type u_1
γ : Type ?u.68583
op : β → β → β
hc : IsCommutative β op
ha : IsAssociative β op
f : α → β
b : β
s : Finset α
a : α
inst✝ : LinearOrder β
c x y z : β
⊢ max y z ≤ x ↔ x ≥ y ∧ x ≥ z
Theorem: Submonoid.LocalizationMap.lift_eq_iff
File: Mathlib/GroupTheory/MonoidLocalization.lean

tactic: rw [lift_mk', lift_mk', mul_inv hg]
state_before: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_3
inst✝¹ : CommMonoid N
P : Type u_2
inst✝ : CommMonoid P
f : LocalizationMap S N
g : M →* P
hg : ∀ (y : { x // x ∈ S }), IsUnit (↑g ↑y)
x y : M × { x // x ∈ S }
⊢ ↑(lift f hg) (mk' f x.fst x.snd) = ↑(lift f hg) (mk' f y.fst y.snd) ↔ ↑g (x.fst * ↑y.snd) = ↑g (y.fst * ↑x.snd)
Theorem: convexHull_nonempty_iff
File: Mathlib/Analysis/Convex/Hull.lean

tactic: rw [nonempty_iff_ne_empty, nonempty_iff_ne_empty, Ne.def, Ne.def]
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.18161
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t : Set E
x y : E
⊢ Set.Nonempty (↑(convexHull 𝕜).toOrderHom s) ↔ Set.Nonempty s

tactic: exact not_congr convexHull_empty_iff
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.18161
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t : Set E
x y : E
⊢ ¬↑(convexHull 𝕜).toOrderHom s = ∅ ↔ ¬s = ∅
Theorem: Set.IsWf.isPwo
File: Mathlib/Order/WellFoundedSet.lean

tactic: intro f hf
state_before: ι : Type ?u.108989
α : Type u_1
β : Type ?u.108995
inst✝ : LinearOrder α
s : Set α
hs : IsWf s
⊢ IsPwo s

tactic: lift f to ℕ → s using hf
state_before: ι : Type ?u.108989
α : Type u_1
β : Type ?u.108995
inst✝ : LinearOrder α
s : Set α
hs : IsWf s
f : ℕ → α
hf : ∀ (n : ℕ), f n ∈ s
⊢ ∃ m n, m < n ∧ (fun x x_1 => x ≤ x_1) (f m) (f n)

tactic: rcases hs.has_min (range f) (range_nonempty _) with ⟨_, ⟨m, rfl⟩, hm⟩
state_before: case intro
ι : Type ?u.108989
α : Type u_1
β : Type ?u.108995
inst✝ : LinearOrder α
s : Set α
hs : IsWf s
f : ℕ → ↑s
⊢ ∃ m n, m < n ∧ (fun x x_1 => x ≤ x_1) ((fun i => ↑(f i)) m) ((fun i => ↑(f i)) n)

tactic: simp only [forall_range_iff, not_lt] at hm
state_before: case intro.intro.intro.intro
ι : Type ?u.108989
α : Type u_1
β : Type ?u.108995
inst✝ : LinearOrder α
s : Set α
hs : IsWf s
f : ℕ → ↑s
m : ℕ
hm : ∀ (x : ↑s), x ∈ range f → ¬(fun x x_1 => x < x_1) ↑x ↑(f m)
⊢ ∃ m n, m < n ∧ (fun x x_1 => x ≤ x_1) ((fun i => ↑(f i)) m) ((fun i => ↑(f i)) n)

tactic: exact ⟨m, m + 1, lt_add_one m, hm _⟩
state_before: case intro.intro.intro.intro
ι : Type ?u.108989
α : Type u_1
β : Type ?u.108995
inst✝ : LinearOrder α
s : Set α
hs : IsWf s
f : ℕ → ↑s
m : ℕ
hm : ∀ (i : ℕ), ↑(f m) ≤ ↑(f i)
⊢ ∃ m n, m < n ∧ (fun x x_1 => x ≤ x_1) ((fun i => ↑(f i)) m) ((fun i => ↑(f i)) n)
Theorem: List.rotate_length
File: Mathlib/Data/List/Rotate.lean

tactic: rw [rotate_eq_rotate', rotate'_length]
state_before: α : Type u
l : List α
⊢ rotate l (length l) = l
Theorem: FreeGroup.norm_mul_le
File: Mathlib/GroupTheory/FreeGroup.lean

tactic: rw [← mul_mk, mk_toWord, mk_toWord]
state_before: α : Type u
L L₁ L₂ L₃ L₄ : List (α × Bool)
inst✝ : DecidableEq α
x y : FreeGroup α
⊢ norm (x * y) = norm (mk (toWord x ++ toWord y))
Theorem: charZero_of_injective_algebraMap
File: Mathlib/Algebra/CharP/Algebra.lean

tactic: change algebraMap ℕ A x = algebraMap ℕ A y at hxy
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : Semiring A
inst✝¹ : Algebra R A
h : Function.Injective ↑(algebraMap R A)
inst✝ : CharZero R
x y : ℕ
hxy : ↑x = ↑y
⊢ x = y

tactic: rw [IsScalarTower.algebraMap_apply ℕ R A x] at hxy
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : Semiring A
inst✝¹ : Algebra R A
h : Function.Injective ↑(algebraMap R A)
inst✝ : CharZero R
x y : ℕ
hxy : ↑(algebraMap ℕ A) x = ↑(algebraMap ℕ A) y
⊢ x = y

tactic: rw [IsScalarTower.algebraMap_apply ℕ R A y] at hxy
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : Semiring A
inst✝¹ : Algebra R A
h : Function.Injective ↑(algebraMap R A)
inst✝ : CharZero R
x y : ℕ
hxy : ↑(algebraMap R A) (↑(algebraMap ℕ R) x) = ↑(algebraMap ℕ A) y
⊢ x = y

tactic: exact CharZero.cast_injective (h hxy)
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : Semiring A
inst✝¹ : Algebra R A
h : Function.Injective ↑(algebraMap R A)
inst✝ : CharZero R
x y : ℕ
hxy : ↑(algebraMap R A) (↑(algebraMap ℕ R) x) = ↑(algebraMap R A) (↑(algebraMap ℕ R) y)
⊢ x = y
Theorem: AffineEquiv.sbtw_map_iff
File: Mathlib/Analysis/Convex/Between.lean

tactic: refine' Function.Injective.sbtw_map_iff (_ : Function.Injective f.toAffineMap)
state_before: R : Type u_1
V : Type u_4
V' : Type u_5
P : Type u_2
P' : Type u_3
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y z : P
f : P ≃ᵃ[R] P'
⊢ Sbtw R (↑f x) (↑f y) (↑f z) ↔ Sbtw R x y z

tactic: exact f.injective
state_before: R : Type u_1
V : Type u_4
V' : Type u_5
P : Type u_2
P' : Type u_3
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y z : P
f : P ≃ᵃ[R] P'
⊢ Function.Injective ↑↑f
Theorem: unitInterval.mem_iff_one_sub_mem
File: Mathlib/Topology/UnitInterval.lean

tactic: rw [mem_Icc, mem_Icc]
state_before: t : ℝ
⊢ t ∈ I ↔ 1 - t ∈ I

tactic: constructor <;> intro <;> constructor <;> linarith
state_before: t : ℝ
⊢ 0 ≤ t ∧ t ≤ 1 ↔ 0 ≤ 1 - t ∧ 1 - t ≤ 1
Theorem: Finset.pow_mem_pow
File: Mathlib/Data/Finset/Pointwise.lean

tactic: rw [pow_zero]
state_before: F : Type ?u.259960
α : Type u_1
β : Type ?u.259966
γ : Type ?u.259969
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : Monoid α
s t : Finset α
a : α
m n : ℕ
ha : a ∈ s
⊢ a ^ 0 ∈ s ^ 0

tactic: exact one_mem_one
state_before: F : Type ?u.259960
α : Type u_1
β : Type ?u.259966
γ : Type ?u.259969
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : Monoid α
s t : Finset α
a : α
m n : ℕ
ha : a ∈ s
⊢ 1 ∈ s ^ 0

tactic: rw [pow_succ]
state_before: F : Type ?u.259960
α : Type u_1
β : Type ?u.259966
γ : Type ?u.259969
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : Monoid α
s t : Finset α
a : α
m n✝ : ℕ
ha : a ∈ s
n : ℕ
⊢ a ^ (n + 1) ∈ s ^ (n + 1)

tactic: exact mul_mem_mul ha (pow_mem_pow ha n)
state_before: F : Type ?u.259960
α : Type u_1
β : Type ?u.259966
γ : Type ?u.259969
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : Monoid α
s t : Finset α
a : α
m n✝ : ℕ
ha : a ∈ s
n : ℕ
⊢ a * a ^ n ∈ s ^ (n + 1)
Theorem: intervalIntegral.integral_smul_measure
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simp only [intervalIntegral, Measure.restrict_smul, integral_smul_measure, smul_sub]
state_before: ι : Type ?u.13831725
𝕜 : Type ?u.13831728
E : Type u_1
F : Type ?u.13831734
A : Type ?u.13831737
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b : ℝ
f g : ℝ → E
μ : MeasureTheory.Measure ℝ
c : ℝ≥0∞
⊢ (∫ (x : ℝ) in a..b, f x ∂c • μ) = ENNReal.toReal c • ∫ (x : ℝ) in a..b, f x ∂μ
Theorem: Set.image2_inter_subset_right
File: Mathlib/Data/Set/NAry.lean

tactic: rintro _ ⟨a, b, ha, ⟨h1b, h2b⟩, rfl⟩
state_before: α : Type u_2
α' : Type ?u.22358
β : Type u_3
β' : Type ?u.22364
γ : Type u_1
γ' : Type ?u.22370
δ : Type ?u.22373
δ' : Type ?u.22376
ε : Type ?u.22379
ε' : Type ?u.22382
ζ : Type ?u.22385
ζ' : Type ?u.22388
ν : Type ?u.22391
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
⊢ image2 f s (t ∩ t') ⊆ image2 f s t ∩ image2 f s t'

tactic: constructor <;> exact ⟨_, _, ‹_›, ‹_›, rfl⟩
state_before: case intro.intro.intro.intro.intro
α : Type u_2
α' : Type ?u.22358
β : Type u_3
β' : Type ?u.22364
γ : Type u_1
γ' : Type ?u.22370
δ : Type ?u.22373
δ' : Type ?u.22376
ε : Type ?u.22379
ε' : Type ?u.22382
ζ : Type ?u.22385
ζ' : Type ?u.22388
ν : Type ?u.22391
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a✝ a' : α
b✝ b' : β
c c' : γ
d d' : δ
a : α
b : β
ha : a ∈ s
h1b : b ∈ t
h2b : b ∈ t'
⊢ f a b ∈ image2 f s t ∩ image2 f s t'
Theorem: derivWithin_sub_const
File: Mathlib/Analysis/Calculus/Deriv/Add.lean

tactic: simp only [derivWithin, fderivWithin_sub_const hxs]
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 : Filter 𝕜
hxs : UniqueDiffWithinAt 𝕜 s x
c : F
⊢ derivWithin (fun y => f y - c) s x = derivWithin f s x
Theorem: Nat.not_prime_mul'
File: Mathlib/Data/Nat/Prime.lean

tactic: rw [← h]
state_before: a b n : ℕ
h : a * b = n
h₁ : 1 < a
h₂ : 1 < b
⊢ ¬Prime n

tactic: exact not_prime_mul h₁ h₂
state_before: a b n : ℕ
h : a * b = n
h₁ : 1 < a
h₂ : 1 < b
⊢ ¬Prime (a * b)
Theorem: iteratedDerivWithin_zero
File: Mathlib/Analysis/Calculus/IteratedDeriv.lean

tactic: ext x
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type ?u.31201
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x : 𝕜
⊢ iteratedDerivWithin 0 f s = f

tactic: simp [iteratedDerivWithin]
state_before: case h
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type ?u.31201
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x✝ x : 𝕜
⊢ iteratedDerivWithin 0 f s x = f x
Theorem: IsArtinian.surjective_of_injective_endomorphism
File: Mathlib/RingTheory/Artinian.lean

tactic: obtain ⟨n, ne, w⟩ := exists_endomorphism_iterate_ker_sup_range_eq_top f
state_before: R : Type u_1
M : Type u_2
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
inst✝ : IsArtinian R M
f : M →ₗ[R] M
s : Injective ↑f
⊢ Surjective ↑f

tactic: rw [LinearMap.ker_eq_bot.mpr (LinearMap.iterate_injective s n), bot_sup_eq,
  LinearMap.range_eq_top] at w
state_before: case intro.intro
R : Type u_1
M : Type u_2
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
inst✝ : IsArtinian R M
f : M →ₗ[R] M
s : Injective ↑f
n : ℕ
ne : n ≠ 0
w : LinearMap.ker (f ^ n) ⊔ LinearMap.range (f ^ n) = ⊤
⊢ Surjective ↑f

tactic: exact LinearMap.surjective_of_iterate_surjective ne w
state_before: case intro.intro
R : Type u_1
M : Type u_2
inst✝³ : Ring R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
inst✝ : IsArtinian R M
f : M →ₗ[R] M
s : Injective ↑f
n : ℕ
ne : n ≠ 0
w : Surjective ↑(f ^ n)
⊢ Surjective ↑f
Theorem: Nat.add_div_of_dvd_left
File: Mathlib/Data/Nat/ModEq.lean

tactic: rwa [add_comm, Nat.add_div_of_dvd_right, add_comm]
state_before: m n a✝ b✝ c✝ d a b c : ℕ
hca : c ∣ b
⊢ (a + b) / c = a / c + b / c
Theorem: ENNReal.one_lt_inv
File: Mathlib/Data/Real/ENNReal.lean

tactic: rw [lt_inv_iff_lt_inv, inv_one]
state_before: α : Type ?u.270867
β : Type ?u.270870
a b c d : ℝ≥0∞
r p q : ℝ≥0
⊢ 1 < a⁻¹ ↔ a < 1
Theorem: Set.pairwise_insert_of_symmetric
File: Mathlib/Data/Set/Pairwise/Basic.lean

tactic: simp only [pairwise_insert, hr.iff a, and_self_iff]
state_before: α : Type u_1
β : Type ?u.11504
γ : Type ?u.11507
ι : Type ?u.11510
ι' : Type ?u.11513
r p q : α → α → Prop
f g : ι → α
s t u : Set α
a b : α
hr : Symmetric r
⊢ Set.Pairwise (insert a s) r ↔ Set.Pairwise s r ∧ ∀ (b : α), b ∈ s → a ≠ b → r a b
Theorem: Finset.Nat.antidiagonal_congr
File: Mathlib/Data/Finset/NatAntidiagonal.lean

tactic: refine' ⟨congr_arg Prod.fst, fun h ↦ Prod.ext h ((add_right_inj q.fst).mp _)⟩
state_before: n : ℕ
p q : ℕ × ℕ
hp : p ∈ antidiagonal n
hq : q ∈ antidiagonal n
⊢ p = q ↔ p.fst = q.fst

tactic: rw [mem_antidiagonal] at hp hq
state_before: n : ℕ
p q : ℕ × ℕ
hp : p ∈ antidiagonal n
hq : q ∈ antidiagonal n
h : p.fst = q.fst
⊢ q.fst + p.snd = q.fst + q.snd

tactic: rw [hq, ← h, hp]
state_before: n : ℕ
p q : ℕ × ℕ
hp : p.fst + p.snd = n
hq : q.fst + q.snd = n
h : p.fst = q.fst
⊢ q.fst + p.snd = q.fst + q.snd
Theorem: round_zero
File: Mathlib/Algebra/Order/Floor.lean

tactic: simp [round]
state_before: F : Type ?u.249523
α : Type u_1
β : Type ?u.249529
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
⊢ round 0 = 0
Theorem: norm_nonneg'
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: rw [← dist_one_right]
state_before: 𝓕 : Type ?u.69547
𝕜 : Type ?u.69550
α : Type ?u.69553
ι : Type ?u.69556
κ : Type ?u.69559
E : Type u_1
F : Type ?u.69565
G : Type ?u.69568
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a✝ a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
a : E
⊢ 0 ≤ ‖a‖

tactic: exact dist_nonneg
state_before: 𝓕 : Type ?u.69547
𝕜 : Type ?u.69550
α : Type ?u.69553
ι : Type ?u.69556
κ : Type ?u.69559
E : Type u_1
F : Type ?u.69565
G : Type ?u.69568
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a✝ a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
a : E
⊢ 0 ≤ dist a 1
Theorem: NNReal.le_iInf_mul
File: Mathlib/Data/Real/NNReal.lean

tactic: rw [iInf_mul]
state_before: ι : Sort u_1
f : ι → ℝ≥0
inst✝ : Nonempty ι
a : ℝ≥0
g : ι → ℝ≥0
h : ℝ≥0
H : ∀ (i : ι), a ≤ g i * h
⊢ a ≤ iInf g * h

tactic: exact le_ciInf H
state_before: ι : Sort u_1
f : ι → ℝ≥0
inst✝ : Nonempty ι
a : ℝ≥0
g : ι → ℝ≥0
h : ℝ≥0
H : ∀ (i : ι), a ≤ g i * h
⊢ a ≤ ⨅ (i : ι), g i * h
Theorem: List.not_mem_range_self
File: Std/Data/List/Lemmas.lean

tactic: simp
state_before: n : Nat
⊢ ¬n ∈ range n
Theorem: StructureGroupoid.LocalInvariantProp.liftProp_of_locally_liftPropOn
File: Mathlib/Geometry/Manifold/LocalInvariantProperties.lean

tactic: rw [← liftPropOn_univ]
state_before: H : Type u_2
M : Type u_1
H' : Type u_3
M' : Type u_4
X : Type ?u.39327
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
e e' : LocalHomeomorph M H
f f' : LocalHomeomorph M' H'
P : (H → H') → Set H → H → Prop
g g' : M → M'
s t : Set M
x : M
Q : (H → H) → Set H → H → Prop
hG : LocalInvariantProp G G' P
h : ∀ (x : M), ∃ u, IsOpen u ∧ x ∈ u ∧ LiftPropOn P g u
⊢ LiftProp P g

tactic: refine' hG.liftPropOn_of_locally_liftPropOn fun x _ ↦ _
state_before: H : Type u_2
M : Type u_1
H' : Type u_3
M' : Type u_4
X : Type ?u.39327
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
e e' : LocalHomeomorph M H
f f' : LocalHomeomorph M' H'
P : (H → H') → Set H → H → Prop
g g' : M → M'
s t : Set M
x : M
Q : (H → H) → Set H → H → Prop
hG : LocalInvariantProp G G' P
h : ∀ (x : M), ∃ u, IsOpen u ∧ x ∈ u ∧ LiftPropOn P g u
⊢ LiftPropOn P g univ

tactic: simp [h x]
state_before: H : Type u_2
M : Type u_1
H' : Type u_3
M' : Type u_4
X : Type ?u.39327
inst✝⁶ : TopologicalSpace H
inst✝⁵ : TopologicalSpace M
inst✝⁴ : ChartedSpace H M
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
inst✝¹ : ChartedSpace H' M'
inst✝ : TopologicalSpace X
G : StructureGroupoid H
G' : StructureGroupoid H'
e e' : LocalHomeomorph M H
f f' : LocalHomeomorph M' H'
P : (H → H') → Set H → H → Prop
g g' : M → M'
s t : Set M
x✝¹ : M
Q : (H → H) → Set H → H → Prop
hG : LocalInvariantProp G G' P
h : ∀ (x : M), ∃ u, IsOpen u ∧ x ∈ u ∧ LiftPropOn P g u
x : M
x✝ : x ∈ univ
⊢ ∃ u, IsOpen u ∧ x ∈ u ∧ LiftPropOn P g (univ ∩ u)
Theorem: deriv_sub_const
File: Mathlib/Analysis/Calculus/Deriv/Add.lean

tactic: simp only [deriv, fderiv_sub_const]
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 : Filter 𝕜
c : F
⊢ deriv (fun y => f y - c) x = deriv f x
Theorem: Module.End.exists_eigenvalue
File: Mathlib/LinearAlgebra/Eigenspace/IsAlgClosed.lean

tactic: simp_rw [hasEigenvalue_iff_mem_spectrum]
state_before: K : Type v
V : Type w
inst✝⁵ : Field K
inst✝⁴ : AddCommGroup V
inst✝³ : Module K V
inst✝² : IsAlgClosed K
inst✝¹ : FiniteDimensional K V
inst✝ : Nontrivial V
f : End K V
⊢ ∃ c, HasEigenvalue f c

tactic: exact spectrum.nonempty_of_isAlgClosed_of_finiteDimensional K f
state_before: K : Type v
V : Type w
inst✝⁵ : Field K
inst✝⁴ : AddCommGroup V
inst✝³ : Module K V
inst✝² : IsAlgClosed K
inst✝¹ : FiniteDimensional K V
inst✝ : Nontrivial V
f : End K V
⊢ ∃ c, c ∈ spectrum K f
Theorem: Polynomial.roots_C
File: Mathlib/Data/Polynomial/RingDivision.lean

tactic: rw [H, C_0, roots_zero]
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]
x : R
H : x = 0
⊢ roots (↑C x) = 0

tactic: rw [count_roots, count_zero, rootMultiplicity_eq_zero (not_isRoot_C _ _ H)]
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]
x : R
H : ¬x = 0
r : R
⊢ count r (roots (↑C x)) = count r 0
Theorem: List.reduceOption_mem_iff
File: Mathlib/Data/List/Basic.lean

tactic: simp only [reduceOption, id.def, mem_filterMap, exists_eq_right]
state_before: ι : Type ?u.369416
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
l : List (Option α)
x : α
⊢ x ∈ reduceOption l ↔ some x ∈ l
Theorem: TopologicalSpace.Opens.map_eq
File: Mathlib/Topology/Category/TopCat/Opens.lean

tactic: subst h
state_before: X Y Z : TopCat
f g : X ⟶ Y
h : f = g
⊢ map f = map g

tactic: rfl
state_before: X Y Z : TopCat
f : X ⟶ Y
⊢ map f = map f
Theorem: MultilinearMap.snoc_add
File: Mathlib/LinearAlgebra/Multilinear/Basic.lean

tactic: simp_rw [← update_snoc_last x m (x + y), f.map_add, update_snoc_last]
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₂
f : MultilinearMap R M M₂
m : (i : Fin n) → M (↑castSucc i)
x y : M (last n)
⊢ ↑f (snoc m (x + y)) = ↑f (snoc m x) + ↑f (snoc m y)
Theorem: Convex.mem_extremePoints_iff_mem_diff_convexHull_diff
File: Mathlib/Analysis/Convex/Extreme.lean

tactic: rw [hA.mem_extremePoints_iff_convex_diff, hA.convex_remove_iff_not_mem_convexHull_remove,
  mem_diff]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.51012
ι : Type ?u.51015
π : ι → Type ?u.51020
inst✝⁴ : LinearOrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : DenselyOrdered 𝕜
inst✝ : NoZeroSMulDivisors 𝕜 E
A B : Set E
x : E
hA : Convex 𝕜 A
⊢ x ∈ extremePoints 𝕜 A ↔ x ∈ A \ ↑(convexHull 𝕜).toOrderHom (A \ {x})
Theorem: Bool.eq_true_of_ne_false
File: Mathlib/Data/Bool/Basic.lean

tactic: decide
state_before: ⊢ ∀ {a : Bool}, a ≠ false → a = true