# vyre-self-substrate
The recursion-thesis layer of vyre: using vyre's own LEGO-substrate
primitives (`vyre-primitives`) on vyre's own scheduler / dataflow / cost-
model problems.
Audit cleanup A10 extracted these substrate self-uses from the driver layer
into a dedicated crate. The crate depends only on `vyre-foundation` and
`vyre-primitives`, keeping backend dispatch separate from reusable scheduling
and graph operations.
## Dep direction
```
vyre-foundation
↑
vyre-primitives
↑
vyre-self-substrate ← THIS CRATE
↑
vyre-driver / vyre-runtime / vyre-libs / vyre-driver-{cuda,wgpu}
```
## What lives here
55 modules implementing vyre-self-uses of substrate primitives, including:
- Megakernel scheduler (`matroid_megakernel_scheduler`,
`spectral_schedule`, `level_wave_pass`, `tensor_train_chain_fusion`).
- Dataflow analyses (`dataflow_fixpoint`, `reaching_definitions`,
`live_variables`, `dominator_frontier`).
- Cost models (`cost_model`, `differentiable_autotune`).
- Categorical checks (`categorical_check`, `functorial_pass_composition`).
- Topological signatures (`persistent_homology_loop_signature`).
- Bitset summaries, alias registry, do-calculus impact analysis, etc.
See `src/lib.rs` for the full mod tree.
## Crate contract
This section is generated by `python3 scripts/crate_readmes.py --write` from
the crate manifest, release train, ownership registry, and crate-guide metadata.
### Purpose
Use Vyre primitives to implement scheduler, graph, coverage, and optimization support.
### Boundaries
The `self-substrate` owner maintains this `scheduler` crate at `vyre-self-substrate`.
Its allowed internal production dependencies are: `vyre-foundation`, `vyre-primitives`.
Any other normal or build dependency requires an ownership-registry change.
### Minimal real example
Run the checked-in behavior from `vyre-self-substrate/examples/vyre_self_substrate_release_surface.rs`:
```console
CARGO_BUILD_JOBS=1 ./cargo_full run -p vyre-self-substrate --example vyre_self_substrate_release_surface
```
### Features
- Manifest features: `all-solvers`, `analysis`, `cpu-parity`, `data`, `default`, `graph-solvers`, `logic`, `math-solvers`, `optimizer`, `scheduling`, `telemetry`
- Default feature members: `optimizer`
### Errors and unsupported behavior
Invalid scheduler state, graph shape, and capacity arithmetic fail before a partial schedule or artifact is accepted.
### Testing
Use [`docs/testing/vyre-self-substrate.md`](../docs/testing/vyre-self-substrate.md) for exact commands, Cargo targets, hardware
requirements, evidence outputs, expected skips, and failure semantics.
### Release status
`vyre-self-substrate@0.7.2` is a publishable crate on the current Vyre release train. Publication still requires the release evidence and user-approval gates.
### Ownership
`docs/CRATE_OWNERSHIP.toml` is authoritative for this crate's responsibility
and allowed internal edges. Regenerate `docs/CRATE_GRAPH.md` and
`docs/OWNERSHIP.md` after changing that registry.
### License
Licensed under either of
- Apache License, Version 2.0, or
- MIT license
at your option. See the workspace `LICENSE-APACHE` and `LICENSE-MIT` files.