ι : Type ?u.17756
α : Type u
β : Type v
γ : Type w
δ : Type ?u.17765
π : ι → Type ?u.17770
r : α → α → Prop
inst✝² : Preorder α
inst✝¹ : Preorder β
f g : α → β
a : α
hf : StrictMono f
hg : StrictMono g
p : α → Prop
inst✝ : DecidablePred p
hp : ∀ ⦃x y : α⦄, x < y → p y → p x
hfg : ∀ ⦃x y : α⦄, p x → ¬p y → x < y → f x < g y
x y : α
h : x < y
⊢ (fun x => if p x then f x else g x) x < (fun x => if p x then f x else g x) y
ι : Type ?u.17756
α : Type u
β : Type v
γ : Type w
δ : Type ?u.17765
π : ι → Type ?u.17770
r : α → α → Prop
inst✝² : Preorder α
inst✝¹ : Preorder β
f g : α → β
a : α
hf : StrictMono f
hg : StrictMono g
p : α → Prop
inst✝ : DecidablePred p
hp : ∀ ⦃x y : α⦄, x < y → p y → p x
hfg : ∀ ⦃x y : α⦄, p x → ¬p y → x < y → f x < g y
⊢ StrictMono fun x => if p x then f x else g x
intro x y h
case pos
ι : Type ?u.17756
α : Type u
β : Type v
γ : Type w
δ : Type ?u.17765
π : ι → Type ?u.17770
r : α → α → Prop
inst✝² : Preorder α
inst✝¹ : Preorder β
f g : α → β
a : α
hf : StrictMono f
hg : StrictMono g
p : α → Prop
inst✝ : DecidablePred p
hp : ∀ ⦃x y : α⦄, x < y → p y → p x
hfg : ∀ ⦃x y : α⦄, p x → ¬p y → x < y → f x < g y
x y : α
h : x < y
hy : p y
⊢ (fun x => if p x then f x else g x) x < (fun x => if p x then f x else g x) y

case neg
ι : Type ?u.17756
α : Type u
β : Type v
γ : Type w
δ : Type ?u.17765
π : ι → Type ?u.17770
r : α → α → Prop
inst✝² : Preorder α
inst✝¹ : Preorder β
f g : α → β
a : α
hf : StrictMono f
hg : StrictMono g
p : α → Prop
inst✝ : DecidablePred p
hp : ∀ ⦃x y : α⦄, x < y → p y → p x
hfg : ∀ ⦃x y : α⦄, p x → ¬p y → x < y → f x < g y
x y : α
h : x < y
hy : ¬p y
⊢ (fun x => if p x then f x else g x) x < (fun x => if p x then f x else g x) y
ι : Type ?u.17756
α : Type u
β : Type v
γ : Type w
δ : Type ?u.17765
π : ι → Type ?u.17770
r : α → α → Prop
inst✝² : Preorder α
inst✝¹ : Preorder β
f g : α → β
a : α
hf : StrictMono f
hg : StrictMono g
p : α → Prop
inst✝ : DecidablePred p
hp : ∀ ⦃x y : α⦄, x < y → p y → p x
hfg : ∀ ⦃x y : α⦄, p x → ¬p y → x < y → f x < g y
x y : α
h : x < y
⊢ (fun x => if p x then f x else g x) x < (fun x => if p x then f x else g x) y
by_cases hy:p y
case pos
ι : Type ?u.17756
α : Type u
β : Type v
γ : Type w
δ : Type ?u.17765
π : ι → Type ?u.17770
r : α → α → Prop
inst✝² : Preorder α
inst✝¹ : Preorder β
f g : α → β
a : α
hf : StrictMono f
hg : StrictMono g
p : α → Prop
inst✝ : DecidablePred p
hp : ∀ ⦃x y : α⦄, x < y → p y → p x
hfg : ∀ ⦃x y : α⦄, p x → ¬p y → x < y → f x < g y
x y : α
h : x < y
hy : ¬p y
hx : p x
⊢ (fun x => if p x then f x else g x) x < (fun x => if p x then f x else g x) y

case neg
ι : Type ?u.17756
α : Type u
β : Type v
γ : Type w
δ : Type ?u.17765
π : ι → Type ?u.17770
r : α → α → Prop
inst✝² : Preorder α
inst✝¹ : Preorder β
f g : α → β
a : α
hf : StrictMono f
hg : StrictMono g
p : α → Prop
inst✝ : DecidablePred p
hp : ∀ ⦃x y : α⦄, x < y → p y → p x
hfg : ∀ ⦃x y : α⦄, p x → ¬p y → x < y → f x < g y
x y : α
h : x < y
hy : ¬p y
hx : ¬p x
⊢ (fun x => if p x then f x else g x) x < (fun x => if p x then f x else g x) y
case neg
ι : Type ?u.17756
α : Type u
β : Type v
γ : Type w
δ : Type ?u.17765
π : ι → Type ?u.17770
r : α → α → Prop
inst✝² : Preorder α
inst✝¹ : Preorder β
f g : α → β
a : α
hf : StrictMono f
hg : StrictMono g
p : α → Prop
inst✝ : DecidablePred p
hp : ∀ ⦃x y : α⦄, x < y → p y → p x
hfg : ∀ ⦃x y : α⦄, p x → ¬p y → x < y → f x < g y
x y : α
h : x < y
hy : ¬p y
⊢ (fun x => if p x then f x else g x) x < (fun x => if p x then f x else g x) y
by_cases hx:p x
case pos
ι : Type ?u.17756
α : Type u
β : Type v
γ : Type w
δ : Type ?u.17765
π : ι → Type ?u.17770
r : α → α → Prop
inst✝² : Preorder α
inst✝¹ : Preorder β
f g : α → β
a : α
hf : StrictMono f
hg : StrictMono g
p : α → Prop
inst✝ : DecidablePred p
hp : ∀ ⦃x y : α⦄, x < y → p y → p x
hfg : ∀ ⦃x y : α⦄, p x → ¬p y → x < y → f x < g y
x y : α
h : x < y
hy : p y
hx : p x
⊢ (fun x => if p x then f x else g x) x < (fun x => if p x then f x else g x) y
case pos
ι : Type ?u.17756
α : Type u
β : Type v
γ : Type w
δ : Type ?u.17765
π : ι → Type ?u.17770
r : α → α → Prop
inst✝² : Preorder α
inst✝¹ : Preorder β
f g : α → β
a : α
hf : StrictMono f
hg : StrictMono g
p : α → Prop
inst✝ : DecidablePred p
hp : ∀ ⦃x y : α⦄, x < y → p y → p x
hfg : ∀ ⦃x y : α⦄, p x → ¬p y → x < y → f x < g y
x y : α
h : x < y
hy : p y
⊢ (fun x => if p x then f x else g x) x < (fun x => if p x then f x else g x) y
have hx : p x := hp h hy
no goals
case pos
ι : Type ?u.17756
α : Type u
β : Type v
γ : Type w
δ : Type ?u.17765
π : ι → Type ?u.17770
r : α → α → Prop
inst✝² : Preorder α
inst✝¹ : Preorder β
f g : α → β
a : α
hf : StrictMono f
hg : StrictMono g
p : α → Prop
inst✝ : DecidablePred p
hp : ∀ ⦃x y : α⦄, x < y → p y → p x
hfg : ∀ ⦃x y : α⦄, p x → ¬p y → x < y → f x < g y
x y : α
h : x < y
hy : p y
hx : p x
⊢ (fun x => if p x then f x else g x) x < (fun x => if p x then f x else g x) y
simpa [hx, hy] using hf h
no goals
case pos
ι : Type ?u.17756
α : Type u
β : Type v
γ : Type w
δ : Type ?u.17765
π : ι → Type ?u.17770
r : α → α → Prop
inst✝² : Preorder α
inst✝¹ : Preorder β
f g : α → β
a : α
hf : StrictMono f
hg : StrictMono g
p : α → Prop
inst✝ : DecidablePred p
hp : ∀ ⦃x y : α⦄, x < y → p y → p x
hfg : ∀ ⦃x y : α⦄, p x → ¬p y → x < y → f x < g y
x y : α
h : x < y
hy : ¬p y
hx : p x
⊢ (fun x => if p x then f x else g x) x < (fun x => if p x then f x else g x) y
simpa [hx, hy] using hfg hx hy h
no goals
case neg
ι : Type ?u.17756
α : Type u
β : Type v
γ : Type w
δ : Type ?u.17765
π : ι → Type ?u.17770
r : α → α → Prop
inst✝² : Preorder α
inst✝¹ : Preorder β
f g : α → β
a : α
hf : StrictMono f
hg : StrictMono g
p : α → Prop
inst✝ : DecidablePred p
hp : ∀ ⦃x y : α⦄, x < y → p y → p x
hfg : ∀ ⦃x y : α⦄, p x → ¬p y → x < y → f x < g y
x y : α
h : x < y
hy : ¬p y
hx : ¬p x
⊢ (fun x => if p x then f x else g x) x < (fun x => if p x then f x else g x) y
simpa [hx, hy] using hg h