tasksource/leandojo huggingface dataset:
Theorem: IsCompactOperator.sub
File: Mathlib/Analysis/NormedSpace/CompactOperator.lean

tactic: rw [sub_eq_add_neg]
state_before: R₁ : Type ?u.151370
R₂ : Type ?u.151373
R₃ : Type ?u.151376
R₄ : Type ?u.151379
inst✝¹² : Semiring R₁
inst✝¹¹ : Semiring R₂
inst✝¹⁰ : CommSemiring R₃
inst✝⁹ : CommSemiring R₄
σ₁₂ : R₁ →+* R₂
σ₁₄ : R₁ →+* R₄
σ₃₄ : R₃ →+* R₄
M₁ : Type u_2
M₂ : Type ?u.151847
M₃ : Type ?u.151850
M₄ : Type u_1
inst✝⁸ : TopologicalSpace M₁
inst✝⁷ : AddCommMonoid M₁
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : TopologicalSpace M₃
inst✝³ : AddCommGroup M₃
inst✝² : TopologicalSpace M₄
inst✝¹ : AddCommGroup M₄
inst✝ : TopologicalAddGroup M₄
f g : M₁ → M₄
hf : IsCompactOperator f
hg : IsCompactOperator g
⊢ IsCompactOperator (f - g)

tactic: exact hf.add hg.neg
state_before: R₁ : Type ?u.151370
R₂ : Type ?u.151373
R₃ : Type ?u.151376
R₄ : Type ?u.151379
inst✝¹² : Semiring R₁
inst✝¹¹ : Semiring R₂
inst✝¹⁰ : CommSemiring R₃
inst✝⁹ : CommSemiring R₄
σ₁₂ : R₁ →+* R₂
σ₁₄ : R₁ →+* R₄
σ₃₄ : R₃ →+* R₄
M₁ : Type u_2
M₂ : Type ?u.151847
M₃ : Type ?u.151850
M₄ : Type u_1
inst✝⁸ : TopologicalSpace M₁
inst✝⁷ : AddCommMonoid M₁
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : TopologicalSpace M₃
inst✝³ : AddCommGroup M₃
inst✝² : TopologicalSpace M₄
inst✝¹ : AddCommGroup M₄
inst✝ : TopologicalAddGroup M₄
f g : M₁ → M₄
hf : IsCompactOperator f
hg : IsCompactOperator g
⊢ IsCompactOperator (f + -g)
Theorem: Ordinal.principal_mul_two
File: Mathlib/SetTheory/Ordinal/Principal.lean

tactic: have h₂ : succ (1 : Ordinal) = 2 := by simp
state_before: a b : Ordinal
ha : a < 2
hb : b < 2
⊢ (fun x x_1 => x * x_1) a b < 2

tactic: dsimp only
state_before: a b : Ordinal
ha : a < 2
hb : b < 2
h₂ : succ 1 = 2
⊢ (fun x x_1 => x * x_1) a b < 2

tactic: rw [← h₂, lt_succ_iff] at ha hb ⊢
state_before: a b : Ordinal
ha : a < 2
hb : b < 2
h₂ : succ 1 = 2
⊢ a * b < 2

tactic: convert mul_le_mul' ha hb
state_before: a b : Ordinal
ha : a ≤ 1
hb : b ≤ 1
h₂ : succ 1 = 2
⊢ a * b ≤ 1

tactic: exact (mul_one 1).symm
state_before: case h.e'_4
a b : Ordinal
ha : a ≤ 1
hb : b ≤ 1
h₂ : succ 1 = 2
⊢ 1 = 1 * 1

tactic: simp
state_before: a b : Ordinal
ha : a < 2
hb : b < 2
⊢ succ 1 = 2
Theorem: LinearIsometry.angle_map
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean

tactic: rw [angle, angle, f.inner_map_map, f.norm_map, f.norm_map]
state_before: V : Type ?u.9920
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
x y : V
E : Type u_1
F : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ E
inst✝ : InnerProductSpace ℝ F
f : E →ₗᵢ[ℝ] F
u v : E
⊢ angle (↑f u) (↑f v) = angle u v
Theorem: Matrix.dotProduct_comp_equiv_symm
File: Mathlib/Data/Matrix/Basic.lean

