Built with doc-gen4, running Lean4. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓to navigate, Ctrl+🖱️to focus. On Mac, use Cmdinstead of Ctrl.
/-
Copyright (c) 2022 Sébastien Gouëzel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Sébastien Gouëzel, Yury Kudryashov

! This file was ported from Lean 3 source module order.monotone.extension
! leanprover-community/mathlib commit 422e70f7ce183d2900c586a8cda8381e788a0c62
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathlib.Order.ConditionallyCompleteLattice.Basic

/-!
# Extension of a monotone function from a set to the whole space

In this file we prove that if a function is monotone and is bounded on a set `s`, then it admits a
monotone extension to the whole space.
-/


open Set

variable {
α: Type ?u.25
α
β: Type ?u.6648
β
:
Type _: Type (?u.5+1)
Type _
} [
LinearOrder: Type ?u.8 → Type ?u.8
LinearOrder
α: Type ?u.2
α
] [
ConditionallyCompleteLinearOrder: Type ?u.11 → Type ?u.11
ConditionallyCompleteLinearOrder
β: Type ?u.28
β
] {
f: αβ
f
:
α: Type ?u.2
α
β: Type ?u.5
β
} {
s: Set α
s
:
Set: Type ?u.18 → Type ?u.18
Set
α: Type ?u.2
α
} {
a: α
a
b: α
b
:
α: Type ?u.2
α
} /-- If a function is monotone and is bounded on a set `s`, then it admits a monotone extension to the whole space. -/ theorem
MonotoneOn.exists_monotone_extension: ∀ {α : Type u_1} {β : Type u_2} [inst : LinearOrder α] [inst_1 : ConditionallyCompleteLinearOrder β] {f : αβ} {s : Set α}, MonotoneOn f sBddBelow (f '' s)BddAbove (f '' s)g, Monotone g EqOn f g s
MonotoneOn.exists_monotone_extension
(
h: MonotoneOn f s
h
:
MonotoneOn: {α : Type ?u.49} → {β : Type ?u.48} → [inst : Preorder α] → [inst : Preorder β] → (αβ) → Set αProp
MonotoneOn
f: αβ
f
s: Set α
s
) (
hl: BddBelow (f '' s)
hl
:
BddBelow: {α : Type ?u.336} → [inst : Preorder α] → Set αProp
BddBelow
(
f: αβ
f
''
s: Set α
s
)) (
hu: BddAbove (f '' s)
hu
:
BddAbove: {α : Type ?u.368} → [inst : Preorder α] → Set αProp
BddAbove
(
f: αβ
f
''
s: Set α
s
)) : ∃
g: αβ
g
:
α: Type ?u.25
α
β: Type ?u.28
β
,
Monotone: {α : Type ?u.407} → {β : Type ?u.406} → [inst : Preorder α] → [inst : Preorder β] → (αβ) → Prop
Monotone
g: αβ
g
EqOn: {α : Type ?u.416} → {β : Type ?u.415} → (αβ) → (αβ) → Set αProp
EqOn
f: αβ
f
g: αβ
g
s: Set α
s
:=

Goals accomplished! 🐙
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a, b: α

h: MonotoneOn f s

hl: BddBelow (f '' s)

hu: BddAbove (f '' s)


g, Monotone g EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a, b: α

h: MonotoneOn f s

hl: BddBelow (f '' s)

hu: BddAbove (f '' s)


g, Monotone g EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)


intro
g, Monotone g EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a, b: α

h: MonotoneOn f s

hl: BddBelow (f '' s)

hu: BddAbove (f '' s)


g, Monotone g EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))


intro
g, Monotone g EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a, b: α

h: MonotoneOn f s

hl: BddBelow (f '' s)

hu: BddAbove (f '' s)


g, Monotone g EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ


intro
g, Monotone g EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a, b: α

h: MonotoneOn f s

hl: BddBelow (f '' s)

hu: BddAbove (f '' s)


g, Monotone g EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ


intro
g, Monotone g EqOn f g s

Goals accomplished! 🐙
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ


EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

x: α

hx: x s


f x = g x
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ


EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

x: α

hx: x s


f x = if Disjoint (Iic x) s then a else sSup (f '' (Iic x s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ


EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

x: α

hx: x s

this: IsGreatest (Iic x s) x


f x = if Disjoint (Iic x) s then a else sSup (f '' (Iic x s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ


EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

x: α

hx: x s

this: IsGreatest (Iic x s) x


f x = if Disjoint (Iic x) s then a else sSup (f '' (Iic x s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

x: α

hx: x s

this: IsGreatest (Iic x s) x


f x = sSup (f '' (Iic x s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

x: α

hx: x s

this: IsGreatest (Iic x s) x


f x = if Disjoint (Iic x) s then a else sSup (f '' (Iic x s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

x: α

hx: x s

this: IsGreatest (Iic x s) x


f x = f x

Goals accomplished! 🐙
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a, b: α

h: MonotoneOn f s

hl: BddBelow (f '' s)

hu: BddAbove (f '' s)


g, Monotone g EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y


intro
g x g y
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a, b: α

h: MonotoneOn f s

hl: BddBelow (f '' s)

hu: BddAbove (f '' s)


g, Monotone g EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: Disjoint (Iic x) s


pos
g x g y
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s


neg
g x g y
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y


intro
g x g y
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: Disjoint (Iic x) s


pos
g x g y
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s


neg
g x g y
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y


intro
g x g y
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s

hy: Disjoint (Iic y) s


pos
g x g y
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s

hy: ¬Disjoint (Iic y) s


neg
g x g y
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y


intro
g x g y
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: Disjoint (Iic x) s

hy: Disjoint (Iic y) s


pos
g x g y
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: Disjoint (Iic x) s

hy: ¬Disjoint (Iic y) s


neg
g x g y
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s

hy: Disjoint (Iic y) s


pos
g x g y
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s

hy: ¬Disjoint (Iic y) s


neg
g x g y
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y


intro
g x g y
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s

hy: Disjoint (Iic y) s


pos
sSup (f '' (Iic x s)) a
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a, b: α

h: MonotoneOn f s

hl: BddBelow (f '' s)

hu: BddAbove (f '' s)


g, Monotone g EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: Disjoint (Iic x) s

hy: ¬Disjoint (Iic y) s


neg
a sSup (f '' (Iic y s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: Disjoint (Iic x) s

hy: ¬Disjoint (Iic y) s


neg
a sSup (f '' (Iic y s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s

hy: Disjoint (Iic y) s


pos
sSup (f '' (Iic x s)) a
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s

hy: ¬Disjoint (Iic y) s


neg
sSup (f '' (Iic x s)) sSup (f '' (Iic y s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: Disjoint (Iic x) s

hy: ¬Disjoint (Iic y) s

z: α

hz: z Iic y s


neg.intro
a sSup (f '' (Iic y s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: Disjoint (Iic x) s

hy: ¬Disjoint (Iic y) s


neg
a sSup (f '' (Iic y s))

Goals accomplished! 🐙
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a, b: α

h: MonotoneOn f s

hl: BddBelow (f '' s)

hu: BddAbove (f '' s)


g, Monotone g EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s

hy: Disjoint (Iic y) s


pos
sSup (f '' (Iic x s)) a
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s

hy: Disjoint (Iic y) s


pos
sSup (f '' (Iic x s)) a
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s

hy: ¬Disjoint (Iic y) s


neg
sSup (f '' (Iic x s)) sSup (f '' (Iic y s))

Goals accomplished! 🐙
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a, b: α

h: MonotoneOn f s

hl: BddBelow (f '' s)

hu: BddAbove (f '' s)


g, Monotone g EqOn f g s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s

hy: ¬Disjoint (Iic y) s


neg
sSup (f '' (Iic x s)) sSup (f '' (Iic y s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s

hy: ¬Disjoint (Iic y) s


neg
sSup (f '' (Iic x s)) sSup (f '' (Iic y s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s

hy: ¬Disjoint (Iic y) s


neg
sSup (f '' (Iic x s)) sSup (f '' (Iic y s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: Set.Nonempty (Iic x s)

hy: Set.Nonempty (Iic y s)


neg
sSup (f '' (Iic x s)) sSup (f '' (Iic y s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: Set.Nonempty (Iic x s)

hy: Set.Nonempty (Iic y s)


neg
sSup (f '' (Iic x s)) sSup (f '' (Iic y s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: Set.Nonempty (Iic x s)

hy: Set.Nonempty (Iic y s)


neg
sSup (f '' (Iic x s)) sSup (f '' (Iic y s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s

hy: ¬Disjoint (Iic y) s


neg
sSup (f '' (Iic x s)) sSup (f '' (Iic y s))
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: Set.Nonempty (Iic x s)

hy: Set.Nonempty (Iic y s)


neg
Iic x s Iic y s
α: Type u_1

β: Type u_2

inst✝¹: LinearOrder α

inst✝: ConditionallyCompleteLinearOrder β

f: αβ

s: Set α

a✝, b: α

h: MonotoneOn f s

hu: BddAbove (f '' s)

a: β

ha: a lowerBounds (f '' s)

hu': ∀ (x : α), BddAbove (f '' (Iic x s))

g:= fun x => if Disjoint (Iic x) s then a else sSup (f '' (Iic x s)): αβ

hgs: EqOn f g s

x, y: α

hxy: x y

hx: ¬Disjoint (Iic x) s

hy: ¬Disjoint (Iic y) s


neg
sSup (f '' (Iic x s)) sSup (f '' (Iic y s))

Goals accomplished! 🐙
#align monotone_on.exists_monotone_extension
MonotoneOn.exists_monotone_extension: ∀ {α : Type u_1} {β : Type u_2} [inst : LinearOrder α] [inst_1 : ConditionallyCompleteLinearOrder β] {f : αβ} {s : Set α}, MonotoneOn f sBddBelow (f '' s)BddAbove (f '' s)g, Monotone g EqOn f g s
MonotoneOn.exists_monotone_extension
/-- If a function is antitone and is bounded on a set `s`, then it admits an antitone extension to the whole space. -/ theorem
AntitoneOn.exists_antitone_extension: ∀ {α : Type u_1} {β : Type u_2} [inst : LinearOrder α] [inst_1 : ConditionallyCompleteLinearOrder β] {f : αβ} {s : Set α}, AntitoneOn f sBddBelow (f '' s)BddAbove (f '' s)g, Antitone g EqOn f g s
AntitoneOn.exists_antitone_extension
(
h: AntitoneOn f s
h
:
AntitoneOn: {α : Type ?u.6669} → {β : Type ?u.6668} → [inst : Preorder α] → [inst : Preorder β] → (αβ) → Set αProp
AntitoneOn
f: αβ
f
s: Set α
s
) (
hl: BddBelow (f '' s)
hl
:
BddBelow: {α : Type ?u.6956} → [inst : Preorder α] → Set αProp
BddBelow
(
f: αβ
f
''
s: Set α
s
)) (
hu: BddAbove (f '' s)
hu
:
BddAbove: {α : Type ?u.6988} → [inst : Preorder α] → Set αProp
BddAbove
(
f: αβ
f
''
s: Set α
s
)) : ∃
g: αβ
g
:
α: Type ?u.6645
α
β: Type ?u.6648
β
,
Antitone: {α : Type ?u.7027} → {β : Type ?u.7026} → [inst : Preorder α] → [inst : Preorder β] → (αβ) → Prop
Antitone
g: αβ
g
EqOn: {α : Type ?u.7036} → {β : Type ?u.7035} → (αβ) → (αβ) → Set αProp
EqOn
f: αβ
f
g: αβ
g
s: Set α
s
:=
h: AntitoneOn f s
h
.
dual_right: ∀ {α : Type ?u.7053} {β : Type ?u.7052} [inst : Preorder α] [inst_1 : Preorder β] {f : αβ} {s : Set α}, AntitoneOn f sMonotoneOn (OrderDual.toDual f) s
dual_right
.
exists_monotone_extension: ∀ {α : Type ?u.7315} {β : Type ?u.7316} [inst : LinearOrder α] [inst_1 : ConditionallyCompleteLinearOrder β] {f : αβ} {s : Set α}, MonotoneOn f sBddBelow (f '' s)BddAbove (f '' s)g, Monotone g EqOn f g s
exists_monotone_extension
hu: BddAbove (f '' s)
hu
hl: BddBelow (f '' s)
hl
#align antitone_on.exists_antitone_extension
AntitoneOn.exists_antitone_extension: ∀ {α : Type u_1} {β : Type u_2} [inst : LinearOrder α] [inst_1 : ConditionallyCompleteLinearOrder β] {f : αβ} {s : Set α}, AntitoneOn f sBddBelow (f '' s)BddAbove (f '' s)g, Antitone g EqOn f g s
AntitoneOn.exists_antitone_extension