Skip to content

J1-3: make the Idris2 ABI typecheck; delete or honestly restate the six unproved security claims #145

Closed

Description

@hyperpolymath

ULTRAPLAN J1-3, filed from the idris-abi (expected red until J1-3) job that #142 added. That job runs idris2 --typecheck src/abi/januskey-abi.ipkg in the idris2-pack@sha256:f0758996… image and is red by design until the items below are done.

Acceptance criteria

  1. Fix the module-name case mismatch in src/abi/Foreign.idr.
  2. src/abi/Types.idr typechecks.
  3. For each of copyDeleteCNO, memoryDefeatsGPU, timeCostMonotonic, cnoPairCompose, tamperDetectable and adversaryCannotKnow, do one of two things:
    • delete it, or
    • restate it honestly and mark it OPEN in the claims ledger (P1-0).
  4. Fix the FS case of chainNoGaps, or delete it.
  5. Remove the misleading "No postulate" header.
  6. The idris-abi job is green on the fix commit. Making it a required check is J1-4.

Measured 2026-10-02 on main 539e6f9: src/abi/Proofs.idr has 26 top-level declarations (grep -cE '^[a-z][A-Za-z0-9_]* *:'), and the docs claim "30 proofs". The counts are reconciled in P1-0 (#134).

🤖 Generated with Claude Code

Activity

  1. hyperpolymath commented on Oct 13, 2026

    @hyperpolymath
    OwnerAuthor

    Closed by the JNK-01 stack: #149 (A, one ABI tree) → #150 (B, Agda kernel module) → #151 (C, real FFI, typecheck, gates, ledger).

    Gate: idris-abi is green on C's head 4a89651 (job): tree invariants, header/Zig agreement, idris2 --typecheck src/abi/januskey-abi.ipkg in idris2-pack@sha256:f0758996…, and expected rejections. dashboard-check on the same head discharges the ledger with 8 PROVEN rows (job).

    Acceptance criteria:

    1. Casing. Januskey.ABI.Foreign → JanusKey.ABI.Foreign, and scripts/check-abi-tree.sh fails on any module whose name differs from its path (refactor(abi): one ABI tree — module-path layout, JanusKey casing, symlink farm retired (JNK-01, A of 3) #149).
    2. Types.idr typechecks, together with Layout, Foreign and Proofs: 4/4 modules, no warnings, Idris2 0.8.0 (fix(abi): real jk_* FFI, ABI typechecks under Idris2 0.8.0, gates and claims ledger (JNK-01, C of 3) #151).
    3. The six named claims. copyDeleteCNO → copyOp + copyIsCNO; cnoPairCompose → seqOp + seqCNO; tamperDetectable → tamperBreaksLink; memoryDefeatsGPU and timeCostMonotonic removed. adversaryCannotKnow is restated (it holds only because Knows has no Adversary constructor) and is the OPEN ledger row E-1. revokedKeyUnusable is removed for the same reason.
    4. chainNoGaps no longer matches the index; EmptyChain is discharged by absurd.
    5. The "No postulate" header in Proofs.idr is replaced by a pointer to the ledger and the bypass census.
    6. idris-abi is green on the fix commit (above). Making it a required check is J1-4.

    main carries the fix once the stack merges.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions