The dependencies of the [blocks?] form a labeled spanning tree of the hypercube These labels allow us to form a regular tree language, which is what is used to parse/metaprogram/type-check/evaluate Flock.
It is isomorphic to the structure of any complete Flock:
- diagram
- AST
- dependencies (proof, implementations, choices, etc)
- parser
- interpreter
- compiler
- type-checker
- metalanguage
- sublanguage
- network
- theory
- book
- exercise
- circuit
Flock is isomorphic to
- a directed hypercube graph
- all unorientations of a directed hypercube graph
- a unoriented hypercube graph
Once disarmed, English is relatively harmless.
https://en.wikipedia.org/wiki/Regular_tree_grammar
If L1, L2 both are regular tree languages, then the tree sets L1 ∩ L2, L1 ∪ L2, and L1 \ L2 are also regular tree languages, and it is decidable whether L1 ⊆ L2, and whether L1 = L2.