Metadata-Version: 2.5
Name: state-substrate
Version: 0.1.0
Summary: Model, verify, attest, sign, publish.
License-Expression: MIT
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: cryptography>=42
Provides-Extra: dev
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Description-Content-Type: text/markdown

# state-substrate

Model → verify → attest → sign → publish. A composition layer for finitely-presentable transition systems.

## What it does

- `models.py` — finite transition systems, closure, existential/universal attractors
- `attest.py` — canonical JSON, RFC 6962 Merkle trees, Ed25519 signer
- `plans.py` — capability-effect plans with signed approval gates
- `substrate.py` — the composition: attest a system as a signed state vector

## What it does not do

It does not map all physical, digital, biological, and mathematical systems. No library does. Supported: finite deterministic and nondeterministic digital systems, symmetric systems, bounded protocols, causal-order distributed systems. Approximated: continuous physical and stochastic biological systems after discretization. Not supported: unbounded systems, quantum, mathematical universes.

Cryptography proves integrity, not correctness. A buggy transition function produces a valid Merkle proof of a wrong state.

## Test

    cd state-substrate && PYTHONPATH=src pytest -q
