Skip to content

Commit d81aca7

Browse files
docs: repo-wide documentation refresh — counts, paths, licence status, debt register (#352)
Reconciles the documentation surface — human, machine-readable, and the wiki — against what the tree actually contains, and publishes what could not be reconciled as **measured** debt rather than leaving it unstated. ## Prover counts (#251) Five figures were in circulation — 48, 105, 128, 138, 141 — because four different things are all called "the number of provers". Re-measured: | Figure | Value | |---|---| | `ProverKind` variants | **141** | | Backend implementation files | **105** | | Implementations with `suggest_tactics` | **102** | | Default-exposed core (`all_core()`) | **12** | `docs/PROVER_COUNT.md` is now canonical, explains the denominators, and **ships the command that reproduces each figure** — all five were run and reproduce exactly. Present-tense claims elsewhere cite it. Dated historical records (release notes, completed milestones) keep their authoring-time numbers: they are records, not claims about today. ## Wiki — corrected and synced `docs/wiki/` is the source and had drifted **ahead** of the live wiki, which had never been synced. Two substantive errors fixed: - the **Tier-1 core list named six backends that aren't core** (Idris 2, F\*, Alt-Ergo, Dafny, Vampire, E Prover). The real set is Metamath, HOL Light, Mizar, PVS, ACL2, HOL4 — anyone trusting that page would have selected backends the default API does not expose. - the licence was stated as **MPL-2.0** (see below). The in-repo note claiming the wiki isn't pushable from automation was wrong; it's replaced with a working sync recipe (note: the wiki's default branch is `master`). ## Licence — P0, identified and deliberately NOT acted on The repository states **four different licences**: | Surface | States | |---|---| | `LICENSE`, `Cargo.toml`, README badge | AGPL-3.0-or-later | | Per-file SPDX headers — **590 source files** | MPL-2.0 | | Per-file SPDX headers | AGPL — **zero files** | | `NOTICE` | MPL-2.0, citing `LICENSE` (which is AGPL) for its text | | `.reuse/dep5` | `PMPL-1.0 AND Palimpsest-0.6` | GitHub reports the licence as **"Other"** — likely the SPDX line prepended above the GNU text in `LICENSE`, which stops its detector matching. This matters beyond tidiness: MPL is file-level weak copyleft with no network clause; AGPL reaches users served over a network. An integrator reading the headers would conclude they may host a modified ECHIDNA without publishing changes. **Because per-file headers are themselves a licence grant, that is live exposure.** **I have not changed any licence.** Re-licensing is an owner decision affecting existing recipients and contributors. `docs/DEBT.md` sets out a suggested sequence and stops. Meanwhile the README and wiki now tell readers not to rely on any surface but `LICENSE`. ## Also in this PR - **Stale paths (#242)**: `.machine_readable/6a2/` no longer exists (descriptiles moved to `descriptiles/`) — 17 documents repaired. The contractile `.ncl` *write destinations* naming `6a2/` were left alone deliberately: `6a2` is a concept name there, and repointing an evidence sink is a semantic decision (recorded as D7). - **Broken links 19 → 13.** The 13 remaining are dated release notes and the playground sub-project — recorded as D4/D5 rather than silently rewritten. - **Root scaffold removed**: `ARCHITECTURE.md` and `GOVERNANCE.md` contained generic template text with **zero** project-specific words while the real documents sat elsewhere. GitHub surfaces the `.md`, so the page most readers landed on described no particular project. Both are now explicit pointers. - **OpenSSF badge removed**: a hardcoded green shields.io label linking to the *registration* form — it would have read "passed" whatever the real standing, including now, unregistered. Restore the genuine dynamic badge once registered. - **Repo description and topics** updated: description had a typo (`VersisimDB`) and the stale 48; topics dropped languages GitHub already surfaces (agda/coq/julia), a duplicate (theorem-prover vs theorem-proving) and a generic (artificial-intelligence), replaced with capability terms — `proof-assistants`, `proof-search`, `premise-selection`, `proof-certificates`, `smt-solvers`. ## New: `docs/DEBT.md` Live debt register — P0 licensing, seven documentation items, four code items. **Every entry carries the command that measures it**, so entries can be retired on evidence rather than on feeling. Supersedes `tech-debt-2026-05-26.md`, which is kept and banner-marked as a dated snapshot. ## Verification - R5a bare-prover-count rule: **clean** across all scoped top-level docs. - All five `PROVER_COUNT.md` commands run and reproduce their stated figures. - `DEBT.md`'s own measurements re-run before commit; one corrected (588 → 590). - Wiki push verified by re-cloning and re-reading the live pages. Known unrelated red: `Governance` fails on `main` for a hypatia scanner error (#314), not doc drift. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
1 parent 1d1b412 commit d81aca7

37 files changed

Lines changed: 571 additions & 219 deletions

.claude/CLAUDE.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
The following files in `.machine_readable/` contain structured project metadata:
44

5-
- `.machine_readable/6a2/STATE.a2ml` - Current project state and progress
6-
- `.machine_readable/6a2/META.a2ml` - Architecture decisions and development practices
7-
- `.machine_readable/6a2/ECOSYSTEM.a2ml` - Position in the ecosystem and related projects
8-
- `.machine_readable/6a2/AGENTIC.a2ml` - AI agent interaction patterns
9-
- `.machine_readable/6a2/NEUROSYM.a2ml` - Neurosymbolic integration config
10-
- `.machine_readable/6a2/PLAYBOOK.a2ml` - Operational runbook
5+
- `.machine_readable/descriptiles/STATE.a2ml` - Current project state and progress
6+
- `.machine_readable/descriptiles/META.a2ml` - Architecture decisions and development practices
7+
- `.machine_readable/descriptiles/ECOSYSTEM.a2ml` - Position in the ecosystem and related projects
8+
- `.machine_readable/descriptiles/AGENTIC.a2ml` - AI agent interaction patterns
9+
- `.machine_readable/descriptiles/NEUROSYM.a2ml` - Neurosymbolic integration config
10+
- `.machine_readable/descriptiles/PLAYBOOK.a2ml` - Operational runbook
1111
- `.machine_readable/bot_directives/*.a2ml` - Per-bot permission and scope rules
1212

1313
## Canonical Roadmap

.github/PROVEN-INTEGRATION.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ This document outlines the recommended [proven](https://github.com/hyperpolymath
1212

1313
## Integration Notes
1414

15-
ECHIDNA as a neurosymbolic theorem proving platform supporting 128 prover backends (12 core; see [docs/PROVER_COUNT.md](../docs/PROVER_COUNT.md)) requires formally verified proof management:
15+
ECHIDNA as a neurosymbolic theorem proving platform (12 core backends exposed by default; see [docs/PROVER_COUNT.md](../docs/PROVER_COUNT.md) for the full tier table and count semantics) requires formally verified proof management:
1616

1717
- **SafeGraph** models proof dependencies as DAGs. The `Acyclic` proof guarantees no circular dependencies in proof chains, and `topoSort` provides correct ordering for proof verification. `PathExists` verifies lemma reachability.
1818

.machine_readable/ER.a2ml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,9 @@ scope = "src/rust/core.rs + src/rust/verification/* + src/rust/dispatch.rs"
4141
# ═══════════════════════════════════════════════════════════════════════════════
4242

4343
# ─── 1. Term ──────────────────────────────────────────────────────────────────
44-
# Universal mathematical term representation shared across all 105 prover
45-
# backends. An ADT with 15 variants; self-referential via boxed children.
44+
# Universal mathematical term representation shared across every prover backend
45+
# (see docs/PROVER_COUNT.md for the canonical count and its semantics).
46+
# An ADT with 15 variants; self-referential via boxed children.
4647
#
4748
# No explicit integer PK — terms are compared structurally (PartialEq) or
4849
# via Display serialisation for hashing in proof_encoding.rs.

.machine_readable/ROADMAP.a2ml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ next-review = "2026-07-13"
1414

1515
[vision]
1616
summary = """
17-
Echidna evolves from a proof-solving library (105 provers + neurosymbolic guidance)
17+
Echidna evolves from a proof-solving library (multi-backend prover surface —
18+
see docs/PROVER_COUNT.md — plus neurosymbolic guidance)
1819
into a distributed, trustworthy proof-as-a-service platform accessible to the
1920
entire hyperpolymath estate and beyond.
2021

.machine_readable/contractiles/intend/Intentfile.a2ml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ Declared intent and purpose for Echidna.
99
## Purpose
1010

1111
Echidna is a trust-hardened neurosymbolic theorem proving platform.
12-
It supports 128 prover backends, records every proof attempt to
12+
It supports 141 ProverKind variants over 105 backend implementations
13+
(canonical count semantics: docs/PROVER_COUNT.md), records every proof attempt to
1314
VeriSimDB, and feeds the Hypatia learning loop so the fleet gets
1415
smarter over time.
1516

.machine_readable/descriptiles/AGENTIC.a2ml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
#
44
# AGENTIC.a2ml — AI agent operational gating and proof-solving dispatch
55
# Defines safety constraints, entropy budgets, and explicit-intent gating for AI agents
6-
# working in echidna (proof-solving service with 105 prover backends, 3GB training corpus).
6+
# working in echidna (proof-solving service; 141 ProverKind variants over 105 backend
7+
# implementations — see docs/PROVER_COUNT.md for count semantics; 3GB training corpus).
78

89
[metadata]
910
version = "0.3.0"

.machine_readable/descriptiles/ECOSYSTEM.a2ml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@ ecosystem = "hyperpolymath"
1212
[project]
1313
name = "ECHIDNA"
1414
full-name = "Extensible Cognitive Hybrid Intelligence for Deductive Neural Assistance"
15-
purpose = """Trust-hardened neurosymbolic theorem proving platform. 48 prover backends
16-
(Agda, Lean4, Isabelle, Coq, Idris2, F*, Z3, CVC5, Vampire, and 39 more). Sandboxed
17-
solver execution (Podman/bubblewrap), proof certificate checking, axiom tracking,
18-
GNN-guided proof search, Julia ML inference layer."""
15+
purpose = """Trust-hardened neurosymbolic theorem proving platform. 141 ProverKind
16+
variants across 105 backend implementations, 12 exposed by default at GET /api/provers
17+
(Agda, Coq, Lean 4, Isabelle/HOL, Z3, CVC5, Metamath, HOL Light, Mizar, PVS, ACL2, HOL4);
18+
canonical tier table and count semantics in docs/PROVER_COUNT.md. Sandboxed solver
19+
execution (Podman/bubblewrap), proof certificate checking, axiom tracking, GNN-guided
20+
proof search, Julia ML inference layer."""
1921
role = "prover-dispatcher"
2022

2123
[position]

0-AI-MANIFEST.a2ml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ proofs = "proofs/"
4646
container = "container/"
4747

4848
[tech-stack]
49-
primary = "Rust (48 prover backends, trust pipeline, CLI, REPL, API servers)"
49+
primary = "Rust (141 ProverKind variants over 105 backend implementations — see docs/PROVER_COUNT.md; trust pipeline, CLI, REPL, API servers)"
5050
secondary = "Julia (ML inference, port 8090), ReScript+Deno (UI, 33 files, zero TypeScript)"
5151
optional = "Chapel (parallel proof dispatch)"
5252
abi = "Idris2 (7 modules, zero believe-me)"
@@ -56,8 +56,9 @@ build = "Justfile (primary), Cargo workspace"
5656
container = "Podman + Containerfile"
5757

5858
[architecture]
59-
# Trust-hardened neurosymbolic theorem proving with 48 prover backends
60-
core = "src/rust/" # 48 provers, trust pipeline, dispatch
59+
# Trust-hardened neurosymbolic theorem proving; canonical backend count and
60+
# count semantics live in docs/PROVER_COUNT.md
61+
core = "src/rust/" # ProverKind enum + backends, trust pipeline, dispatch
6162
verification = "src/rust/verification/" # Portfolio, certificates, axiom tracker, confidence, mutation, pareto, statistics
6263
integrity = "src/rust/integrity/" # Solver binary integrity (SHAKE3-512, BLAKE3)
6364
executor = "src/rust/executor/" # Sandboxed execution (Podman, bubblewrap)

AFFIRMATION.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ available.
3636
real release line is in `CHANGELOG.md`.
3737
. *Critical Reception Grade.* CRG-C is complete (unit + smoke + build + P2P +
3838
E2E + contract + aspect + benchmarks baselined, per
39-
`.machine_readable/6a2/STATE.a2ml`); CRG-B criteria are populated but B is
39+
`.machine_readable/descriptiles/STATE.a2ml`); CRG-B criteria are populated but B is
4040
*not* formally affirmed here.
4141

4242
== Verified as of 2026-06-15 (green / reproduced)

ARCHITECTURE.md

Lines changed: 21 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,26 @@
1-
# Architecture
2-
3-
## Overview
4-
5-
This repository follows a modular, maintainable architecture designed for clarity, scalability, and long-term sustainability.
6-
7-
## Directory Structure
8-
9-
```
10-
.
11-
├── src/ # Source code
12-
├── tests/ # Test suites
13-
├── docs/ # Documentation
14-
├── scripts/ # Utility scripts
15-
├── config/ # Configuration files
16-
├── LICENSE # License file
17-
├── LICENSES/ # Full license texts
18-
└── README.adoc # Project documentation
19-
```
20-
21-
## Design Principles
1+
<!--
2+
SPDX-License-Identifier: CC-BY-SA-4.0
3+
SPDX-FileCopyrightText: 2025-2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
224
23-
- **Separation of Concerns**: Each module has a single responsibility
24-
- **Testability**: Code is written to be easily testable
25-
- **Documentation**: All public APIs are documented
26-
- **Configuration**: Environment-specific settings are externalized
5+
docs/ARCHITECTURE.md is canonical. This file previously held generic
6+
scaffold text ("modular, maintainable architecture designed for clarity,
7+
scalability...") that contained no project-specific content — it described
8+
no part of ECHIDNA and duplicated nothing real. Replaced with a pointer
9+
rather than deleted, because the path is referenced externally.
10+
-->
2711

28-
## Dependencies
29-
30-
- External dependencies are minimized and clearly declared
31-
- Version pinning is used for reproducibility
32-
33-
## Security Considerations
34-
35-
- Sensitive data is never committed to the repository
36-
- Secrets are managed through environment variables or secure vaults
37-
- Regular dependency audits are performed
38-
39-
## Maintainability
12+
# Architecture
4013

41-
- Code follows consistent style guidelines
42-
- Pull requests require review and CI checks
43-
- Issues and discussions are tracked transparently
14+
The architecture documentation for ECHIDNA lives in
15+
[`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) — the polyglot layout, the
16+
dispatch path, the trust-hardening pipeline, and how the Rust core, Julia ML
17+
sidecar, Idris2 ABI, Zig FFI and optional Chapel parallel layer fit together.
4418

45-
---
19+
Related canonical documents:
4620

47-
*Last updated: 2026-07-18*
21+
- [`docs/PROVER_COUNT.md`](docs/PROVER_COUNT.md) — backend tier table and what
22+
each published count actually counts
23+
- [`docs/ROADMAP.md`](docs/ROADMAP.md) — stage map and current direction
24+
- [`docs/DEBT.md`](docs/DEBT.md) — known licence, documentation and code debt
25+
- [`.machine_readable/descriptiles/META.a2ml`](.machine_readable/descriptiles/META.a2ml)
26+
— the machine-readable architecture record

0 commit comments

Comments
 (0)