Theorem: Usa1998P3.lemma1 (Compfiles/Usa1998P3.lean)

State before:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
⊢ (x - Real.pi / 4).tan < 1
Tactic:
let y' x := Real.tan (x - Real.pi / 4)
State after:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
⊢ (x - Real.pi / 4).tan < 1

State before:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
⊢ (x - Real.pi / 4).tan < 1
Tactic:
have h4 : Real.tan (Real.pi / 4) = y' (Real.pi / 2) := by
  dsimp only [y']
  rw [Real.tan_pi_div_two_sub, Real.tan_pi_div_four, one_eq_inv]
State after:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
⊢ (x - Real.pi / 4).tan < 1

State before:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
⊢ (x - Real.pi / 4).tan < 1
Tactic:
rw [← Real.tan_pi_div_four]
State after:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
⊢ (x - Real.pi / 4).tan < (Real.pi / 4).tan

State before:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
⊢ (x - Real.pi / 4).tan < (Real.pi / 4).tan
Tactic:
rw [h4]
State after:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
⊢ (x - Real.pi / 4).tan < y' (Real.pi / 2)

State before:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
⊢ (x - Real.pi / 4).tan < y' (Real.pi / 2)
Tactic:
let y1 x := x - Real.pi / 4
State after:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
⊢ (x - Real.pi / 4).tan < y' (Real.pi / 2)

State before:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
⊢ (x - Real.pi / 4).tan < y' (Real.pi / 2)
Tactic:
have h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2)) := by
  intro a _ b _ hab
  exact sub_lt_sub_right hab _
State after:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
⊢ (x - Real.pi / 4).tan < y' (Real.pi / 2)

State before:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
h6 : StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
⊢ (x - Real.pi / 4).tan < y' (Real.pi / 2)
Tactic:
apply h6
State after:
case x
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
h6 : StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
⊢ x ∈ Set.Icc 0 (Real.pi / 2)

case x
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
h6 : StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
⊢ Real.pi / 2 ∈ Set.Icc 0 (Real.pi / 2)

case a
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
h6 : StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
⊢ x < Real.pi / 2

State before:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
⊢ (Real.pi / 4).tan = y' (Real.pi / 2)
Tactic:
dsimp only [y']
State after:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
⊢ (Real.pi / 4).tan = (Real.pi / 2 - Real.pi / 4).tan

State before:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
⊢ (Real.pi / 4).tan = (Real.pi / 2 - Real.pi / 4).tan
Tactic:
rw [Real.tan_pi_div_two_sub, Real.tan_pi_div_four, one_eq_inv]
State after:
no goals

State before:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
⊢ StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
Tactic:
intro a _ b _ hab
State after:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
a : ℝ
x✝¹ : a ∈ Set.Icc 0 (Real.pi / 2)
b : ℝ
x✝ : b ∈ Set.Icc 0 (Real.pi / 2)
hab : a < b
⊢ y1 a < y1 b

State before:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
a : ℝ
x✝¹ : a ∈ Set.Icc 0 (Real.pi / 2)
b : ℝ
x✝ : b ∈ Set.Icc 0 (Real.pi / 2)
hab : a < b
⊢ y1 a < y1 b
Tactic:
exact sub_lt_sub_right hab _
State after:
no goals

State before:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
⊢ StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
Tactic:
apply StrictMonoOn.comp (g := Real.tan) (f := y1)
     (t := (Set.Icc (-Real.pi / 4) (Real.pi / 4)))
     (StrictMonoOn.mono Real.strictMonoOn_tan lemma0)
     h5
State after:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
⊢ Set.MapsTo y1 (Set.Icc 0 (Real.pi / 2)) (Set.Icc (-Real.pi / 4) (Real.pi / 4))

State before:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
⊢ Set.MapsTo y1 (Set.Icc 0 (Real.pi / 2)) (Set.Icc (-Real.pi / 4) (Real.pi / 4))
Tactic:
intro a ha
State after:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
a : ℝ
ha : a ∈ Set.Icc 0 (Real.pi / 2)
⊢ y1 a ∈ Set.Icc (-Real.pi / 4) (Real.pi / 4)

State before:
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
a : ℝ
ha : a ∈ Set.Icc 0 (Real.pi / 2)
⊢ y1 a ∈ Set.Icc (-Real.pi / 4) (Real.pi / 4)
Tactic:
obtain ⟨ha1, ha2⟩ := ha
State after:
case intro
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
a : ℝ
ha1 : 0 ≤ a
ha2 : a ≤ Real.pi / 2
⊢ y1 a ∈ Set.Icc (-Real.pi / 4) (Real.pi / 4)

State before:
case intro
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
a : ℝ
ha1 : 0 ≤ a
ha2 : a ≤ Real.pi / 2
⊢ y1 a ∈ Set.Icc (-Real.pi / 4) (Real.pi / 4)
Tactic:
constructor
State after:
case intro.left
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
a : ℝ
ha1 : 0 ≤ a
ha2 : a ≤ Real.pi / 2
⊢ -Real.pi / 4 ≤ y1 a

case intro.right
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
a : ℝ
ha1 : 0 ≤ a
ha2 : a ≤ Real.pi / 2
⊢ y1 a ≤ Real.pi / 4

State before:
case intro.left
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
a : ℝ
ha1 : 0 ≤ a
ha2 : a ≤ Real.pi / 2
⊢ -Real.pi / 4 ≤ y1 a
Tactic:
dsimp [y1]
State after:
case intro.left
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
a : ℝ
ha1 : 0 ≤ a
ha2 : a ≤ Real.pi / 2
⊢ -Real.pi / 4 ≤ a - Real.pi / 4

State before:
case intro.left
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
a : ℝ
ha1 : 0 ≤ a
ha2 : a ≤ Real.pi / 2
⊢ -Real.pi / 4 ≤ a - Real.pi / 4
Tactic:
linarith
State after:
no goals

State before:
case intro.right
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
a : ℝ
ha1 : 0 ≤ a
ha2 : a ≤ Real.pi / 2
⊢ y1 a ≤ Real.pi / 4
Tactic:
dsimp [y1]
State after:
case intro.right
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
a : ℝ
ha1 : 0 ≤ a
ha2 : a ≤ Real.pi / 2
⊢ a - Real.pi / 4 ≤ Real.pi / 4

State before:
case intro.right
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
a : ℝ
ha1 : 0 ≤ a
ha2 : a ≤ Real.pi / 2
⊢ a - Real.pi / 4 ≤ Real.pi / 4
Tactic:
linarith
State after:
no goals

State before:
case x
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
h6 : StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
⊢ x ∈ Set.Icc 0 (Real.pi / 2)
Tactic:
exact Set.mem_Icc_of_Ioo hx
State after:
no goals

State before:
case x
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
h6 : StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
⊢ Real.pi / 2 ∈ Set.Icc 0 (Real.pi / 2)
Tactic:
constructor
State after:
case x.left
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
h6 : StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
⊢ 0 ≤ Real.pi / 2

case x.right
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
h6 : StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
⊢ Real.pi / 2 ≤ Real.pi / 2

State before:
case x.left
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
h6 : StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
⊢ 0 ≤ Real.pi / 2

case x.right
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
h6 : StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
⊢ Real.pi / 2 ≤ Real.pi / 2
Tactic:
. exact le_of_lt Real.pi_div_two_pos
State after:
case x.right
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
h6 : StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
⊢ Real.pi / 2 ≤ Real.pi / 2

State before:
case x.right
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
h6 : StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
⊢ Real.pi / 2 ≤ Real.pi / 2
Tactic:
. exact Eq.le rfl
State after:
no goals

State before:
case x.left
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
h6 : StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
⊢ 0 ≤ Real.pi / 2
Tactic:
exact le_of_lt Real.pi_div_two_pos
State after:
no goals

State before:
case x.right
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
h6 : StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
⊢ Real.pi / 2 ≤ Real.pi / 2
Tactic:
exact Eq.le rfl
State after:
no goals

State before:
case a
x : ℝ
hx : x ∈ Set.Ioo 0 (Real.pi / 2)
y' : ℝ → ℝ := fun x => (x - Real.pi / 4).tan
h4 : (Real.pi / 4).tan = y' (Real.pi / 2)
y1 : ℝ → ℝ := fun x => x - Real.pi / 4
h5 : StrictMonoOn y1 (Set.Icc 0 (Real.pi / 2))
h6 : StrictMonoOn y' (Set.Icc 0 (Real.pi / 2))
⊢ x < Real.pi / 2
Tactic:
exact hx.2
State after:
no goals