Series of a relation #
If r
is a relation on α
then a relation series of length n
is a series
a_0, a_1, ..., a_n
such that r a_i a_{i+1}
for all i < n
Let r
be a relation on α
, a relation series of r
of length n
is a series
a_0, a_1, ..., a_n
such that r a_i a_{i+1}
for all i < n
- length : ℕ
The number of inequalities in the series
The underlying function of a relation series
- step : ∀ (i : Fin self.length), r (self.toFun (Fin.castSucc i)) (self.toFun (Fin.succ i))
Adjacent elements are related
Instances For
Equations
- RelSeries.instCoeFunRelSeriesForAllFinHAddNatInstHAddInstAddNatLengthOfNat r = { coe := RelSeries.toFun }
For any type α
, each term of α
gives a relation series with the right most index to be 0.
Equations
- RelSeries.singleton r a = { length := 0, toFun := fun (x : Fin (0 + 1)) => a, step := (_ : Fin 0 → r a a) }
Instances For
Equations
- RelSeries.instInhabitedRelSeries r = { default := RelSeries.singleton r default }
Given two relations r, s
on α
such that r ≤ s
, any relation series of r
induces a relation
series of s
Equations
- RelSeries.ofLE x h = { length := x.length, toFun := x.toFun, step := (_ : ∀ (x_1 : Fin x.length), s (x.toFun (Fin.castSucc x_1)) (x.toFun (Fin.succ x_1))) }
Instances For
Every relation series gives a list
Equations
- RelSeries.toList x = List.ofFn x.toFun
Instances For
Every nonempty list satisfying the chain condition gives a relation series
Equations
- One or more equations did not get rendered due to their size.
Instances For
Relation series of r
and nonempty list of α
satisfying r
-chain condition bijectively
corresponds to each other.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A relation r
is said to be finite dimensional iff there is a relation series of r
with the
maximum length.
A relation
r
is said to be finite dimensional iff there is a relation series ofr
with the maximum length.
Instances
A relation r
is said to be infinite dimensional iff there exists relation series of arbitrary
length.
A relation
r
is said to be infinite dimensional iff there exists relation series of arbitrary length.
Instances
The longest relational series when a relation is finite dimensional
Equations
- RelSeries.longestOf r = Exists.choose (_ : ∃ (x : RelSeries r), ∀ (y : RelSeries r), y.length ≤ x.length)
Instances For
A relation series with length n
if the relation is infinite dimensional
Equations
- RelSeries.withLength r n = Exists.choose (_ : ∃ (x : RelSeries r), x.length = n)
Instances For
If a relation on α
is infinite dimensional, then α
is nonempty.
Equations
- RelSeries.membership r = { mem := fun (x : α) (x_1 : RelSeries r) => x ∈ Set.range x_1.toFun }
Start of a series, i.e. for a₀ -r→ a₁ -r→ ... -r→ aₙ
, its head is a₀
.
Since a relation series is assumed to be non-empty, this is well defined.
Equations
- RelSeries.head r x = x.toFun 0
Instances For
End of a series, i.e. for a₀ -r→ a₁ -r→ ... -r→ aₙ
, its last element is aₙ
.
Since a relation series is assumed to be non-empty, this is well defined.
Equations
- RelSeries.last r x = x.toFun (Fin.last x.length)
Instances For
If a₀ -r→ a₁ -r→ ... -r→ aₙ
and b₀ -r→ b₁ -r→ ... -r→ bₘ
are two strict series
such that r aₙ b₀
, then there is a chain of length n + m + 1
given by
a₀ -r→ a₁ -r→ ... -r→ aₙ -r→ b₀ -r→ b₁ -r→ ... -r→ bₘ
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
For two types α, β
and relation on them r, s
, if f : α → β
preserves relation r
, then an
r
-series can be pushed out to an s
-series by
a₀ -r→ a₁ -r→ ... -r→ aₙ ↦ f a₀ -s→ f a₁ -s→ ... -s→ f aₙ
Equations
- RelSeries.map r s p f hf = { length := p.length, toFun := f ∘ p.toFun, step := (_ : ∀ (x : Fin p.length), s (f (p.toFun (Fin.castSucc x))) (f (p.toFun (Fin.succ x)))) }
Instances For
If a₀ -r→ a₁ -r→ ... -r→ aₙ
is an r
-series and a
is such that
aᵢ -r→ a -r→ a_ᵢ₊₁
, then
a₀ -r→ a₁ -r→ ... -r→ aᵢ -r→ a -r→ aᵢ₊₁ -r→ ... -r→ aₙ
is another r
-series
Equations
- One or more equations did not get rendered due to their size.
Instances For
A type is finite dimensional if its LTSeries
has bounded length.
Equations
- FiniteDimensionalOrder γ = Rel.FiniteDimensional fun (x x_1 : γ) => x < x_1
Instances For
A type is infinite dimensional if it has LTSeries
of at least arbitrary length
Equations
- InfiniteDimensionalOrder γ = Rel.InfiniteDimensional fun (x x_1 : γ) => x < x_1
Instances For
The longest <
-series when a type is finite dimensional
Equations
- LTSeries.longestOf α = RelSeries.longestOf fun (x x_1 : α) => x < x_1
Instances For
A <
-series with length n
if the relation is infinite dimensional
Equations
- LTSeries.withLength α n = RelSeries.withLength (fun (x x_1 : α) => x < x_1) n
Instances For
if α
is infinite dimensional, then α
is nonempty.
An alternative constructor of LTSeries
from a strictly monotone function.
Equations
- LTSeries.mk length toFun strictMono = { length := length, toFun := toFun, step := (_ : ∀ (i : Fin length), toFun (Fin.castSucc i) < toFun (Fin.succ i)) }
Instances For
For two preorders α, β
, if f : α → β
is strictly monotonic, then a strict chain of α
can be pushed out to a strict chain of β
by
a₀ < a₁ < ... < aₙ ↦ f a₀ < f a₁ < ... < f aₙ
Equations
- LTSeries.map p f hf = LTSeries.mk p.length (f ∘ p.toFun) (_ : StrictMono (f ∘ p.toFun))
Instances For
For two preorders α, β
, if f : α → β
is surjective and strictly comonotonic, then a
strict series of β
can be pulled back to a strict chain of α
by
b₀ < b₁ < ... < bₙ ↦ f⁻¹ b₀ < f⁻¹ b₁ < ... < f⁻¹ bₙ
where f⁻¹ bᵢ
is an arbitrary element in the
preimage of f⁻¹ {bᵢ}
.
Equations
- One or more equations did not get rendered due to their size.