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 := ⋯ }
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 := ⋯ }
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
- RelSeries.fromListChain' x x_ne_empty hx = { length := Nat.pred (List.length x), toFun := List.get x ∘ Fin.cast ⋯, step := ⋯ }
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
ris said to be finite dimensional iff there is a relation series ofrwith the maximum length.
Instances
A relation r is said to be infinite dimensional iff there exists relation series of arbitrary
length.
A relation
ris 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
Instances For
A relation series with length n if the relation is infinite dimensional
Equations
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
- RelSeries.append p q connect = { length := p.length + q.length + 1, toFun := Fin.append p.toFun q.toFun ∘ Fin.cast ⋯, step := ⋯ }
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 p f hf = { length := p.length, toFun := f ∘ p.toFun, step := ⋯ }
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
- RelSeries.insertNth p i a prev_connect connect_next = { length := p.length + 1, toFun := Fin.insertNth (Fin.castSucc (Fin.succ i)) a p.toFun, step := ⋯ }
Instances For
A relation series a₀ -r→ a₁ -r→ ... -r→ aₙ of r gives a relation series of the reverse of r
by reversing the series aₙ ←r- aₙ₋₁ ←r- ... ←r- a₁ ←r- a₀.
Equations
- RelSeries.reverse p = { length := p.length, toFun := p.toFun ∘ Fin.rev, step := ⋯ }
Instances For
Given a series a₀ -r→ a₁ -r→ ... -r→ aₙ and an a such that a₀ -r→ a holds, there is
a series of length n+1: a -r→ a₀ -r→ a₁ -r→ ... -r→ aₙ.
Equations
- RelSeries.cons p newHead rel = RelSeries.append (RelSeries.singleton r newHead) p rel
Instances For
If a series a₀ -r→ a₁ -r→ ... has positive length, then a₁ -r→ ... is another series
Equations
Instances For
If a series a₀ -r→ a₁ -r→ ... -r→ aₙ, then a₀ -r→ a₁ -r→ ... -r→ aₙ₋₁ is
another series
Equations
Instances For
Given two series of the form a₀ -r→ ... -r→ X and X -r→ b ---> ...,
then a₀ -r→ ... -r→ X -r→ b ... is another series obtained by combining the given two.
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 := ⋯ }
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) ⋯
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
- LTSeries.comap p f comap surjective = LTSeries.mk p.length (fun (i : Fin (p.length + 1)) => Exists.choose ⋯) ⋯