(possibly unbounded) intervals #
This file defines the Interval type for computation in the inclusion tactic. This
type represents a possibly unbounded interval with closed endpoints.
@[instance_reducible]
Equations
@[instance_reducible]
Equations
Apply a function to the finite endpoints of an interval.
Equations
- I.map f = { lb := WithBot.map f I.lb, ub := WithTop.map f I.ub }
Instances For
The interval unbounded on both sides.
Instances For
@[instance_reducible]
Equations
- Inclusion.instUnivInterval = { univ := Inclusion.Interval.univ α, mem_univ := ⋯ }
The interval whose two endpoints are a.
Equations
- Inclusion.Interval.singleton a = { lb := ↑a, ub := ↑a }
Instances For
@[instance_reducible]
Equations
- Inclusion.instRefineInterval = { refine := Inclusion.Interval.inter, mem_refine := ⋯ }
@[simp]
theorem
Inclusion.Interval.map_inter
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
[LinearOrder β]
(f : α ↪o β)
(I J : Interval α)
:
theorem
Inclusion.Interval.inter_mem
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
[LinearOrder β]
(f : α ↪o β)
{x : β}
{I J : Interval α}
(hxI : x ∈ I.map ⇑f)
(hxJ : x ∈ J.map ⇑f)
:
theorem
Inclusion.Interval.mem_hull_left
{α : Type u_1}
[LinearOrder α]
{x : α}
{I J : Interval α}
(hx : x ∈ I)
:
theorem
Inclusion.Interval.mem_hull_right
{α : Type u_1}
[LinearOrder α]
{x : α}
{I J : Interval α}
(hx : x ∈ J)
:
@[instance_reducible]
Equations
- Inclusion.instCoarsenInterval = { coarsen := Inclusion.Interval.hull, mem_coarsen_left := ⋯, mem_coarsen_right := ⋯ }
@[simp]
theorem
Inclusion.Interval.map_hull
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
[LinearOrder β]
(f : α ↪o β)
(I J : Interval α)
:
theorem
Inclusion.Interval.hull_mem_left
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
[LinearOrder β]
(f : α ↪o β)
{x : β}
{I J : Interval α}
(hx : x ∈ I.map ⇑f)
:
theorem
Inclusion.Interval.hull_mem_right
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
[LinearOrder β]
(f : α ↪o β)
{x : β}
{I J : Interval α}
(hx : x ∈ J.map ⇑f)
:
Multiply two finite or infinite interval bounds.
Equations
Instances For
def
Inclusion.Interval.mul
{α : Type u_1}
[Mul α]
[Zero α]
[LinearOrder α]
(I J : Interval α)
:
Interval α
Multiply two intervals.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Inclusion.Interval.mul_mem
{α : Type u_1}
{β : Type u_2}
[Mul α]
[Zero α]
[LinearOrder α]
[Ring β]
[LinearOrder β]
[IsStrictOrderedRing β]
(f : α ↪o β)
(map_zero : f 0 = 0)
(map_mul : ∀ (a b : α), f (a * b) = f a * f b)
{x y : β}
{I J : Interval α}
(hx : x ∈ I.map ⇑f)
(hy : y ∈ J.map ⇑f)
:
def
Inclusion.Interval.orderRelFalse
{α : Type u_1}
(r : α → α → Prop)
[DecidableRel r]
(I J : Interval α)
:
Check if r x y is false is implied by x ∈ I and y ∈ J
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Inclusion.Interval.orderRelFalse_mem
{α : Type u_1}
{β : Type u_2}
[Preorder β]
{r : α → α → Prop}
{s : β → β → Prop}
[DecidableRel r]
[Trans (fun (x1 x2 : β) => x1 ≤ x2) s s]
[Trans s (fun (x1 x2 : β) => x1 ≤ x2) s]
(f : r ↪r s)
{x y : β}
{I J : Interval α}
(hx : x ∈ I.map ⇑f)
(hy : y ∈ J.map ⇑f)
:
def
Inclusion.Interval.orderRel
{α : Type u_1}
(r : α → α → Prop)
[DecidableRel r]
(I J : Interval α)
:
Check if r x y is implied (true or false) by x ∈ I and y ∈ J.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Inclusion.Interval.orderRel_mem
{α : Type u_1}
{β : Type u_2}
[Preorder β]
{r : α → α → Prop}
{s : β → β → Prop}
[DecidableRel r]
[Trans (fun (x1 x2 : β) => x1 ≤ x2) s s]
[Trans s (fun (x1 x2 : β) => x1 ≤ x2) s]
(f : r ↪r s)
{x y : β}
{I J : Interval α}
(hx : x ∈ I.map ⇑f)
(hy : y ∈ J.map ⇑f)
:
Check if x ≤ y is implied (true or false) by x ∈ I and y ∈ J
Equations
- One or more equations did not get rendered due to their size.
Instances For
Check if x < y is implied (true or false) by x ∈ I and y ∈ J.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Check if x = y is implied (true or false) by x ∈ I and y ∈ J.