- About this profile
- Declared TypeLL level
- Grade rationale (evidence for D)
- Open proof obligations
- Language-specific tightening
- What is NOT yet met (honest gaps)
- Path to next grade (C — preservation closed)
- Path to grade beyond that (B — layered + cross-prover)
- Demotion risk
- Iteration history
- Review cycle
- Footer
| Field | Value |
|---|---|
Language |
Ephapax (dyadic: |
Repository |
|
Current FRG Grade |
D (preservation stated; admits explicitly tracked; layered redesign committed) |
Assessed |
2026-05-28 |
Assessor |
Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> |
FRG Spec Version |
1.0 |
ARG Profile |
spec/ARG-PROFILE.adoc |
TRG Profile |
spec/TRG-PROFILE.adoc (TBD) |
Formalisation Directory |
|
Qualifying Prover(s) |
Rocq (Coq) |
Ephapax has reached FRG-D: preservation/progress theorems stated,
operational semantics formalised, layered redesign committed
(formal/PRESERVATION-DESIGN.md), open obligations enumerated in
PROOF-NEEDS.md and tracked in formal/PROOF-STATUS.a2ml. The
language was FRG-F for the period during which
formal/Counterexample.v had Qed’d a refutation of the original
preservation statement without a redesign commitment; the F-grade
was evacuated on 2026-05-27 by the owner directive locking in the
four-layer redesign as canonical (legacy `Theorem preservation in
Semantics.v is now archaeology per the lockdown banner).
FRG = D. The full chain of axes:
-
FRG: D
-
ARG: E (see
spec/ARG-PROFILE.adoc) -
TRG: TBD (likely D — toolchain still pre-alpha)
-
CRG: TBD (formal/ component is its own grade)
-
RSR: Compliant at TRG-D level
Cross-axis rule: ARG-A requires FRG ≥ B (ephapax does not currently target ARG-A).
-
TypeLL level claimed: L7 (Linear types —
ephapax-linearsublanguage’s QTT q=1 discipline) -
Evidence:
formal/TypingL1.v(region-threaded typing judgment),formal/Modality.v(linear_to_affineQed, zero axioms; PRs #176 + #177 merged 2026-05-27) -
Levels not yet claimed:
-
L8 (Session types) — no session-state machinery in calculus
-
L9 (Effect/Modal/Proof-carrying) — partially present (modality L2 landed), but full effect-typed TFun is open (
post-slice-4sequence D) -
L10 (QTT cross-cutting) — not started
-
| Criterion | Met? | Evidence |
|---|---|---|
M1 — Abstract syntax formalised |
YES |
|
M2 — Typing judgment formalised |
YES |
|
M3 — Operational or denotational semantics formalised |
YES |
|
M4 — Preservation theorem stated |
YES |
|
M5 — Progress theorem stated |
YES |
Standard formulation present in |
P1 — Preservation closed (0 admits, 0 axioms, 0 sorries) |
NO |
4 Admitted + 1 region-liveness Axiom currently outstanding (per
PRs #92/#102/#106/#114/#116 narrative; legacy |
P2 — Progress closed |
PARTIAL |
Stated; closure tracked alongside preservation |
P3 — Counterexample regression suite (≥ 3 Qed lemmas) |
YES |
|
P4 — Layered orthogonal decomposition |
YES |
|
V1 — Single qualifying prover |
YES |
Rocq (Coq) |
V2 — Cross-prover replication ≥ 2 |
NO |
Single-prover only |
V3 — Cross-prover replication ≥ 3 |
NO |
|
V4 — Echidna integrated in CI as required gate |
NO |
Echidna integration not yet wired |
TypeLL L1-L6 |
YES (L1-L6) |
Structural (L1-L2), schema (L3 via TypingL1.v region binders), type compatibility (L4), nullability N/A (no NULL in ephapax), injection-resistance via region capability discipline (L6) |
TypeLL L7 (Linear types) |
YES |
|
TypeLL L8-L10 |
NO |
|
B0 — Zero banned constructs in proof tree |
NO (D-permissive) |
4 tracked Admitted in Semantics_L1.v + 1 Axiom; each enumerated in PROOF-NEEDS.md with discharge plan; FRG-D permits tracked admits. |
B1 — CI banned-construct lint active |
PARTIAL |
Coq build CI runs; admit-count check exists in workflow but does not yet block merge for new admits. |
Operational equivalence O1 |
NO |
Implementation Rust crate exists; not yet differentially-tested against formal judgment |
VeriSimDB attestation |
NO (D-permissive) |
Required from grade C; not yet wired |
-
Tracked admits: 4 in
formal/Semantics_L1.v(regressed during L2-β bullet-structure rewrite; orig bodies at commit56f592f) -
Tracked axioms: 1 (
region_liveness_at_split_l1— cross-layer gap that closes at L2 perPRESERVATION-DESIGN.md §5.1; owner directive 2026-05-27 forbids closing via proof tricks) -
PROOF-NEEDS.md:
PROOF-NEEDS.md(top-level) -
PROOF-STATUS.a2ml:
formal/PROOF-STATUS.a2ml
For Ephapax, the following FRG tightening applies:
-
Grade C tightening: Preservation closed per layer (
preservation_l1,preservation_l2,preservation_l3), with cross-layer composition closed under explicit invariants — not via patched single-layer admits in legacySemantics.v. The owner directive 2026-05-27 forbids the legacy-patching anti-pattern. -
Grade B tightening: L4 dyadic-modality layer landed (currently docs-only PR queued in
post-slice-4plan A). -
Grade A tightening: Cross-prover replication MUST include Lean 4 mechanisation of the four-layer architecture, not just the central preservation theorem.
-
P1 / P2 not closed: 4 Admitted + 1 Axiom outstanding. Closing these is gated on the L1/L2/L3 per-layer derivation work (see
project_ephapax_post_slice4_plan.mdin author’s session memory). -
No cross-prover replication. Rocq only.
-
Echidna not wired into CI.
-
No reference implementation alongside the Rust production implementation.
-
No differential testing.
-
Implementation type checker not tested against formal judgment.
-
Close 4 Admitted in Semantics_L1.v (recoverable from commit 56f592f + bullet-structure rewrite for 3 new Affine-only constructors).
-
Close
region_liveness_at_split_l1Axiom via L2 mechanism per PRESERVATION-DESIGN.md §5.1 (NOT via proof tricks — owner directive). -
Close
preservation_l1both branches underforall m. -
Close
preservation_l2per modality layer. -
Stand up PROOF-STATUS.a2ml grade-attestation block.
-
Wire CI banned-construct lint to BLOCK merge on new admits.
Realistic timeline estimate: 2-4 months given sequential per-layer
work (sequence A → B → C → D in project_ephapax_post_slice4_plan).
-
Land L3 echo + L4 dyadic layers as named composition (currently scaffolded).
-
Counterexample regression suite formal CI step (currently the Counterexample.v file exists; not yet a "regression" in the CI sense).
-
Replicate central preservation in Lean 4.
-
External (non-collaborator) single-party review of the four-layer formalisation.
-
Lowest: Adding a 5th Admitted to formal/ — drops to E (or arguably remains D if still tracked).
-
Medium: Removing the four-layer redesign commitment without replacement — drops to F (the very state ephapax evacuated on 2026-05-27).
-
Catastrophic: Adding a new `Qed’d counterexample to a currently-claimed (post-redesign) theorem without redesign amendment — drops to F.
| Date | Grade | Notes |
|---|---|---|
2026-03-28 |
F |
Original |
2026-05-27 |
D |
Owner directive lockdown of four-layer redesign as canonical; legacy preservation marked archaeology; F evacuated. |
2026-05-28 |
D |
Initial FRG assessment. Tracked admits = 4 + 1 Axiom. |
-
Routine: Reassess on every release cycle.
-
Immediate: Reassess within 7 days of any demotion trigger.
-
VeriSimDB drift alert: Reassess within 24 hours of any drift alert.
-
New admit detection: CI lint introducing a new banned-construct / Admitted triggers immediate reassessment.