tactic: simpa only [Equiv.symm_symm] using (comp_equiv_symm_dotProduct u x e.symm).symm
state_before: l : Type ?u.147461
m : Type u_2
n : Type u_1
o : Type ?u.147470
m' : o → Type ?u.147475
n' : o → Type ?u.147480
R : Type ?u.147483
S : Type ?u.147486
α : Type v
β : Type w
γ : Type ?u.147493
inst✝² : Fintype m
inst✝¹ : Fintype n
inst✝ : NonUnitalNonAssocSemiring α
u v w : m → α
x y : n → α
e : n ≃ m
⊢ u ⬝ᵥ x ∘ ↑e.symm = u ∘ ↑e ⬝ᵥ x
Theorem: isUnit_iff_dvd_one
File: Mathlib/Algebra/Divisibility/Units.lean

tactic: rw [h, mul_comm]
state_before: α : Type u_1
inst✝ : CommMonoid α
x : α
x✝ : x ∣ 1
y : α
h : 1 = x * y
⊢ y * x = 1
Theorem: List.rtakeWhile_nil
File: Mathlib/Data/List/Rdrop.lean

tactic: simp [rtakeWhile, takeWhile]
state_before: α : Type u_1
p : α → Bool
l : List α
n : ℕ
⊢ rtakeWhile p [] = []
Theorem: ENNReal.inv_ne_top
File: Mathlib/Data/Real/ENNReal.lean

tactic: simp
state_before: α : Type ?u.255042
β : Type ?u.255045
a b c d : ℝ≥0∞
r p q : ℝ≥0
⊢ a⁻¹ ≠ ⊤ ↔ a ≠ 0
Theorem: AddMonoidAlgebra.mapDomain_algebraMap
File: Mathlib/Algebra/MonoidAlgebra/Basic.lean

tactic: simp only [Function.comp_apply, mapDomain_single, AddMonoidAlgebra.coe_algebraMap, map_zero]
state_before: k : Type u₁
G : Type u₂
R : Type ?u.2773678
A : Type u_1
H : Type u_2
F : Type u_3
inst✝⁵ : CommSemiring k
inst✝⁴ : Semiring A
inst✝³ : Algebra k A
inst✝² : AddMonoid G
inst✝¹ : AddMonoid H
inst✝ : AddMonoidHomClass F G H
f : F
r : k
⊢ mapDomain (↑f) (↑(algebraMap k (AddMonoidAlgebra A G)) r) = ↑(algebraMap k (AddMonoidAlgebra A H)) r
Theorem: Polynomial.aeval_continuousMap_apply
File: Mathlib/Topology/ContinuousFunction/Polynomial.lean

tactic: refine' Polynomial.induction_on' g _ _
state_before: R : Type u_1
α : Type u_2
inst✝³ : TopologicalSpace α
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
g : R[X]
f : C(α, R)
x : α
⊢ ↑(↑(aeval f) g) x = eval (↑f x) g

tactic: intro p q hp hq
state_before: case refine'_1
R : Type u_1
α : Type u_2
inst✝³ : TopologicalSpace α
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
g : R[X]
f : C(α, R)
x : α
⊢ ∀ (p q : R[X]),
    ↑(↑(aeval f) p) x = eval (↑f x) p →
      ↑(↑(aeval f) q) x = eval (↑f x) q → ↑(↑(aeval f) (p + q)) x = eval (↑f x) (p + q)

tactic: simp [hp, hq]
state_before: case refine'_1
R : Type u_1
α : Type u_2
inst✝³ : TopologicalSpace α
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
g : R[X]
f : C(α, R)
x : α
p q : R[X]
hp : ↑(↑(aeval f) p) x = eval (↑f x) p
hq : ↑(↑(aeval f) q) x = eval (↑f x) q
⊢ ↑(↑(aeval f) (p + q)) x = eval (↑f x) (p + q)

