tasksource/leandojo huggingface dataset:
Theorem: MeasureTheory.AEFinStronglyMeasurable.exists_set_sigmaFinite
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: rcases hf with ⟨g, hg, hfg⟩
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.549973
ι : Type ?u.549976
inst✝³ : Countable ι
m : MeasurableSpace α
μ : Measure α
inst✝² : TopologicalSpace β
f g : α → β
inst✝¹ : Zero β
inst✝ : T2Space β
hf : AEFinStronglyMeasurable f μ
⊢ ∃ t, MeasurableSet t ∧ f =ᶠ[ae (Measure.restrict μ (tᶜ))] 0 ∧ SigmaFinite (Measure.restrict μ t)

tactic: obtain ⟨t, ht, hgt_zero, htμ⟩ := hg.exists_set_sigmaFinite
state_before: case intro.intro
α : Type u_1
β : Type u_2
γ : Type ?u.549973
ι : Type ?u.549976
inst✝³ : Countable ι
m : MeasurableSpace α
μ : Measure α
inst✝² : TopologicalSpace β
f g✝ : α → β
inst✝¹ : Zero β
inst✝ : T2Space β
g : α → β
hg : FinStronglyMeasurable g μ
hfg : f =ᶠ[ae μ] g
⊢ ∃ t, MeasurableSet t ∧ f =ᶠ[ae (Measure.restrict μ (tᶜ))] 0 ∧ SigmaFinite (Measure.restrict μ t)

tactic: refine' ⟨t, ht, _, htμ⟩
state_before: case intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type ?u.549973
ι : Type ?u.549976
inst✝³ : Countable ι
m : MeasurableSpace α
μ : Measure α
inst✝² : TopologicalSpace β
f g✝ : α → β
inst✝¹ : Zero β
inst✝ : T2Space β
g : α → β
hg : FinStronglyMeasurable g μ
hfg : f =ᶠ[ae μ] g
t : Set α
ht : MeasurableSet t
hgt_zero : ∀ (x : α), x ∈ tᶜ → g x = 0
htμ : SigmaFinite (Measure.restrict μ t)
⊢ ∃ t, MeasurableSet t ∧ f =ᶠ[ae (Measure.restrict μ (tᶜ))] 0 ∧ SigmaFinite (Measure.restrict μ t)

tactic: refine' EventuallyEq.trans (ae_restrict_of_ae hfg) _
state_before: case intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type ?u.549973
ι : Type ?u.549976
inst✝³ : Countable ι
m : MeasurableSpace α
μ : Measure α
inst✝² : TopologicalSpace β
f g✝ : α → β
inst✝¹ : Zero β
inst✝ : T2Space β
g : α → β
hg : FinStronglyMeasurable g μ
hfg : f =ᶠ[ae μ] g
t : Set α
ht : MeasurableSet t
hgt_zero : ∀ (x : α), x ∈ tᶜ → g x = 0
htμ : SigmaFinite (Measure.restrict μ t)
⊢ f =ᶠ[ae (Measure.restrict μ (tᶜ))] 0

