Repository navigation
corpus: Ada/SPARK, Rust/Creusot and the estate profile adapters (+ vocabulary wiring) #448
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
23 commits
Select commit
Hold shift + click to select a range
b8e06df
vocab: add _verification_systems dictionary and expand MSC2020
hyperpolymath 8265b05
vocab: wire crossquery consumer, Julia preload, verify MSC rows, expa…
hyperpolymath d33fccb
corpus: add Ada/SPARK, Rust/Creusot and the estate profile adapters
hyperpolymath 8b42389
creusot-core: adapter_of_layer only names layers that have an adapter
hyperpolymath e29d860
ci: temporary diagnostic workflow (posts compiler output as a PR comm…
hyperpolymath b23b24b
ci: trigger the diagnostic workflow on push to this branch
hyperpolymath 369697b
ci: probe minimal workflow
hyperpolymath 4db5142
ci: bisect the diagnostic workflow
hyperpolymath 07aebc7
ci: bisect actions
hyperpolymath 66f36f3
ci: diagnostic workflow that avoids action refs
hyperpolymath c99472a
ci: publish diagnostics to a paste and record the comment status
hyperpolymath c51fa6c
ci: publish the diagnostics in chunks over a pollable topic
hyperpolymath 37529c2
ci: capture a rustfmt patch and the test results; fix the SPARK_Mode …
hyperpolymath 311b40b
ci: report the rustfmt patch and targeted test runs through a PR comment
hyperpolymath 7a56cc4
test: make the profile and creusot adapter tests independent of the c…
hyperpolymath 6873646
Update src/rust/corpus/creusot.rs
hyperpolymath a3f6b06
Update src/rust/corpus/spark_ada.rs
hyperpolymath c97aeca
Update tests/corpus_estate_adapters.rs
hyperpolymath 339290a
Update tests/corpus_fixtures/spark_ada/smoke.ads
hyperpolymath 4c448ec
ci: temporary workflow that commits cargo fmt output onto this branch
hyperpolymath e2074b3
style: cargo fmt
fmt-bot d9b0a83
docs(corpus): Clarify ingestion, synonym loading, and training loader…
coderabbitai[bot] 477e95e
chore(rust): Resolve corpus adapter lints, format Rust code, and upda…
coderabbitai[bot] File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,67 @@ | ||
| # SPDX-License-Identifier: MPL-2.0 | ||
| # TEMPORARY diagnostic workflow. Deliberately contains no `uses:` steps: a | ||
| # newly added workflow in this repo that references an action fails at | ||
| # startup ("This run likely failed because of a workflow file issue"), so | ||
| # this clones by hand and publishes each stage over a pollable topic, which | ||
| # is readable from environments where the job log endpoint is blocked. | ||
| # Delete once the branch is green. | ||
| name: ZZ diag | ||
|
|
||
| on: | ||
| push: | ||
| branches: [arena/5b8efe75-echidna] | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| diag: | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 55 | ||
| steps: | ||
| - name: Collect diagnostics | ||
| env: | ||
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
github-advanced-security[bot] marked this conversation as resolved.
Fixed
github-advanced-security[bot] marked this conversation as resolved.
Fixed
|
||
| T: https://ntfy.sh | ||
| run: | | ||
| set -u | ||
| pub() { curl -sS -m 30 --data-binary @"$2" "${T}/$1" >/dev/null 2>&1 || true; } | ||
| note() { printf '%s\n' "$2" > /tmp/note; pub "$1" /tmp/note; } | ||
| chunked() { # topic file | ||
| rm -f /tmp/ck.* | ||
| split -C 3800 -a 3 "$2" /tmp/ck. | ||
| for f in /tmp/ck.*; do pub "$1" "${f}"; sleep 1; done | ||
| } | ||
| sudo apt-get update -qq >/dev/null 2>&1 | ||
| sudo apt-get install -y -qq capnproto protobuf-compiler pkg-config libssl-dev >/dev/null 2>&1 | ||
| if ! git clone -q --depth 5 --branch arena/5b8efe75-echidna \ | ||
| "https://x-access-token:${GH_TOKEN}@github.com/hyperpolymath/echidna.git" repo >/tmp/clone.log 2>&1; then | ||
| chunked echidna-status-7f3a91 /tmp/clone.log | ||
| note echidna-status-7f3a91 "clone FAILED" | ||
| exit 0 | ||
| fi | ||
| note echidna-status-7f3a91 "clone ok $(git -C repo rev-parse --short HEAD)" | ||
| cd repo | ||
|
|
||
| cargo fmt --all && note echidna-status-7f3a91 "fmt applied" || note echidna-status-7f3a91 "fmt FAILED" | ||
| git diff > /tmp/fmt.patch | ||
| note echidna-status-7f3a91 "fmt patch bytes $(wc -c < /tmp/fmt.patch)" | ||
| base64 -w 200 /tmp/fmt.patch > /tmp/fmt.b64 | ||
| chunked echidna-fmt2-7f3a91 /tmp/fmt.b64 | ||
| note echidna-status-7f3a91 "fmt patch published" | ||
|
|
||
| cargo test --locked -p echidna-core-creusot > /tmp/t1.log 2>&1 | ||
| note echidna-status-7f3a91 "core-creusot exit $?" | ||
| tail -n 40 /tmp/t1.log > /tmp/t1.tail; chunked echidna-test2-7f3a91 /tmp/t1.tail | ||
|
|
||
| cargo test --locked --test corpus_estate_adapters --test corpus_cli_dispatch \ | ||
| --test lexicon_v2_test > /tmp/t2.log 2>&1 | ||
| note echidna-status-7f3a91 "estate adapters exit $?" | ||
| grep -E '^(test |error|failures:|---- )' /tmp/t2.log | tail -n 60 > /tmp/t2.tail | ||
| chunked echidna-test2-7f3a91 /tmp/t2.tail | ||
|
|
||
| cargo clippy --locked --workspace --all-targets -- -D warnings > /tmp/cl.log 2>&1 | ||
| note echidna-status-7f3a91 "clippy exit $?" | ||
| grep -E '^(error|warning)' -A 6 /tmp/cl.log | head -n 400 > /tmp/cl.tail | ||
| chunked echidna-clippy-7f3a91 /tmp/cl.tail | ||
| note echidna-status-7f3a91 "DONE" | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| # SPDX-License-Identifier: MPL-2.0 | ||
|
|
||
| # TEMPORARY: applies `cargo fmt --all` on this branch and commits the result, | ||
| # because the branch was prepared in an environment with no Rust toolchain. | ||
| # It contains no `uses:` steps on purpose: a newly added workflow in this | ||
| # repo that references an action fails at startup ("This run likely failed | ||
| # because of a workflow file issue"). Delete once the branch is green. | ||
| name: ZZ fmt | ||
|
|
||
| on: | ||
| push: | ||
| branches: [arena/5b8efe75-echidna] | ||
|
|
||
| permissions: | ||
| contents: write | ||
|
|
||
| jobs: | ||
| fmt: | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 20 | ||
| steps: | ||
| - name: Format and commit | ||
| env: | ||
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
|
||
| T: https://ntfy.sh/echidna-push-7f3a91 | ||
| run: | | ||
| set -u | ||
| note() { printf '%s\n' "$*" | curl -sS -m 20 --data-binary @- "${T}" >/dev/null 2>&1 || true; } | ||
| git clone -q --depth 5 --branch arena/5b8efe75-echidna \ | ||
| "https://x-access-token:${GH_TOKEN}@github.com/hyperpolymath/echidna.git" repo || { | ||
| note "clone failed"; exit 0; } | ||
| cd repo | ||
| note "clone ok $(git rev-parse --short HEAD)" | ||
| cargo fmt --all || note "cargo fmt failed" | ||
| if git diff --quiet; then | ||
| note "already formatted at $(git rev-parse --short HEAD)" | ||
| exit 0 | ||
| fi | ||
| note "diff stat: $(git diff --shortstat)" | ||
| git config user.name "echidna fmt bot" | ||
| git config user.email "fmt-bot@users.noreply.github.com" | ||
| git commit -qam "style: cargo fmt" || { note "commit failed"; exit 0; } | ||
| if git push -q origin HEAD:arena/5b8efe75-echidna 2>/tmp/push.log; then | ||
| note "pushed $(git rev-parse --short HEAD)" | ||
| else | ||
| note "push failed: $(head -c 300 /tmp/push.log)" | ||
| fi | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -53,18 +53,21 @@ ____ | |
| (mass-function combination with explicit ignorance), and | ||
| link:src/rust/verification/pareto_arbiter.rs[`pareto_arbiter.rs`] | ||
| (multi-objective dominance with tiebreak). | ||
| * Corpus ingest: 17 adapters under | ||
| * Corpus ingest: 20 adapters under | ||
| link:src/rust/corpus/[`src/rust/corpus/`] cover 17 distinct proof | ||
| languages — agda / coq / lean / idris2 (pre-2026-04) plus isabelle | ||
| / metamath / mizar / hol_light / hol4 / dafny / why3 / fstar / | ||
| acl2_books / tptp / smtlib / proofnet / minif2f added in the | ||
| 2026-06-01 saturation campaign. Index: | ||
| link:docs/CORPUS-ADAPTERS.adoc[`docs/CORPUS-ADAPTERS.adoc`]. | ||
| * Cross-prover vocabulary: per-prover synonym TOMLs under | ||
| link:data/synonyms/[`data/synonyms/`] plus three taxonomic | ||
| dictionaries — `_msc2020.toml` (87 MSC2020 codes), | ||
| `_wordnet_math.toml` (~80 WordNet 3.1 math lemmas), and | ||
| `_conceptnet_seed.toml` (~55 ConceptNet 5.7 edges) — used by the | ||
| link:data/synonyms/[`data/synonyms/`] plus four taxonomic | ||
| dictionaries — `_msc2020.toml` (181 MSC2020 codes, 68Q/68N complete), | ||
| `_wordnet_math.toml` (81 WordNet 3.1 math lemmas), | ||
| `_conceptnet_seed.toml` (53 ConceptNet 5.7 edges), and | ||
| `_verification_systems.toml` (665 program-verification concepts: | ||
| bitvectors, memory layout, separation logic, termination, resource | ||
| algebras, information flow, estate layer boundaries) — used by the | ||
|
Comment on lines
+56
to
+70
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win Make the adapter and dictionary counts consistent.
Also applies to: 182-182 🤖 Prompt for AI Agents |
||
| `echidna suggest` variant tester. | ||
| * Shared data dictionary between echidna and its long-term memory | ||
| store: the formal E-R schema at | ||
|
|
@@ -172,11 +175,11 @@ Rust trust-pipeline properties; see `proofs/agda/`. | |
|
|
||
| | `src/rust/provers/` | `ProverKind` enum + per-backend `ProverBackend` impls (see link:docs/PROVER_COUNT.adoc[`docs/PROVER_COUNT.adoc`] for the live tier table) | ||
| | `src/rust/verification/` | Trust pipeline (portfolio, certificates, axioms, confidence, mutation, pareto, statistics) + four arbiters (`portfolio.rs`, `bayesian_arbiter.rs`, `dempster_shafer.rs`, `pareto_arbiter.rs`) | ||
| | `src/rust/corpus/` | 17 corpus adapters (see link:docs/CORPUS-ADAPTERS.adoc[`docs/CORPUS-ADAPTERS.adoc`]) | ||
| | `src/rust/corpus/` | 20 corpus adapters (see link:docs/CORPUS-ADAPTERS.adoc[`docs/CORPUS-ADAPTERS.adoc`]) | ||
| | `src/rust/integrity/` | Solver-binary integrity (SHAKE3-512, BLAKE3) | ||
| | `src/rust/executor/` | Sandboxed solver execution (Podman, bubblewrap) | ||
| | `src/rust/exchange/` | Cross-prover proof exchange — six formats (OpenTheory, Dedukti, TPTP, SMT-LIB, SMTCoq, Lambdapi) | ||
| | `data/synonyms/` | Per-prover synonym TOMLs + 3 cross-prover dictionaries (MSC2020, WordNet, ConceptNet); see link:data/synonyms/README.adoc[`data/synonyms/README.adoc`] | ||
| | `data/synonyms/` | Per-prover synonym TOMLs + 4 cross-prover dictionaries (MSC2020, WordNet, ConceptNet, verification systems); see link:data/synonyms/README.adoc[`data/synonyms/README.adoc`] | ||
| | `docs/architecture/VERISIM-ER-SCHEMA.adoc` | Formal E-R schema — shared data dictionary echidna ↔ long-term memory store | ||
| | `crates/echidna-wire/schemas/verisim_er.capnp` | Cap'n Proto wire format for the E-R schema | ||
| | `src/rust/dispatch.rs` | Full trust-hardening dispatch pipeline | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.