Keep a conclusion only while at least one complete derivation still has support.
Rootline is an on-chain truth-maintenance system for natural-language statements. GenLayer consensus certifies a conditional inference once. Deterministic code maintains the dependency closure whenever an assumption is withdrawn. Alternative proofs matter: losing one premise must not invalidate a conclusion that still has another complete support path.
A routing workspace declares:
- Every amber parcel must use Dock A. (assumption)
- Parcel P is amber. (assumption)
- Parcel P must use Dock A. (independent assumption)
- Parcel P must use Dock A. (derived statement)
- At least one parcel must use Dock A. (derived statement)
Consensus accepts 4 <- {1,2}, 4 <- {3} and 5 <- {4}. Withdrawing assumption 2 leaves statements 4 and 5 active through assumption 3. Withdrawing assumption 3 invalidates both. Neither withdrawal calls a model.
flowchart LR
A[1: Amber parcels use A] --> P1[proof 1: AND]
B[2: P is amber] --> P1
P1 --> C[4: P must use A]
D[3: P must use A] --> P2[proof 2]
P2 --> C
C --> E[5: A parcel must use A]
The system distinguishes an obligation from performance: “P must use Dock A” does not establish “P has arrived at Dock A.”
- A workspace owner publishes immutable assumptions and candidate conclusions.
- Each proposed proof uses 1–4 earlier statements as a conjunction. Every validator independently classifies the complete implication as ENTAILED, CONTRADICTED or UNDETERMINED.
- Exact semantic agreement is required. Only ENTAILED creates a proof; there is no confidence tolerance or leader-selected graph.
- An OR over alternative proofs and an AND over each proof's premises determine availability. Lower parent IDs enforce a DAG.
- Permanent assumption retraction atomically updates all descendants and their surviving proof IDs.
- Proof and snapshot commitments bind chain, deployment, workspace, statements and support sets.
Useful for conditional planning, specification reasoning and explainable dependency invalidation. Applications read active from finalized state, rather than caching a proof receipt as perpetual authority.
Premises are declared hypotheses. Rootline does not acquire external evidence or establish their truth. Inference has local, closed-premise semantics: it does not detect every contradiction across the whole workspace. Identical text at different IDs remains separately declared support. The owner is a curation authority, not a verified identity.
A workspace holds at most 24 statements, 48 accepted proofs and 8 proofs per target. New evidence with a later ID requires a later derived statement. All text is public, including retracted assumptions. No assets move.
| Resource | Inspect |
|---|---|
| Contract | Inference consensus and support propagation |
| Design | Equations, state, invariants and API |
| Consensus | Independent inference and exact comparison |
| Threat model | Premise trust, model limits, computation bounds |
| Live validation | Real network execution and deployment |
| Tests | Validator execution and independent closure reference |
| Deployment | Address, transaction and matching source hashes |
python -m pip install -r requirements.txt
# PowerShell: $env:GENVM_VERSION='v0.2.12'
# POSIX: export GENVM_VERSION=v0.2.12
genvm-lint check contracts/rootline.py --json
python -m pytest -q
npm ci --ignore-scripts
npm run verifyTests include all 16 root-retraction subsets of a four-root graph, in both orders. This checks deterministic propagation, not LLM accuracy. Direct tests explicitly invoke captured validators; the live script exercises network consensus.
npm run verify is read-only. npm run smoke deploys a fresh gasless StudioNet demo with an ephemeral key; it does not change the recorded deployment. Python 3.12, Node.js 22+, concrete pinned GenVM v0.2.12 runner. MIT licensed.