Skip to content

ABI Layer 2: prove scaffold conformance property — flagship Idris2 proof#73

Merged
hyperpolymath merged 1 commit into
mainfrom
claude/new-session-znxgm7
Jun 27, 2026
Merged

ABI Layer 2: prove scaffold conformance property — flagship Idris2 proof#73
hyperpolymath merged 1 commit into
mainfrom
claude/new-session-znxgm7

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Raises iseriser's Idris2 ABI to Layer 2 with its first flagship semantic proof. Iseriser's headline is the meta-framework that generates -iser projects; the correctness obligation is that a generated scaffold conforms to the standard structure. This proves Conformant s holds exactly when all required components are present, so a scaffold missing one is provably not Conformant.

Mirrors the estate flagship-proof pattern: component model, decConformant : Dec, certifier, positive + negative controls.

Changes

  • Adds src/interface/abi/Iseriser/ABI/Semantics.idrComponent/Scaffold/Has, Conformant, decHas/decConformant : Dec, certifyConformant, and negative control ffiMissingNotConformant : Not (Conformant ffiMissingScaffold).
  • Registers the module in the ABI .ipkg.

RSR Quality Checklist

Required

  • Tests pass — ABI builds clean (see Testing)
  • Linter clean — zero warnings
  • No banned language patterns
  • No banned functions — genuine proof
  • SPDX headers present
  • No secrets

As Applicable

  • ABI/FFI changes validated — additive proof; FFI untouched

Testing

Verified with Idris2 0.7.0: idris2 --build iseriser-abi.ipkg → exit 0, zero warnings. Adversarial check: a deliberately-false proof was rejected. build/ removed.

🤖 Generated with Claude Code

https://claude.ai/code/session_01A6PSzJWpRxtzGDjUCEh7Mx


Generated by Claude Code

Add Iseriser.ABI.Semantics proving the headline domain property: a
generated -iser scaffold is Conformant exactly when all five required
components (Manifest, Idris2 ABI, Zig FFI, Codegen, Rust CLI) are
present. Conformant is built from genuine Data.List.Elem membership
obligations with no catch-all constructor, so a scaffold missing any
component has no witness.

Includes a sound+complete decConformant : (s) -> Dec (Conformant s),
a soundness fact certifyConformantSound, a positive control
(completeIsConformant via explicit Elem positions), and a negative
control (ffiMissingNotConformant : Not (Conformant ffiMissing)).
Non-vacuity confirmed: a deliberately-false Has Ffi witness for the
FFI-missing scaffold is rejected by idris2.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A6PSzJWpRxtzGDjUCEh7Mx
@hyperpolymath hyperpolymath marked this pull request as ready for review June 27, 2026 19:46
@hyperpolymath hyperpolymath merged commit 9d5e5d8 into main Jun 27, 2026
22 of 24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants