Skip to content

Proofs is not a gate: paths: proofs/** filter, z3 … || true, Isabelle/Mizar skipped without failing, no assumption check in CI #161

Open

Description

@hyperpolymath

Scope: the Coq/Agda/Z3/Isabelle/Mizar orchestration. The Lean leg (FilesystemCNO/LambdaCNO derive False; never run in CI) is #125; Coq axiom and Idris believe_me debt is #70; the Idris postulates are #27. None of that is duplicated here.

Measured (2026-09-22, main = 74202cb)

Why it matters

A workflow that does not run on the commits that change it, cannot fail on the checks that matter, and never prints its assumptions is a green square with no predicate behind it.

Acceptance criteria

  1. The paths: filter is removed, or widened to include .github/workflows/proofs.yml, Justfile, *.agda-lib, _CoqProject, lakefile*, so the workflow runs on every push to main. Watched-failing → green: it appears in gh run list -b main for the fix commit.
  2. || true removed at :94; the Z3 step asserts the expected unsat/sat lines from verify.sh output, not just exit 0.
  3. verify-all-provers.sh sets fail=1 when a prover is absent unless the caller sets an explicit SKIP_ISABELLE=1 / SKIP_MIZAR=1; CI sets neither. Mutant: with isabelle off PATH and no skip variable, the script exits non-zero.
  4. An assumption step: coqchk plus Print Assumptions <headline theorem>. for each headline theorem, with the output asserted to list only the METAL-BOUNDARY axioms; the CI log shows the lists.
  5. Ordering per owner ruling D-3 (2026-09-22): Lean FilesystemCNO and LambdaCNO each prove False; lake build reports success and CI never runs the Lean leg #125 is fixed first; this issue's items follow it (Phase 4b–4c of the residual-evidence-types family plan).

🤖 Generated with Claude Code

Activity

  1. added
    bugSomething is broken or behaves incorrectly
    proofsFormal verification: Agda, Coq, Idris, Lean, Z3/SMT, axiom debt
    on Sep 22, 2026
  2. hyperpolymath commented on Sep 22, 2026

    @hyperpolymath
    OwnerAuthor

    Additional consequence measured 2026-09-22T22:46Z while landing #165: because proofs.yml is path-filtered to proofs/**, absolute-zero-abi.ipkg and itself, none of its jobs (Coq — CNO + OND (14 theories), Agda — CNO + OND, Z3 — CNO + OND bounded checks) can ever be listed in ruleset 18110203's required_status_checks: a PR that touches nothing under proofs/ would never report the check, and the rule is strict_required_status_checks_policy: true, so it would block forever. Proofs has 0 runs on main among the last 12 workflow runs.

    Acceptance criterion to add: the workflow triggers on every pull_request and push to main with no paths: filter; each job decides internally (a paths-filter-free git diff --name-only step or an always-true run) so that it reports success cheaply on non-proof PRs and runs the provers when proofs/** changed. Only then can the three prover jobs be added as required checks.

    🤖 Generated with Claude Code

  3. added
    scope:repoConfined to this repository
    status:readyFully specified and ready to be picked up
    feeds:valence-shellFeeds valence-shell's proofs/engineering (D127): judge progress by what it contributes there
    on Sep 30, 2026
  4. hyperpolymath commented on Oct 1, 2026

    @hyperpolymath
    OwnerAuthor

    Status against each criterion on main (8007381), mostly landed by 877ede2 (#172):

    1. ✅ on.push to main has no paths: filter. The pull_request filter includes proofs/** (covers _CoqProject), proofs.yml, Justfile, *.agda-lib and lakefile*. Proofs run 36872247986 ran on 8007381.
    2. ✅ No || true remains in proofs.yml. The Z3 step reports "every (check-sat) verdict matched its ; expect annotation".
    3. ✅ proofs/verify-all-provers.sh sets fail=1 on every absent prover. Isabelle and Mizar skip only under an explicit SKIP_ISABELLE=1 / SKIP_MIZAR=1, and no workflow sets either (grep SKIP_ .github/workflows → none). The mutant run (isabelle off PATH) was not re-run here.
    4. ⚠ Partial. check-assumptions.sh gates Print Assumptions for 17 named theorems and requires each to be Closed under the global context, which is stronger than "lists only METAL-BOUNDARY axioms". It has a --control that must reject landauer_limit_positive. But no coqchk step exists anywhere in proofs/ or .github/workflows/. That is the one remaining item.
    5. ✅ Lean FilesystemCNO and LambdaCNO each prove False; lake build reports success and CI never runs the Lean leg #125 is CLOSED.

    Leaving open for criterion 4 (coqchk), or for an owner ruling that the Print Assumptions gate supersedes it.

    🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething is broken or behaves incorrectlyfeeds:valence-shellFeeds valence-shell's proofs/engineering (D127): judge progress by what it contributes therepriority:p2Normal - queue itproofsFormal verification: Agda, Coq, Idris, Lean, Z3/SMT, axiom debtscope:repoConfined to this repositorystatus:readyFully specified and ready to be picked up

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions