Projection of a line onto a closed interval #
Given a linearly ordered type α
, in this file we define
Set.projIci (a : α)
to be the mapα → [a, ∞)
sending(-∞, a]
toa
, and each pointx ∈ [a, ∞)
to itself;Set.projIic (b : α)
to be the mapα → (-∞, b[
sending[b, ∞)
tob
, and each pointx ∈ (-∞, b]
to itself;Set.projIcc (a b : α) (h : a ≤ b)
to be the mapα → [a, b]
sending(-∞, a]
toa
,[b, ∞)
tob
, and each pointx ∈ [a, b]
to itself;Set.IccExtend {a b : α} (h : a ≤ b) (f : Icc a b → β)
to be the extension off
toα
defined asf ∘ projIcc a b h
.Set.IciExtend {a : α} (f : Ici a → β)
to be the extension off
toα
defined asf ∘ projIci a
.Set.IicExtend {b : α} (f : Iic b → β)
to be the extension off
toα
defined asf ∘ projIic b
.
We also prove some trivial properties of these maps.
Projection of α
to the closed interval [a, b]
.
Equations
- Set.projIcc a b h x = ⟨a ⊔ b ⊓ x, ⋯⟩
Instances For
theorem
Set.projIcc_of_le_left
{α : Type u_1}
[LinearOrder α]
{a b : α}
(h : a ≤ b)
{x : α}
(hx : x ≤ a)
:
theorem
Set.projIcc_of_right_le
{α : Type u_1}
[LinearOrder α]
{a b : α}
(h : a ≤ b)
{x : α}
(hx : b ≤ x)
:
@[simp]
@[simp]
theorem
Set.projIcc_of_mem
{α : Type u_1}
[LinearOrder α]
{a b : α}
(h : a ≤ b)
{x : α}
(hx : x ∈ Icc a b)
:
@[simp]
@[simp]
@[simp]
theorem
Set.projIcc_surjective
{α : Type u_1}
[LinearOrder α]
{a b : α}
(h : a ≤ b)
:
Function.Surjective (projIcc a b h)
@[simp]
@[simp]
@[simp]
theorem
Set.strictMonoOn_projIci
{α : Type u_1}
[LinearOrder α]
{a : α}
:
StrictMonoOn (projIci a) (Ici a)
theorem
Set.strictMonoOn_projIic
{α : Type u_1}
[LinearOrder α]
{b : α}
:
StrictMonoOn (projIic b) (Iic b)
theorem
Set.strictMonoOn_projIcc
{α : Type u_1}
[LinearOrder α]
{a b : α}
(h : a ≤ b)
:
StrictMonoOn (projIcc a b h) (Icc a b)
Extend a function [a, ∞) → β
to a map α → β
.
Equations
- Set.IciExtend f = f ∘ Set.projIci a
Instances For
Extend a function (-∞, b] → β
to a map α → β
.
Equations
- Set.IicExtend f = f ∘ Set.projIic b
Instances For
def
Set.IccExtend
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{a b : α}
(h : a ≤ b)
(f : ↑(Icc a b) → β)
:
α → β
Extend a function [a, b] → β
to a map α → β
.
Equations
- Set.IccExtend h f = f ∘ Set.projIcc a b h
Instances For
theorem
Set.IciExtend_apply
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{a : α}
(f : ↑(Ici a) → β)
(x : α)
:
theorem
Set.IicExtend_apply
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{b : α}
(f : ↑(Iic b) → β)
(x : α)
:
@[simp]
theorem
Set.range_IciExtend
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{a : α}
(f : ↑(Ici a) → β)
:
@[simp]
theorem
Set.range_IicExtend
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{b : α}
(f : ↑(Iic b) → β)
:
theorem
Set.IciExtend_of_le
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{a x : α}
(f : ↑(Ici a) → β)
(hx : x ≤ a)
:
theorem
Set.IicExtend_of_le
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{b x : α}
(f : ↑(Iic b) → β)
(hx : b ≤ x)
:
theorem
Set.IccExtend_of_le_left
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{a b : α}
(h : a ≤ b)
{x : α}
(f : ↑(Icc a b) → β)
(hx : x ≤ a)
:
theorem
Set.IccExtend_of_right_le
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{a b : α}
(h : a ≤ b)
{x : α}
(f : ↑(Icc a b) → β)
(hx : b ≤ x)
:
@[simp]
theorem
Set.IciExtend_self
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{a : α}
(f : ↑(Ici a) → β)
:
@[simp]
theorem
Set.IicExtend_self
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{b : α}
(f : ↑(Iic b) → β)
:
@[simp]
theorem
Set.IccExtend_left
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{a b : α}
(h : a ≤ b)
(f : ↑(Icc a b) → β)
:
@[simp]
theorem
Set.IccExtend_right
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{a b : α}
(h : a ≤ b)
(f : ↑(Icc a b) → β)
:
theorem
Set.IciExtend_of_mem
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{a x : α}
(f : ↑(Ici a) → β)
(hx : x ∈ Ici a)
:
theorem
Set.IicExtend_of_mem
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{b x : α}
(f : ↑(Iic b) → β)
(hx : x ∈ Iic b)
:
@[simp]
theorem
Set.IciExtend_coe
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{a : α}
(f : ↑(Ici a) → β)
(x : ↑(Ici a))
:
@[simp]
theorem
Set.IicExtend_coe
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{b : α}
(f : ↑(Iic b) → β)
(x : ↑(Iic b))
:
@[simp]
theorem
Set.IccExtend_val
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{a b : α}
(h : a ≤ b)
(f : ↑(Icc a b) → β)
(x : ↑(Icc a b))
:
theorem
Set.IccExtend_eq_self
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
{a b : α}
(h : a ≤ b)
(f : α → β)
(ha : ∀ x < a, f x = f a)
(hb : ∀ (x : α), b < x → f x = f b)
:
IccExtend h (f ∘ Subtype.val) = f
If f : α → β
is a constant both on $(-∞, a]$ and on $[b, +∞)$, then the extension of this
function from $[a, b]$ to the whole line is equal to the original function.
theorem
Monotone.IciExtend
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
[Preorder β]
{a : α}
{f : ↑(Set.Ici a) → β}
(hf : Monotone f)
:
theorem
Monotone.IicExtend
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
[Preorder β]
{b : α}
{f : ↑(Set.Iic b) → β}
(hf : Monotone f)
:
theorem
Monotone.IccExtend
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
[Preorder β]
{a b : α}
(h : a ≤ b)
{f : ↑(Set.Icc a b) → β}
(hf : Monotone f)
:
Monotone (Set.IccExtend h f)
theorem
StrictMono.strictMonoOn_IciExtend
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
[Preorder β]
{a : α}
{f : ↑(Set.Ici a) → β}
(hf : StrictMono f)
:
StrictMonoOn (Set.IciExtend f) (Set.Ici a)
theorem
StrictMono.strictMonoOn_IicExtend
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
[Preorder β]
{b : α}
{f : ↑(Set.Iic b) → β}
(hf : StrictMono f)
:
StrictMonoOn (Set.IicExtend f) (Set.Iic b)
theorem
StrictMono.strictMonoOn_IccExtend
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
[Preorder β]
{a b : α}
(h : a ≤ b)
{f : ↑(Set.Icc a b) → β}
(hf : StrictMono f)
:
StrictMonoOn (Set.IccExtend h f) (Set.Icc a b)
theorem
Set.OrdConnected.IciExtend
{α : Type u_1}
[LinearOrder α]
{a : α}
{s : Set ↑(Ici a)}
(hs : s.OrdConnected)
:
theorem
Set.OrdConnected.IicExtend
{α : Type u_1}
[LinearOrder α]
{b : α}
{s : Set ↑(Iic b)}
(hs : s.OrdConnected)
:
theorem
Set.OrdConnected.restrict
{α : Type u_1}
[LinearOrder α]
{s t : Set α}
(hs : s.OrdConnected)
:
{x : ↑t | t.restrict (fun (x : α) => x ∈ s) x}.OrdConnected