Skip to content

Fix level_leq incompleteness and redesign AiurTestCase API#344

Open
arthurpaulino wants to merge 1 commit intomainfrom
ap/levels
Open

Fix level_leq incompleteness and redesign AiurTestCase API#344
arthurpaulino wants to merge 1 commit intomainfrom
ap/levels

Conversation

@arthurpaulino
Copy link
Member

Level comparison:

  • Fix Succ ≤ Max incompleteness when an IMax child covers some assignments while a non-IMax child covers the rest. When both Max branches fail, case-split on a param from b to resolve IMax nodes.
  • Add unit test for the counterexample (u+1 = max(1, imax(u+1, u))).
  • Add full soundness and completeness argument for level_leq in KERNEL.md covering all 12 cases, with supporting lemmas for monotonicity, zero witness, and case-split soundness.

AiurTestCase API:

  • Add defaults to all structure fields (label auto-derives from functionName, arrays default to #[], IO buffers default to default).
  • Rewrite noIO as a proper function, add exec shorthand for execution-only tests.
  • Replace raw anonymous constructors with named field syntax across Hashes.lean, IxVM.lean, Aiur.lean, and Main.lean.

@arthurpaulino arthurpaulino force-pushed the ap/levels branch 2 times, most recently from cc44d59 to a1e5179 Compare March 23, 2026 23:49
Level comparison:
- Fix Succ ≤ Max incompleteness when an IMax child covers some
  assignments while a non-IMax child covers the rest. When both Max
  branches fail, case-split on a param from b to resolve IMax nodes.
- Add unit test for the counterexample (u+1 = max(1, imax(u+1, u))).
- Add full soundness and completeness argument for level_leq in
  KERNEL.md covering all 12 cases, with supporting lemmas for
  monotonicity, zero witness, and case-split soundness.

AiurTestCase API:
- Add defaults to all structure fields (label auto-derives from
  functionName, arrays default to #[], IO buffers default to default).
- Rewrite noIO as a proper function, add exec shorthand for
  execution-only tests.
- Replace raw anonymous constructors with named field syntax across
  Hashes.lean, IxVM.lean, Aiur.lean, and Main.lean.
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.

1 participant