
trading_trusted := "tools/trading/trusted"
prove := "uv run clauz3 prove --trusted-root " + trading_trusted
# Proves each case in one process: *_pass.py must prove, *_fail.py must not.
prove-cases := "uv run python -m clauz3._prove_cases --trusted-root " + trading_trusted

test: lint cases

lint:
    uv run clauz3 lint {{trading_trusted}}/effects.py

# row_mixing_hole_pass.py:
#   A documented hole, pinned so it is a tested fact rather than a prose claim.
#   If this starts failing, the prover gained row-identity binding: close the
#   "Row mixing" bullet in docs/examples/trading.md, the README row, and the
#   contracts module docstring in the same commit.
cases:
    {{prove-cases}} cases/*_pass.py cases/*_fail.py
