Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
6c01819
fix(ci): unbreak Agda type-check install + Justfile heal duplicate
claude Jun 5, 2026
7f94f89
fix(proofs): fix all remaining idris2 + Agda scope errors
claude Jun 5, 2026
0a190ba
fix(proofs): repair full proof corpus — Coq, Lean4, Agda, Idris2
claude Jun 5, 2026
757762d
ci(proofs): gate the dogfood proof corpus (Coq, Lean, Agda, Idris val…
claude Jun 5, 2026
d75d5bb
ci(proofs): ASCII-only comments in dogfood-proofs-ci
claude Jun 5, 2026
f1612ab
ci(proofs): bisect dogfood startup_failure — minimal skeleton
claude Jun 5, 2026
7f95385
ci(proofs): bisect — restore Coq job only
claude Jun 5, 2026
12321b3
ci(proofs): bisect — isolate taiki install-action step
claude Jun 5, 2026
eac87fc
ci(proofs): bisect — curl-install just instead of marketplace action
claude Jun 5, 2026
7c6a602
ci(proofs): restore full dogfood corpus CI without marketplace setup …
claude Jun 5, 2026
75ec354
ci(proofs): fetch Agda stdlib from GitHub (apt --fix-missing dropped it)
claude Jun 5, 2026
5710743
merge: bring loving-cannon up to origin/main (absorb merged #256-#274)
claude Jun 21, 2026
658751d
ci(proofs): gate Lean 4 verification corpus (verification/proofs/lean4)
claude Jun 21, 2026
318f4d9
ci(proofs): gate the Idris2 verification corpus (verification/proofs/…
claude Jun 21, 2026
ff98eb5
merge: sync loving-cannon with main (absorb #275 Lean gate squash)
claude Jun 21, 2026
d614b64
merge: sync loving-cannon with main (absorb #276 Idris2 gate squash)
claude Jun 21, 2026
3f52a53
ci(proofs): weekly cron gating the Isabelle + Mizar self-proof corpora
claude Jun 21, 2026
5fe25a8
ci(proofs): add path-filtered pull_request trigger to verification cron
claude Jun 21, 2026
a31b679
ci(proofs): discover Isabelle/Mizar download URLs at runtime
claude Jun 21, 2026
0f9bbb7
ci(proofs): fix GroupTheory import + Mizar two-stage discovery
claude Jun 21, 2026
f18545b
ci(proofs): gate base-HOL Isabelle only; fix Mizar binary PATH
claude Jun 21, 2026
884d96a
ci(proofs): make Mizar recipe diagnostic (dump .err + source per file)
claude Jun 21, 2026
0e1fc49
merge: sync loving-cannon with main (absorb #277 cron squash)
claude Jun 21, 2026
81e29ee
fix(proofs): repair Isabelle Nat/List corpus (rename + nat annotations)
claude Jun 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 17 additions & 9 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -325,22 +325,30 @@ proofs-isabelle:
# Verify the Mizar self-proof corpus (proofs/mizar) with the Mizar verifier.
proofs-mizar:
#!/usr/bin/env bash
set -euo pipefail
# Not -e: makeenv/verifier signal errors via a per-file .err (line col code),
# not a reliable exit code, so inspect that rather than abort on first non-zero.
set -uo pipefail
: "${MIZFILES:?MIZFILES must point at the Mizar share dir}"
cd proofs/mizar
rc=0
for f in *.miz; do
echo "=== makeenv + verifier $f ==="
makeenv "$f"
verifier "$f" || rc=1
errfile="${f%.miz}.err"
if [ -s "$errfile" ]; then
echo "Mizar errors in $f:" >&2
cat "$errfile" >&2
base="${f%.miz}"
echo "=== $f ==="
makeenv "$f" || echo "(makeenv exit $?)"
verifier "$f" || echo "(verifier exit $?)"
if [ -s "$base.err" ]; then
echo "--- $base.err (line col code) ---"
cat "$base.err"
while read -r line col code; do
src="$(sed -n "${line}p" "$f" 2>/dev/null)"
[ -n "$src" ] && echo " L${line}:${col} (code ${code}): ${src}"
done < "$base.err"
rc=1
else
echo "($f verifies clean)"
fi
done
if [ "$rc" -ne 0 ]; then echo "Mizar corpus: VERIFICATION ERRORS" >&2; exit 1; fi
[ "$rc" -eq 0 ] || { echo "Mizar corpus: VERIFICATION ERRORS (see .err above)" >&2; exit 1; }
echo "Mizar corpus: all files verify"

# Format code
Expand Down
7 changes: 5 additions & 2 deletions proofs/isabelle/List.thy → proofs/isabelle/EchidnaList.thy
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
(*
List.thy - List Proofs in Isabelle/HOL
EchidnaList.thy - List Proofs in Isabelle/HOL

This theory demonstrates reasoning about lists:
- Append properties
Expand All @@ -10,9 +10,12 @@

Part of the ECHIDNA theorem proving platform
Tier 1 Prover: Isabelle/HOL

NB: named EchidnaList (not List) so its fact names (append_assoc, length_append,
map_append, ...) do not collide with HOL's own theory List.
*)

theory List
theory EchidnaList
imports Main
begin

Expand Down
15 changes: 10 additions & 5 deletions proofs/isabelle/Nat.thy → proofs/isabelle/EchidnaNat.thy
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
(*
Nat.thy - Natural Number Proofs in Isabelle/HOL
EchidnaNat.thy - Natural Number Proofs in Isabelle/HOL

This theory demonstrates reasoning about natural numbers:
- Arithmetic properties (addition, multiplication)
Expand All @@ -9,9 +9,14 @@

Part of the ECHIDNA theorem proving platform
Tier 1 Prover: Isabelle/HOL

NB: named EchidnaNat (not Nat) so fact names do not collide with HOL's own
theory Nat (e.g. Nat.le_refl). The three basic addition lemmas are annotated
:: nat so their goals are about natural numbers rather than an
under-constrained polymorphic {zero, plus} type that simp cannot discharge.
*)

theory Nat
theory EchidnaNat
imports Main
begin

Expand All @@ -22,19 +27,19 @@ text \<open>
\<close>

lemma add_zero_left:
"0 + n = n"
"(0::nat) + n = n"
by simp

lemma add_zero_right:
"n + 0 = n"
"(n::nat) + 0 = n"
by simp

text \<open>
Addition is commutative.
\<close>

lemma add_comm:
"m + n = n + m"
"(m::nat) + n = n + m"
by simp

text \<open>
Expand Down
10 changes: 7 additions & 3 deletions proofs/isabelle/ROOT
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@

Gated by `just proofs-isabelle` and the weekly verification-proofs-cron
workflow. Covers the base-HOL theories that type-check on the current
Isabelle release (confirmed green on Isabelle2025-2).
Isabelle release (Isabelle2025-2).

Nat and List were renamed to EchidnaNat / EchidnaList: a theory named Nat or
List collides with HOL's own theories of those names (duplicate fact
declarations such as Nat.le_refl / List.append_assoc).

NOTE: algebra/GroupTheory.thy is intentionally NOT in a gated session. It is
"ML training corpus" material (per its own header) that does not verify on
Expand All @@ -18,6 +22,6 @@ session "Echidna_Isabelle" = "HOL" +
description \<open>ECHIDNA Isabelle/HOL self-proof corpus (base HOL).\<close>
theories
Basic
List
Nat
EchidnaList
EchidnaNat
Propositional
Loading