Test "bugs/pi-closure-context"
Expected: ✋ reject · Size: 1.5 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.35.0 · 📄 Declaration
Proof of False via a function whose codomain is checked against the type of its body's value instead of the value itself.
def FalseTy : Prop := ∀ P : Prop, P
def TrueTy : Prop := ∀ P : Prop, P → P
def trueProof : TrueTy := fun _ p => p
def bad : TrueTy → FalseTy := fun _ => FalseTy
theorem boom : FalseTy := bad trueProof
bad is ill typed: its value has type TrueTy → Prop. A checker that
represents both function types as closures over the same body, FalseTy, and
compares two such closures by their body, domain and environment alone,
without telling a closure that evaluates the body from one that infers its
type, finds TrueTy → Prop equal to TrueTy → FalseTy. The file has no
axioms and no inductive types.
Sokonanoda accepted this export. Found by a differential run of Pestka against other checkers.
| Checker | Result | ⏱️ | 🧠 | |||
|---|---|---|---|---|---|---|
| logos-kernel | ✋ | 0.403 ms | 4.5 MB | |||
| nano-lean | ✋ | 0.477 ms | 11.4 MB | |||
| sokonanoda | ✋ | 0.644 ms | 26.0 MB | |||
| pestka | ✋ | 0.695 ms | 10.5 MB | |||
| kefir | ✋ | 0.417 ms | 5.8 MB | |||
| nanoclo | ✋ | 0.622 ms | 35.7 MB | |||
| kefir-wasm | ✋ | 106 ms | 82.8 MB | |||
| con-ron | ✋ | 22.0 ms | 35.7 MB | |||
| con-agua | ✋ | 17.9 ms | 10.4 MB | |||
| nanoda | ✋ | 0.488 ms | 3.2 MB | |||
| lazylean | ✋ | 1.07 ms | 21.2 MB | |||
| con-leche | ✋ | 3.88 ms | 20.6 MB | |||
| pestka-wasm | ✋ | 77.5 ms | 91.8 MB | |||
| tenet-jvm | ✋ | 97.8 ms | 64.4 MB | |||
| eink0rn | ✋ | 1.31 ms | 11.5 MB | |||
| official | ✋ | 27.7 ms | 67.5 MB | |||
| ind-models | ✋ | 99.8 ms | 106.9 MB | |||
| lean4lean | ✋ | 73.6 ms | 105.2 MB | |||
| tenet | ✋ | 111 ms | 44.1 MB | |||
| tenet-hs | ✋ | 1.07 ms | 7.5 MB | |||
| ocaml4lean | ✋ | 13.2 ms | 23.1 MB | |||
| lean4cobol | ✋ | 1.81 ms | 13.7 MB | |||
| evmlean | ✋ | 1.04 s | 252.5 MB | |||
| overfull | ✋ | 2.94 s | 45.6 MB | |||
| vow-lean-kernel | ✋ | 121 ms | 14.6 MB | |||
| mini | ✋ | 33.9 ms | 74.0 MB | |||
| canonical-min | ✋ | 387 ms | 1.1 GB | |||
| kiota | ✋ | 0.603 ms | 9.1 MB | |||
| metalean-slow | ✋ | 29.6 ms | 71.4 MB | |||
| nanobruijn | ✋ | 0.476 ms | 3.3 MB | |||
| metalean-fast | ✋ | 29.7 ms | 72.1 MB | |||
| nanoclo-fortran | ✋ | 0.662 ms | 4.4 MB | |||
| rpylean | ✋ | 0.452 ms | 4.1 MB | |||
| mathgraph | 👍 | 0.591 ms | 29.4 MB | |||
| parse-only | 👍 | 27.4 ms | 65.4 MB |