SilverSight/.github/workflows/anti-smuggle.yml
allaun f87c78d4e8 ci(gate): add anti-smuggle vacuity check script + CI workflow layer
- scripts/anti_smuggle_check.py: detects vacuous theorem patterns:
  * := rfl theorem bodies
  * fun ... => rfl lambda bodies
  * syntactically identical LHS/RHS in equalities
  * quantified sums with bound variable renames
- Integrated as Layer 4 in existing anti-smuggle CI workflow
- Verified: catches the old vacuous YB tautology (fun ... => rfl pattern)
- Verified: zero false positives on current main
- --ci mode exits non-zero on any finding
2026-07-03 05:03:08 -05:00

46 lines
1.5 KiB
YAML

name: Anti-Smuggle Gate
on: [push, pull_request]
jobs:
gate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Lean + elan
run: |
curl -sL https://raw.githubusercontent.com/leanprover/elan/master/elan-init.sh | sh -s -- -y
echo "$HOME/.elan/bin" >> $GITHUB_PATH
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install deps
run: pip install sympy numpy pyyaml
- name: Restore lake cache
uses: actions/cache@v4
with:
path: .lake
key: lake-${{ hashFiles('lake-manifest.json') }}
- name: Layer 0 — Determinism
run: python3 scripts/check_determinism.py
- name: Layer 1 — Build Gate
run: lake build
- name: Layer 2 — Pipeline Emission
run: |
python3 python/build_pist_matrices_250.py --predictions data/rrc_pist_predictions_250_v1.json
python3 python/build_manifold.py --predictions data/rrc_pist_predictions_250_v1.json
lake build
lake exe rrc-emit-fixture 2>/dev/null | python3 -c 'import json,sys; d=json.load(sys.stdin); assert d["bundle_receipt_valid"]; assert d["avm_canaries_passed"]; print(f"OK: {d[\"summary\"][\"total\"]} rows, {d[\"summary\"][\"passed_alignment\"]} passed")'
- name: Layer 3 — CAS/SMT Grounding
run: python3 scripts/verify_with_sympy.py
- name: Layer 4 — Vacuity Gate
run: python3 scripts/anti_smuggle_check.py --ci