Skip to content

Pin the Agda proofs to Debian 13's agda 2.6.4.3 + agda-stdlib 2.1 - #3

Merged
hyperpolymath merged 1 commit into
mainfrom
proofs/debian-agda-pin
Oct 2, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
proofs/debian-agda-pin

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Oct 2, 2026 •

Copy link
Copy Markdown
Owner

What

Moves the proof gate from Agda 2.7.0.1 + a vendored agda-stdlib 3.0-dev SHA to the estate standard: Debian 13's agda-bin=2.6.4.3-1+b2 and agda-stdlib=2.1-4 inside the digest-pinned debian:13-slim image, the same recipe as MetaManifold-Evidence and residual-evidence-types.

Rebased onto #2 (320513d, merged 2026-10-02T14:52Z). #2 brought BenjaminiHochberg/StepUp.agda and the 18-control gate self-test; this PR keeps both as they are on main and re-applies only the toolchain change on top. The two files that conflicted (proofs/PROOF-STATUS.md, proofs/tests/gate-selftest.sh) were resolved by taking main's version and re-applying the toolchain edits; README.md merged cleanly.

Measured

  • The only incompatibility between the two stdlib lines is _≡?_ on ℤ → _≟_ (three sites in Prelude.agda). StepUp.agda needs nothing. Every other imported module and name exists in 2.1.
  • PROOF-STATUS.md claimed the proofs "do not compile against v2.4 or v2.1". That was false; the line is replaced with the measured port note.
  • Local run after the rebase, interface files deleted first, with the wrong Agda (2.7.0.1) first on PATH to show lib.sh resolves /usr/bin/agda ahead of it:
    check: Agda version 2.6.4.3, standard-library-2.1
    axiom-audit: auditing 7 module(s) … 7 module(s) reachable from CompositionalDA.All … clean
    check: CompositionalDA/All.agda type-checks
    gate-selftest: 18/18 controls behaved correctly
    check: OK
    
    Wall-clock 14:58:02Z → 15:00:00Z.
  • Pkg.test(): 43/43, including the mutants in test/mutants.jl.

Files

  • proofs/lib.sh (new) — toolchain resolution; dies naming what it found.
  • proofs/check.sh (new) — the gate in CI order; replaces proofs/bootstrap.sh, which is deleted along with the vendoring and .agda-libraries machinery.
  • proofs/tests/gate-selftest.sh — main's 18 controls unchanged; the bootstrap-based resolver block is replaced by sourcing lib.sh, and the libraries file is written by write_libraries.
  • .github/workflows/ci.yml — proofs job rewritten to the Debian container recipe.
  • README.md, proofs/PROOF-STATUS.md (toolchain paragraphs and a fresh "Last verified" block), .gitignore, proofs/.gitignore.

Merge

No required contexts on main (rules/branches/main is empty), so automerge is deliberately not armed; held for a human squash merge once the checks are green.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AjVQUkziVYywrLNsbPordh

@coderabbitai

coderabbitai Bot commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 34 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: aa359906-9b17-4511-aeb0-b87639ea4c07

📥 Commits

Reviewing files that changed from the base of the PR and between 320513d and 4843449.

📒 Files selected for processing (11)
  • .github/workflows/ci.yml
  • .gitignore
  • README.md
  • proofs/.gitignore
  • proofs/PROOF-STATUS.md
  • proofs/agda/CompositionalDA/Prelude.agda
  • proofs/agda/compositionalda.agda-lib
  • proofs/bootstrap.sh
  • proofs/check.sh
  • proofs/lib.sh
  • proofs/tests/gate-selftest.sh
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@hyperpolymath

Copy link
Copy Markdown
Owner Author

Conflict with main (after #2 merged) resolved in 2a5c5e4: a merge commit from main, not a rebase, so no force-push was needed.

Note for the session working in worktrees/CompositionalDA.jl-debian-pin: it was mid-git rebase origin/main at 14:57Z. This remote branch now has the merge on top, so git fetch before pushing. If you prefer your own resolution, replacing 2a5c5e4 is fine.

🤖 Generated with Claude Code

The proofs were developed against Agda 2.7.0.1 and an untagged agda-stdlib
3.0 development SHA, vendored at bootstrap time.  The estate standard
(MetaManifold-Evidence, residual-evidence-types) is Debian's packaged
toolchain inside a digest-pinned image, so this moves CompositionalDA.jl
onto the same pin.

Measured: the only source incompatibility between the two stdlib lines was
`_≡?_` on ℤ, which 2.1 exports as `_≟_` (three sites in Prelude.agda).  Every
other imported name exists in 2.1; the PROOF-STATUS claim that the proofs
"do not compile against v2.1" was false and is removed.

* proofs/lib.sh (new): resolves the pinned Agda and stdlib or dies naming
  what it found; /usr/bin/agda is tried before PATH because a developer
  toolchain dir can shadow the Debian binary with 2.7.0.1.
* proofs/check.sh (new): the whole gate in CI order — axiom audit,
  type-check All.agda with warnings as failures, gate self-test.
* proofs/tests/gate-selftest.sh: sources lib.sh instead of requiring a
  bootstrap step; the three reject/ controls and seven planted defects
  are unchanged and still fire.
* proofs/bootstrap.sh: removed with its vendoring and .agda-libraries
  machinery; .gitignore entries pruned.
* .github/workflows/ci.yml: the proofs job now runs in
  debian:13-slim@sha256:d7e1… with agda-bin=2.6.4.3-1+b2 and
  agda-stdlib=2.1-4 from apt, then proofs/check.sh.
* README.md, proofs/PROOF-STATUS.md: toolchain text updated.

Verified locally: proofs/check.sh rc=0 (6 modules audited, All.agda
type-checks, 3/3 rejects rejected, 7/7 audit checks fire); Pkg.test()
43/43 including the four mutants.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AjVQUkziVYywrLNsbPordh
@hyperpolymath
hyperpolymath force-pushed the proofs/debian-agda-pin branch from 2a5c5e4 to 4843449 Compare October 2, 2026 15:02
@hyperpolymath
hyperpolymath merged commit 76c1970 into main Oct 2, 2026
5 checks passed
@hyperpolymath
hyperpolymath deleted the proofs/debian-agda-pin branch October 2, 2026 16:35
hyperpolymath added a commit that referenced this pull request Oct 2, 2026
…re visible (#5)

Main is red after #4 (run 37036456885). This fixes both failures.

- **Agda proofs:** the merge of `main` into `feat/aldex2` kept #3's step
name but put the old Agda 2.7.0.1 download step under it.
`debian:13-slim` has no `curl`, so the job exited with code 127. The
merge also dropped the checkout step. This PR restores #3's job
(`76c1970`) verbatim.
- **R reference oracle:** loading RCall exits with code 1 and prints
nothing. The job now runs one step at a time: R loads ALDEx2, Julia
starts R through RCall (with RCall's build log printed), and the
extension loads. The comparison runs only after those pass.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_019Y6e175rh1LbrsEhQvCrJ1

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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