Height of an element in a partial order #
This module contains a definition for the height of an element in a partial order.
All definitions in this file should likely be upstreamed to mathlib. Hence, this file isn't as polished as one would expect (docstrings etc.), as the polishing will happen during the upstream PR review process.
This height
definition could replace the height
definition in mathlib. I think it is
preferrable, due to the simpler construction and more precise type (the height cannot be -∞, even
though the krullDim
can).
Some results found here:
- An element of finite height n has a LTSeries ending in it of length n
- For an element of finite height n there exists a series of length n ending in it
- A series of length n ends in an element of height at least n
- The element at position i of a series has height at least i
- Every series of length n ending in the element has at position i an element of height i
- The elements of height n are the minimal elements among those of height ≥n. This lemma proves the recursive equation in the blueprint.
def
LTSeries.replaceLast
{α : Type u_1}
[Preorder α]
(p : LTSeries α)
(x : α)
(h : RelSeries.last p ≤ x)
:
LTSeries α
Replaces the last element in a series. Essentially p.eraseLast.snoc x
, but also works when
p
is a singleton.
Equations
- p.replaceLast x h = if hlen : p.length = 0 then RelSeries.singleton (fun (x1 x2 : α) => x1 < x2) x else (RelSeries.eraseLast p).snoc x ⋯
Instances For
@[simp]
theorem
LTSeries.last_replaceLast
{α : Type u_1}
[Preorder α]
(p : LTSeries α)
(x : α)
(h : RelSeries.last p ≤ x)
:
RelSeries.last (p.replaceLast x h) = x
@[simp]
theorem
LTSeries.length_replaceLast
{α : Type u_1}
[Preorder α]
(p : LTSeries α)
(x : α)
(h : RelSeries.last p ≤ x)
:
(p.replaceLast x h).length = p.length
theorem
LTSeries.int_head_add_le_toFun
(p : LTSeries ℤ)
(i : Fin (p.length + 1))
:
RelSeries.head p + ↑↑i ≤ p.toFun i
theorem
LTSeries.int_head_add_len_le_last
(p : LTSeries ℤ)
:
RelSeries.head p + ↑p.length ≤ RelSeries.last p
instance
instNonemptySubtypeLTSeriesEqLastLt_carleson
{α : Type u_1}
[Preorder α]
(a : α)
:
Nonempty { p : LTSeries α // RelSeries.last p = a }
Equations
- ⋯ = ⋯
theorem
height_last_ge_length
{α : Type u_1}
[Preorder α]
(p : LTSeries α)
:
↑p.length ≤ height (RelSeries.last p)