Order intervals #
This file defines (nonempty) closed intervals in an order (see Set.Icc). This is a prototype for
interval arithmetic.
Main declarations #
NonemptyInterval: Nonempty intervals. Pairs where the second element is greater than the first.Interval: Intervals. Either∅or a nonempty interval.
The nonempty closed intervals in an order.
We define intervals by the pair of endpoints fst, snd. To convert intervals to the set of
elements between these endpoints, use the coercion NonemptyInterval α → Set α.
Instances For
theorem
NonemptyInterval.ext
{α : Type u_6}
{inst✝ : LE α}
{x y : NonemptyInterval α}
(toProd : x.toProd = y.toProd)
:
The injection that induces the order on intervals.
Equations
Instances For
@[simp]
Equations
Equations
@[simp]
Turn an interval into an interval in the dual order.
Equations
Instances For
@[simp]
@[simp]
Equations
Equations
@[instance 100]
instance
NonemptyInterval.instMembership
{α : Type u_1}
[Preorder α]
:
Membership α (NonemptyInterval α)
Equations
{a} as an interval.
Equations
Instances For
@[simp]
Equations
def
NonemptyInterval.map
{α : Type u_1}
{β : Type u_2}
[Preorder α]
[Preorder β]
(f : α →o β)
(a : NonemptyInterval α)
:
Pushforward of nonempty intervals.
Equations
Instances For
@[simp]
theorem
NonemptyInterval.dual_map
{α : Type u_1}
{β : Type u_2}
[Preorder α]
[Preorder β]
(f : α →o β)
(a : NonemptyInterval α)
:
def
NonemptyInterval.map₂
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
[Preorder α]
[Preorder β]
[Preorder γ]
(f : α → β → γ)
(h₀ : ∀ (b : β), Monotone fun (a : α) => f a b)
(h₁ : ∀ (a : α), Monotone (f a))
:
NonemptyInterval α → NonemptyInterval β → NonemptyInterval γ
Binary pushforward of nonempty intervals.
Equations
Instances For
@[simp]
theorem
NonemptyInterval.map₂_snd
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
[Preorder α]
[Preorder β]
[Preorder γ]
(f : α → β → γ)
(h₀ : ∀ (b : β), Monotone fun (a : α) => f a b)
(h₁ : ∀ (a : α), Monotone (f a))
(a✝ : NonemptyInterval α)
(a✝¹ : NonemptyInterval β)
:
@[simp]
theorem
NonemptyInterval.map₂_fst
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
[Preorder α]
[Preorder β]
[Preorder γ]
(f : α → β → γ)
(h₀ : ∀ (b : β), Monotone fun (a : α) => f a b)
(h₁ : ∀ (a : α), Monotone (f a))
(a✝ : NonemptyInterval α)
(a✝¹ : NonemptyInterval β)
:
@[simp]
theorem
NonemptyInterval.dual_map₂
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
[Preorder α]
[Preorder β]
[Preorder γ]
(f : α → β → γ)
(h₀ : ∀ (b : β), Monotone fun (a : α) => f a b)
(h₁ : ∀ (a : α), Monotone (f a))
(s : NonemptyInterval α)
(t : NonemptyInterval β)
:
dual (map₂ f h₀ h₁ s t) = map₂ (fun (a : αᵒᵈ) (b : βᵒᵈ) => OrderDual.toDual (f (OrderDual.ofDual a) (OrderDual.ofDual b))) ⋯ ⋯ (dual s) (dual t)
Equations
@[simp]
Equations
Equations
Consider a nonempty interval [a, b] as the set [a, b].
Equations
Instances For
Equations
theorem
NonemptyInterval.coe_subset_coe
{α : Type u_1}
[PartialOrder α]
{s t : NonemptyInterval α}
:
theorem
NonemptyInterval.coe_ssubset_coe
{α : Type u_1}
[PartialOrder α]
{s t : NonemptyInterval α}
:
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem
NonemptyInterval.subset_coe_map
{α : Type u_1}
{β : Type u_2}
[PartialOrder α]
[PartialOrder β]
(f : α →o β)
(s : NonemptyInterval α)
:
Equations
Equations
@[simp]
@[simp]
instance
Interval.instCoeNonemptyInterval
{α : Type u_1}
[LE α]
:
Coe (NonemptyInterval α) (Interval α)
Equations
instance
Interval.canLift
{α : Type u_1}
[LE α]
:
CanLift (Interval α) (NonemptyInterval α) WithBot.some fun (r : Interval α) => r ≠ ⊥
def
Interval.recBotCoe
{α : Type u_1}
[LE α]
{C : Interval α → Sort u_6}
(bot : C ⊥)
(coe : (a : NonemptyInterval α) → C ↑a)
(n : Interval α)
:
C n
Recursor for Interval using the preferred forms ⊥ and ↑a.
Equations
Instances For
{a} as an interval.
Equations
Instances For
@[simp]
instance
Interval.instNontrivialOfNonempty
{α : Type u_1}
[Preorder α]
[Nonempty α]
:
Nontrivial (Interval α)
instance
Interval.boundedOrder
{α : Type u_1}
[Preorder α]
[BoundedOrder α]
:
BoundedOrder (Interval α)
Equations
Equations
Consider an interval [a, b] as the set [a, b].
Equations
Instances For
@[simp]
@[simp]
@[simp]
theorem
Interval.subset_coe_map
{α : Type u_1}
{β : Type u_2}
[PartialOrder α]
[PartialOrder β]
(f : α →o β)
(s : Interval α)
:
@[simp]
Equations
Equations
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem
NonemptyInterval.mem_coe_interval
{α : Type u_1}
[PartialOrder α]
{s : NonemptyInterval α}
{x : α}
:
@[simp]
noncomputable instance
Interval.completeLattice
{α : Type u_1}
[CompleteLattice α]
[DecidableLE α]
:
Equations
@[simp]
theorem
Interval.coe_sInf
{α : Type u_1}
[CompleteLattice α]
[DecidableLE α]
(S : Set (Interval α))
:
@[simp]
theorem
Interval.coe_iInf
{α : Type u_1}
{ι : Sort u_4}
[CompleteLattice α]
[DecidableLE α]
(f : ι → Interval α)
:
theorem
Interval.coe_iInf₂
{α : Type u_1}
{ι : Sort u_4}
{κ : ι → Sort u_5}
[CompleteLattice α]
[DecidableLE α]
(f : (i : ι) → κ i → Interval α)
: