Lean Kernel Arena / corner-cases/positivity-whnf

Test "corner-cases/positivity-whnf"

Expected: 🤷 either · Size: 4.7 KB · Lines: 81 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration

A recursive occurrence appears in an unused argument of a reducible definition in a constructor field.

The declaration has the following shape:

def Ignore (A B : Type) : Type := A

inductive T : Type where
  | mk (f : Ignore Unit T -> T) : T

Ignore takes a second type argument but does not use it, so Ignore Unit T reduces to Unit. A checker that inspects the unreduced constructor field may reject the syntactic occurrence of T in the domain of the arrow. A checker that first weak-head-normalizes the field type may instead see (Unit -> T) -> T and accept it. The test therefore has outcome eithe r.

A checker may reject it syntactically or accept it after reducing the field type.

Checker Result ⏱️ 🧠
mathgraph 1 ms 33.7 MB
sokonanoda 1 ms 33.9 MB
nanoclo 1 ms 51.6 MB
nanoda 1 ms 3.2 MB
con-ron 4 ms 20.2 MB
nanobruijn 1 ms 5.4 MB
con-leche 4 ms 18.1 MB
eink0rn 👍 2 ms 11.8 MB
ind-models 58 ms 104.0 MB
official 28 ms 66.7 MB
lean4lean 28 ms 98.0 MB
tenet 131 ms 43.8 MB
nanoclo-fortran 1 ms 4.2 MB
lean4cobol 3 ms 13.5 MB
evmlean 594 ms 132.0 MB
mini 34 ms 72.9 MB
overfull 8.8 s 45.9 MB
kiota 1 ms 6.8 MB
canonical-min 🚫 386 ms 1.1 GB
rpylean 0 ms 3.9 MB
vow-lean-kernel 71 ms 8.3 MB
official-v4.28.0 34 ms 73.8 MB
still-nanoda 1 ms 3.1 MB
nyaya 2 ms 9.2 MB
parse-only 👍 27 ms 65.2 MB