Hand-curated catalogue of equivalent or near-equivalent
tactics and lemma names across Isabelle/HOL, Coq/Rocq, and Lean 4 (with
or without mathlib). Used by the planned echidna suggest CLI verb
(see ECHIDNA-NOTES-2026-04-27.md §4.1) and by the variant-tester
loop (§4.3) to recover from "synonym blindness" failures — proofs that
go through under one name but fail under another.
Three files, one per prover system:
| File | Prover |
|---|---|
|
Isabelle/HOL (Isabelle2025+ — older versions noted per-entry) |
|
Coq 8.18+ / Rocq |
|
Lean 4 + mathlib4 |
The first 20+ entries were seeded by Opus on 2026-04-27 from the two
ECHIDNA-discovered drifts during the tropical-resource-typing fix
session (induct→induction, add_le_add→add_mono) and from
hand-knowledge of common idiom drift across mathlib / mathcomp /
Isabelle’s Main.
| Field | Required? | Meaning |
|---|---|---|
|
yes |
Preferred / current name. Variant testers prefer this when emitting suggestions. |
|
yes |
Array of equivalent names. Order is not significant. |
|
no |
Coarse category ( |
|
no |
Free-text rationale, version notes, or pitfalls. |
|
no |
Version range over which the alias applies. Empty means "always". |
When echidna suggest encounters a tactic name in a failing proof, it:
-
Looks up the name in the appropriate prover’s table.
-
For each entry where the name is
canonicalor inaliases, it tries substituting every other alias (and the canonical) in turn. -
Re-runs the proof with each substitution.
-
Reports successful substitutions, ranked by edit minimality.
The tester is deliberately mechanical — no search, no creativity, no ML. It only catches the cases where the proof author used a name the prover no longer accepts (or never accepted in this version).
-
Cross-prover synonym graph (Isabelle
le_trans↔ CoqRle_trans↔ Leanle_trans) is intentionally out of scope here — that’sechidna port, notechidna suggest. -
ML-driven synonym discovery from the corpus (mining
training_data/) is in §4.4 of the notes, not this layer.