tactic: intro n a
state_before: case refine'_2
R : Type u_1
α : Type u_2
inst✝³ : TopologicalSpace α
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
g : R[X]
f : C(α, R)
x : α
⊢ ∀ (n : ℕ) (a : R), ↑(↑(aeval f) (↑(monomial n) a)) x = eval (↑f x) (↑(monomial n) a)

tactic: simp [Pi.pow_apply]
state_before: case refine'_2
R : Type u_1
α : Type u_2
inst✝³ : TopologicalSpace α
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
g : R[X]
f : C(α, R)
x : α
n : ℕ
a : R
⊢ ↑(↑(aeval f) (↑(monomial n) a)) x = eval (↑f x) (↑(monomial n) a)
Theorem: Dfinsupp.comapDomain_zero
File: Mathlib/Data/Dfinsupp/Basic.lean

tactic: ext
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
κ : Type u_1
inst✝ : (i : ι) → Zero (β i)
h : κ → ι
hh : Function.Injective h
⊢ comapDomain h hh 0 = 0

tactic: rw [zero_apply, comapDomain_apply, zero_apply]
state_before: case h
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
κ : Type u_1
inst✝ : (i : ι) → Zero (β i)
h : κ → ι
hh : Function.Injective h
i✝ : κ
⊢ ↑(comapDomain h hh 0) i✝ = ↑0 i✝
Theorem: List.toFinset_append
File: Mathlib/Data/Finset/Basic.lean

