Trees #
In this file, we define the notion of a tree on a type.
Main declarations #
ConNF.Tree
: The type family of trees parametrised by a given type.
An α
-tree of X
associates an object of type X
to each path α ↝ ⊥
.
Equations
- ConNF.Tree X α = (α ↝ ⊥ → X)
Instances For
instance
ConNF.Tree.instDerivative
[Params]
{X : Type u_1}
{α β : TypeIndex}
:
Derivative (Tree X α) (Tree X β) α β
Equations
- ConNF.Tree.instDerivative = ConNF.Derivative.mk (fun (T : ConNF.Tree X α) (A : α ↝ β) (B : β ↝ ⊥) => T (A ⇘ B)) ⋯
instance
ConNF.Tree.instBotDerivative
[Params]
{X : Type u_1}
{α : TypeIndex}
:
BotDerivative (Tree X α) X α
Equations
- ConNF.Tree.instBotDerivative = ConNF.BotDerivative.mk (fun (T : ConNF.Tree X α) (A : α ↝ ⊥) => T A) ⋯
instance
ConNF.Tree.partialOrder
[Params]
{X : Type u_1}
{α : TypeIndex}
[PartialOrder X]
:
PartialOrder (Tree X α)
The partial order on the type of α
-trees of X
is given by "branchwise" comparison.
Equations
Cardinality bounds on trees #
theorem
ConNF.card_tree_le
[Params]
{X : Type u}
{α : TypeIndex}
(h : Cardinal.mk X ≤ Cardinal.mk μ)
:
theorem
ConNF.card_tree_lt
[Params]
{X : Type u}
{α : TypeIndex}
(h : Cardinal.mk X < Cardinal.mk μ)
:
theorem
ConNF.card_tree_eq
[Params]
{X : Type u}
{α : TypeIndex}
(h : Cardinal.mk X = Cardinal.mk μ)
: