Entailment Closure on Roots #
[BKG20] treat roots as networks of entailments, where some atoms entail others, and state two collocational restrictions as definitional: +result entails +state, and +cause entails +result.
Two levels of closure, each a mathlib ClosureOperator:
- Kind level (canonical):
Root.closedKindsis the collocational closureRoot.Kinds.closeof the root's derived signature. Both book restrictions hold of closed signatures by construction (closedKinds_wellFormed). - Atom level (label-tracking):
Root.closedEntailmentscloses the labeled atom set underbkgRules(becomesState s ⇒ hasState s), packaged asbkgCloseOp. Only the result→state edge is expressible here —hasCauseis nullary, so cause→result lives at kind level only (kind_closedEntailments_le).
Main declarations #
bkgRules,bkgClose,bkgCloseOp,Root.closedEntailmentsRoot.closedKindsmem_kind_closedEntailments— the atom/kind bridge
Atom-level rules and closure #
The documented B&K-G atom-level entailment rule:
becomesState s ⇒ hasState s (a change of state to s entails
the resulting state attribution s, label preserved). The
cause→result restriction is not expressible at atom level
(hasCause carries no label) and is handled by
Root.Kinds.close.
Equations
Instances For
Every atom produced by bkgRules is a state atom, produced from a
result atom.
Rule outputs trigger no further rules: the closure stabilizes in one step.
Close an atom set under bkgRules: adjoin everything the rules
fire from a member.
Equations
- Verb.bkgClose atoms = atoms ∪ atoms.biUnion Verb.bkgRules
Instances For
The atom-level closure as a mathlib ClosureOperator.
Equations
- Verb.bkgCloseOp = { toFun := Verb.bkgClose, monotone' := ⋯, le_closure' := Verb.le_bkgClose, idempotent' := Verb.bkgClose_idem, isClosed_iff := @Verb.bkgCloseOp._proof_1 }
Instances For
The B&K-G closure of the root's base entailments.
Equations
Instances For
Kind-level closure #
The closed kind signature: the collocational closure of the derived signature. Captures both book restrictions (result→state and cause→result).
Equations
- r.closedKinds = r.kinds.close
Instances For
The closed signature satisfies the collocational constraints by
construction — what RootEntailments.WellFormed used to stipulate
is a theorem of closure.
Both theses are insensitive to the closure edges: a root violates Bifurcation iff its closed signature does.
The atom/kind bridge #
Kinds realized by the atom-level closure: the base kinds plus a
state kind whenever a result atom is present.
The atom-level closure realizes at most the kinds of the
kind-level closure (strictly fewer when a root carries cause
without a result atom — the cause→result edge is kind-level
only).