tactic: rw [EventuallyEq, ae_restrict_iff' ht.compl]
state_before: case intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type ?u.549973
ι : Type ?u.549976
inst✝³ : Countable ι
m : MeasurableSpace α
μ : Measure α
inst✝² : TopologicalSpace β
f g✝ : α → β
inst✝¹ : Zero β
inst✝ : T2Space β
g : α → β
hg : FinStronglyMeasurable g μ
hfg : f =ᶠ[ae μ] g
t : Set α
ht : MeasurableSet t
hgt_zero : ∀ (x : α), x ∈ tᶜ → g x = 0
htμ : SigmaFinite (Measure.restrict μ t)
⊢ (fun x => g x) =ᶠ[ae (Measure.restrict μ (tᶜ))] 0

tactic: exact eventually_of_forall hgt_zero
state_before: case intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type ?u.549973
ι : Type ?u.549976
inst✝³ : Countable ι
m : MeasurableSpace α
μ : Measure α
inst✝² : TopologicalSpace β
f g✝ : α → β
inst✝¹ : Zero β
inst✝ : T2Space β
g : α → β
hg : FinStronglyMeasurable g μ
hfg : f =ᶠ[ae μ] g
t : Set α
ht : MeasurableSet t
hgt_zero : ∀ (x : α), x ∈ tᶜ → g x = 0
htμ : SigmaFinite (Measure.restrict μ t)
⊢ ∀ᵐ (x : α) ∂μ, x ∈ tᶜ → g x = OfNat.ofNat 0 x
Theorem: NNReal.rpow_add_rpow_le
File: Mathlib/Analysis/MeanInequalitiesPow.lean

tactic: have h_rpow : ∀ a : ℝ≥0, a ^ q = (a ^ p) ^ (q / p) := fun a => by
  rw [← NNReal.rpow_mul, _root_.div_eq_inv_mul, ← mul_assoc, _root_.mul_inv_cancel hp_pos.ne.symm,
    one_mul]
state_before: ι : Type u
s : Finset ι
p q : ℝ
a b : ℝ≥0
hp_pos : 0 < p
hpq : p ≤ q
⊢ (a ^ q + b ^ q) ^ (1 / q) ≤ (a ^ p + b ^ p) ^ (1 / p)

tactic: have h_rpow_add_rpow_le_add :
  ((a ^ p) ^ (q / p) + (b ^ p) ^ (q / p)) ^ (1 / (q / p)) ≤ a ^ p + b ^ p := by
  refine' rpow_add_rpow_le_add (a ^ p) (b ^ p) _
  rwa [one_le_div hp_pos]
state_before: ι : Type u
s : Finset ι
p q : ℝ
a b : ℝ≥0
hp_pos : 0 < p
hpq : p ≤ q
h_rpow : ∀ (a : ℝ≥0), a ^ q = (a ^ p) ^ (q / p)
⊢ (a ^ q + b ^ q) ^ (1 / q) ≤ (a ^ p + b ^ p) ^ (1 / p)

tactic: rw [h_rpow a, h_rpow b, NNReal.le_rpow_one_div_iff hp_pos, ← NNReal.rpow_mul, mul_comm,
  mul_one_div]
state_before: ι : Type u
s : Finset ι
p q : ℝ
a b : ℝ≥0
hp_pos : 0 < p
hpq : p ≤ q
h_rpow : ∀ (a : ℝ≥0), a ^ q = (a ^ p) ^ (q / p)
h_rpow_add_rpow_le_add : ((a ^ p) ^ (q / p) + (b ^ p) ^ (q / p)) ^ (1 / (q / p)) ≤ a ^ p + b ^ p
⊢ (a ^ q + b ^ q) ^ (1 / q) ≤ (a ^ p + b ^ p) ^ (1 / p)

tactic: rwa [one_div_div] at h_rpow_add_rpow_le_add
state_before: ι : Type u
s : Finset ι
p q : ℝ
a b : ℝ≥0
hp_pos : 0 < p
hpq : p ≤ q
h_rpow : ∀ (a : ℝ≥0), a ^ q = (a ^ p) ^ (q / p)
h_rpow_add_rpow_le_add : ((a ^ p) ^ (q / p) + (b ^ p) ^ (q / p)) ^ (1 / (q / p)) ≤ a ^ p + b ^ p
⊢ ((a ^ p) ^ (q / p) + (b ^ p) ^ (q / p)) ^ (p / q) ≤ a ^ p + b ^ p

tactic: rw [← NNReal.rpow_mul, _root_.div_eq_inv_mul, ← mul_assoc, _root_.mul_inv_cancel hp_pos.ne.symm,
  one_mul]
state_before: ι : Type u
s : Finset ι
p q : ℝ
a✝ b : ℝ≥0
hp_pos : 0 < p
hpq : p ≤ q
a : ℝ≥0
⊢ a ^ q = (a ^ p) ^ (q / p)

tactic: refine' rpow_add_rpow_le_add (a ^ p) (b ^ p) _
state_before: ι : Type u
s : Finset ι
p q : ℝ
a b : ℝ≥0
hp_pos : 0 < p
hpq : p ≤ q
h_rpow : ∀ (a : ℝ≥0), a ^ q = (a ^ p) ^ (q / p)
⊢ ((a ^ p) ^ (q / p) + (b ^ p) ^ (q / p)) ^ (1 / (q / p)) ≤ a ^ p + b ^ p

tactic: rwa [one_le_div hp_pos]
state_before: ι : Type u
s : Finset ι
p q : ℝ
a b : ℝ≥0
hp_pos : 0 < p
hpq : p ≤ q
h_rpow : ∀ (a : ℝ≥0), a ^ q = (a ^ p) ^ (q / p)
⊢ 1 ≤ q / p
Theorem: symmDiff_eq'
File: Mathlib/Order/SymmDiff.lean

tactic: rw [symmDiff_eq_sup_sdiff_inf, sdiff_eq, compl_inf]
state_before: ι : Type ?u.86870
α : Type u_1
β : Type ?u.86876
π : ι → Type ?u.86881
inst✝ : BooleanAlgebra α
a b c d : α
⊢ a ∆ b = (a ⊔ b) ⊓ (aᶜ ⊔ bᶜ)
Theorem: iteratedDerivWithin_univ
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.3042
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x : 𝕜
⊢ iteratedDerivWithin n f univ = iteratedDeriv n f

tactic: rw [iteratedDerivWithin, iteratedDeriv, iteratedFDerivWithin_univ]
state_before: case h
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type ?u.3042
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x✝ x : 𝕜
⊢ iteratedDerivWithin n f univ x = iteratedDeriv n f x
Theorem: Finset.card_le_one_iff
File: Mathlib/Data/Finset/Card.lean

tactic: rw [card_le_one]
state_before: α : Type u_1
β : Type ?u.52121
s t : Finset α
f : α → β
n : ℕ
⊢ card s ≤ 1 ↔ ∀ {a b : α}, a ∈ s → b ∈ s → a = b

tactic: tauto
state_before: α : Type u_1
β : Type ?u.52121
s t : Finset α
f : α → β
n : ℕ
⊢ (∀ (a : α), a ∈ s → ∀ (b : α), b ∈ s → a = b) ↔ ∀ {a b : α}, a ∈ s → b ∈ s → a = b
Theorem: Real.sin_sub_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: simp [sub_eq_add_neg, sin_add]
state_before: x : ℝ
⊢ sin (x - π / 2) = -cos x
Theorem: Real.cos_pos_of_le_one
File: Mathlib/Data/Complex/Exponential.lean

tactic: gcongr
state_before: x : ℝ
hx : abs' x ≤ 1
⊢ abs' x ^ 4 * (5 / 96) + x ^ 2 / 2 ≤ 1 * (5 / 96) + 1 / 2

tactic: exact pow_le_one _ (abs_nonneg _) hx
state_before: case h₁.h
x : ℝ
hx : abs' x ≤ 1
⊢ abs' x ^ 4 ≤ 1

tactic: rw [sq, ← abs_mul_self, abs_mul]
state_before: case h₂.h
x : ℝ
hx : abs' x ≤ 1
⊢ x ^ 2 ≤ 1

tactic: exact mul_le_one hx (abs_nonneg _) hx
state_before: case h₂.h
x : ℝ
hx : abs' x ≤ 1
⊢ abs' x * abs' x ≤ 1

tactic: norm_num
state_before: x : ℝ
hx : abs' x ≤ 1
⊢ 1 * (5 / 96) + 1 / 2 < 1
Theorem: ENNReal.eq_div_iff
File: Mathlib/Data/Real/ENNReal.lean

tactic: rw [h, ENNReal.mul_div_cancel' ha ha']
state_before: α : Type ?u.310360
β : Type ?u.310363
a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ 0
ha' : a ≠ ⊤
h : b = c / a
⊢ a * b = c

tactic: rw [← h, mul_div_assoc, ENNReal.mul_div_cancel' ha ha']
state_before: α : Type ?u.310360
β : Type ?u.310363
a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ 0
ha' : a ≠ ⊤
h : a * b = c
⊢ b = c / a
Theorem: PGame.neg_lt_zero_iff
File: Mathlib/SetTheory/Game/PGame.lean

tactic: rw [neg_lt_iff, neg_zero]
state_before: x : PGame
⊢ -x < 0 ↔ 0 < x
Theorem: mem_list_primes_of_dvd_prod
File: Mathlib/Data/List/Prime.lean

tactic: obtain ⟨x, hx1, hx2⟩ := hp.dvd_prod_iff.mp hpL
state_before: M : Type u_1
inst✝¹ : CancelCommMonoidWithZero M
inst✝ : Unique Mˣ
p : M
hp : Prime p
L : List M
hL : ∀ (q : M), q ∈ L → Prime q
hpL : p ∣ prod L
⊢ p ∈ L

tactic: rwa [(prime_dvd_prime_iff_eq hp (hL x hx1)).mp hx2]
state_before: case intro.intro
M : Type u_1
inst✝¹ : CancelCommMonoidWithZero M
inst✝ : Unique Mˣ
p : M
hp : Prime p
L : List M
hL : ∀ (q : M), q ∈ L → Prime q
hpL : p ∣ prod L
x : M
hx1 : x ∈ L
hx2 : p ∣ x
⊢ p ∈ L
Theorem: MvPowerSeries.one_mul
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: simpa using coeff_add_monomial_mul 0 n φ 1
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n✝ : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
n : σ →₀ ℕ
⊢ ↑(coeff R n) (1 * φ) = ↑(coeff R n) φ
Theorem: MeasureTheory.Measure.QuasiMeasurePreserving.preimage_iterate_ae_eq
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: induction' k with k ih
state_before: α : Type u_1
β : Type ?u.411803
γ : Type ?u.411806
δ : Type ?u.411809
ι : Type ?u.411812
R : Type ?u.411815
R' : Type ?u.411818
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
s : Set α
f : α → α
hf : QuasiMeasurePreserving f
k : ℕ
hs : f ⁻¹' s =ᵐ[μ] s
⊢ f^[k] ⁻¹' s =ᵐ[μ] s

tactic: rw [iterate_succ, preimage_comp]
state_before: case succ
α : Type u_1
β : Type ?u.411803
γ : Type ?u.411806
δ : Type ?u.411809
ι : Type ?u.411812
R : Type ?u.411815
R' : Type ?u.411818
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
s : Set α
f : α → α
hf : QuasiMeasurePreserving f
hs : f ⁻¹' s =ᵐ[μ] s
k : ℕ
ih : f^[k] ⁻¹' s =ᵐ[μ] s
⊢ f^[Nat.succ k] ⁻¹' s =ᵐ[μ] s

tactic: exact EventuallyEq.trans (hf.preimage_ae_eq ih) hs
state_before: case succ
α : Type u_1
β : Type ?u.411803
γ : Type ?u.411806
δ : Type ?u.411809
ι : Type ?u.411812
R : Type ?u.411815
R' : Type ?u.411818
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
s : Set α
f : α → α
hf : QuasiMeasurePreserving f
hs : f ⁻¹' s =ᵐ[μ] s
k : ℕ
ih : f^[k] ⁻¹' s =ᵐ[μ] s
⊢ f ⁻¹' (f^[k] ⁻¹' s) =ᵐ[μ] s

tactic: rfl
state_before: case zero
α : Type u_1
β : Type ?u.411803
γ : Type ?u.411806
δ : Type ?u.411809
ι : Type ?u.411812
R : Type ?u.411815
R' : Type ?u.411818
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
μa μa' : Measure α
μb μb' : Measure β
μc : Measure γ
f✝ : α → β
s : Set α
f : α → α
hf : QuasiMeasurePreserving f
hs : f ⁻¹' s =ᵐ[μ] s
⊢ f^[Nat.zero] ⁻¹' s =ᵐ[μ] s
Theorem: edist_div_right
File: Mathlib/Topology/MetricSpace/IsometricSMul.lean

tactic: simp only [div_eq_mul_inv, edist_mul_right]
state_before: M : Type u
G : Type v
X : Type w
inst✝⁶ : PseudoEMetricSpace X
inst✝⁵ : Group G
inst✝⁴ : MulAction G X
inst✝³ : IsometricSMul G X
inst✝² : DivInvMonoid M
inst✝¹ : PseudoEMetricSpace M
inst✝ : IsometricSMul Mᵐᵒᵖ M
a b c : M
⊢ edist (a / c) (b / c) = edist a b
Theorem: OrderIso.isLUB_image'
File: Mathlib/Order/Bounds/OrderIso.lean

tactic: rw [isLUB_image, f.symm_apply_apply]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
f : α ≃o β
s : Set α
x : α
⊢ IsLUB (↑f '' s) (↑f x) ↔ IsLUB s x
Theorem: Nat.log2_le_self
File: src/lean/Init/Data/Nat/Log2.lean

tactic: unfold Nat.log2
state_before: n : Nat
⊢ log2 n ≤ n

tactic: split
state_before: n : Nat
⊢ (if n ≥ 2 then log2 (n / 2) + 1 else 0) ≤ n

tactic: next h =>
have := log2_le_self (n / 2)
exact Nat.lt_of_le_of_lt this (Nat.div_lt_self (Nat.le_of_lt h) (by decide))
state_before: case inl
n : Nat
h✝ : n ≥ 2
⊢ log2 (n / 2) + 1 ≤ n

tactic: have := log2_le_self (n / 2)
state_before: n : Nat
h : n ≥ 2
⊢ log2 (n / 2) + 1 ≤ n

tactic: exact Nat.lt_of_le_of_lt this (Nat.div_lt_self (Nat.le_of_lt h) (by decide))
state_before: n : Nat
h : n ≥ 2
this : log2 (n / 2) ≤ n / 2
⊢ log2 (n / 2) + 1 ≤ n

