Lean Kernel Arena / bugs/forged-quot-ind

Test "bugs/forged-quot-ind"

Expected: ✋ reject · Size: 11.6 KB · Lines: 204 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration

Proof of False via a quotient induction principle declared before Quot and Quot.mk, which are then ordinary definitions.

The export declares, in this order:

  1. a structure TightPair (A : Type) with two fields of type A;
  2. a quotient declaration Quot.ind, with the type the real one has;
  3. def Quot (A) (r) := TightPair A and def Quot.mk (r) (a) := ⟨a, a⟩;
  4. theorem fakeQuotFalse : False.

Read with these definitions, Quot.ind says that a predicate holding for every pair ⟨a, a⟩ holds for every pair. At the predicate fun q => q.1 → q.2 and the pair ⟨True, False⟩ it gives True → False. The file has no axioms.

A checker that validates a quotient declaration by comparing its type with one built from the names Quot and Quot.mk, without requiring them to be the quotient primitives already in the environment, accepts it. The official kernel installs the quotient declarations together and rejects the file.

Nanoda, nanoclo and nanobruijn accepted this export. Found by a differential run of Pestka against other checkers.

Checker Result ⏱️ 🧠
logos-kernel ✋ 0.455 ms 4.3 MB
nano-lean ✋ 0.472 ms 10.7 MB
sokonanoda ✋ 0.822 ms 21.9 MB
pestka ✋ 0.917 ms 10.5 MB
kefir ✋ 0.855 ms 6.2 MB
nanoclo ✋ 0.855 ms 47.6 MB
kefir-wasm ✋ 173 ms 101.7 MB
con-ron ✋ 21.6 ms 37.6 MB
con-agua ✋ 17.5 ms 7.3 MB
nanoda ✋ 0.803 ms 3.3 MB
lazylean ✋ 1.10 ms 21.1 MB
con-leche ✋ 3.78 ms 21.0 MB
pestka-wasm ✋ 93.2 ms 99.9 MB
tenet-jvm ✋ 120 ms 65.1 MB
eink0rn ✋ 1.68 ms 12.3 MB
official ✋ 28.4 ms 66.6 MB
ind-models ✋ 101 ms 109.6 MB
lean4lean ✋ 28.5 ms 97.5 MB
tenet ✋ 136 ms 44.6 MB
tenet-hs ✋ 1.60 ms 9.2 MB
ocaml4lean ✋ 13.6 ms 24.4 MB
lean4cobol ✋ 6.35 ms 13.5 MB
evmlean ✋ 1.62 s 252.6 MB
overfull ✋ 25.6 s 46.7 MB
vow-lean-kernel ✋ 169 ms 14.4 MB
mini ✋ 34.7 ms 73.6 MB
canonical-min 🚫 387 ms 1.1 GB
kiota 👍 1.06 ms 9.2 MB
metalean-slow ✋ 30.6 ms 73.8 MB
nanobruijn 👍 1.11 ms 11.7 MB
metalean-fast ✋ 30.7 ms 73.3 MB
nanoclo-fortran 👍 1.24 ms 4.5 MB
rpylean ✋ 0.673 ms 4.2 MB
mathgraph ✋ 0.770 ms 35.8 MB
parse-only 👍 28.0 ms 65.4 MB