Fil-C on Nix

Filnix wiki

mbrock/filnix/nanofil

ready

nanofil

A runtime is ready in a memory when its own state and that memory agree well enough that its next allocation is fresh. Readiness is the runtime's invariant: the axioms about allocation and the address space are stated only for ready states.

The subtlety: "the run starts ready" is a hypothesis of soundness (valid_no_unchecked), not a lemma. A valid module's data has no size limit, and interp:initial_memory/4 lays it out from 65536 whatever its size, so the initial memory need not be ready. The planned fix starts the heap above the module's data.

See runtime-axioms.md, Readiness and rocq.md, An object past 2^64.