tasksource/leandojo huggingface dataset:
Theorem: ENNReal.toReal_iInf
File: Mathlib/Data/Real/ENNReal.lean

tactic: simp only [ENNReal.toReal, toNNReal_iInf hf, NNReal.coe_iInf]
state_before: α : Type ?u.842900
β : Type ?u.842903
a b c d : ℝ≥0∞
r p q : ℝ≥0
ι : Sort u_1
f g : ι → ℝ≥0∞
hf : ∀ (i : ι), f i ≠ ⊤
⊢ ENNReal.toReal (iInf f) = ⨅ (i : ι), ENNReal.toReal (f i)
Theorem: Real.logb_nonpos_iff_of_base_lt_one
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

tactic: rw [← not_lt, logb_pos_iff_of_base_lt_one b_pos b_lt_one hx, not_lt]
state_before: b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
hx : 0 < x
⊢ logb b x ≤ 0 ↔ 1 ≤ x
Theorem: Asymptotics.IsEquivalent.isBigO_symm
File: Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean

tactic: convert h.isLittleO.right_isBigO_add
state_before: α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
h : u ~[l] v
⊢ v =O[l] u

tactic: simp
state_before: case h.e'_8.h
α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
h : u ~[l] v
x✝ : α
⊢ u x✝ = (u - v) x✝ + v x✝
Theorem: Finset.noncommProd_eq_prod
File: Mathlib/Data/Finset/NoncommProd.lean

tactic: induction' s using Finset.induction_on with a s ha IH
state_before: F : Type ?u.197647
ι : Type ?u.197650
α : Type u_2
β✝ : Type ?u.197656
γ : Type ?u.197659
f✝ : α → β✝ → β✝
op : α → α → α
inst✝² : Monoid β✝
inst✝¹ : Monoid γ
β : Type u_1
inst✝ : CommMonoid β
s : Finset α
f : α → β
⊢ noncommProd s f (_ : ∀ (x : α), x ∈ ↑s → ∀ (x_2 : α), x_2 ∈ ↑s → x ≠ x_2 → Commute (f x) (f x_2)) = Finset.prod s f

tactic: simp
state_before: case empty
F : Type ?u.197647
ι : Type ?u.197650
α : Type u_2
β✝ : Type ?u.197656
γ : Type ?u.197659
f✝ : α → β✝ → β✝
op : α → α → α
inst✝² : Monoid β✝
inst✝¹ : Monoid γ
β : Type u_1
inst✝ : CommMonoid β
f : α → β
⊢ noncommProd ∅ f (_ : ∀ (x : α), x ∈ ↑∅ → ∀ (x_2 : α), x_2 ∈ ↑∅ → x ≠ x_2 → Commute (f x) (f x_2)) = Finset.prod ∅ f

tactic: simp [ha, IH]
state_before: case insert
F : Type ?u.197647
ι : Type ?u.197650
α : Type u_2
β✝ : Type ?u.197656
γ : Type ?u.197659
f✝ : α → β✝ → β✝
op : α → α → α
inst✝² : Monoid β✝
inst✝¹ : Monoid γ
β : Type u_1
inst✝ : CommMonoid β
f : α → β
a : α
s : Finset α
ha : ¬a ∈ s
IH : noncommProd s f (_ : ∀ (x : α), x ∈ ↑s → ∀ (x_2 : α), x_2 ∈ ↑s → x ≠ x_2 → Commute (f x) (f x_2)) = Finset.prod s f
⊢ noncommProd (insert a s) f
      (_ : ∀ (x : α), x ∈ ↑(insert a s) → ∀ (x_2 : α), x_2 ∈ ↑(insert a s) → x ≠ x_2 → Commute (f x) (f x_2)) =
    Finset.prod (insert a s) f
Theorem: linearIndependent_fin_succ'
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: rw [← linearIndependent_fin_snoc, Fin.snoc_init_self]
state_before: ι : Type u'
ι' : Type ?u.1251029
R : Type ?u.1251032
K : Type u_1
M : Type ?u.1251038
M' : Type ?u.1251041
M'' : Type ?u.1251044
V : Type u
V' : Type ?u.1251049
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v✝ : ι → V
s t : Set V
x y z : V
n : ℕ
v : Fin (n + 1) → V
⊢ LinearIndependent K v ↔ LinearIndependent K (Fin.init v) ∧ ¬v (Fin.last n) ∈ span K (range (Fin.init v))
Theorem: ball_one_div_singleton
File: Mathlib/Analysis/Normed/Group/Pointwise.lean

tactic: rw [ball_div_singleton, one_div]
state_before: E : Type u_1
inst✝ : SeminormedCommGroup E
ε δ : ℝ
s t : Set E
x y : E
⊢ ball 1 δ / {x} = ball x⁻¹ δ
Theorem: hasBasis_nhdsSet
File: Mathlib/Topology/NhdsSet.lean

tactic: simp [mem_nhdsSet_iff_exists, and_assoc]
state_before: α : Type u_1
β : Type ?u.9479
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s✝ t✝ s₁ s₂ t₁ t₂ : Set α
x : α
s t : Set α
⊢ t ∈ 𝓝ˢ s ↔ ∃ i, (IsOpen i ∧ s ⊆ i) ∧ i ⊆ t
Theorem: List.get?_succ_scanl
File: Mathlib/Data/List/Basic.lean

tactic: induction' l with hd tl hl generalizing b i
state_before: ι : Type ?u.240790
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
f : β → α → β
b : β
a : α
l : List α
i : ℕ
⊢ get? (scanl f b l) (i + 1) = Option.bind (get? (scanl f b l) i) fun x => Option.map (fun y => f x y) (get? l i)

tactic: symm
state_before: case nil
ι : Type ?u.240790
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
f : β → α → β
b✝ : β
a : α
l : List α
i✝ : ℕ
b : β
i : ℕ
⊢ get? (scanl f b []) (i + 1) = Option.bind (get? (scanl f b []) i) fun x => Option.map (fun y => f x y) (get? [] i)

tactic: simp only [Option.bind_eq_none', get?, forall₂_true_iff, not_false_iff, Option.map_none',
  scanl_nil, Option.not_mem_none, forall_true_iff]
state_before: case nil
ι : Type ?u.240790
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
f : β → α → β
b✝ : β
a : α
l : List α
i✝ : ℕ
b : β
i : ℕ
⊢ (Option.bind (get? (scanl f b []) i) fun x => Option.map (fun y => f x y) (get? [] i)) = get? (scanl f b []) (i + 1)

tactic: simp only [scanl_cons, singleton_append]
state_before: case cons
ι : Type ?u.240790
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
f : β → α → β
b✝ : β
a : α
l : List α
i✝ : ℕ
hd : α
tl : List α
hl :
  ∀ {b : β} {i : ℕ},
    get? (scanl f b tl) (i + 1) = Option.bind (get? (scanl f b tl) i) fun x => Option.map (fun y => f x y) (get? tl i)
b : β
i : ℕ
⊢ get? (scanl f b (hd :: tl)) (i + 1) =
    Option.bind (get? (scanl f b (hd :: tl)) i) fun x => Option.map (fun y => f x y) (get? (hd :: tl) i)

tactic: cases i
state_before: case cons
ι : Type ?u.240790
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
f : β → α → β
b✝ : β
a : α
l : List α
i✝ : ℕ
hd : α
tl : List α
hl :
  ∀ {b : β} {i : ℕ},
    get? (scanl f b tl) (i + 1) = Option.bind (get? (scanl f b tl) i) fun x => Option.map (fun y => f x y) (get? tl i)
b : β
i : ℕ
⊢ get? (b :: scanl f (f b hd) tl) (i + 1) =
    Option.bind (get? (b :: scanl f (f b hd) tl) i) fun x => Option.map (fun y => f x y) (get? (hd :: tl) i)

tactic: simp only [Option.map_some', get?_zero_scanl, get?, Option.some_bind']
state_before: case cons.zero
ι : Type ?u.240790
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
f : β → α → β
b✝ : β
a : α
l : List α
i : ℕ
hd : α
tl : List α
hl :
  ∀ {b : β} {i : ℕ},
    get? (scanl f b tl) (i + 1) = Option.bind (get? (scanl f b tl) i) fun x => Option.map (fun y => f x y) (get? tl i)
b : β
⊢ get? (b :: scanl f (f b hd) tl) (zero + 1) =
    Option.bind (get? (b :: scanl f (f b hd) tl) zero) fun x => Option.map (fun y => f x y) (get? (hd :: tl) zero)

tactic: simp only [hl, get?]
state_before: case cons.succ
ι : Type ?u.240790
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
f : β → α → β
b✝ : β
a : α
l : List α
i : ℕ
hd : α
tl : List α
hl :
  ∀ {b : β} {i : ℕ},
    get? (scanl f b tl) (i + 1) = Option.bind (get? (scanl f b tl) i) fun x => Option.map (fun y => f x y) (get? tl i)
b : β
n✝ : ℕ
⊢ get? (b :: scanl f (f b hd) tl) (succ n✝ + 1) =
    Option.bind (get? (b :: scanl f (f b hd) tl) (succ n✝)) fun x =>
      Option.map (fun y => f x y) (get? (hd :: tl) (succ n✝))
Theorem: Caratheodory.minCardFinsetOfMemConvexHull_card_le_card
File: Mathlib/Analysis/Convex/Caratheodory.lean

tactic: exact ⟨ht₁, ht₂⟩
state_before: 𝕜 : Type u_1
E : Type u
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
x : E
hx : x ∈ ↑(convexHull 𝕜).toOrderHom s
t : Finset E
ht₁ : ↑t ⊆ s
ht₂ : x ∈ ↑(convexHull 𝕜).toOrderHom ↑t
⊢ t ∈ {t | ↑t ⊆ s ∧ x ∈ ↑(convexHull 𝕜).toOrderHom ↑t}
Theorem: Fin.cast_refl
File: Mathlib/Data/Fin/Basic.lean

tactic: ext
state_before: n m : ℕ
h : optParam (n = n) (_ : n = n)
⊢ cast h = OrderIso.refl (Fin n)

tactic: simp
state_before: case h.h.h
n m : ℕ
h : optParam (n = n) (_ : n = n)
x✝ : Fin n
⊢ ↑(↑(cast h) x✝) = ↑(↑(OrderIso.refl (Fin n)) x✝)
Theorem: SimpleGraph.deleteEdges_le_of_le
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: simp (config := { contextual := true }) only [deleteEdges_adj, and_imp, true_and_iff]
state_before: ι : Sort ?u.159422
𝕜 : Type ?u.159425
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
s s' : Set (Sym2 V)
h : s ⊆ s'
v w : V
⊢ Adj (deleteEdges G s') v w → Adj (deleteEdges G s) v w

tactic: exact fun _ hn hs => hn (h hs)
state_before: ι : Sort ?u.159422
𝕜 : Type ?u.159425
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
s s' : Set (Sym2 V)
h : s ⊆ s'
v w : V
⊢ Adj G v w → ¬Quotient.mk (Sym2.Rel.setoid V) (v, w) ∈ s' → ¬Quotient.mk (Sym2.Rel.setoid V) (v, w) ∈ s
Theorem: midpoint_eq_smul_add
File: Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean

tactic: rw [midpoint_eq_iff, pointReflection_apply, vsub_eq_sub, vadd_eq_add, sub_add_eq_add_sub, ←
  two_smul R, smul_smul, mul_invOf_self, one_smul, add_sub_cancel']
state_before: R : Type u_2
V : Type u_1
V' : Type ?u.123496
P : Type ?u.123499
P' : Type ?u.123502
inst✝⁷ : Ring R
inst✝⁶ : Invertible 2
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
x y : V
⊢ midpoint R x y = ⅟2 • (x + y)
Theorem: intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le
File: Mathlib/MeasureTheory/Integral/FundThmCalculus.lean

tactic: refine' (NormedSpace.eq_iff_forall_dual_eq ℝ).2 fun g => _
state_before: ι : Type ?u.1838723
𝕜 : Type ?u.1838726
E : Type u_1
F : Type ?u.1838732
A : Type ?u.1838735
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a ≤ b
hcont : ContinuousOn f (Icc a b)
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivWithinAt f (f' x) (Ioi x) x
f'int : IntervalIntegrable f' volume a b
⊢ (∫ (y : ℝ) in a..b, f' y) = f b - f a

tactic: rw [← g.intervalIntegral_comp_comm f'int, g.map_sub]
state_before: ι : Type ?u.1838723
𝕜 : Type ?u.1838726
E : Type u_1
F : Type ?u.1838732
A : Type ?u.1838735
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g✝ φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a ≤ b
hcont : ContinuousOn f (Icc a b)
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivWithinAt f (f' x) (Ioi x) x
f'int : IntervalIntegrable f' volume a b
g : NormedSpace.Dual ℝ E
⊢ ↑g (∫ (y : ℝ) in a..b, f' y) = ↑g (f b - f a)

tactic: exact integral_eq_sub_of_hasDeriv_right_of_le_real hab (g.continuous.comp_continuousOn hcont)
  (fun x hx => g.hasFDerivAt.comp_hasDerivWithinAt x (hderiv x hx))
  (g.integrable_comp ((intervalIntegrable_iff_integrable_Icc_of_le hab).1 f'int))
state_before: ι : Type ?u.1838723
𝕜 : Type ?u.1838726
E : Type u_1
F : Type ?u.1838732
A : Type ?u.1838735
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝ : ℝ → E
g' g✝ φ : ℝ → ℝ
f f' : ℝ → E
a b : ℝ
hab : a ≤ b
hcont : ContinuousOn f (Icc a b)
hderiv : ∀ (x : ℝ), x ∈ Ioo a b → HasDerivWithinAt f (f' x) (Ioi x) x
f'int : IntervalIntegrable f' volume a b
g : NormedSpace.Dual ℝ E
⊢ (∫ (x : ℝ) in a..b, ↑g (f' x)) = ↑g (f b) - ↑g (f a)
Theorem: CategoryTheory.Presieve.restrict_inj
File: Mathlib/CategoryTheory/Sites/SheafOfTypes.lean

tactic: rw [← extend_restrict t₁, ← extend_restrict t₂]
state_before: C : Type u₁
inst✝ : Category C
P Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
J J₂ : GrothendieckTopology C
x₁ x₂ : FamilyOfElements P (generate R).arrows
t₁ : FamilyOfElements.Compatible x₁
t₂ : FamilyOfElements.Compatible x₂
h :
  FamilyOfElements.restrict (_ : R ≤ (generate R).arrows) x₁ =
    FamilyOfElements.restrict (_ : R ≤ (generate R).arrows) x₂
⊢ x₁ = x₂

tactic: apply congr_arg
state_before: C : Type u₁
inst✝ : Category C
P Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
J J₂ : GrothendieckTopology C
x₁ x₂ : FamilyOfElements P (generate R).arrows
t₁ : FamilyOfElements.Compatible x₁
t₂ : FamilyOfElements.Compatible x₂
h :
  FamilyOfElements.restrict (_ : R ≤ (generate R).arrows) x₁ =
    FamilyOfElements.restrict (_ : R ≤ (generate R).arrows) x₂
⊢ FamilyOfElements.sieveExtend (FamilyOfElements.restrict (_ : R ≤ (generate R).arrows) x₁) =
    FamilyOfElements.sieveExtend (FamilyOfElements.restrict (_ : R ≤ (generate R).arrows) x₂)

tactic: exact h
state_before: case h
C : Type u₁
inst✝ : Category C
P Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
J J₂ : GrothendieckTopology C
x₁ x₂ : FamilyOfElements P (generate R).arrows
t₁ : FamilyOfElements.Compatible x₁
t₂ : FamilyOfElements.Compatible x₂
h :
  FamilyOfElements.restrict (_ : R ≤ (generate R).arrows) x₁ =
    FamilyOfElements.restrict (_ : R ≤ (generate R).arrows) x₂
⊢ FamilyOfElements.restrict (_ : R ≤ (generate R).arrows) x₁ =
    FamilyOfElements.restrict (_ : R ≤ (generate R).arrows) x₂
Theorem: MeasureTheory.DominatedFinMeasAdditive.add
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: refine' ⟨hT.1.add hT'.1, fun s hs hμs => _⟩
state_before: α : Type u_1
E : Type ?u.103681
F : Type ?u.103684
F' : Type ?u.103687
G : Type ?u.103690
𝕜 : Type ?u.103693
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
β : Type u_2
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
hT : DominatedFinMeasAdditive μ T C
hT' : DominatedFinMeasAdditive μ T' C'
⊢ DominatedFinMeasAdditive μ (T + T') (C + C')

tactic: rw [Pi.add_apply, add_mul]
state_before: α : Type u_1
E : Type ?u.103681
F : Type ?u.103684
F' : Type ?u.103687
G : Type ?u.103690
𝕜 : Type ?u.103693
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
β : Type u_2
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
hT : DominatedFinMeasAdditive μ T C
hT' : DominatedFinMeasAdditive μ T' C'
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ ‖(T + T') s‖ ≤ (C + C') * ENNReal.toReal (↑↑μ s)

tactic: exact (norm_add_le _ _).trans (add_le_add (hT.2 s hs hμs) (hT'.2 s hs hμs))
state_before: α : Type u_1
E : Type ?u.103681
F : Type ?u.103684
F' : Type ?u.103687
G : Type ?u.103690
𝕜 : Type ?u.103693
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
β : Type u_2
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
hT : DominatedFinMeasAdditive μ T C
hT' : DominatedFinMeasAdditive μ T' C'
s : Set α
hs : MeasurableSet s
hμs : ↑↑μ s < ⊤
⊢ ‖T s + T' s‖ ≤ C * ENNReal.toReal (↑↑μ s) + C' * ENNReal.toReal (↑↑μ s)
Theorem: Lagrange.eval_nodal
File: Mathlib/LinearAlgebra/Lagrange.lean

tactic: simp_rw [nodal, eval_prod, eval_sub, eval_X, eval_C]
state_before: F : Type u_1
inst✝ : Field F
ι : Type u_2
s : Finset ι
v : ι → F
i : ι
r : ι → F
x✝ x : F
⊢ eval x (nodal s v) = ∏ i in s, (x - v i)
Theorem: gold_pos
File: Mathlib/Data/Real/GoldenRatio.lean

tactic: apply add_pos <;> norm_num
state_before: ⊢ 0 < 1 + sqrt 5
Theorem: Pmf.toMeasure_uniformOfFintype_apply
File: Mathlib/Probability/ProbabilityMassFunction/Uniform.lean

tactic: simp [uniformOfFintype, hs]
state_before: α : Type u_1
β : Type ?u.20122
γ : Type ?u.20125
inst✝² : Fintype α
inst✝¹ : Nonempty α
s : Set α
inst✝ : MeasurableSpace α
hs : MeasurableSet s
⊢ ↑↑(toMeasure (uniformOfFintype α)) s = ↑(Fintype.card ↑s) / ↑(Fintype.card α)

tactic: rfl
state_before: α : Type u_1
β : Type ?u.20122
γ : Type ?u.20125
inst✝² : Fintype α
inst✝¹ : Nonempty α
s : Set α
inst✝ : MeasurableSpace α
hs : MeasurableSet s
⊢ ↑(Finset.card (Finset.filter (fun x => x ∈ s) Finset.univ)) / ↑(Finset.card Finset.univ) =
    ↑(Finset.card (Finset.filter (fun x => x ∈ s) Finset.univ)) / ↑(Fintype.card α)
Theorem: Nat.not_even_iff
File: Mathlib/Data/Nat/Parity.lean

tactic: rw [even_iff, mod_two_ne_zero]
state_before: m n : ℕ
⊢ ¬Even n ↔ n % 2 = 1
Theorem: CategoryTheory.Limits.HasZeroObject.zeroIsoIsInitial_inv
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).inv = 0
Theorem: AddCommGroup.ModEq.nsmul
File: Mathlib/Algebra/ModEq.lean

tactic: rw [← smul_sub, hm, smul_comm]
state_before: α : Type u_1
inst✝ : AddCommGroup α
p a a₁ a₂ b b₁ b₂ c : α
n : ℕ
z m : ℤ
hm : b - a = m • p
⊢ n • b - n • a = m • n • p
Theorem: Rat.inv_coe_nat_den_of_pos
File: Mathlib/Data/Rat/Lemmas.lean

tactic: rw [← Int.ofNat_inj, ← Int.cast_ofNat a, inv_coe_int_den_of_pos]
state_before: a : ℕ
ha0 : 0 < a
⊢ (↑a)⁻¹.den = a

tactic: rwa [Nat.cast_pos]
state_before: a : ℕ
ha0 : 0 < a
⊢ 0 < ↑a
Theorem: MeasureTheory.toMeasure_apply₀
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: refine' le_antisymm _ (le_toMeasure_apply _ _ _)
state_before: α : Type u_1
β : Type ?u.84556
γ : Type ?u.84559
δ : Type ?u.84562
ι : Type ?u.84565
R : Type ?u.84568
R' : Type ?u.84571
ms : MeasurableSpace α
s✝ t : Set α
m : OuterMeasure α
h : ms ≤ OuterMeasure.caratheodory m
s : Set α
hs : NullMeasurableSet s
⊢ ↑↑(OuterMeasure.toMeasure m h) s = ↑m s

tactic: rcases hs.exists_measurable_subset_ae_eq with ⟨t, hts, htm, heq⟩
state_before: α : Type u_1
β : Type ?u.84556
γ : Type ?u.84559
δ : Type ?u.84562
ι : Type ?u.84565
R : Type ?u.84568
R' : Type ?u.84571
ms : MeasurableSpace α
s✝ t : Set α
m : OuterMeasure α
h : ms ≤ OuterMeasure.caratheodory m
s : Set α
hs : NullMeasurableSet s
⊢ ↑↑(OuterMeasure.toMeasure m h) s ≤ ↑m s

tactic: calc
  m.toMeasure h s = m.toMeasure h t := measure_congr heq.symm
  _ = m t := (toMeasure_apply m h htm)
  _ ≤ m s := m.mono hts
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.84556
γ : Type ?u.84559
δ : Type ?u.84562
ι : Type ?u.84565
R : Type ?u.84568
R' : Type ?u.84571
ms : MeasurableSpace α
s✝ t✝ : Set α
m : OuterMeasure α
h : ms ≤ OuterMeasure.caratheodory m
s : Set α
hs : NullMeasurableSet s
t : Set α
hts : t ⊆ s
htm : MeasurableSet t
heq : t =ᵐ[OuterMeasure.toMeasure m h] s
⊢ ↑↑(OuterMeasure.toMeasure m h) s ≤ ↑m s
Theorem: Right.mul_eq_mul_iff_eq_and_eq
File: Mathlib/Algebra/Order/Monoid/Lemmas.lean

tactic: rcases hac.eq_or_lt with (rfl | hac)
state_before: α : Type u_1
β : Type ?u.64196
inst✝⁵ : Semigroup α
inst✝⁴ : PartialOrder α
inst✝³ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝² : ContravariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝¹ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : ContravariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c d : α
hac : a ≤ c
hbd : b ≤ d
h : a * b = c * d
⊢ a = c ∧ b = d

tactic: rcases eq_or_lt_of_le hbd with (rfl | hbd)
state_before: case inr
α : Type u_1
β : Type ?u.64196
inst✝⁵ : Semigroup α
inst✝⁴ : PartialOrder α
inst✝³ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝² : ContravariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝¹ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : ContravariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c d : α
hac✝ : a ≤ c
hbd : b ≤ d
h : a * b = c * d
hac : a < c
⊢ a = c ∧ b = d

tactic: exact ((Right.mul_lt_mul hac hbd).ne h).elim
state_before: case inr.inr
α : Type u_1
β : Type ?u.64196
inst✝⁵ : Semigroup α
inst✝⁴ : PartialOrder α
inst✝³ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝² : ContravariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝¹ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : ContravariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c d : α
hac✝ : a ≤ c
hbd✝ : b ≤ d
h : a * b = c * d
hac : a < c
hbd : b < d
⊢ a = c ∧ b = d

tactic: exact ⟨rfl, mul_left_cancel'' h⟩
state_before: case inl
α : Type u_1
β : Type ?u.64196
inst✝⁵ : Semigroup α
inst✝⁴ : PartialOrder α
inst✝³ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝² : ContravariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝¹ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : ContravariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b d : α
hbd : b ≤ d
hac : a ≤ a
h : a * b = a * d
⊢ a = a ∧ b = d

tactic: exact ⟨mul_right_cancel'' h, rfl⟩
state_before: case inr.inl
α : Type u_1
β : Type ?u.64196
inst✝⁵ : Semigroup α
inst✝⁴ : PartialOrder α
inst✝³ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝² : ContravariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝¹ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : ContravariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c : α
hac✝ : a ≤ c
hac : a < c
hbd : b ≤ b
h : a * b = c * b
⊢ a = c ∧ b = b
Theorem: CategoryTheory.Limits.image.map_ι
File: Mathlib/CategoryTheory/Limits/Shapes/Images.lean

tactic: simp
state_before: C : Type u
inst✝³ : Category C
f g : Arrow C
inst✝² : HasImage f.hom
inst✝¹ : HasImage g.hom
sq : f ⟶ g
inst✝ : HasImageMap sq
⊢ map sq ≫ ι g.hom = ι f.hom ≫ sq.right
Theorem: MvPolynomial.eval_map
File: Mathlib/Data/MvPolynomial/Basic.lean

tactic: simp (config := { contextual := true })
state_before: case h_X
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q : MvPolynomial σ R
f✝ f : R →+* S₁
g : σ → S₁
p : MvPolynomial σ R
⊢ ∀ (p : MvPolynomial σ R) (n : σ),
    ↑(eval g) (↑(map f) p) = eval₂ f g p → ↑(eval g) (↑(map f) (p * X n)) = eval₂ f g (p * X n)
Theorem: PNat.one_le_find
File: Mathlib/Data/PNat/Find.lean

tactic: simp
state_before: p q : ℕ+ → Prop
inst✝¹ : DecidablePred p
inst✝ : DecidablePred q
h : ∃ n, p n
n m : ℕ+
⊢ ¬1 < PNat.find h ↔ ¬¬p 1
Theorem: CategoryTheory.Mat_.id_apply_self
File: Mathlib/CategoryTheory/Preadditive/Mat.lean

tactic: simp [id_apply]
state_before: C : Type u₁
inst✝¹ : Category C
inst✝ : Preadditive C
M : Mat_ C
i : M.ι
⊢ 𝟙 M i i = 𝟙 (X M i)
Theorem: Multiset.countp_eq_card
File: Mathlib/Data/Multiset/Basic.lean

tactic: simp
state_before: α : Type u_1
β : Type ?u.340249
γ : Type ?u.340252
p : α → Prop
inst✝ : DecidablePred p
s : Multiset α
_l : List α
⊢ countp p (Quot.mk Setoid.r _l) = ↑card (Quot.mk Setoid.r _l) ↔ ∀ (a : α), a ∈ Quot.mk Setoid.r _l → p a
Theorem: spectrum.star_mem_resolventSet_iff
File: Mathlib/Algebra/Algebra/Spectrum.lean

tactic: refine' ⟨fun h => _, fun h => _⟩ <;>
  simpa only [mem_resolventSet_iff, Algebra.algebraMap_eq_smul_one, star_sub, star_smul,
    star_star, star_one] using IsUnit.star h
state_before: R : Type u
A : Type v
inst✝⁵ : CommSemiring R
inst✝⁴ : Ring A
inst✝³ : Algebra R A
inst✝² : InvolutiveStar R
inst✝¹ : StarRing A
inst✝ : StarModule R A
r : R
a : A
⊢ star r ∈ resolventSet R a ↔ r ∈ resolventSet R (star a)
Theorem: CategoryTheory.Adjunction.unit_leftAdjointUniq_hom
File: Mathlib/CategoryTheory/Adjunction/Opposites.lean

tactic: ext x
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F F' : C ⥤ D
G : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G
⊢ adj1.unit ≫ whiskerRight (leftAdjointUniq adj1 adj2).hom G = adj2.unit

tactic: rw [NatTrans.comp_app, ← homEquiv_leftAdjointUniq_hom_app adj1 adj2]
state_before: case w.h
C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F F' : C ⥤ D
G : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G
x : C
⊢ (adj1.unit ≫ whiskerRight (leftAdjointUniq adj1 adj2).hom G).app x = adj2.unit.app x

tactic: simp [← G.map_comp]
state_before: case w.h
C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F F' : C ⥤ D
G : D ⥤ C
adj1 : F ⊣ G
adj2 : F' ⊣ G
x : C
⊢ adj1.unit.app x ≫ (whiskerRight (leftAdjointUniq adj1 adj2).hom G).app x =
    ↑(homEquiv adj1 x (F'.obj x)) ((leftAdjointUniq adj1 adj2).hom.app x)
Theorem: le_hasSum
File: Mathlib/Topology/Algebra/InfiniteSum/Order.lean

tactic: simpa
state_before: ι : Type u_2
κ : Type ?u.15436
α : Type u_1
inst✝² : OrderedAddCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f g : ι → α
a a₁ a₂ : α
hf : HasSum f a
i : ι
hb : ∀ (j : ι), j ≠ i → 0 ≤ f j
⊢ ∀ (i_1 : ι), ¬i_1 ∈ {i} → 0 ≤ f i_1