Skip to content

test: add minting policy verification proofs - #3

Open
rssh wants to merge 1 commit into
mainfrom
test/minting-policy-verification
Open

rssh wants to merge 1 commit into
mainfrom
test/minting-policy-verification

Conversation

@rssh

@rssh rssh commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator

Add two Lean/UPLC proofs for the minting policy: positive minting after the deadline is rejected, and admin-authorized burning succeeds for every finite upper validity bound. The proofs quantify over integer amounts and bounds for a transaction with one configured token and the admin signer, using the actual core policy function compiled with the verification backend's options.

Use locally published Scalus 1.3.0+167-b683c1a2-SNAPSHOT with its Scala 3.3.8 compiler plugin, add the project's Lean workspace, and document setup and execution in the README. Update the existing script-size and execution-budget expectations for this snapshot.

Validation: the Lean workspace built successfully, both proofs passed without cancellation, and the three emulator tests passed. After updating the two snapshot-dependent expectations, all nine policy unit tests passed on rerun. git diff --check passed.

Reproduction requires publishing the pinned Scalus snapshot locally, including its verification and sbt plugins; a clean CI runner will need those artifacts provisioned. Lean proofs also require elan/lake, Z3, and sbt leanInit leanBuild; SCALUS_REQUIRE_LEAN=1 sbt 'testOnly starter.MintingPolicyVerificationTest' fails on missing Lean prerequisites instead of canceling tests.

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