You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(abi): register AxiomTracker + Gnn in ipkg; fix Idris2 proofs
EchidnaABI.AxiomTracker and EchidnaABI.Gnn were present on disk but
absent from echidnaabi.ipkg so they were never type-checked by the
Idris2 build.
AxiomTracker.idr also had two proof bugs that would surface on compile:
1. anyRejectIsTrue (There branch): returning the IH directly fails
because any (== Reject) (x :: xs) ≠ any (== Reject) xs in general.
Fix: case-split on the head constructor so `x == Reject` reduces
definitionally before applying `rewrite ih in Refl`.
2. precision / noRejectMeansAnyFalse: `rewrite rest in Refl` left an
unprovable `x == Reject = False` residual for generic x; and
`rewrite anyFalse in absurd prf` rewrote in Void (unchanged goal).
Fix: case-split constructors in noRejectMeansAnyFalse so `False ||
...` reduces definitionally; restructure precision to case on
`any (== Reject) usages` so prf becomes a constructor mismatch.
Also adds Eq DangerLevel and DecidableEq DangerLevel (required by `any
(== Reject)` in enforcePolicySpec and `decEq` in the proof helpers).
Zero believe_me; all proofs constructive (Refl, void, case-split).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0 commit comments