tasksource/leandojo huggingface dataset:
Theorem: NormedRing.inverse_add_nth_order
File: Mathlib/Analysis/NormedSpace/Units.lean

tactic: filter_upwards [inverse_add x, hzero.eventually (inverse_one_sub_nth_order n)] with t ht ht'
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : Rˣ
n : ℕ
hzero : Tendsto (fun x_1 => -↑x⁻¹ * x_1) (𝓝 0) (𝓝 0)
⊢ ∀ᶠ (t : R) in 𝓝 0, inverse (↑x + t) = (∑ i in range n, (-↑x⁻¹ * t) ^ i) * ↑x⁻¹ + (-↑x⁻¹ * t) ^ n * inverse (↑x + t)

tactic: rw [neg_mul, sub_neg_eq_add] at ht'
state_before: case h
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : Rˣ
n : ℕ
hzero : Tendsto (fun x_1 => -↑x⁻¹ * x_1) (𝓝 0) (𝓝 0)
t : R
ht : inverse (↑x + t) = inverse (1 + ↑x⁻¹ * t) * ↑x⁻¹
ht' : inverse (1 - -↑x⁻¹ * t) = ∑ i in range n, (-↑x⁻¹ * t) ^ i + (-↑x⁻¹ * t) ^ n * inverse (1 - -↑x⁻¹ * t)
⊢ inverse (↑x + t) = (∑ i in range n, (-↑x⁻¹ * t) ^ i) * ↑x⁻¹ + (-↑x⁻¹ * t) ^ n * inverse (↑x + t)

tactic: conv_lhs => rw [ht, ht', add_mul, ← neg_mul, mul_assoc]
state_before: case h
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : Rˣ
n : ℕ
hzero : Tendsto (fun x_1 => -↑x⁻¹ * x_1) (𝓝 0) (𝓝 0)
t : R
ht : inverse (↑x + t) = inverse (1 + ↑x⁻¹ * t) * ↑x⁻¹
ht' : inverse (1 + ↑x⁻¹ * t) = ∑ i in range n, (-(↑x⁻¹ * t)) ^ i + (-(↑x⁻¹ * t)) ^ n * inverse (1 + ↑x⁻¹ * t)
⊢ inverse (↑x + t) = (∑ i in range n, (-↑x⁻¹ * t) ^ i) * ↑x⁻¹ + (-↑x⁻¹ * t) ^ n * inverse (↑x + t)

tactic: rw [ht]
state_before: case h
R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
x : Rˣ
n : ℕ
hzero : Tendsto (fun x_1 => -↑x⁻¹ * x_1) (𝓝 0) (𝓝 0)
t : R
ht : inverse (↑x + t) = inverse (1 + ↑x⁻¹ * t) * ↑x⁻¹
ht' : inverse (1 + ↑x⁻¹ * t) = ∑ i in range n, (-(↑x⁻¹ * t)) ^ i + (-(↑x⁻¹ * t)) ^ n * inverse (1 + ↑x⁻¹ * t)
⊢ (∑ i in range n, (-↑x⁻¹ * t) ^ i) * ↑x⁻¹ + (-↑x⁻¹ * t) ^ n * (inverse (1 + ↑x⁻¹ * t) * ↑x⁻¹) =
    (∑ i in range n, (-↑x⁻¹ * t) ^ i) * ↑x⁻¹ + (-↑x⁻¹ * t) ^ n * inverse (↑x + t)
Theorem: pow_lt_pow'
File: Mathlib/Algebra/GroupPower/Order.lean

tactic: rcases Nat.le.dest h with ⟨k, rfl⟩
state_before: β : Type ?u.39271
A : Type ?u.39274
G : Type ?u.39277
M : Type u_1
R : Type ?u.39283
inst✝³ : Monoid M
inst✝² : Preorder M
inst✝¹ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
x : M
inst✝ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1
a : M
n m : ℕ
ha : 1 < a
h : n < m
⊢ a ^ n < a ^ m

tactic: clear h
state_before: case intro
β : Type ?u.39271
A : Type ?u.39274
G : Type ?u.39277
M : Type u_1
R : Type ?u.39283
inst✝³ : Monoid M
inst✝² : Preorder M
inst✝¹ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
x : M
inst✝ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1
a : M
n : ℕ
ha : 1 < a
k : ℕ
h : n < Nat.succ n + k
⊢ a ^ n < a ^ (Nat.succ n + k)

tactic: rw [pow_add, pow_succ', mul_assoc, ← pow_succ]
state_before: case intro
β : Type ?u.39271
A : Type ?u.39274
G : Type ?u.39277
M : Type u_1
R : Type ?u.39283
inst✝³ : Monoid M
inst✝² : Preorder M
inst✝¹ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
x : M
inst✝ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1
a : M
n : ℕ
ha : 1 < a
k : ℕ
⊢ a ^ n < a ^ (Nat.succ n + k)

tactic: exact lt_mul_of_one_lt_right' _ (one_lt_pow' ha k.succ_ne_zero)
state_before: case intro
β : Type ?u.39271
A : Type ?u.39274
G : Type ?u.39277
M : Type u_1
R : Type ?u.39283
inst✝³ : Monoid M
inst✝² : Preorder M
inst✝¹ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
x : M
inst✝ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x < x_1
a : M
n : ℕ
ha : 1 < a
k : ℕ
⊢ a ^ n < a ^ n * a ^ (k + 1)
Theorem: MeasureTheory.Integrable.const_inner
File: Mathlib/MeasureTheory/Function/L2Space.lean

tactic: rw [← memℒp_one_iff_integrable] at hf ⊢
state_before: α : Type u_2
m : MeasurableSpace α
p : ℝ≥0∞
μ : Measure α
E : Type u_1
𝕜 : Type u_3
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace 𝕜 E
f : α → E
c : E
hf : Integrable f
⊢ Integrable fun x => inner c (f x)

tactic: exact hf.const_inner c
state_before: α : Type u_2
m : MeasurableSpace α
p : ℝ≥0∞
μ : Measure α
E : Type u_1
𝕜 : Type u_3
inst✝² : IsROrC 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace 𝕜 E
f : α → E
c : E
hf : Memℒp f 1
⊢ Memℒp (fun x => inner c (f x)) 1
Theorem: MeasureTheory.Integrable.hasSum_intervalIntegral
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simp_rw [integral_of_le (le_add_of_nonneg_right zero_le_one)]
state_before: ι : Type ?u.21798231
𝕜 : Type ?u.21798234
E : Type u_1
F : Type ?u.21798240
A : Type ?u.21798243
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
μ : MeasureTheory.Measure ℝ
f : ℝ → E
hfi : Integrable f
y : ℝ
⊢ HasSum (fun n => ∫ (x : ℝ) in y + ↑n..y + ↑n + 1, f x ∂μ) (∫ (x : ℝ), f x ∂μ)

tactic: rw [← integral_univ, ← iUnion_Ioc_add_int_cast y]
state_before: ι : Type ?u.21798231
𝕜 : Type ?u.21798234
E : Type u_1
F : Type ?u.21798240
A : Type ?u.21798243
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
μ : MeasureTheory.Measure ℝ
f : ℝ → E
hfi : Integrable f
y : ℝ
⊢ HasSum (fun n => ∫ (x : ℝ) in Ioc (y + ↑n) (y + ↑n + 1), f x ∂μ) (∫ (x : ℝ), f x ∂μ)

tactic: exact
  hasSum_integral_iUnion (fun i => measurableSet_Ioc) (pairwise_disjoint_Ioc_add_int_cast y)
    hfi.integrableOn
state_before: ι : Type ?u.21798231
𝕜 : Type ?u.21798234
E : Type u_1
F : Type ?u.21798240
A : Type ?u.21798243
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
μ : MeasureTheory.Measure ℝ
f : ℝ → E
hfi : Integrable f
y : ℝ
⊢ HasSum (fun n => ∫ (x : ℝ) in Ioc (y + ↑n) (y + ↑n + 1), f x ∂μ)
    (∫ (x : ℝ) in ⋃ (n : ℤ), Ioc (y + ↑n) (y + ↑n + 1), f x ∂μ)
Theorem: add_one_pow_unbounded_of_pos
File: Mathlib/Algebra/Order/Archimedean.lean

tactic: rw [add_comm]
state_before: α : Type u_1
inst✝¹ : StrictOrderedSemiring α
inst✝ : Archimedean α
x y : α
hy : 0 < y
this : 0 ≤ 1 + y
n : ℕ
h : x ≤ n • y
⊢ (1 + y) ^ n = (y + 1) ^ n
Theorem: AffineSubspace.sSameSide_smul_vsub_vadd_left
File: Mathlib/Analysis/Convex/Side.lean

tactic: refine' ⟨wSameSide_smul_vsub_vadd_left x hp₁ hp₂ ht.le, fun h => hx _, hx⟩
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.365929
P : Type u_3
P' : Type ?u.365935
inst✝⁶ : LinearOrderedField 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 p₁ p₂ : P
hx : ¬x ∈ s
hp₁ : p₁ ∈ s
hp₂ : p₂ ∈ s
t : R
ht : 0 < t
⊢ SSameSide s (t • (x -ᵥ p₁) +ᵥ p₂) x

tactic: rwa [vadd_mem_iff_mem_direction _ hp₂, s.direction.smul_mem_iff ht.ne.symm,
  vsub_right_mem_direction_iff_mem hp₁] at h
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.365929
P : Type u_3
P' : Type ?u.365935
inst✝⁶ : LinearOrderedField 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 p₁ p₂ : P
hx : ¬x ∈ s
hp₁ : p₁ ∈ s
hp₂ : p₂ ∈ s
t : R
ht : 0 < t
h : t • (x -ᵥ p₁) +ᵥ p₂ ∈ s
⊢ x ∈ s
Theorem: Real.cos_sub_cos
File: Mathlib/Data/Complex/Exponential.lean

tactic: simp [cos_sub_cos]
state_before: x y : ℝ
⊢ ↑(cos x - cos y) = ↑(-2 * sin ((x + y) / 2) * sin ((x - y) / 2))
Theorem: MeasureTheory.OuterMeasure.trim_eq_iInf'
File: Mathlib/MeasureTheory/Measure/OuterMeasure.lean

tactic: simp [iInf_subtype, iInf_and, trim_eq_iInf]
state_before: α : Type u_1
inst✝ : MeasurableSpace α
m : OuterMeasure α
s : Set α
⊢ ↑(trim m) s = ⨅ (t : { t // s ⊆ t ∧ MeasurableSet t }), ↑m ↑t
Theorem: ENNReal.one_sub_inv_two
File: Mathlib/Data/Real/ENNReal.lean

tactic: simpa only [div_eq_mul_inv, one_mul] using sub_half one_ne_top
state_before: α : Type ?u.329111
β : Type ?u.329114
a b c d : ℝ≥0∞
r p q : ℝ≥0
⊢ 1 - 2⁻¹ = 2⁻¹
Theorem: Finset.sum_condensed_le
File: Mathlib/Analysis/PSeries.lean

tactic: convert add_le_add_left (nsmul_le_nsmul_of_le_right (sum_condensed_le' hf n) 2) (f 1)
state_before: M : Type u_1
inst✝ : OrderedAddCommMonoid M
f : ℕ → M
hf : ∀ ⦃m n : ℕ⦄, 1 < m → m ≤ n → f n ≤ f m
n : ℕ
⊢ ∑ k in range (n + 1), 2 ^ k • f (2 ^ k) ≤ f 1 + 2 • ∑ k in Ico 2 (2 ^ n + 1), f k

tactic: simp [sum_range_succ', add_comm, pow_succ, mul_nsmul', sum_nsmul]
state_before: case h.e'_3
M : Type u_1
inst✝ : OrderedAddCommMonoid M
f : ℕ → M
hf : ∀ ⦃m n : ℕ⦄, 1 < m → m ≤ n → f n ≤ f m
n : ℕ
⊢ ∑ k in range (n + 1), 2 ^ k • f (2 ^ k) = f 1 + 2 • ∑ k in range n, 2 ^ k • f (2 ^ (k + 1))
Theorem: Complex.range_exp
File: Mathlib/Analysis/SpecialFunctions/Complex/Log.lean

tactic: rintro ⟨x, rfl⟩
state_before: x : ℂ
⊢ x ∈ Set.range exp → x ∈ {0}ᶜ

tactic: exact exp_ne_zero x
state_before: case intro
x : ℂ
⊢ exp x ∈ {0}ᶜ
Theorem: one_eq_bit1
File: Mathlib/Algebra/CharZero/Lemmas.lean

tactic: rw [eq_comm]
state_before: R : Type u_1
inst✝² : NonAssocRing R
inst✝¹ : NoZeroDivisors R
inst✝ : CharZero R
a : R
⊢ 1 = bit1 a ↔ a = 0

tactic: exact bit1_eq_one
state_before: R : Type u_1
inst✝² : NonAssocRing R
inst✝¹ : NoZeroDivisors R
inst✝ : CharZero R
a : R
⊢ bit1 a = 1 ↔ a = 0
Theorem: SimpleGraph.Walk.rotate_darts
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: simp only [rotate, darts_append]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
inst✝ : DecidableEq V
u v : V
c : Walk G v v
h : u ∈ support c
⊢ darts (rotate c h) ~r darts c

tactic: apply List.IsRotated.trans List.isRotated_append
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
inst✝ : DecidableEq V
u v : V
c : Walk G v v
h : u ∈ support c
⊢ (darts (dropUntil c u h) ++ darts (takeUntil c u h)) ~r darts c

tactic: rw [← darts_append, take_spec]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
inst✝ : DecidableEq V
u v : V
c : Walk G v v
h : u ∈ support c
⊢ (darts (takeUntil c u h) ++ darts (dropUntil c u h)) ~r darts c
Theorem: Relation.ReflTransGen.cases_head
File: Mathlib/Logic/Relation.lean

tactic: induction h using Relation.ReflTransGen.head_induction_on
state_before: α : Type u_1
β : Type ?u.17670
γ : Type ?u.17673
δ : Type ?u.17676
r : α → α → Prop
a b c d : α
h : ReflTransGen r a b
⊢ a = b ∨ ∃ c, r a c ∧ ReflTransGen r c b

tactic: left
state_before: case refl
α : Type u_1
β : Type ?u.17670
γ : Type ?u.17673
δ : Type ?u.17676
r : α → α → Prop
a b c d : α
⊢ b = b ∨ ∃ c, r b c ∧ ReflTransGen r c b

tactic: rfl
state_before: case refl.h
α : Type u_1
β : Type ?u.17670
γ : Type ?u.17673
δ : Type ?u.17676
r : α → α → Prop
a b c d : α
⊢ b = b

tactic: right
state_before: case head
α : Type u_1
β : Type ?u.17670
γ : Type ?u.17673
δ : Type ?u.17676
r : α → α → Prop
a b c d a✝¹ c✝ : α
h'✝ : r a✝¹ c✝
h✝ : ReflTransGen r c✝ b
a✝ : c✝ = b ∨ ∃ c, r c✝ c ∧ ReflTransGen r c b
⊢ a✝¹ = b ∨ ∃ c, r a✝¹ c ∧ ReflTransGen r c b

tactic: exact ⟨_, by assumption, by assumption⟩
state_before: case head.h
α : Type u_1
β : Type ?u.17670
γ : Type ?u.17673
δ : Type ?u.17676
r : α → α → Prop
a b c d a✝¹ c✝ : α
h'✝ : r a✝¹ c✝
h✝ : ReflTransGen r c✝ b
a✝ : c✝ = b ∨ ∃ c, r c✝ c ∧ ReflTransGen r c b
⊢ ∃ c, r a✝¹ c ∧ ReflTransGen r c b

tactic: assumption
state_before: α : Type u_1
β : Type ?u.17670
γ : Type ?u.17673
δ : Type ?u.17676
r : α → α → Prop
a b c d a✝¹ c✝ : α
h'✝ : r a✝¹ c✝
h✝ : ReflTransGen r c✝ b
a✝ : c✝ = b ∨ ∃ c, r c✝ c ∧ ReflTransGen r c b
⊢ r a✝¹ ?m.17808

tactic: assumption
state_before: α : Type u_1
β : Type ?u.17670
γ : Type ?u.17673
δ : Type ?u.17676
r : α → α → Prop
a b c d a✝¹ c✝ : α
h'✝ : r a✝¹ c✝
h✝ : ReflTransGen r c✝ b
a✝ : c✝ = b ∨ ∃ c, r c✝ c ∧ ReflTransGen r c b
⊢ ReflTransGen r c✝ b
Theorem: QuaternionAlgebra.mul_star_eq_coe
File: Mathlib/Algebra/Quaternion.lean

tactic: rw [← star_comm_self']
state_before: S : Type ?u.344129
T : Type ?u.344132
R : Type u_1
inst✝ : CommRing R
c₁ c₂ r x y z : R
a b c : ℍ[R,c₁,c₂]
⊢ a * star a = ↑(a * star a).re

tactic: exact a.star_mul_eq_coe
state_before: S : Type ?u.344129
T : Type ?u.344132
R : Type u_1
inst✝ : CommRing R
c₁ c₂ r x y z : R
a b c : ℍ[R,c₁,c₂]
⊢ star a * a = ↑(star a * a).re
Theorem: RatFunc.toFractionRing_eq
File: Mathlib/FieldTheory/RatFunc.lean

tactic: simp only [Localization.mk_eq_mk'_apply, ofFractionRing_mk', IsLocalization.algEquiv_apply,
  IsLocalization.ringEquivOfRingEquiv_apply, IsLocalization.map_mk',
  RingEquiv.coe_toRingHom, RingEquiv.refl_apply, SetLike.eta]
state_before: K : Type u
inst✝¹ : CommRing K
inst✝ : IsDomain K
x✝¹ : RatFunc K
x✝ : FractionRing K[X]
x : K[X] × { x // x ∈ K[X]⁰ }
⊢ { toFractionRing := Localization.mk x.fst x.snd }.toFractionRing =
    ↑(IsLocalization.algEquiv K[X]⁰ (RatFunc K) (FractionRing K[X])) { toFractionRing := Localization.mk x.fst x.snd }

tactic: simp only [IsFractionRing.mk'_eq_div, RingHom.id_apply, Subtype.coe_eta]
state_before: K : Type u
inst✝¹ : CommRing K
inst✝ : IsDomain K
x✝¹ : RatFunc K
x✝ : FractionRing K[X]
x : K[X] × { x // x ∈ K[X]⁰ }
⊢ IsLocalization.mk' (Localization K[X]⁰) x.fst x.snd =
    IsLocalization.mk' (FractionRing K[X]) (↑(RingHom.id K[X]) x.fst)
      { val := ↑(RingHom.id K[X]) ↑x.snd, property := (_ : ↑x.snd ∈ Submonoid.comap (RingHom.id K[X]) K[X]⁰) }
Theorem: ZFSet.Hereditarily.empty
File: Mathlib/SetTheory/ZFC/Basic.lean

tactic: apply @ZFSet.inductionOn _ x
state_before: p : ZFSet → Prop
x y : ZFSet
⊢ Hereditarily p x → p ∅

tactic: intro y IH h
state_before: p : ZFSet → Prop
x y : ZFSet
⊢ ∀ (x : ZFSet), (∀ (y : ZFSet), y ∈ x → Hereditarily p y → p ∅) → Hereditarily p x → p ∅

tactic: rcases ZFSet.eq_empty_or_nonempty y with (rfl | ⟨a, ha⟩)
state_before: p : ZFSet → Prop
x y✝ y : ZFSet
IH : ∀ (y_1 : ZFSet), y_1 ∈ y → Hereditarily p y_1 → p ∅
h : Hereditarily p y
⊢ p ∅

tactic: exact h.self
state_before: case inl
p : ZFSet → Prop
x y : ZFSet
IH : ∀ (y : ZFSet), y ∈ ∅ → Hereditarily p y → p ∅
h : Hereditarily p ∅
⊢ p ∅

tactic: exact IH a ha (h.mem ha)
state_before: case inr.intro
p : ZFSet → Prop
x y✝ y : ZFSet
IH : ∀ (y_1 : ZFSet), y_1 ∈ y → Hereditarily p y_1 → p ∅
h : Hereditarily p y
a : ZFSet
ha : a ∈ toSet y
⊢ p ∅
Theorem: SimpleGraph.Subgraph.deleteVerts_deleteVerts
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: ext <;> simp (config := { contextual := true }) [not_or, and_assoc]
state_before: ι : Sort ?u.266848
V : Type u
W : Type v
G : SimpleGraph V
G' : Subgraph G
s✝ s s' : Set V
⊢ deleteVerts (deleteVerts G' s) s' = deleteVerts G' (s ∪ s')
Theorem: HahnSeries.mul_coeff_order_add_order
File: Mathlib/RingTheory/HahnSeries.lean

tactic: by_cases hx : x = 0
state_before: Γ✝ : Type ?u.1226138
R : Type u_2
inst✝² : OrderedCancelAddCommMonoid Γ✝
Γ : Type u_1
inst✝¹ : LinearOrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x y : HahnSeries Γ R
⊢ coeff (x * y) (order x + order y) = coeff x (order x) * coeff y (order y)

tactic: by_cases hy : y = 0
state_before: case neg
Γ✝ : Type ?u.1226138
R : Type u_2
inst✝² : OrderedCancelAddCommMonoid Γ✝
Γ : Type u_1
inst✝¹ : LinearOrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x y : HahnSeries Γ R
hx : ¬x = 0
⊢ coeff (x * y) (order x + order y) = coeff x (order x) * coeff y (order y)

tactic: rw [order_of_ne hx, order_of_ne hy, mul_coeff, Finset.addAntidiagonal_min_add_min,
  Finset.sum_singleton]
state_before: case neg
Γ✝ : Type ?u.1226138
R : Type u_2
inst✝² : OrderedCancelAddCommMonoid Γ✝
Γ : Type u_1
inst✝¹ : LinearOrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x y : HahnSeries Γ R
hx : ¬x = 0
hy : ¬y = 0
⊢ coeff (x * y) (order x + order y) = coeff x (order x) * coeff y (order y)

tactic: simp [hx, mul_coeff]
state_before: case pos
Γ✝ : Type ?u.1226138
R : Type u_2
inst✝² : OrderedCancelAddCommMonoid Γ✝
Γ : Type u_1
inst✝¹ : LinearOrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x y : HahnSeries Γ R
hx : x = 0
⊢ coeff (x * y) (order x + order y) = coeff x (order x) * coeff y (order y)

tactic: simp [hy, mul_coeff]
state_before: case pos
Γ✝ : Type ?u.1226138
R : Type u_2
inst✝² : OrderedCancelAddCommMonoid Γ✝
Γ : Type u_1
inst✝¹ : LinearOrderedCancelAddCommMonoid Γ
inst✝ : NonUnitalNonAssocSemiring R
x y : HahnSeries Γ R
hx : ¬x = 0
hy : y = 0
⊢ coeff (x * y) (order x + order y) = coeff x (order x) * coeff y (order y)
Theorem: convexHull_insert
File: Mathlib/Analysis/Convex/Join.lean

tactic: rw [insert_eq, convexHull_union (singleton_nonempty _) hs, convexHull_singleton]
state_before: ι : Sort ?u.134927
𝕜 : Type u_2
E : Type u_1
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t u : Set E
x y : E
hs : Set.Nonempty s
⊢ ↑(convexHull 𝕜).toOrderHom (insert x s) = convexJoin 𝕜 {x} (↑(convexHull 𝕜).toOrderHom s)
Theorem: CategoryTheory.GrothendieckTopology.plusCompIso_inv_eq_plusLift
File: Mathlib/CategoryTheory/Sites/CompatiblePlus.lean

tactic: apply J.plusLift_unique
state_before: C : Type u
inst✝⁸ : Category C
J : GrothendieckTopology C
D : Type w₁
inst✝⁷ : Category D
E : Type w₂
inst✝⁶ : Category E
F : D ⥤ E
inst✝⁵ : ∀ (α β : Type (max v u)) (fst snd : β → α), HasLimitsOfShape (WalkingMulticospan fst snd) D
inst✝⁴ : ∀ (α β : Type (max v u)) (fst snd : β → α), HasLimitsOfShape (WalkingMulticospan fst snd) E
inst✝³ : (X : C) → (W : Cover J X) → (P : Cᵒᵖ ⥤ D) → PreservesLimit (MulticospanIndex.multicospan (Cover.index W P)) F
P : Cᵒᵖ ⥤ D
inst✝² : ∀ (X : C), HasColimitsOfShape (Cover J X)ᵒᵖ D
inst✝¹ : ∀ (X : C), HasColimitsOfShape (Cover J X)ᵒᵖ E
inst✝ : (X : C) → PreservesColimitsOfShape (Cover J X)ᵒᵖ F
hP : Presheaf.IsSheaf J (plusObj J P ⋙ F)
⊢ (plusCompIso J F P).inv = plusLift J (whiskerRight (toPlus J P) F) hP

tactic: simp [Iso.comp_inv_eq]
state_before: case hγ
C : Type u
inst✝⁸ : Category C
J : GrothendieckTopology C
D : Type w₁
inst✝⁷ : Category D
E : Type w₂
inst✝⁶ : Category E
F : D ⥤ E
inst✝⁵ : ∀ (α β : Type (max v u)) (fst snd : β → α), HasLimitsOfShape (WalkingMulticospan fst snd) D
inst✝⁴ : ∀ (α β : Type (max v u)) (fst snd : β → α), HasLimitsOfShape (WalkingMulticospan fst snd) E
inst✝³ : (X : C) → (W : Cover J X) → (P : Cᵒᵖ ⥤ D) → PreservesLimit (MulticospanIndex.multicospan (Cover.index W P)) F
P : Cᵒᵖ ⥤ D
inst✝² : ∀ (X : C), HasColimitsOfShape (Cover J X)ᵒᵖ D
inst✝¹ : ∀ (X : C), HasColimitsOfShape (Cover J X)ᵒᵖ E
inst✝ : (X : C) → PreservesColimitsOfShape (Cover J X)ᵒᵖ F
hP : Presheaf.IsSheaf J (plusObj J P ⋙ F)
⊢ toPlus J (P ⋙ F) ≫ (plusCompIso J F P).inv = whiskerRight (toPlus J P) F
Theorem: Zsqrtd.nonnegg_neg_pos
File: Mathlib/NumberTheory/Zsqrtd/Basic.lean

tactic: simp [SqLe, Nat.zero_le]
state_before: d✝ : ℤ
c d b : ℕ
⊢ Nonnegg c d (-↑0) ↑b → SqLe 0 d b c

tactic: rw [← Int.negSucc_coe]
state_before: d✝ : ℤ
c d a b : ℕ
⊢ Nonnegg c d (-↑(a + 1)) ↑b ↔ SqLe (a + 1) d b c

tactic: rfl
state_before: d✝ : ℤ
c d a b : ℕ
⊢ Nonnegg c d (Int.negSucc a) ↑b ↔ SqLe (a + 1) d b c
Theorem: StrictMonoOn.congr
File: Mathlib/Data/Set/Function.lean

tactic: intro a ha b hb hab
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.9920
ι : Sort ?u.9923
π : α → Type ?u.9928
s s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f f₁ f₂ f₃ : α → β
g g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
inst✝¹ : Preorder α
inst✝ : Preorder β
h₁ : StrictMonoOn f₁ s
h : EqOn f₁ f₂ s
⊢ StrictMonoOn f₂ s

tactic: rw [← h ha, ← h hb]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.9920
ι : Sort ?u.9923
π : α → Type ?u.9928
s s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f f₁ f₂ f₃ : α → β
g g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a✝ : α
b✝ : β
inst✝¹ : Preorder α
inst✝ : Preorder β
h₁ : StrictMonoOn f₁ s
h : EqOn f₁ f₂ s
a : α
ha : a ∈ s
b : α
hb : b ∈ s
hab : a < b
⊢ f₂ a < f₂ b

tactic: exact h₁ ha hb hab
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.9920
ι : Sort ?u.9923
π : α → Type ?u.9928
s s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f f₁ f₂ f₃ : α → β
g g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a✝ : α
b✝ : β
inst✝¹ : Preorder α
inst✝ : Preorder β
h₁ : StrictMonoOn f₁ s
h : EqOn f₁ f₂ s
a : α
ha : a ∈ s
b : α
hb : b ∈ s
hab : a < b
⊢ f₁ a < f₁ b
Theorem: ENNReal.rpow_le_one
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: lift x to ℝ≥0 using ne_of_lt (lt_of_le_of_lt hx coe_lt_top)
state_before: x : ℝ≥0∞
z : ℝ
hx : x ≤ 1
hz : 0 ≤ z
⊢ x ^ z ≤ 1

tactic: simp only [coe_le_one_iff] at hx
state_before: case intro
z : ℝ
hz : 0 ≤ z
x : ℝ≥0
hx : ↑x ≤ 1
⊢ ↑x ^ z ≤ 1

tactic: simp [coe_rpow_of_nonneg _ hz, NNReal.rpow_le_one hx hz]
state_before: case intro
z : ℝ
hz : 0 ≤ z
x : ℝ≥0
hx : x ≤ 1
⊢ ↑x ^ z ≤ 1
Theorem: AffineBasis.coord_apply
File: Mathlib/LinearAlgebra/AffineSpace/Basis.lean

tactic: cases' eq_or_ne i j with h h <;> simp [h]
state_before: ι : Type u_1
ι' : Type ?u.98205
k : Type u_2
V : Type u_4
P : Type u_3
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s : Finset ι
i✝ j✝ : ι
e : ι ≃ ι'
inst✝ : DecidableEq ι
i j : ι
⊢ ↑(coord b i) (↑b j) = if i = j then 1 else 0
Theorem: Real.IsConjugateExponent.inv_add_inv_conj_ennreal
File: Mathlib/Data/Real/ConjugateExponents.lean

tactic: rw [← ENNReal.ofReal_one, ← ENNReal.ofReal_div_of_pos h.pos,
    ← ENNReal.ofReal_div_of_pos h.symm.pos,
    ← ENNReal.ofReal_add h.one_div_nonneg h.symm.one_div_nonneg, h.inv_add_inv_conj]
state_before: p q : ℝ
h : IsConjugateExponent p q
⊢ 1 / ENNReal.ofReal p + 1 / ENNReal.ofReal q = 1
Theorem: add_div'
File: Mathlib/Algebra/Field/Basic.lean

tactic: rw [add_div, mul_div_cancel _ hc]
state_before: α : Type u_1
β : Type ?u.7271
K : Type ?u.7274
inst✝ : DivisionSemiring α
a✝ b✝ c✝ d a b c : α
hc : c ≠ 0
⊢ b + a / c = (b * c + a) / c
Theorem: toIcoMod_sub_eq_sub
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simp_rw [toIcoMod, toIcoDiv_sub_eq_toIcoDiv_add, sub_right_comm]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c✝ : α
n : ℤ
a b c : α
⊢ toIcoMod hp a (b - c) = toIcoMod hp (a + c) b - c
Theorem: linearIndependent_iff_card_le_finrank_span
File: Mathlib/LinearAlgebra/Finrank.lean

tactic: rw [linearIndependent_iff_card_eq_finrank_span, finrank_range_le_card.le_iff_eq]
state_before: K : Type u
V : Type v
inst✝³ : DivisionRing K
inst✝² : AddCommGroup V
inst✝¹ : Module K V
ι : Type u_1
inst✝ : Fintype ι
b : ι → V
⊢ LinearIndependent K b ↔ Fintype.card ι ≤ Set.finrank K (Set.range b)
Theorem: WellFounded.iSup_eq_monotonicSequenceLimit
File: Mathlib/Order/OrderIsoNat.lean

tactic: refine' (iSup_le fun m => _).antisymm (le_iSup a _)
state_before: α : Type u_1
inst✝ : CompleteLattice α
h : WellFounded fun x x_1 => x > x_1
a : ℕ →o α
⊢ iSup ↑a = monotonicSequenceLimit a

tactic: cases' le_or_lt m (monotonicSequenceLimitIndex a) with hm hm
state_before: α : Type u_1
inst✝ : CompleteLattice α
h : WellFounded fun x x_1 => x > x_1
a : ℕ →o α
m : ℕ
⊢ ↑a m ≤ monotonicSequenceLimit a

tactic: exact a.monotone hm
state_before: case inl
α : Type u_1
inst✝ : CompleteLattice α
h : WellFounded fun x x_1 => x > x_1
a : ℕ →o α
m : ℕ
hm : m ≤ monotonicSequenceLimitIndex a
⊢ ↑a m ≤ monotonicSequenceLimit a

tactic: cases' WellFounded.monotone_chain_condition'.1 h a with n hn
state_before: case inr
α : Type u_1
inst✝ : CompleteLattice α
h : WellFounded fun x x_1 => x > x_1
a : ℕ →o α
m : ℕ
hm : monotonicSequenceLimitIndex a < m
⊢ ↑a m ≤ monotonicSequenceLimit a

tactic: have : n ∈ {n | ∀ m, n ≤ m → a n = a m} := fun k hk => (a.mono hk).eq_of_not_lt (hn k hk)
state_before: case inr.intro
α : Type u_1
inst✝ : CompleteLattice α
h : WellFounded fun x x_1 => x > x_1
a : ℕ →o α
m : ℕ
hm : monotonicSequenceLimitIndex a < m
n : ℕ
hn : ∀ (m : ℕ), n ≤ m → ¬↑a n < ↑a m
⊢ ↑a m ≤ monotonicSequenceLimit a

tactic: exact (Nat.sInf_mem ⟨n, this⟩ m hm.le).ge
state_before: case inr.intro
α : Type u_1
inst✝ : CompleteLattice α
h : WellFounded fun x x_1 => x > x_1
a : ℕ →o α
m : ℕ
hm : monotonicSequenceLimitIndex a < m
n : ℕ
hn : ∀ (m : ℕ), n ≤ m → ¬↑a n < ↑a m
this : n ∈ {n | ∀ (m : ℕ), n ≤ m → ↑a n = ↑a m}
⊢ ↑a m ≤ monotonicSequenceLimit a