tactic: induction' l with hd tl hl
state_before: α : Type u_1
β : Type ?u.470224
γ : Type ?u.470227
inst✝ : DecidableEq α
l l' : List α
a : α
⊢ toFinset (l ++ l') = toFinset l ∪ toFinset l'

tactic: simp
state_before: case nil
α : Type u_1
β : Type ?u.470224
γ : Type ?u.470227
inst✝ : DecidableEq α
l l' : List α
a : α
⊢ toFinset ([] ++ l') = toFinset [] ∪ toFinset l'

tactic: simp [hl]
state_before: case cons
α : Type u_1
β : Type ?u.470224
γ : Type ?u.470227
inst✝ : DecidableEq α
l l' : List α
a hd : α
tl : List α
hl : toFinset (tl ++ l') = toFinset tl ∪ toFinset l'
⊢ toFinset (hd :: tl ++ l') = toFinset (hd :: tl) ∪ toFinset l'
Theorem: PFun.core_eq
File: Mathlib/Data/PFun.lean

tactic: rw [preimage_eq, Set.union_distrib_right, Set.union_comm (Dom f), Set.compl_union_self,
  Set.inter_univ, Set.union_eq_self_of_subset_right (f.compl_dom_subset_core s)]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.50828
δ : Type ?u.50831
ε : Type ?u.50834
ι : Type ?u.50837
f✝ f : α →. β
s : Set β
⊢ core f s = preimage f s ∪ Dom fᶜ
Theorem: Nat.multinomial_singleton
File: Mathlib/Data/Nat/Choose/Multinomial.lean

tactic: simp [multinomial, Nat.div_self (factorial_pos (f a))]
state_before: α : Type u_1
s : Finset α
f : α → ℕ
a b : α
n : ℕ
⊢ multinomial {a} f = 1
Theorem: ModelWithCorners.locally_compact
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: have : ∀ x : H, (𝓝 x).HasBasis (fun s => s ∈ 𝓝 (I x) ∧ IsCompact s)
    fun s => I.symm '' (s ∩ range I) := fun x ↦ by
  rw [← I.symm_map_nhdsWithin_range]
  exact ((compact_basis_nhds (I x)).inf_principal _).map _
state_before: 𝕜 : Type u_2
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
⊢ LocallyCompactSpace H

tactic: refine' locallyCompactSpace_of_hasBasis this _
state_before: 𝕜 : Type u_2
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
this :
  ∀ (x : H), HasBasis (𝓝 x) (fun s => s ∈ 𝓝 (↑I x) ∧ IsCompact s) fun s => ↑(ModelWithCorners.symm I) '' (s ∩ range ↑I)
⊢ LocallyCompactSpace H

tactic: rintro x s ⟨-, hsc⟩
state_before: 𝕜 : Type u_2
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
this :
  ∀ (x : H), HasBasis (𝓝 x) (fun s => s ∈ 𝓝 (↑I x) ∧ IsCompact s) fun s => ↑(ModelWithCorners.symm I) '' (s ∩ range ↑I)
⊢ ∀ (x : H) (i : Set E), i ∈ 𝓝 (↑I x) ∧ IsCompact i → IsCompact (↑(ModelWithCorners.symm I) '' (i ∩ range ↑I))

tactic: exact (hsc.inter_right I.closed_range).image I.continuous_symm
state_before: case intro
𝕜 : Type u_2
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
this :
  ∀ (x : H), HasBasis (𝓝 x) (fun s => s ∈ 𝓝 (↑I x) ∧ IsCompact s) fun s => ↑(ModelWithCorners.symm I) '' (s ∩ range ↑I)
x : H
s : Set E
hsc : IsCompact s
⊢ IsCompact (↑(ModelWithCorners.symm I) '' (s ∩ range ↑I))

tactic: rw [← I.symm_map_nhdsWithin_range]
state_before: 𝕜 : Type u_2
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
x : H
⊢ HasBasis (𝓝 x) (fun s => s ∈ 𝓝 (↑I x) ∧ IsCompact s) fun s => ↑(ModelWithCorners.symm I) '' (s ∩ range ↑I)

tactic: exact ((compact_basis_nhds (I x)).inf_principal _).map _
state_before: 𝕜 : Type u_2
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
x : H
⊢ HasBasis (map (↑(ModelWithCorners.symm I)) (𝓝[range ↑I] ↑I x)) (fun s => s ∈ 𝓝 (↑I x) ∧ IsCompact s) fun s =>
    ↑(ModelWithCorners.symm I) '' (s ∩ range ↑I)
Theorem: Set.pi_update_of_mem
File: Mathlib/Data/Set/Prod.lean

tactic: rw [union_diff_self, union_eq_self_of_subset_left (singleton_subset_iff.2 hi)]
state_before: ι : Type u_1
α : ι → Type u_3
β : ι → Type u_2
s s₁ s₂ : Set ι
t✝ t₁ t₂ : (i : ι) → Set (α i)
i : ι
inst✝ : DecidableEq ι
hi : i ∈ s
f : (j : ι) → α j
a : α i
t : (j : ι) → α j → Set (β j)
⊢ (pi s fun j => t j (update f i a j)) = pi ({i} ∪ s \ {i}) fun j => t j (update f i a j)

tactic: rw [union_pi, singleton_pi', update_same, pi_update_of_not_mem]
state_before: ι : Type u_1
α : ι → Type u_3
β : ι → Type u_2
s s₁ s₂ : Set ι
t✝ t₁ t₂ : (i : ι) → Set (α i)
i : ι
inst✝ : DecidableEq ι
hi : i ∈ s
f : (j : ι) → α j
a : α i
t : (j : ι) → α j → Set (β j)
⊢ (pi ({i} ∪ s \ {i}) fun j => t j (update f i a j)) = {x | x i ∈ t i a} ∩ pi (s \ {i}) fun j => t j (f j)

tactic: simp
state_before: case hi
ι : Type u_1
α : ι → Type u_3
β : ι → Type u_2
s s₁ s₂ : Set ι
t✝ t₁ t₂ : (i : ι) → Set (α i)
i : ι
inst✝ : DecidableEq ι
hi : i ∈ s
f : (j : ι) → α j
a : α i
t : (j : ι) → α j → Set (β j)
⊢ ¬i ∈ s \ {i}
Theorem: BoundedContinuousFunction.abs_diff_coe_le_dist
File: Mathlib/Topology/ContinuousFunction/Bounded.lean

tactic: rw [dist_eq_norm]
state_before: F : Type ?u.1064401
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : SeminormedAddCommGroup β
f g : α →ᵇ β
x : α
C : ℝ
⊢ ‖↑f x - ↑g x‖ ≤ dist f g

tactic: exact (f - g).norm_coe_le_norm x
state_before: F : Type ?u.1064401
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : SeminormedAddCommGroup β
f g : α →ᵇ β
x : α
C : ℝ
⊢ ‖↑f x - ↑g x‖ ≤ ‖f - g‖
Theorem: LaurentPolynomial.T_sub
File: Mathlib/Data/Polynomial/Laurent.lean

tactic: rw [← T_add, sub_eq_add_neg]
state_before: R : Type u_1
inst✝ : Semiring R
m n : ℤ
⊢ T (m - n) = T m * T (-n)
Theorem: Submodule.eq_bot_of_le_smul_of_le_jacobson_bot
File: Mathlib/RingTheory/Nakayama.lean

tactic: rw [eq_smul_of_le_smul_of_le_jacobson hN hIN hIjac, Submodule.bot_smul]
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
I : Ideal R
N : Submodule R M
hN : FG N
hIN : N ≤ I • N
hIjac : I ≤ jacobson ⊥
⊢ N = ⊥
Theorem: Set.image_const_sub_Ioc
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: have := image_comp (fun x => a + x) fun x => -x
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ (fun x => a - x) '' Ioc b c = Ico (a - c) (a - b)

tactic: dsimp [Function.comp] at this
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
this : ∀ (a_1 : Set α), ((fun x => a + x) ∘ fun x => -x) '' a_1 = (fun x => a + x) '' ((fun x => -x) '' a_1)
⊢ (fun x => a - x) '' Ioc b c = Ico (a - c) (a - b)

tactic: simp [sub_eq_add_neg, this, add_comm]
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
this : ∀ (a_1 : Set α), (fun x => a + -x) '' a_1 = (fun x => a + x) '' ((fun x => -x) '' a_1)
⊢ (fun x => a - x) '' Ioc b c = Ico (a - c) (a - b)
Theorem: Nat.ArithmeticFunction.zeta_mul_vonMangoldt
File: Mathlib/NumberTheory/VonMangoldt.lean

tactic: rw [mul_comm]
state_before: ⊢ ↑ζ * Λ = log

tactic: simp
state_before: ⊢ Λ * ↑ζ = log
Theorem: NNReal.add_rpow_le_one_of_add_le_one
File: Mathlib/Analysis/MeanInequalitiesPow.lean

tactic: have h_le_one : ∀ x : ℝ≥0, x ≤ 1 → x ^ p ≤ x := fun x hx => rpow_le_self_of_le_one hx hp1
state_before: ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0
hab : a + b ≤ 1
hp1 : 1 ≤ p
⊢ a ^ p + b ^ p ≤ 1

tactic: have ha : a ≤ 1 := (self_le_add_right a b).trans hab
state_before: ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0
hab : a + b ≤ 1
hp1 : 1 ≤ p
h_le_one : ∀ (x : ℝ≥0), x ≤ 1 → x ^ p ≤ x
⊢ a ^ p + b ^ p ≤ 1

tactic: have hb : b ≤ 1 := (self_le_add_left b a).trans hab
state_before: ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0
hab : a + b ≤ 1
hp1 : 1 ≤ p
h_le_one : ∀ (x : ℝ≥0), x ≤ 1 → x ^ p ≤ x
ha : a ≤ 1
⊢ a ^ p + b ^ p ≤ 1

tactic: exact (add_le_add (h_le_one a ha) (h_le_one b hb)).trans hab
state_before: ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0
hab : a + b ≤ 1
hp1 : 1 ≤ p
h_le_one : ∀ (x : ℝ≥0), x ≤ 1 → x ^ p ≤ x
ha : a ≤ 1
hb : b ≤ 1
⊢ a ^ p + b ^ p ≤ 1
Theorem: Dfinsupp.update_eq_sub_add_single
File: Mathlib/Data/Dfinsupp/Basic.lean

tactic: rw [update_eq_erase_add_single f i b, erase_eq_sub_single f i]
state_before: ι : Type u
γ : Type w
β✝ : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝¹ : (i : ι) → Zero (β✝ i)
s : Finset ι
x : (i : ↑↑s) → β✝ ↑i
i✝ : ι
f✝ : Π₀ (i : ι), β✝ i
b✝ : β✝ i✝
j : ι
β : ι → Type u_1
inst✝ : (i : ι) → AddGroup (β i)
f : Π₀ (i : ι), β i
i : ι
b : β i
⊢ update i f b = f - single i (↑f i) + single i b
Theorem: CategoryTheory.Bicategory.triangle_assoc_comp_left_inv
File: Mathlib/CategoryTheory/Bicategory/Basic.lean

tactic: simp [← cancel_mono ((ρ_ f).hom ▷ g)]
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
f : a ⟶ b
g : b ⟶ c
⊢ f ◁ (λ_ g).inv ≫ (α_ f (𝟙 b) g).inv = (ρ_ f).inv ▷ g
Theorem: Asymptotics.isLittleO_norm_pow_id
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: have := @isLittleO_norm_pow_norm_pow E' _ _ _ h
state_before: α : Type ?u.652501
β : Type ?u.652504
E : Type ?u.652507
F : Type ?u.652510
G : Type ?u.652513
E' : Type u_1
F' : Type ?u.652519
G' : Type ?u.652522
E'' : Type ?u.652525
F'' : Type ?u.652528
G'' : Type ?u.652531
R : Type ?u.652534
R' : Type ?u.652537
𝕜 : Type ?u.652540
𝕜' : Type ?u.652543
inst✝¹² : Norm E
inst✝¹¹ : Norm F
inst✝¹⁰ : Norm G
inst✝⁹ : SeminormedAddCommGroup E'
inst✝⁸ : SeminormedAddCommGroup F'
inst✝⁷ : SeminormedAddCommGroup G'
inst✝⁶ : NormedAddCommGroup E''
inst✝⁵ : NormedAddCommGroup F''
inst✝⁴ : NormedAddCommGroup G''
inst✝³ : SeminormedRing R
inst✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
n : ℕ
h : 1 < n
⊢ (fun x => ‖x‖ ^ n) =o[𝓝 0] fun x => x

tactic: simp only [pow_one] at this
state_before: α : Type ?u.652501
β : Type ?u.652504
E : Type ?u.652507
F : Type ?u.652510
G : Type ?u.652513
E' : Type u_1
F' : Type ?u.652519
G' : Type ?u.652522
E'' : Type ?u.652525
F'' : Type ?u.652528
G'' : Type ?u.652531
R : Type ?u.652534
R' : Type ?u.652537
𝕜 : Type ?u.652540
𝕜' : Type ?u.652543
inst✝¹² : Norm E
inst✝¹¹ : Norm F
inst✝¹⁰ : Norm G
inst✝⁹ : SeminormedAddCommGroup E'
inst✝⁸ : SeminormedAddCommGroup F'
inst✝⁷ : SeminormedAddCommGroup G'
inst✝⁶ : NormedAddCommGroup E''
inst✝⁵ : NormedAddCommGroup F''
inst✝⁴ : NormedAddCommGroup G''
inst✝³ : SeminormedRing R
inst✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
n : ℕ
h : 1 < n
this : (fun x => ‖x‖ ^ n) =o[𝓝 0] fun x => ‖x‖ ^ 1
⊢ (fun x => ‖x‖ ^ n) =o[𝓝 0] fun x => x

tactic: exact isLittleO_norm_right.mp this
state_before: α : Type ?u.652501
β : Type ?u.652504
E : Type ?u.652507
F : Type ?u.652510
G : Type ?u.652513
E' : Type u_1
F' : Type ?u.652519
G' : Type ?u.652522
E'' : Type ?u.652525
F'' : Type ?u.652528
G'' : Type ?u.652531
R : Type ?u.652534
R' : Type ?u.652537
𝕜 : Type ?u.652540
𝕜' : Type ?u.652543
inst✝¹² : Norm E
inst✝¹¹ : Norm F
inst✝¹⁰ : Norm G
inst✝⁹ : SeminormedAddCommGroup E'
inst✝⁸ : SeminormedAddCommGroup F'
inst✝⁷ : SeminormedAddCommGroup G'
inst✝⁶ : NormedAddCommGroup E''
inst✝⁵ : NormedAddCommGroup F''
inst✝⁴ : NormedAddCommGroup G''
inst✝³ : SeminormedRing R
inst✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
n : ℕ
h : 1 < n
this : (fun x => ‖x‖ ^ n) =o[𝓝 0] fun x => ‖x‖
⊢ (fun x => ‖x‖ ^ n) =o[𝓝 0] fun x => x
Theorem: CategoryTheory.MonoOver.factors_congr
File: Mathlib/CategoryTheory/Subobject/FactorThru.lean

tactic: simp [hu]
state_before: C : Type u₁
inst✝¹ : Category C
X✝ Y✝ Z : C
D : Type u₂
inst✝ : Category D
X : C
f g : MonoOver X
Y : C
h : Y ⟶ X
e : f ≅ g
x✝ : Factors f h
u : Y ⟶ f.obj.left
hu : u ≫ arrow f = h
⊢ (u ≫ ((forget X).map e.hom).left) ≫ arrow g = h

tactic: simp [hu]
state_before: C : Type u₁
inst✝¹ : Category C
X✝ Y✝ Z : C
D : Type u₂
inst✝ : Category D
X : C
f g : MonoOver X
Y : C
h : Y ⟶ X
e : f ≅ g
x✝ : Factors g h
u : Y ⟶ g.obj.left
hu : u ≫ arrow g = h
⊢ (u ≫ ((forget X).map e.inv).left) ≫ arrow f = h
Theorem: DiscreteValuationRing.ideal_eq_span_pow_irreducible
File: Mathlib/RingTheory/DiscreteValuationRing/Basic.lean

tactic: have gen_ne_zero : generator s ≠ 0 := by
  rw [Ne.def, ← eq_bot_iff_generator_eq_zero]
  assumption
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
s : Ideal R
hs : s ≠ ⊥
ϖ : R
hirr : Irreducible ϖ
⊢ ∃ n, s = span {ϖ ^ n}

tactic: rcases associated_pow_irreducible gen_ne_zero hirr with ⟨n, u, hnu⟩
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
s : Ideal R
hs : s ≠ ⊥
ϖ : R
hirr : Irreducible ϖ
gen_ne_zero : generator s ≠ 0
⊢ ∃ n, s = span {ϖ ^ n}

tactic: use n
state_before: case intro.intro
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
s : Ideal R
hs : s ≠ ⊥
ϖ : R
hirr : Irreducible ϖ
gen_ne_zero : generator s ≠ 0
n : ℕ
u : Rˣ
hnu : generator s * ↑u = ϖ ^ n
⊢ ∃ n, s = span {ϖ ^ n}

tactic: have : span _ = _ := Ideal.span_singleton_generator s
state_before: case intro.intro
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
s : Ideal R
hs : s ≠ ⊥
ϖ : R
hirr : Irreducible ϖ
gen_ne_zero : generator s ≠ 0
n : ℕ
u : Rˣ
hnu : generator s * ↑u = ϖ ^ n
⊢ s = span {ϖ ^ n}

tactic: rw [← this, ← hnu, span_singleton_eq_span_singleton]
state_before: case intro.intro
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
s : Ideal R
hs : s ≠ ⊥
ϖ : R
hirr : Irreducible ϖ
gen_ne_zero : generator s ≠ 0
n : ℕ
u : Rˣ
hnu : generator s * ↑u = ϖ ^ n
this : span {generator s} = s
⊢ s = span {ϖ ^ n}

tactic: use u
state_before: case intro.intro
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
s : Ideal R
hs : s ≠ ⊥
ϖ : R
hirr : Irreducible ϖ
gen_ne_zero : generator s ≠ 0
n : ℕ
u : Rˣ
hnu : generator s * ↑u = ϖ ^ n
this : span {generator s} = s
⊢ Associated (generator s) (generator s * ↑u)

tactic: rw [Ne.def, ← eq_bot_iff_generator_eq_zero]
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
s : Ideal R
hs : s ≠ ⊥
ϖ : R
hirr : Irreducible ϖ
⊢ generator s ≠ 0

tactic: assumption
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
s : Ideal R
hs : s ≠ ⊥
ϖ : R
hirr : Irreducible ϖ
⊢ ¬s = ⊥
Theorem: Nat.one_lt_iff_ne_zero_and_ne_one
File: Mathlib/Data/Nat/Order/Basic.lean

tactic: decide
state_before: m n k l : ℕ
⊢ 1 < 0 ↔ 0 ≠ 0 ∧ 0 ≠ 1

tactic: decide
state_before: m n k l : ℕ
⊢ 1 < 1 ↔ 1 ≠ 0 ∧ 1 ≠ 1

tactic: simp
state_before: m n✝ k l n : ℕ
⊢ 1 < n + 2 ↔ n + 2 ≠ 0 ∧ n + 2 ≠ 1
Theorem: NNReal.iSup_mul
File: Mathlib/Data/Real/NNReal.lean

tactic: rw [mul_comm, mul_iSup]
state_before: ι : Sort u_1
f✝ f : ι → ℝ≥0
a : ℝ≥0
⊢ (⨆ (i : ι), f i) * a = ⨆ (i : ι), f i * a

tactic: simp_rw [mul_comm]
state_before: ι : Sort u_1
f✝ f : ι → ℝ≥0
a : ℝ≥0
⊢ (⨆ (i : ι), a * f i) = ⨆ (i : ι), f i * a
Theorem: Bool.not_eq_true_eq_eq_false
File: Mathlib/Init/Data/Bool/Lemmas.lean

tactic: cases a <;> simp
state_before: a : Bool
⊢ ((!a) = true) = (a = false)
Theorem: continuousWithinAt_Ioc_iff_Ioi
File: Mathlib/Topology/Order/Basic.lean

tactic: simp only [ContinuousWithinAt, nhdsWithin_Ioc_eq_nhdsWithin_Ioi h]
state_before: α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderClosedTopology α
a✝ b✝ : α
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace β
a b : α
f : α → β
h : a < b
⊢ ContinuousWithinAt f (Ioc a b) a ↔ ContinuousWithinAt f (Ioi a) a
Theorem: Nat.Partrec.Code.encode_lt_rfind'
File: Mathlib/Computability/PartrecCode.lean

tactic: simp [encodeCode_eq, encodeCode]
state_before: cf : Code
⊢ encode cf < encode (rfind' cf)

tactic: have := Nat.mul_le_mul_right cf.encodeCode (by decide : 1 ≤ 2 * 2)
state_before: cf : Code
⊢ encodeCode cf < 2 * (2 * encodeCode cf + 1) + 1 + 4

tactic: rw [one_mul, mul_assoc] at this
state_before: cf : Code
this : 1 * encodeCode cf ≤ 2 * 2 * encodeCode cf
⊢ encodeCode cf < 2 * (2 * encodeCode cf + 1) + 1 + 4

tactic: refine' lt_of_le_of_lt (le_trans this _) (lt_add_of_pos_right _ (by decide : 0 < 4))
state_before: cf : Code
this : encodeCode cf ≤ 2 * (2 * encodeCode cf)
⊢ encodeCode cf < 2 * (2 * encodeCode cf + 1) + 1 + 4

tactic: exact le_of_lt (Nat.lt_succ_of_le <| Nat.mul_le_mul_left _ <| le_of_lt <|
  Nat.lt_succ_of_le <| Nat.mul_le_mul_left _ <| le_rfl)
state_before: cf : Code
this : encodeCode cf ≤ 2 * (2 * encodeCode cf)
⊢ 2 * (2 * encodeCode cf) ≤ 2 * (2 * encodeCode cf + 1) + 1

tactic: decide
state_before: cf : Code
⊢ 1 ≤ 2 * 2

tactic: decide
state_before: cf : Code
this : encodeCode cf ≤ 2 * (2 * encodeCode cf)
⊢ 0 < 4