tactic: decide
state_before: n : Nat
h : n ≥ 2
this : log2 (n / 2) ≤ n / 2
⊢ 1 < 2

tactic: apply Nat.zero_le
state_before: case inr
n : Nat
h✝ : ¬n ≥ 2
⊢ 0 ≤ n

tactic: exact Nat.log2_terminates _ ‹_›
state_before: n : Nat
a✝ : ∀ (y : Nat), (invImage (fun a => sizeOf a) instWellFoundedRelation).1 y n → log2 y ≤ y
h✝ : n ≥ 2
⊢ (invImage (fun a => sizeOf a) instWellFoundedRelation).1 (n / 2) n
Theorem: Polynomial.coeff_erase
File: Mathlib/Data/Polynomial/Basic.lean

tactic: rcases p with ⟨⟩
state_before: R : Type u
a b : R
m n✝ : ℕ
inst✝ : Semiring R
p✝ q p : R[X]
n i : ℕ
⊢ coeff (erase n p) i = if i = n then 0 else coeff p i

tactic: simp only [erase_def, coeff]
state_before: case ofFinsupp
R : Type u
a b : R
m n✝ : ℕ
inst✝ : Semiring R
p q : R[X]
n i : ℕ
toFinsupp✝ : AddMonoidAlgebra R ℕ
⊢ coeff (erase n { toFinsupp := toFinsupp✝ }) i = if i = n then 0 else coeff { toFinsupp := toFinsupp✝ } i

tactic: exact ite_congr rfl (fun _ => rfl) (fun _ => rfl)
state_before: case ofFinsupp
R : Type u
a b : R
m n✝ : ℕ
inst✝ : Semiring R
p q : R[X]
n i : ℕ
toFinsupp✝ : AddMonoidAlgebra R ℕ
⊢ ↑(Finsupp.erase n toFinsupp✝) i = if i = n then 0 else ↑toFinsupp✝ i
Theorem: comp_comp_symm_mem_uniformity_sets
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: rcases comp_symm_mem_uniformity_sets hs with ⟨w, w_in, _, w_sub⟩
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort ?u.53210
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
⊢ ∃ t, t ∈ 𝓤 α ∧ SymmetricRel t ∧ t ○ t ○ t ⊆ s

tactic: rcases comp_symm_mem_uniformity_sets w_in with ⟨t, t_in, t_symm, t_sub⟩
state_before: case intro.intro.intro
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort ?u.53210
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
w : Set (α × α)
w_in : w ∈ 𝓤 α
left✝ : SymmetricRel w
w_sub : w ○ w ⊆ s
⊢ ∃ t, t ∈ 𝓤 α ∧ SymmetricRel t ∧ t ○ t ○ t ⊆ s

tactic: use t, t_in, t_symm
state_before: case intro.intro.intro.intro.intro.intro
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort ?u.53210
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
w : Set (α × α)
w_in : w ∈ 𝓤 α
left✝ : SymmetricRel w
w_sub : w ○ w ⊆ s
t : Set (α × α)
t_in : t ∈ 𝓤 α
t_symm : SymmetricRel t
t_sub : t ○ t ⊆ w
⊢ ∃ t, t ∈ 𝓤 α ∧ SymmetricRel t ∧ t ○ t ○ t ⊆ s

tactic: have : t ⊆ t ○ t := subset_comp_self_of_mem_uniformity t_in
state_before: case intro.intro.intro.intro.intro.intro
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort ?u.53210
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
w : Set (α × α)
w_in : w ∈ 𝓤 α
left✝ : SymmetricRel w
w_sub : w ○ w ⊆ s
t : Set (α × α)
t_in : t ∈ 𝓤 α
t_symm : SymmetricRel t
t_sub : t ○ t ⊆ w
⊢ t ○ t ○ t ⊆ s

tactic: calc
  t ○ t ○ t ⊆ w ○ t := compRel_mono t_sub Subset.rfl
  _ ⊆ w ○ (t ○ t) := compRel_mono Subset.rfl this
  _ ⊆ w ○ w := compRel_mono Subset.rfl t_sub
  _ ⊆ s := w_sub
state_before: case intro.intro.intro.intro.intro.intro
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort ?u.53210
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
w : Set (α × α)
w_in : w ∈ 𝓤 α
left✝ : SymmetricRel w
w_sub : w ○ w ⊆ s
t : Set (α × α)
t_in : t ∈ 𝓤 α
t_symm : SymmetricRel t
t_sub : t ○ t ⊆ w
this : t ⊆ t ○ t
⊢ t ○ t ○ t ⊆ s
Theorem: Polynomial.degree_sum_le
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: simp only [sum_empty, sup_empty, degree_zero, le_refl]
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p q : R[X]
ι : Type u_1
s : Finset ι
f : ι → R[X]
⊢ degree (∑ i in ∅, f i) ≤ sup ∅ fun b => degree (f b)

tactic: rw [sum_insert has]
state_before: R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p q : R[X]
ι : Type u_1
s✝ : Finset ι
f : ι → R[X]
a : ι
s : Finset ι
has : ¬a ∈ s
ih : degree (∑ i in s, f i) ≤ sup s fun b => degree (f b)
⊢ degree (∑ i in insert a s, f i) ≤ max (degree (f a)) (degree (∑ i in s, f i))

tactic: exact degree_add_le _ _
state_before: R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p q : R[X]
ι : Type u_1
s✝ : Finset ι
f : ι → R[X]
a : ι
s : Finset ι
has : ¬a ∈ s
ih : degree (∑ i in s, f i) ≤ sup s fun b => degree (f b)
⊢ degree (f a + ∑ x in s, f x) ≤ max (degree (f a)) (degree (∑ i in s, f i))

tactic: rw [sup_insert, sup_eq_max]
state_before: R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p q : R[X]
ι : Type u_1
s✝ : Finset ι
f : ι → R[X]
a : ι
s : Finset ι
has : ¬a ∈ s
ih : degree (∑ i in s, f i) ≤ sup s fun b => degree (f b)
⊢ max (degree (f a)) (degree (∑ i in s, f i)) ≤ sup (insert a s) fun b => degree (f b)

tactic: exact max_le_max le_rfl ih
state_before: R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p q : R[X]
ι : Type u_1
s✝ : Finset ι
f : ι → R[X]
a : ι
s : Finset ι
has : ¬a ∈ s
ih : degree (∑ i in s, f i) ≤ sup s fun b => degree (f b)
⊢ max (degree (f a)) (degree (∑ i in s, f i)) ≤ max (degree (f a)) (sup s fun b => degree (f b))
Theorem: Subgroup.relindex_inf_ne_zero
File: Mathlib/GroupTheory/Index.lean

tactic: replace hH : H.relindex (K ⊓ L) ≠ 0 := mt (relindex_eq_zero_of_le_right inf_le_right) hH
state_before: G : Type u_1
inst✝ : Group G
H K L : Subgroup G
hH : relindex H L ≠ 0
hK : relindex K L ≠ 0
⊢ relindex (H ⊓ K) L ≠ 0

tactic: rw [← inf_relindex_right] at hH hK⊢
state_before: G : Type u_1
inst✝ : Group G
H K L : Subgroup G
hK : relindex K L ≠ 0
hH : relindex H (K ⊓ L) ≠ 0
⊢ relindex (H ⊓ K) L ≠ 0

tactic: rw [inf_assoc]
state_before: G : Type u_1
inst✝ : Group G
H K L : Subgroup G
hK : relindex (K ⊓ L) L ≠ 0
hH : relindex (H ⊓ (K ⊓ L)) (K ⊓ L) ≠ 0
⊢ relindex (H ⊓ K ⊓ L) L ≠ 0

tactic: exact relindex_ne_zero_trans hH hK
state_before: G : Type u_1
inst✝ : Group G
H K L : Subgroup G
hK : relindex (K ⊓ L) L ≠ 0
hH : relindex (H ⊓ (K ⊓ L)) (K ⊓ L) ≠ 0
⊢ relindex (H ⊓ (K ⊓ L)) L ≠ 0
Theorem: Dfinsupp.filter_single_neg
File: Mathlib/Data/Dfinsupp/Basic.lean

tactic: rw [filter_single, if_neg h]
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✝ : ι
p : ι → Prop
inst✝ : DecidablePred p
i : ι
x : β i
h : ¬p i
⊢ filter p (single i x) = 0
Theorem: MonoidAlgebra.single_mul_single
File: Mathlib/Algebra/MonoidAlgebra/Basic.lean

tactic: simp only [zero_mul, single_zero, sum_zero]
state_before: k : Type u₁
G : Type u₂
R : Type ?u.365398
inst✝¹ : Semiring k
inst✝ : Mul G
a₁ a₂ : G
b₁ b₂ : k
⊢ (sum (single a₂ b₂) fun a₂ b₂ => single (a₁ * a₂) (0 * b₂)) = 0

tactic: rw [mul_zero, single_zero]
state_before: k : Type u₁
G : Type u₂
R : Type ?u.365398
inst✝¹ : Semiring k
inst✝ : Mul G
a₁ a₂ : G
b₁ b₂ : k
⊢ single (a₁ * a₂) (b₁ * 0) = 0
Theorem: Real.tendsto_cos_neg_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: apply tendsto_nhdsWithin_of_tendsto_nhds_of_eventually_within
state_before: ⊢ Tendsto cos (𝓝[Ioi (-(π / 2))] (-(π / 2))) (𝓝[Ioi 0] 0)

tactic: convert continuous_cos.continuousWithinAt.tendsto
state_before: case h1

⊢ Tendsto cos (𝓝[Ioi (-(π / 2))] (-(π / 2))) (𝓝 0)

tactic: simp
state_before: case h.e'_5.h.e'_3

⊢ 0 = cos (-(π / 2))

tactic: filter_upwards [Ioo_mem_nhdsWithin_Ioi
    (left_mem_Ico.mpr (neg_lt_self pi_div_two_pos))]with x hx using cos_pos_of_mem_Ioo hx
state_before: case h2

⊢ ∀ᶠ (x : ℝ) in 𝓝[Ioi (-(π / 2))] (-(π / 2)), cos x ∈ Ioi 0
Theorem: Ordinal.log_def
File: Mathlib/SetTheory/Ordinal/Exponential.lean

tactic: simp only [log, dif_pos h]
state_before: b : Ordinal
h : 1 < b
x : Ordinal
⊢ log b x = pred (sInf {o | x < b ^ o})
Theorem: toIocMod_eq_self
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [toIocMod_eq_iff, and_iff_left]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
⊢ toIocMod hp a b = b ↔ b ∈ Set.Ioc a (a + p)

tactic: exact ⟨0, by simp⟩
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
⊢ ∃ z, b = b + z • p

tactic: simp
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
⊢ b = b + 0 • p
Theorem: Denumerable.encode_ofNat
File: Mathlib/Logic/Denumerable.lean

tactic: obtain ⟨a, h, e⟩ := decode_inv n
state_before: α : Type u_1
β : Type ?u.516
inst✝¹ : Denumerable α
inst✝ : Denumerable β
n : ℕ
⊢ encode (ofNat α n) = n

tactic: rwa [ofNat_of_decode h]
state_before: case intro.intro
α : Type u_1
β : Type ?u.516
inst✝¹ : Denumerable α
inst✝ : Denumerable β
n : ℕ
a : ?m.551
h : a ∈ decode n
e : encode a = n
⊢ encode (ofNat α n) = n
Theorem: subsingleton_or_nontrivial
File: Mathlib/Logic/Nontrivial.lean

tactic: rw [← not_nontrivial_iff_subsingleton, or_comm]
state_before: α✝ : Type ?u.3498
β : Type ?u.3501
α : Type u_1
⊢ Subsingleton α ∨ Nontrivial α

tactic: exact Classical.em _
state_before: α✝ : Type ?u.3498
β : Type ?u.3501
α : Type u_1
⊢ Nontrivial α ∨ ¬Nontrivial α
Theorem: sInf_div
File: Mathlib/Algebra/Order/Pointwise.lean

tactic: simp_rw [div_eq_mul_inv, sInf_mul, sInf_inv]
state_before: α : Type u_1
inst✝³ : CompleteLattice α
inst✝² : Group α
inst✝¹ : CovariantClass α α (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
s t : Set α
⊢ sInf (s / t) = sInf s / sSup t
Theorem: WithBot.preimage_coe_Ico
File: Mathlib/Data/Set/Intervals/WithBotTop.lean

tactic: simp [← Ici_inter_Iio]
state_before: α : Type u_1
inst✝ : PartialOrder α
a b : α
⊢ some ⁻¹' Ico ↑a ↑b = Ico a b
Theorem: Polynomial.degree_quadratic_lt_degree_C_mul_X_cb
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: simpa only [degree_C_mul_X_pow 3 ha] using degree_quadratic_lt
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p q : R[X]
ι : Type ?u.1327898
ha : a ≠ 0
⊢ degree (↑C b * X ^ 2 + ↑C c * X + ↑C d) < degree (↑C a * X ^ 3)
Theorem: List.range'_sublist_right
File: Std/Data/List/Lemmas.lean

tactic: simpa only [length_range'] using h.length_le
state_before: step s m n : Nat
h : range' s m step <+ range' s n step
⊢ m ≤ n

tactic: rw [← Nat.sub_add_cancel h, ← range'_append]
state_before: step s m n : Nat
h : m ≤ n
⊢ range' s m step <+ range' s n step

tactic: apply sublist_append_left
state_before: step s m n : Nat
h : m ≤ n
⊢ range' s m step <+ range' s m step ++ range' (s + step * m) (n - m) step
Theorem: MvPolynomial.rename_comp_expand
File: Mathlib/Data/MvPolynomial/Expand.lean

tactic: ext1 φ
state_before: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type ?u.347378
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
f : σ → τ
p : ℕ
⊢ AlgHom.comp (rename f) (expand p) = AlgHom.comp (expand p) (rename f)

tactic: simp only [rename_expand, AlgHom.comp_apply]
state_before: case hf
σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type ?u.347378
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
f : σ → τ
p : ℕ
φ : σ
⊢ ↑(AlgHom.comp (rename f) (expand p)) (X φ) = ↑(AlgHom.comp (expand p) (rename f)) (X φ)
Theorem: Real.lt_rpow_iff_log_lt
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rw [← Real.log_lt_log_iff hx (Real.rpow_pos_of_pos hy z), Real.log_rpow hy]
state_before: x y z : ℝ
hx : 0 < x
hy : 0 < y
⊢ x < y ^ z ↔ log x < z * log y
Theorem: norm_sub_sq_eq_norm_sq_add_norm_sq_iff_real_inner_eq_zero
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: rw [@norm_sub_mul_self ℝ, add_right_cancel_iff, sub_eq_add_neg, add_right_eq_self, neg_eq_zero,
  mul_eq_zero]
state_before: 𝕜 : Type ?u.3112345
E : Type ?u.3112348
F : Type u_1
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
dec_E : DecidableEq E
x y : F
⊢ ‖x - y‖ * ‖x - y‖ = ‖x‖ * ‖x‖ + ‖y‖ * ‖y‖ ↔ inner x y = 0

tactic: norm_num
state_before: 𝕜 : Type ?u.3112345
E : Type ?u.3112348
F : Type u_1
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
dec_E : DecidableEq E
x y : F
⊢ 2 = 0 ∨ ↑re (inner x y) = 0 ↔ inner x y = 0