Theta theory as a coloring algorithm #
[ML25] implements theta theory in the mathematical model
of Minimalism ([MCB25] §3.8) as a coloring
algorithm: structures freely formed by Merge are filtered by membership in
the language of a bud generating system ([Gir19],
Core/Algebra/RootedTree/Bud.lean) whose colors are theta grids — tuples
of giver- or receiver-marked roles — and whose generators are the local
theta-discharge configurations. A grid injected at a predicate's leaf
propagates up the tree like a conserved quantity: at each generator node
one receiver peels off to the sister position, and the residue continues
toward the maximal projection.
Main declarations #
PolarizedRole,Color— giver/receiver-marked roles, and the color set: bare grids (nonterminal;[]is the non-theta marker), lexically anchored grids (terminal), and the empty-tree marker.IsGen,rules,system— the generating set: external-role closure, hierarchy-ordered internal discharge, adjunct attachment, and movement landing ([ML25]'s complete theta bud system).IsGen.conservation— the local conservation law each generator satisfies;derives_thetaLocal— every vertex of every derivable structure is a generator instance, hence conserves theta roles.comb,comb_derivable— the bare theta combs (complete grids discharged one role per node) are derivable in the complete system: the generator half of [ML25]'s comparison of bare and complete systems.rules_emptyTree_out— a generator with an empty-tree input has a non-theta output: movement lands only in non-theta positions, the External/Internal Merge dichotomy at generator level.SatisfiesCriterion,comb_satisfiesCriterion— the theta criterion (a head grid matched bijectively by single receivers at the other positions) and its verification on the bare combs.derives_soleReceiver— the sole-role invariant: in a movement-free derivable structure with a sole-receiver root, every position receives at most one role.
Equations
- Minimalist.Theta.instDecidableEqPolarity x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Minimalist.Theta.instReprPolarity = { reprPrec := Minimalist.Theta.instReprPolarity.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
A theta role marked as given or received.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
The giver occurrence θ↑.
Equations
- Minimalist.Theta.PolarizedRole.up ρ = { role := ρ, polarity := Minimalist.Theta.Polarity.giver }
Instances For
The receiver occurrence θ↓.
Equations
- Minimalist.Theta.PolarizedRole.down ρ = { role := ρ, polarity := Minimalist.Theta.Polarity.receiver }
Instances For
A grid of giver occurrences: the undischarged residue a predicate carries.
Equations
- Minimalist.Theta.upGrid g = List.map Minimalist.Theta.PolarizedRole.up g
Instances For
The color set: a bare grid (nonterminal; the empty grid is the
non-theta marker θ0), a lexically anchored grid (terminal), or the
empty-tree marker (1, θ0).
- free {L : Type u_2} (g : List PolarizedRole) : Color L
- lex {L : Type u_2} (item : L) (g : List PolarizedRole) : Color L
- emptyTree {L : Type u_2} : Color L
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Minimalist.Theta.instDecidableEqColor.decEq (Minimalist.Theta.Color.free a) (Minimalist.Theta.Color.free b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Minimalist.Theta.instDecidableEqColor.decEq (Minimalist.Theta.Color.free g) (Minimalist.Theta.Color.lex item g_1) = isFalse ⋯
- Minimalist.Theta.instDecidableEqColor.decEq (Minimalist.Theta.Color.free g) Minimalist.Theta.Color.emptyTree = isFalse ⋯
- Minimalist.Theta.instDecidableEqColor.decEq (Minimalist.Theta.Color.lex item g) (Minimalist.Theta.Color.free g_1) = isFalse ⋯
- Minimalist.Theta.instDecidableEqColor.decEq (Minimalist.Theta.Color.lex item g) Minimalist.Theta.Color.emptyTree = isFalse ⋯
- Minimalist.Theta.instDecidableEqColor.decEq Minimalist.Theta.Color.emptyTree (Minimalist.Theta.Color.free g) = isFalse ⋯
- Minimalist.Theta.instDecidableEqColor.decEq Minimalist.Theta.Color.emptyTree (Minimalist.Theta.Color.lex item g) = isFalse ⋯
- Minimalist.Theta.instDecidableEqColor.decEq Minimalist.Theta.Color.emptyTree Minimalist.Theta.Color.emptyTree = isTrue ⋯
Instances For
Equations
- Minimalist.Theta.instReprColor = { reprPrec := Minimalist.Theta.instReprColor.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
The non-theta marker θ0: the empty grid.
Equations
Instances For
Terminal colors: lexically anchored grids and the empty-tree marker.
Equations
- (Minimalist.Theta.Color.free a).IsTerminal = False
- (Minimalist.Theta.Color.lex a a_1).IsTerminal = True
- Minimalist.Theta.Color.emptyTree.IsTerminal = True
Instances For
The grid a color carries, if any: lexical anchoring is transparent to theta structure.
Equations
- (Minimalist.Theta.Color.free a).grid? = some a
- (Minimalist.Theta.Color.lex a a_1).grid? = some a_1
- Minimalist.Theta.Color.emptyTree.grid? = none
Instances For
The color carries exactly the grid g.
Instances For
The generator shapes of the theta bud system, as a relation between the root grid and the two children's colors (children unordered; the rule set closes under swapping). The four cases are [ML25]'s complete-system generators:
close— the external role discharges and the maximal projection is recolored arbitrarily;discharge— one internal role, next in the hierarchy, peels off to the sister while the residue propagates;adjunct— a non-theta position attaches without disturbing the color;move— a movement landing site: the empty-tree marker attaches under a non-theta root.
- close {L : Type u_1} {hier : ThetaRole → ThetaRole → Prop} (g₀ : List PolarizedRole) (ρE : ThetaRole) {a b : Color L} (ha : a.Matches [PolarizedRole.down ρE]) (hb : b.Matches [PolarizedRole.up ρE]) : IsGen hier g₀ a b
- discharge {L : Type u_1} {hier : ThetaRole → ThetaRole → Prop} (g : List ThetaRole) (ρ : ThetaRole) (hg : g ≠ []) (hchain : List.IsChain hier (g ++ [ρ]).tail) {a b : Color L} (ha : a.Matches [PolarizedRole.down ρ]) (hb : b.Matches (upGrid (g ++ [ρ]))) : IsGen hier (upGrid g) a b
- adjunct {L : Type u_1} {hier : ThetaRole → ThetaRole → Prop} (g₀ : List PolarizedRole) : IsGen hier g₀ (Color.free g₀) Color.nontheta
- move {L : Type u_1} {hier : ThetaRole → ThetaRole → Prop} (c' : Color L) (hc' : c' ≠ Color.emptyTree) : IsGen hier [] c' Color.emptyTree
Instances For
A one-node colored operation.
Equations
- Minimalist.Theta.gen c a b = Bud.Tree.node c (Bud.Tree.leaf a) (Bud.Tree.leaf b)
Instances For
The complete theta bud system.
Equations
- Minimalist.Theta.system hier = { rules := Minimalist.Theta.rules hier, Terminal := {c : Minimalist.Theta.Color L | c.IsTerminal} }
Instances For
The local conservation law: at every generator, either one child receives the last role of the other child's giver grid while the root keeps the residue, or the node is an adjunct attachment, or a movement landing under a non-theta root.
Every vertex of every derivable structure is a generator instance: filtering by the coloring rules is checkable vertex-locally, the engine of [ML25]'s recursive theta criterion.
Movement lands only in non-theta positions: a generator with an empty-tree input has the non-theta output. The External/Internal Merge dichotomy of theta theory, derived from the generator shapes.
The spine of a bare theta comb: the residue grid grows by one role per node on the path to the head leaf, which carries the complete grid.
Equations
- One or more equations did not get rendered due to their size.
- Minimalist.Theta.combSpine g [] = Bud.Tree.leaf (Minimalist.Theta.Color.free (Minimalist.Theta.upGrid g))
Instances For
A bare theta comb ([ML25]'s bare-system generators): an external role, hierarchy-ordered internal roles, one receiver per node, the full giver grid at the head leaf, and an arbitrary root recoloring.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The bare theta combs are derivable in the complete system, provided the internal roles descend the hierarchy: the generator half of [ML25]'s reduction of the bare system to the complete one.
The inputs of a comb spine: one receiver per internal role, then the head carrying the accumulated grid.
The inputs of a comb: the external receiver, one receiver per internal role, and the head carrying the complete grid.
The theta criterion #
The role a color receives, when it is a single receiver.
Equations
- c.receiver? = match c.grid? with | some [{ role := ρ, polarity := Minimalist.Theta.Polarity.receiver }] => some ρ | x => none
Instances For
The theta criterion on a colored operation: some input (the head) carries an all-giver grid, every other input is a single receiver, and the received roles match the head's grid bijectively — as multisets, since the trees are nonplanar.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The bare theta combs satisfy the theta criterion: the head's grid is matched exactly by the receivers at the other positions.
The sole-role invariant #
The number of receiver occurrences in a grid.
Equations
- Minimalist.Theta.receiverCount g = List.countP (fun (p : Minimalist.Theta.PolarizedRole) => p.polarity == Minimalist.Theta.Polarity.receiver) g
Instances For
The color receives at most one role: its grid, if any, has at most one receiver occurrence.
Equations
- c.SoleReceiver = ∀ (g : List Minimalist.Theta.PolarizedRole), c.grid? = some g → Minimalist.Theta.receiverCount g ≤ 1
Instances For
The sole-role invariant: in a movement-free derivable structure whose root color receives at most one role, every argument position receives at most one role. Adding a dual-receiver generator — as se-marked parasitic assignment does — is the only way to violate it.