Skip to content

Commit c2621d9

Browse files
hyperpolymathclaude
andcommitted
docs(echidna-bridge): log drift from upstream echidna ProverKind expansion
ECHIDNA commit 8f573f1 (2026-04-17) expanded `ProverKind` from 30 to ~68 variants (28 new `*TypeChecker` suffixes: Ordinary, Phantom, Polymorphic, Existential, HigherKinded, Row, Subtyping, Intersection, Union, Gradual, Hoare, Indexed, Linear, Affine, Relevant, Ordered, Uniqueness, Immutable, Capability, Bunched, Temporal, Provability, Impure, Coeffect, Probabilistic, Dyadic, Homotopy, Cubical). `protocol-squisher-echidna-bridge` carries a MIRROR enum (not a path dep), so compilation is unaffected. Non-exhaustive matches in `goal_generator.rs` absorb unknown variants via `_ =>` fallback, so the drift is semantic only (new provers get the generic comment-goal instead of prover-specific syntax). Build + 21/21 bridge unit tests pass post-audit. Extending the mirror (or switching to a path dep) is deferred to phase 2 per WIRE-EVERYTHING caveat on non-breaking drift. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 245a372 commit c2621d9

2 files changed

Lines changed: 31 additions & 5 deletions

File tree

.machine_readable/6a2/STATE.a2ml

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,29 @@ milestones = [
2525

2626
[blockers-and-issues]
2727
issues = [
28-
# No blockers recorded
28+
# Drift logged 2026-04-17: echidna ProverKind expanded in commit 8f573f1
29+
# from 30 to ~68 variants (28 new *TypeChecker suffixes: Ordinary, Phantom,
30+
# Polymorphic, Existential, HigherKinded, Row, Subtyping, Intersection,
31+
# Union, Gradual, Hoare, Indexed, Linear, Affine, Relevant, Ordered,
32+
# Uniqueness, Immutable, Capability, Bunched, Temporal, Provability,
33+
# Impure, Coeffect, Probabilistic, Dyadic, Homotopy, Cubical).
34+
# protocol-squisher-echidna-bridge carries a MIRROR enum at
35+
# crates/protocol-squisher-echidna-bridge/src/types.rs (not a path dep),
36+
# so the expansion does not break compilation. Non-exhaustive matches in
37+
# goal_generator.rs absorb unknown variants via the _ => fallback arm.
38+
# DECISION DEFERRED (phase 2): extend the mirror to parity with echidna.
39+
# Until then, any new *TypeChecker prover goals will fall through to the
40+
# generic "[Prover:?] Prove:" comment goal rather than producing
41+
# prover-specific syntax.
2942
]
3043

3144
[critical-next-actions]
3245
actions = [
33-
# No actions recorded
46+
# Phase-2 decision: mirror all 68 echidna ProverKind variants (or move to
47+
# path dep on echidna proper), and add prover-specific goal rendering
48+
# for the 28 new *TypeChecker variants where useful.
3449
]
3550

3651
[maintenance-status]
37-
last-run-utc = "2026-04-04T00:00:00Z"
38-
last-result = "unknown" # unknown | pass | warn | fail
52+
last-run-utc = "2026-04-17T00:00:00Z"
53+
last-result = "pass" # 21/21 bridge tests pass post-echidna-expansion drift audit

crates/protocol-squisher-echidna-bridge/src/types.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,24 @@
77
//! interface. Each proof goal targets a specific prover backend (one of 30
88
//! supported engines) and tracks status through a well-defined lifecycle:
99
//! `Pending → InProgress → Success | Failed | Timeout`.
10+
//!
11+
//! DRIFT NOTICE (2026-04-17): ECHIDNA commit `8f573f1` expanded its upstream
12+
//! `ProverKind` from 30 → ~68 variants (28 new `*TypeChecker` suffixes). This
13+
//! mirror intentionally remains at 30 pending a phase-2 parity decision. See
14+
//! `.machine_readable/6a2/STATE.a2ml` `[blockers-and-issues]` for rationale.
15+
//! Non-exhaustive matches (`goal_generator.rs`) absorb unknown variants via
16+
//! `_ =>` fallback arms, so the mirror staleness does not break compilation.
1017
1118
use serde::{Deserialize, Serialize};
1219

13-
/// Supported prover backends in ECHIDNA (30 engines).
20+
/// Supported prover backends in ECHIDNA (30 engines mirrored — see DRIFT NOTICE above).
1421
///
1522
/// Each variant represents a distinct theorem proving or verification engine.
1623
/// The bridge generates prover-specific goal syntax via `ProofGoalGenerator`.
24+
// TODO(echidna-drift-2026-04-17): upstream ECHIDNA now exposes ~68 variants
25+
// (28 new `*TypeChecker` suffixes from commit 8f573f1). Decide in phase 2:
26+
// (a) mirror the full set, or (b) switch this crate to a path dep on echidna
27+
// proper and drop the mirror.
1728
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
1829
#[serde(rename_all = "snake_case")]
1930
pub enum ProverKind {

0 commit comments

Comments
 (0)