awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
this : ∀ {y : ℝ}, 0 < y → y ≤ 3 * π / 2 → cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
h : x < 0
linarith : -x ≤ 0 → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁ : -x ≤ 0 → 2 / 2 = 1
linarith₂ : -x ≤ 0 → HMul.hMul (α := ℝ) 1 2 = 2
linarith₃ : -x ≤ 0 → GT.gt (α := ℝ) 2 0
linarith₄ : -x ≤ 0 → HMul.hMul (α := ℝ) 1 1 = 1
linarith₅ : -x ≤ 0 → 2 / 2 = 1
linarith₆ : -x ≤ 0 → HMul.hMul (α := ℝ) 1 2 = 2
linarith₇ : -x ≤ 0 → GT.gt (α := ℝ) 2 0
⊢ 0 < -x
have linarith₈ : -x ≤ 0 → x - 0 + (-x - 0) = 0
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
this : ∀ {y : ℝ}, 0 < y → y ≤ 3 * π / 2 → cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
h : x < 0
⊢ -x ≤ 3 * π / 2
have linarith : 3 * π / 2 < -x → HMul.hMul (α := ℝ) 1 1 = 1
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
this : ∀ {y : ℝ}, 0 < y → y ≤ 3 * π / 2 → cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
h : x < 0
linarith : 3 * π / 2 < -x → HMul.hMul (α := ℝ) 1 1 = 1
⊢ -x ≤ 3 * π / 2
have linarith₁ : 3 * π / 2 < -x → 2 / 2 = 1
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
this : ∀ {y : ℝ}, 0 < y → y ≤ 3 * π / 2 → cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
h : x < 0
linarith : 3 * π / 2 < -x → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁ : 3 * π / 2 < -x → 2 / 2 = 1
⊢ -x ≤ 3 * π / 2
have linarith₂ : 3 * π / 2 < -x → HMul.hMul (α := ℝ) 1 2 = 2
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
this : ∀ {y : ℝ}, 0 < y → y ≤ 3 * π / 2 → cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
h : x < 0
linarith : 3 * π / 2 < -x → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁ : 3 * π / 2 < -x → 2 / 2 = 1
linarith₂ : 3 * π / 2 < -x → HMul.hMul (α := ℝ) 1 2 = 2
⊢ -x ≤ 3 * π / 2
have linarith₃ : 3 * π / 2 < -x → GT.gt (α := ℝ) 2 0
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
this : ∀ {y : ℝ}, 0 < y → y ≤ 3 * π / 2 → cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
h : x < 0
linarith : 3 * π / 2 < -x → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁ : 3 * π / 2 < -x → 2 / 2 = 1
linarith₂ : 3 * π / 2 < -x → HMul.hMul (α := ℝ) 1 2 = 2
linarith₃ : 3 * π / 2 < -x → GT.gt (α := ℝ) 2 0
linarith₄ : 3 * π / 2 < -x → HMul.hMul (α := ℝ) 1 1 = 1
linarith₅ : 3 * π / 2 < -x → 2 / 2 = 1
linarith₆ : 3 * π / 2 < -x → HMul.hMul (α := ℝ) 1 2 = 2
linarith₇ : 3 * π / 2 < -x → GT.gt (α := ℝ) 2 0
linarith₈ : 3 * π / 2 < -x → HMul.hMul (α := ℝ) 1 1 = 1
linarith₉ : 3 * π / 2 < -x → 2 / 2 = 1
linarith₁₀ : 3 * π / 2 < -x → HMul.hMul (α := ℝ) 1 2 = 2
linarith₁₁ : 3 * π / 2 < -x → GT.gt (α := ℝ) 2 0
⊢ -x ≤ 3 * π / 2
have linarith₁₂ : 3 * π / 2 < -x → -(HMul.hMul (α := ℝ) 1 3 * (1 * π)) - 2 * x + (HMul.hMul (α := ℝ) 1 3 * (1 * π) - -(2 * x)) = 0
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
this : ∀ {y : ℝ}, 0 < y → y ≤ 3 * π / 2 → cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
h : x < 0
⊢ cos x < 1 / √(HPow.hPow (β := ℕ) x 2 + 1)
have h : cos x = cos (-x)
Tactic: convert! this (by linarith : 0 < -x) (by linarith) using 1
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
this : ∀ {y : ℝ}, 0 < y → y ≤ 3 * π / 2 → cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
h_1 : x < 0
h : cos x = cos (-x)
⊢ cos x < 1 / √(HPow.hPow (β := ℕ) x 2 + 1)
have h₁ : 1 / √(HPow.hPow (β := ℕ) x 2 + 1) = 1 / √(HPow.hPow (β := ℕ) (-x) 2 + 1)
Tactic: convert! this (by linarith : 0 < -x) (by linarith) using 1
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
this : ∀ {y : ℝ}, 0 < y → y ≤ 3 * π / 2 → cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
h : x < 0
⊢ cos x = cos (-x)
have h : cos x = cos x
Tactic: rw [cos_neg]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
this : ∀ {y : ℝ}, 0 < y → y ≤ 3 * π / 2 → cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
h : x < 0
⊢ 1 / √(HPow.hPow (β := ℕ) x 2 + 1) = 1 / √(HPow.hPow (β := ℕ) (-x) 2 + 1)
have h : 1 / √(HPow.hPow (β := ℕ) x 2 + 1) = 1 / √(HPow.hPow (β := ℕ) x 2 + 1)
Tactic: rw [neg_sq]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
⊢ cos x < 1 / √(HPow.hPow (β := ℕ) x 2 + 1)
have suffices : ∀ {y : ℝ}, 0 < y → y ≤ 3 * π / 2 → cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
Tactic: suffices ∀ {y : ℝ}, 0 < y → y ≤ 3 * π / 2 → cos y < 1 / √(y ^ 2 + 1) by
    rcases lt_or_lt_iff_ne.mpr hx3.symm with ⟨h⟩
    · exact this h hx2
    · convert! this (by linarith : 0 < -x) (by linarith) using 1
      · rw [cos_neg]
      · rw [neg_sq]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
⊢ 0 < HPow.hPow (β := ℕ) y 2 + 1
have linarith : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → HMul.hMul (α := ℝ) 1 1 = 1
Tactic: linarith [sq_nonneg y]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
linarith : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → HMul.hMul (α := ℝ) 1 1 = 1
⊢ 0 < HPow.hPow (β := ℕ) y 2 + 1
have linarith₁ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → 2 / 2 = 1
Tactic: linarith [sq_nonneg y]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
linarith : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → 2 / 2 = 1
⊢ 0 < HPow.hPow (β := ℕ) y 2 + 1
have linarith₂ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → HMul.hMul (α := ℝ) 1 2 = 2
Tactic: linarith [sq_nonneg y]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
linarith : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → 2 / 2 = 1
linarith₂ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → HMul.hMul (α := ℝ) 1 2 = 2
⊢ 0 < HPow.hPow (β := ℕ) y 2 + 1
have linarith₃ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → GT.gt (α := ℝ) 2 0
Tactic: linarith [sq_nonneg y]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
linarith : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → 2 / 2 = 1
linarith₂ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → HMul.hMul (α := ℝ) 1 2 = 2
linarith₃ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → GT.gt (α := ℝ) 2 0
linarith₄ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → HMul.hMul (α := ℝ) 1 1 = 1
linarith₅ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → 2 / 2 = 1
linarith₆ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → HMul.hMul (α := ℝ) 1 2 = 2
linarith₇ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → GT.gt (α := ℝ) 2 0
linarith₈ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → HMul.hMul (α := ℝ) 1 1 = 1
linarith₉ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → 2 / 2 = 1
linarith₁₀ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → HMul.hMul (α := ℝ) 1 2 = 2
linarith₁₁ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → GT.gt (α := ℝ) 2 0
⊢ 0 < HPow.hPow (β := ℕ) y 2 + 1
have linarith₁₂ : HPow.hPow (β := ℕ) y 2 + 1 ≤ 0 → -1 + (HPow.hPow (β := ℕ) y 2 + 1 - 0) + (0 - HPow.hPow (β := ℕ) y 2) = 0
Tactic: linarith [sq_nonneg y]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (hypothesis)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
⊢ cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
have hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
Tactic: have hy3 : ↑0 < y ^ 2 + 1 := by linarith [sq_nonneg y]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
⊢ cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
have inl : ∀ (hy2' : y < π / 2), cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
Tactic: rcases lt_or_ge y (π / 2) with (hy2' | hy1')
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
inl : ∀ (hy2' : y < π / 2), cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
⊢ cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
have inr : ∀ (hy1' : π / 2 ≤ y), cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
Tactic: rcases lt_or_ge y (π / 2) with (hy2' | hy1')
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy2' : y < π / 2
⊢ -(π / 2) < y
have linarith : y ≤ -(π / 2) → 2 / 2 = 1
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy2' : y < π / 2
linarith : y ≤ -(π / 2) → 2 / 2 = 1
⊢ -(π / 2) < y
have linarith₁ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy2' : y < π / 2
linarith : y ≤ -(π / 2) → 2 / 2 = 1
linarith₁ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
⊢ -(π / 2) < y
have linarith₂ : y ≤ -(π / 2) → GT.gt (α := ℝ) 2 0
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy2' : y < π / 2
linarith : y ≤ -(π / 2) → 2 / 2 = 1
linarith₁ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₂ : y ≤ -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₃ : y ≤ -(π / 2) → 2 / 2 = 1
linarith₄ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₅ : y ≤ -(π / 2) → GT.gt (α := ℝ) 2 0
⊢ -(π / 2) < y
have linarith₆ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 1 = 1
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy2' : y < π / 2
linarith : y ≤ -(π / 2) → 2 / 2 = 1
linarith₁ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₂ : y ≤ -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₃ : y ≤ -(π / 2) → 2 / 2 = 1
linarith₄ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₅ : y ≤ -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₆ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 1 = 1
linarith₇ : y ≤ -(π / 2) → 2 / 2 = 1
linarith₈ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₉ : y ≤ -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₁₀ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁₁ : y ≤ -(π / 2) → 2 / 2 = 1
linarith₁₂ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₁₃ : y ≤ -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₁₄ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁₅ : y ≤ -(π / 2) → 2 / 2 = 1
linarith₁₆ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₁₇ : y ≤ -(π / 2) → GT.gt (α := ℝ) 2 0
⊢ -(π / 2) < y
have linarith₁₈ : y ≤ -(π / 2) → 4 * (0 - y) + (2 * y - 1 * π) + (2 * y - -(1 * π)) = 0
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy2' : y < π / 2
linarith : y ≤ -(π / 2) → 2 / 2 = 1
linarith₁ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₂ : y ≤ -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₃ : y ≤ -(π / 2) → 2 / 2 = 1
linarith₄ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₅ : y ≤ -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₆ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 1 = 1
linarith₇ : y ≤ -(π / 2) → 2 / 2 = 1
linarith₈ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₉ : y ≤ -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₁₀ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁₁ : y ≤ -(π / 2) → 2 / 2 = 1
linarith₁₂ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₁₃ : y ≤ -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₁₄ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁₅ : y ≤ -(π / 2) → 2 / 2 = 1
linarith₁₆ : y ≤ -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₁₇ : y ≤ -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₁₈ : y ≤ -(π / 2) → 4 * (0 - y) + (2 * y - 1 * π) + (2 * y - -(1 * π)) = 0
⊢ -(π / 2) < y
have linarith₁₉ : y ≤ -(π / 2) → GT.gt (α := ℝ) 4 0
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (hypothesis)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy2' : y < π / 2
⊢ cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
have hy4 : 0 < cos y
Tactic: have hy4 : 0 < cos y := cos_pos_of_mem_Ioo ⟨by linarith, hy2'⟩
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy2' : y < π / 2
hy4 : 0 < cos y
⊢ -(π / 2) ≤ y
have linarith : y < -(π / 2) → 2 / 2 = 1
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy2' : y < π / 2
hy4 : 0 < cos y
linarith : y < -(π / 2) → 2 / 2 = 1
⊢ -(π / 2) ≤ y
have linarith₁ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy2' : y < π / 2
hy4 : 0 < cos y
linarith : y < -(π / 2) → 2 / 2 = 1
linarith₁ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
⊢ -(π / 2) ≤ y
have linarith₂ : y < -(π / 2) → GT.gt (α := ℝ) 2 0
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy2' : y < π / 2
hy4 : 0 < cos y
linarith : y < -(π / 2) → 2 / 2 = 1
linarith₁ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₂ : y < -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₃ : y < -(π / 2) → 2 / 2 = 1
linarith₄ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₅ : y < -(π / 2) → GT.gt (α := ℝ) 2 0
⊢ -(π / 2) ≤ y
have linarith₆ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 1 = 1
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy2' : y < π / 2
hy4 : 0 < cos y
linarith : y < -(π / 2) → 2 / 2 = 1
linarith₁ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₂ : y < -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₃ : y < -(π / 2) → 2 / 2 = 1
linarith₄ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₅ : y < -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₆ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 1 = 1
linarith₇ : y < -(π / 2) → 2 / 2 = 1
linarith₈ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₉ : y < -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₁₀ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁₁ : y < -(π / 2) → 2 / 2 = 1
linarith₁₂ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₁₃ : y < -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₁₄ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁₅ : y < -(π / 2) → 2 / 2 = 1
linarith₁₆ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₁₇ : y < -(π / 2) → GT.gt (α := ℝ) 2 0
⊢ -(π / 2) ≤ y
have linarith₁₈ : y < -(π / 2) → 4 * (0 - y) + (2 * y - 1 * π) + (2 * y - -(1 * π)) = 0
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy2' : y < π / 2
hy4 : 0 < cos y
linarith : y < -(π / 2) → 2 / 2 = 1
linarith₁ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₂ : y < -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₃ : y < -(π / 2) → 2 / 2 = 1
linarith₄ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₅ : y < -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₆ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 1 = 1
linarith₇ : y < -(π / 2) → 2 / 2 = 1
linarith₈ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₉ : y < -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₁₀ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁₁ : y < -(π / 2) → 2 / 2 = 1
linarith₁₂ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₁₃ : y < -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₁₄ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁₅ : y < -(π / 2) → 2 / 2 = 1
linarith₁₆ : y < -(π / 2) → HMul.hMul (α := ℝ) 1 2 = 2
linarith₁₇ : y < -(π / 2) → GT.gt (α := ℝ) 2 0
linarith₁₈ : y < -(π / 2) → 4 * (0 - y) + (2 * y - 1 * π) + (2 * y - -(1 * π)) = 0
⊢ -(π / 2) ≤ y
have linarith₁₉ : y < -(π / 2) → GT.gt (α := ℝ) 4 0
Tactic: linarith
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy2' : y < π / 2
hy4 : 0 < cos y
⊢ cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
have inl : y < tan y
Tactic: rw [← abs_of_nonneg (cos_nonneg_of_mem_Icc ⟨by linarith, hy2'.le⟩), ←
      abs_of_nonneg (one_div_nonneg.mpr (sqrt_nonneg _)), ← sq_lt_sq, div_pow, one_pow,
      sq_sqrt hy3.le, lt_one_div (pow_pos hy4 _) hy3, ← inv_one_add_tan_sq hy4.ne', one_div,
      inv_inv, add_comm, add_lt_add_iff_left, sq_lt_sq, abs_of_pos hy1,
      abs_of_nonneg (tan_nonneg_of_nonneg_of_le_pi_div_two hy1.le hy2'.le)]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy1' : π / 2 ≤ y
⊢ cos y < 1 / √(HPow.hPow (β := ℕ) y 2 + 1)
have inr : cos y ≤ 0
Tactic: refine lt_of_le_of_lt ?_ (one_div_pos.mpr <| sqrt_pos_of_pos hy3)
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy1' : π / 2 ≤ y
⊢ y ≤ π + π / 2
have linarith : π + π / 2 < y → 2 / 2 = 1
Tactic: linarith [pi_pos]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy1' : π / 2 ≤ y
linarith : π + π / 2 < y → 2 / 2 = 1
⊢ y ≤ π + π / 2
have linarith₁ : π + π / 2 < y → HMul.hMul (α := ℝ) 1 2 = 2
Tactic: linarith [pi_pos]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy1' : π / 2 ≤ y
linarith : π + π / 2 < y → 2 / 2 = 1
linarith₁ : π + π / 2 < y → HMul.hMul (α := ℝ) 1 2 = 2
⊢ y ≤ π + π / 2
have linarith₂ : π + π / 2 < y → GT.gt (α := ℝ) 2 0
Tactic: linarith [pi_pos]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy1' : π / 2 ≤ y
linarith : π + π / 2 < y → 2 / 2 = 1
linarith₁ : π + π / 2 < y → HMul.hMul (α := ℝ) 1 2 = 2
linarith₂ : π + π / 2 < y → GT.gt (α := ℝ) 2 0
linarith₃ : π + π / 2 < y → 2 / 2 = 1
linarith₄ : π + π / 2 < y → HMul.hMul (α := ℝ) 1 2 = 2
linarith₅ : π + π / 2 < y → GT.gt (α := ℝ) 2 0
⊢ y ≤ π + π / 2
have linarith₆ : π + π / 2 < y → HMul.hMul (α := ℝ) 1 1 = 1
Tactic: linarith [pi_pos]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
hx3 : x ≠ 0
y : ℝ
hy1 : 0 < y
hy2 : y ≤ 3 * π / 2
hy3 : 0 < HPow.hPow (β := ℕ) y 2 + 1
hy1' : π / 2 ≤ y
linarith : π + π / 2 < y → 2 / 2 = 1
linarith₁ : π + π / 2 < y → HMul.hMul (α := ℝ) 1 2 = 2
linarith₂ : π + π / 2 < y → GT.gt (α := ℝ) 2 0
linarith₃ : π + π / 2 < y → 2 / 2 = 1
linarith₄ : π + π / 2 < y → HMul.hMul (α := ℝ) 1 2 = 2
linarith₅ : π + π / 2 < y → GT.gt (α := ℝ) 2 0
linarith₆ : π + π / 2 < y → HMul.hMul (α := ℝ) 1 1 = 1
linarith₇ : π + π / 2 < y → 2 / 2 = 1
linarith₈ : π + π / 2 < y → HMul.hMul (α := ℝ) 1 2 = 2
linarith₉ : π + π / 2 < y → GT.gt (α := ℝ) 2 0
linarith₁₀ : π + π / 2 < y → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁₁ : π + π / 2 < y → 2 / 2 = 1
linarith₁₂ : π + π / 2 < y → HMul.hMul (α := ℝ) 1 2 = 2
linarith₁₃ : π + π / 2 < y → GT.gt (α := ℝ) 2 0
linarith₁₄ : π + π / 2 < y → HMul.hMul (α := ℝ) 1 1 = 1
linarith₁₅ : π + π / 2 < y → 2 / 2 = 1
linarith₁₆ : π + π / 2 < y → HMul.hMul (α := ℝ) 1 2 = 2
linarith₁₇ : π + π / 2 < y → GT.gt (α := ℝ) 2 0
⊢ y ≤ π + π / 2
have linarith₁₈ : π + π / 2 < y → 2 * y - HMul.hMul (α := ℝ) 1 3 * (1 * π) + (2 * π + 1 * π - 2 * y) = 0
Tactic: linarith [pi_pos]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
⊢ cos x ≤ 1 / √(HPow.hPow (β := ℕ) x 2 + 1)
have inl : ∀ (hx1 : -(3 * π / 2) ≤ 0) (hx2 : 0 ≤ 3 * π / 2), cos 0 ≤ 1 / √(HPow.hPow (α := ℝ) (β := ℕ) 0 2 + 1)
Tactic: rcases eq_or_ne x 0 with (rfl | hx3)
Cleared hypotheses: x, hx1, hx2
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
hx1 : -(3 * π / 2) ≤ x
hx2 : x ≤ 3 * π / 2
inl : ∀ (hx1 : -(3 * π / 2) ≤ 0) (hx2 : 0 ≤ 3 * π / 2), cos 0 ≤ 1 / √(HPow.hPow (α := ℝ) (β := ℕ) 0 2 + 1)
⊢ cos x ≤ 1 / √(HPow.hPow (β := ℕ) x 2 + 1)
have inr : ∀ (hx3 : x ≠ 0), cos x ≤ 1 / √(HPow.hPow (β := ℕ) x 2 + 1)
Tactic: rcases eq_or_ne x 0 with (rfl | hx3)
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
⊢ ‖Complex.exp (Complex.I * (↑x : ℂ)) - 1‖ ≤ ‖x‖
have rw : ‖2 * sin (x / 2)‖ ≤ ‖x‖
Tactic: rw [Complex.norm_exp_I_mul_ofReal_sub_one]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
⊢ 2 * |x / 2| = ‖x‖
have rw : 2 * (|x| / 2) = |x|
Tactic: rw [abs_div, Nat.abs_ofNat, Real.norm_eq_abs]
-- Lean 4 proof step from Mathlib.Analysis.SpecialFunctions.Trigonometric.Bounds (goal)
Goal:
x : ℝ
⊢ ‖2 * sin (x / 2)‖ ≤ ‖x‖
have _ : ‖2 * sin (x / 2)‖ = 2 * |sin (x / 2)|
Tactic: calc
    _ = 2 * |Real.sin (x / 2)| := by simp
    _ ≤ 2 * |x / 2| := (mul_le_mul_iff_of_pos_left zero_lt_two).mpr Real.abs_sin_le_abs
    _ = _ := by rw [abs_div, Nat.abs_ofNat, Real.norm_eq_abs]; ring