Bounded Stage 1 Exit Audit

Status: accepted and validated
Date: 2026-07-25
Decision: ADR-0018

1. Decision scope

This audit evaluates Roadmap Stage 1 for the implemented, versioned Core-N0 profiles P1V0–P1V5 and the admitted Surface T2A/T2B subsets.

The fixed Stage 2 lighthouse input is P1V0. P1V1–P1V5 are append-only semantic evidence; they do not widen the P1 lighthouse. General escaping stores and closures, aggregate borrowing, first-class or multi-shot handlers, FFI, concurrency, and every future Core profile remain outside this bounded exit.

2. Required-artifact audit

Stage 1 requirementExecutable or normative evidenceResult
Versioned schema and verifiercore/schema.rs, core/verify.rs, core_n0.rs negative corpusSatisfied
Typed call-by-value ANFTyped Operand/RValue/Term, verifier scope checks, left-to-right T2A/T2B testsSatisfied
Numeric modes and errorsStrict I64 modes, binary64 canonical NaN policy, typed overflow/bounds testsSatisfied
Effects, regions, mutation, identityP1V1 lexical logical-store contract and positive/negative alias/lifetime corpusSatisfied in admitted profile
Typed and existential closuresTyped closure signatures plus P1V2 ordered existential environments and no-escape corpusSatisfied in admitted profile
Surface subset to CoreDeterministic fail-closed T2A/T2B elaborators with exact type manifests and budgetsSatisfied in admitted subsets
Canonical interpretercore::evaluate verifies before evaluation and has no unchecked public entrySatisfied
Surface/Core parityT2A/T2B scalar, branch, direct-call, recursive, tail-call, error, and budget differential testsSatisfied in admitted subsets
Deterministic serialization and hashSemantic Encoding v1, domain-separated SHA-256, P1V0–P1V5 artifact vectorsSatisfied
Independent interpreter-semantics identitySemantic Identity Encoding v1 and six per-profile locked vectorsSatisfied

Profile contracts and their evidence suites:

Profile/work packageContractExecutable suite
P1V0typed_core_v0_1.md and core_n0_semantic_encoding_v1.mdnaux-lang/tests/core_n0.rs
T2Asurface_core_t2_contract.mdnaux-lang/tests/surface_core_t2.rs
T2Bsurface_core_t2b_contract.mdnaux-lang/tests/surface_core_t2b.rs
P1V1core_store_p1v1_contract.mdnaux-lang/tests/core_store_p1v1.rs
P1V2core_closure_p1v2_contract.mdnaux-lang/tests/core_closure_p1v2.rs
P1V3core_handler_p1v3_contract.mdnaux-lang/tests/core_handler_p1v3.rs
P1V4core_unique_p1v4_contract.mdnaux-lang/tests/core_unique_p1v4.rs
P1V5core_ownership_return_p1v5_contract.mdnaux-lang/tests/core_ownership_return_p1v5.rs
Semantics identitycore_n0_interpreter_semantics_identity_v1.mdnaux-lang/tests/core_semantics_identity.rs

3. Exit-evidence audit

Exit conditionEvidenceResult
Verify before evaluationevaluate(CoreArtifact, ...) calls verify and converts rejection into InvalidArtifact; no unchecked public evaluator existsSatisfied
Positive and negative elaboration goldensT2A/T2B parity, exact-manifest, rejection, budget, determinism, and locked-vector testsSatisfied
Bounded differential corpus cleanT2A/T2B compare normalized Surface and Core observations, including numeric edges and recursionSatisfied
Schema/artifact hashes stableSemantic Encoding v1 plus locked P1V0–P1V5 and T2A/T2B hashesSatisfied
Interpreter semantics hashes stableSemantic Identity Encoding v1 locked for P1V0–P1V5Satisfied
Core isolated from bridge semanticsSource-isolation regression rejects Surface AST, bridge Value, VM, JIT, and egg importsSatisfied
Repository gates98 focused semantic tests; 422 workspace tests; strict Clippy; format; 22 governance tests; 9 shell syntax checks; 54 Markdown files/107 local links; diff hygieneSatisfied

4. Freeze boundary

The repository gates are green. Therefore:

  • P1V0 schema core-n0@0.1.0, artifact encoding v1, and interpreter semantics identity v1 are the frozen semantic input to Stage 2;
  • changes to an existing P1V0 meaning require a new ADR, version/domain, migration policy, vector replacement, and parity evidence;
  • append-only later profiles remain permitted under their own ADRs;
  • Stage 2 opens only for binding-time analysis and its independent evidence verifier.

5. Non-claims

This audit does not implement or claim a binding-time analyzer, residualizer, CoreVM0, Futamura P1/P2/P3, native backend closure, performance leadership, dependency closure, seed retirement, Projection Birth, or Nauxogenesis.

The current evidence is still produced by the Rust/Cargo seed. The owner-controlled clean revision/tag remains required before a public reproducibility or release claim.