Lineages of nodes below a fixed level #
Parent maps which do not increase level backwards, and are injective on the low-level nodes, embed every later low-level population in the initial one. Event counts therefore reduce to counts for initial ancestor labels. A killed lineage cannot label any later event.
The abstract data needed for lineage bookkeeping. No geometric properties of the nodes or parent maps are assumed.
The finite node type at each stage of the lineage system.
The level assigned to each node at its stage.
The predecessor of a node in the preceding stage.
Instances For
The restricted parent map is an embedding.
Equations
Instances For
Follow a low-level node back to any earlier stage.
Equations
- S.ancestor hinj h = Nat.leRecOn h (fun {k : ℕ} (e : S.LowNode L k ↪ S.LowNode L i) => (S.parentEmbedding hinj k).trans e) (Function.Embedding.refl (S.LowNode L i))
Instances For
A selected node is killed when it has no child below the cutoff in the next stage. Higher-level replacements are permitted.
Instances For
Killing a lineage prevents its ancestor label from appearing later.
Label an event by the original ancestor of its selected low-level node.
Equations
- S.eventLabel hinj time selected e = ↑((S.ancestry hinj (time e)) (selected e))
Instances For
A uniform bound per ancestor gives a total event bound.
Events at distinct times which kill their selected lineage have distinct original ancestor labels.
There is at most one killing event for each initial lineage.
Restart the bookkeeping at any stage, as needed for a color interval.
Equations
- One or more equations did not get rendered due to their size.