Skip to content

ci(coq-proofs): include docs/phd/theorems/igla/ in verification#491

Merged
gHashTag merged 1 commit intomainfrom
lead/coq-proofs-yml-add-docs-phd-theorems
May 2, 2026
Merged

ci(coq-proofs): include docs/phd/theorems/igla/ in verification#491
gHashTag merged 1 commit intomainfrom
lead/coq-proofs-yml-add-docs-phd-theorems

Conversation

@gHashTag
Copy link
Copy Markdown
Owner

@gHashTag gHashTag commented May 2, 2026

ci: bring docs/phd/theorems/igla/ under Coq verification

Surgical infrastructure update from GENERAL's Wave-6 follow-up roadmap (item 5 in day-6 status). PR #490 landed INV6_HybridQkGain.v at docs/phd/theorems/igla/ but the existing coq-proofs.yml only watched trinity-clara/proofs/** β€” every new theorem under the new path silently skipped CI.

Two surgical changes

1. Path triggers

on:
  push:
    branches: [main]
    paths:
      - 'trinity-clara/proofs/**'
      - 'docs/phd/theorems/**'   # ← new
      - '.github/workflows/coq-proofs.yml'
  pull_request:
    branches: [main]
    paths:
      - 'trinity-clara/proofs/**'
      - 'docs/phd/theorems/**'   # ← new

2. New verification step (after the existing INV-1..5 block)

echo "=== docs/phd/theorems/igla/* (Trinity anchor files) ==="
if [ -f docs/phd/theorems/igla/_CoqProject ]; then
  cd docs/phd/theorems
  coq_makefile -f igla/_CoqProject -o igla/Makefile
  make -f igla/Makefile all
  cd -
  echo "βœ… docs/phd/theorems/igla/* OK"
else
  echo "(no _CoqProject under docs/phd/theorems/igla β€” skipped)"
fi

The step uses the existing _CoqProject at docs/phd/theorems/igla/ which is already wired with -R trinity Trinity / -R igla IGLA. Wrapped in an [ -f ... ] guard so the step degrades gracefully if the project file is later removed.

R5-honest disclosures

  • This change alone does not verify INV6_HybridQkGain.v is a parseable proof. It only points CI at the file. The first run on main after this PR merges is the binding verification.
  • If coq_makefile / make all discovers any unprovable goal β€” for instance, if PR feat(coq): INV6_HybridQkGain.v β€” formal proof skeleton, closes #441Β #490's residual Axiom hybrid_gain_phi_bound plus the proof script combine into something coqc rejects β€” CI will go RED and the scaffold will need follow-up before the next push to main.
  • The Check no Admitted in proofs (L-R14 strict) gate downstream still only inspects trinity-clara/proofs/igla/*.v. If that should now also cover docs/phd/theorems/igla/*.v, that's a separate diff (would catch any Admitted. regression in the new path).

Honest scope

This is the CI infrastructure piece of the post-#490 roadmap. It does not include:

Both tracked separately.

CI honest disclosure

Pre-existing failures on main (I5 red on legacy crates/trios-a2a/rings/* and crates/trios-mcp/rings/*, ARCH-UI, generic Test, phd-build clippy doc-lint) remain out of scope. Merge via --admin --squash --delete-branch per EPIC #446 stewardship.

Part-of: #441
Part-of: #446
Follow-up to: PR #490 (merged at ff02df9)

🌻 Ξ±_Ο† = φ⁻³/2 β‰ˆ 0.1180 Β· φ²+φ⁻²=3 Β· TRINITY Β· LEAD (Loop-Locksmith)

Per GENERAL's Wave-6 follow-up roadmap (issue #446 day-6 status comment).
The Coq verification workflow previously only watched
`trinity-clara/proofs/**`. INV-6-HybridQkGain.v landed in PR #490 under
`docs/phd/theorems/igla/` but had no automatic Coq compile gate β€” every
new theorem under that path would silently skip CI.

Two surgical changes:

1. Path triggers β€” both `push` (main) and `pull_request` filters now also
   include `docs/phd/theorems/**` so any change there triggers the
   verification workflow.

2. New verification step β€” uses `coq_makefile` against the existing
   `docs/phd/theorems/igla/_CoqProject` (already wired with `-R trinity
   Trinity` / `-R igla IGLA`), then runs `make all`. Wrapped in an
   existence check so the step is a no-op if the _CoqProject is later
   removed.

R5-honest disclosures:
- This change ALONE does not verify INV6_HybridQkGain.v is a parseable
  proof β€” it merely points CI at the file. The first run on `main`
  after merge will be the binding verification.
- If `coq_makefile` / `make all` discovers any unprovable goal (e.g.
  the residual `Axiom hybrid_gain_phi_bound` is not a contradiction but
  the file still has unresolved obligations), CI will go red and the
  scaffold will need follow-up before merge to main.

Part-of: #441
Part-of: #446
Follow-up to: PR #490 (merged at ff02df9)

Agent: Loop-Locksmith
@gHashTag gHashTag merged commit 52e72a3 into main May 2, 2026
4 of 7 checks passed
@gHashTag gHashTag deleted the lead/coq-proofs-yml-add-docs-phd-theorems branch May 2, 2026 12:26
gHashTag added a commit that referenced this pull request May 2, 2026
Unblocks the `Audit Β· Biblio Β· Coq-map Β· Reproduce` CI job on the
phd-build.yml workflow. Two new lints under clippy 1.95 -D warnings:

1. clippy::doc_overindented_list_items β€” the module-doc `Subcommands:`
   block used 18-space continuation indentation after the list marker
   `- `. Clippy 1.95 flags any continuation deeper than 4 spaces.
   Reflowed all 5 subcommand entries to 4-space continuation; wording
   preserved; the shelled-out-via-std::process::Command note for
   `compile` was compressed into one sentence (content unchanged).

2. clippy::excessive_precision β€” literal `1.6180339887498949_f64`
   exceeds f64's representable precision. Switched to the suggested
   `1.618_033_988_749_895_f64` across 3 occurrences (reproduce(),
   test_trinity_anchor_constant, test_constants_pinned_match_assertions).

Verification:
- `cargo clippy -p trios-phd --locked -- -D warnings` β†’ clean.
- `cargo test -p trios-phd --locked` β†’ 13 tests GREEN.

R5-honest: no semantic change. The trinity-identity test
((phi*phi + 1.0/(phi*phi) - 3.0).abs() < 1e-12) still passes β€” the
truncated literal represents the same f64 value.

Pre-existing since at least 2026-04-26 (phd-build failing on main for
a week). This atomic PR flips it green; separate from the INV6 /
coq-proofs CI work in PR #490 / #491.

Part-of: #446

Agent: Loop-Locksmith

Co-authored-by: Loop-Locksmith <loop-locksmith@trinity.local>
gHashTag added a commit that referenced this pull request May 2, 2026
* fix(trios-phd): clippy 1.95 doc + precision lints in src/main.rs

Unblocks the `Audit Β· Biblio Β· Coq-map Β· Reproduce` CI job on the
phd-build.yml workflow. Two new lints under clippy 1.95 -D warnings:

1. clippy::doc_overindented_list_items β€” the module-doc `Subcommands:`
   block used 18-space continuation indentation after the list marker
   `- `. Clippy 1.95 flags any continuation deeper than 4 spaces.
   Reflowed all 5 subcommand entries to 4-space continuation; wording
   preserved; the shelled-out-via-std::process::Command note for
   `compile` was compressed into one sentence (content unchanged).

2. clippy::excessive_precision β€” literal `1.6180339887498949_f64`
   exceeds f64's representable precision. Switched to the suggested
   `1.618_033_988_749_895_f64` across 3 occurrences (reproduce(),
   test_trinity_anchor_constant, test_constants_pinned_match_assertions).

Verification:
- `cargo clippy -p trios-phd --locked -- -D warnings` β†’ clean.
- `cargo test -p trios-phd --locked` β†’ 13 tests GREEN.

R5-honest: no semantic change. The trinity-identity test
((phi*phi + 1.0/(phi*phi) - 3.0).abs() < 1e-12) still passes β€” the
truncated literal represents the same f64 value.

Pre-existing since at least 2026-04-26 (phd-build failing on main for
a week). This atomic PR flips it green; separate from the INV6 /
coq-proofs CI work in PR #490 / #491.

Part-of: #446

Agent: Loop-Locksmith

* fix(trios-phd): add default-run = "trios-phd"

The `crates/trios-phd/Cargo.toml` declares two binaries (trios-phd +
defense_gate) without a `default-run` key. `cargo run -p trios-phd`
then errors:

    error: `cargo run` could not determine which binary to run.
           Use the `--bin` option to specify a binary, or the
           `default-run` manifest key.
    available binaries: defense_gate, trios-phd

The phd-build.yml workflow calls `cargo run -q -p trios-phd -- ...`
four times (audit / biblio / coq-map / reproduce). PR #492 just
unblocked the clippy gate; this PR unblocks the `cargo run` calls by
adding the idiomatic `default-run = "trios-phd"` key. Alternative β€”
editing the four workflow lines to include `--bin trios-phd` β€” would
touch more files; the one-line manifest fix is cleaner.

Verification:
    $ cargo run -q -p trios-phd -- --help
    PhD monograph build / audit / bibliography / coq-map / reproduce
    ...

`defense_gate` remains reachable via `cargo run --bin defense_gate`;
only the default changes.

Part-of: #446

Agent: Loop-Locksmith

---------

Co-authored-by: Loop-Locksmith <loop-locksmith@trinity.local>
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