Trees #
In this file, we define the types of trees of a given type τ
.
For each type index α
, an α
-tree of τ
is a function from α
-extended type indices to τ
.
This will be used to define structural permutations (along with many more gadgets).
If τ
has a group structure, the α
-trees of τ
can also be given a group structure by
"branchwise" multiplication.
Main declarations #
ConNF.Tree
: The type of trees of a given typeτ
.ConNF.Tree.group
: The group structure on trees.ConNF.Tree.comp
: The derivative functor on tree groups.
For each type index α
, an α
-tree of τ
is a function from α
-extended type indices to
τ
.
Equations
- ConNF.Tree τ α = (ConNF.ExtendedIndex α → τ)
Instances For
The equivalence between τ
and Tree τ ⊥
.
Equations
- ConNF.Tree.toBot = { toFun := fun (a : τ) (x : ConNF.ExtendedIndex ⊥) => a, invFun := fun (a : ConNF.Tree τ ⊥) => a Quiver.Path.nil, left_inv := ⋯, right_inv := ⋯ }
Instances For
The equivalence between Tree τ ⊥
and τ
.
Equations
- ConNF.Tree.ofBot = { toFun := fun (a : ConNF.Tree τ ⊥) => a Quiver.Path.nil, invFun := fun (a : τ) (x : ConNF.ExtendedIndex ⊥) => a, left_inv := ⋯, right_inv := ⋯ }
Instances For
The group structure on the type of α
-trees of τ
is given by "branchwise" multiplication,
given by Pi.group
.
Equations
- ConNF.Tree.group α = Pi.group
The derivative functor.
For a path from α
to β
, this is a map from α
-trees of τ
to β
-trees of τ
.
This is a functor from the category of type indices where
the morphisms are the decreasing paths (i.e. the category where morphisms are elements of Path α β
for α, β : TypeIndex
) to the category of all trees of a fixed type τ
, where the morphisms are
functions.
If τ
has a group structure, this map preserves multiplication. This means that we can treat this
as a functor to the category of all trees on τ
where the morphisms are group homomorphisms.
Equations
- ConNF.Tree.comp A a B = a (A.comp B)
Instances For
Evaluating the derivative of a structural group element along a path is the same as evaluating the original element along the composition of the paths.
The derivative along the empty path does nothing.
The derivative map is functorial.
The derivative map preserves the identity.
The derivative map preserves multiplication.
The derivative map preserves inverses.
⊥
-trees on τ
can act on everything that τ
can.
Equations
- ConNF.Tree.instMulActionBotTypeIndex = MulAction.compHom X ConNF.Tree.toBotIso.symm.toMonoidHom