Checker "always-decline"
Version: 1.0 · 📄 Declaration
A trivial checker that always declines any input.
This checker simply runs exit 2 and is useful for:
- Testing framework handling of declined tests
- Measuring parsing and setup overhead
- Establishing baseline timing for non-checking operations
Exit code 2 indicates the checker declined to process the input, different from rejection (exit 1) which indicates an invalid proof.
0/0
0/0
136
Detailed results
Test "bogus1"
Expected: ✋ reject · Size: 11.4 KB · Lines: 198 · lean4export: 3.1.0 · Lean: 4.29.0-rc1 · 📄 Declaration · 🔗 Source
A clearly bogus proof. Also serves as an example for how to write simple cases.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "cedar"
Expected: 👍 accept · Size: 728.6 MB · Lines: 13.4 M · lean4export: 3.1.0 · Lean: 4.26.0 · 📄 Declaration · 🔗 Source
Lean formalization of, and proofs about, Cedar.
Auto-generated documentation is available at https://cedar-policy.github.io/cedar-spec/docs/.
This test case exports the whole Cedar module and as such contains even unused parts Init and
Batteries.
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "constlevels"
Expected: ✋ reject · Size: 15.3 KB · Lines: 283 · lean4export: 3.1.0 · Lean: 4.29.0-rc2 · 📄 Declaration
Regression test for undefined behavior in lazy_delta_reduction_step in the official kernel
In the function lazy_delta_reduction_step, the official kernel expects unfold_definition
to always succeed. However, if the constant has an incorrect number of level parameters, it
actually fails, which leads to memory corruption in lazy_delta_reduction_step.
This test is to check that the official kernel and also other kernels that closely follow the logic of the official kernel correctly handle this unfolding failure.
The issue in the official kernel was originally reported as https://github.com/leanprover/lean4/issues/10577.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "cslib"
Expected: 👍 accept · Size: 1.2 GB · Lines: 22.8 M · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
The Lean Computer Science Library (CSLib).
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "grind-ring-5"
Expected: 👍 accept · Size: 9.7 MB · Lines: 199.5 k · lean4export: 3.1.0 · Lean: 4.29.0-rc1 · 📄 Declaration · 🔗 Source
A grind tactic test from the Lean 4 test suite.
This produces a theorem with a rather large proof term that needs fast reduction.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "init"
Expected: 👍 accept · Size: 307.1 MB · Lines: 6.0 M · lean4export: 3.1.0 · Lean: 4.29.0-rc1 · 📄 Declaration · 🔗 Source
The Init module export from Lean 4 core.
This test contains the fundamental building blocks of Lean 4, including:
- Basic data types (Nat, List, Array, String, etc.)
- Core tactics and syntax
- Foundational mathematical structures
- Essential metaprogramming infrastructure
This is one of the smallest meaningful test cases, making it ideal for initial checker validation and debugging.
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "init-prelude"
Expected: 👍 accept · Size: 3.5 MB · Lines: 63.5 k · lean4export: 3.1.0 · Lean: 4.29.0-rc1 · 📄 Declaration · 🔗 Source
The Init.Prelude module export.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "mathlib"
Expected: 👍 accept · Size: 4.9 GB · Lines: 92.5 M · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
The complete Mathlib library export.
This test contains all the mathematical definitions, theorems, and proofs from Mathlib, representing the largest and most comprehensive test case in the Lean kernel arena.
This test is based on a commit that includes https://github.com/leanprover-community/mathlib4/pull/33794 to include the performance fix therein.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "mlir"
Expected: 👍 accept · Size: 28.8 MB · Lines: 576.3 k · lean4export: 3.1.0 · Lean: 4.27.0-nightly-2025-12-01 · 📄 Declaration · 🔗 Source
The main theorems from lean-mlir.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "std"
Expected: 👍 accept · Size: 522.7 MB · Lines: 10.0 M · lean4export: 3.1.0 · Lean: 4.29.0-rc1 · 📄 Declaration · 🔗 Source
The complete Std library export from Lean 4.
This test contains the standard library extensions beyond core Lean 4, including:
- Enhanced data structures (HashMap, RBTree, etc.)
- Additional mathematical operations
- Extended list and array operations
- Utility functions and theorems
This represents a medium-sized test case, larger than core modules but smaller than Mathlib, making it useful for performance testing.
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/001_basicDef"
Expected: 👍 accept · Size: 371 B · Lines: 6 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Basic definition
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/002_badDef"
Expected: ✋ reject · Size: 369 B · Lines: 6 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Mismatched types
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/003_arrowType"
Expected: 👍 accept · Size: 626 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Arrow type (function type)
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/004_dependentType"
Expected: 👍 accept · Size: 464 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Dependent type (forall)
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/005_constType"
Expected: 👍 accept · Size: 901 B · Lines: 17 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Lambda expression
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/006_betaReduction"
Expected: 👍 accept · Size: 1.3 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Lambda reduction
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/007_betaReduction2"
Expected: 👍 accept · Size: 1.4 KB · Lines: 28 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Lambda reduction under binder
Test result: 🚫 declined · exit code 2 · wall time: 6 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/008_forallSortWhnf"
Expected: 👍 accept · Size: 1.2 KB · Lines: 25 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
The binding domain of a forall may need to be reduce before it is a sort
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/009_forallSortBad"
Expected: ✋ reject · Size: 1.2 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
The binding domain of a forall has to be a sort
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/010_nonTypeType"
Expected: ✋ reject · Size: 1.1 KB · Lines: 21 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
The type of a declaration has to be a type, not some other expression
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/011_nonPropThm"
Expected: ✋ reject · Size: 428 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
The type of a theorem has to be a proposition
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/012_levelComp1"
Expected: 👍 accept · Size: 395 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Some level computation
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/013_levelComp2"
Expected: 👍 accept · Size: 413 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Some level computation
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/014_levelComp3"
Expected: 👍 accept · Size: 431 B · Lines: 9 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Some level computation
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/015_levelParams"
Expected: 👍 accept · Size: 1.4 KB · Lines: 29 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Level parameters
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/016_tut06_bad01"
Expected: ✋ reject · Size: 431 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Duplicate universe parameters
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/017_levelComp4"
Expected: 👍 accept · Size: 428 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Some level computation
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/018_levelComp5"
Expected: 👍 accept · Size: 428 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Some level computation
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/019_imax1"
Expected: 👍 accept · Size: 813 B · Lines: 16 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Type inference for forall using imax
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/020_imax2"
Expected: 👍 accept · Size: 832 B · Lines: 17 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Type inference for forall using imax
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/021_inferVar"
Expected: 👍 accept · Size: 717 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Type inference of local variables
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/022_defEqLambda"
Expected: 👍 accept · Size: 1.4 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Definitional equality between lambdas
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/023_peano1"
Expected: 👍 accept · Size: 3.6 KB · Lines: 73 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Peano arithmetic: 2 = 2
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/024_peano2"
Expected: 👍 accept · Size: 4.5 KB · Lines: 90 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Peano arithmetic: 1 + 1 = 2
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/025_peano3"
Expected: 👍 accept · Size: 4.9 KB · Lines: 98 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Peano arithmetic: 2 * 2 = 4
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/026_letType"
Expected: 👍 accept · Size: 493 B · Lines: 9 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Type checking a non-dependent let
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/027_letTypeDep"
Expected: 👍 accept · Size: 1.2 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Type checking a dependent let
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/028_letRed"
Expected: 👍 accept · Size: 631 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Reducing a let
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/029_empty"
Expected: 👍 accept · Size: 1.2 KB · Lines: 20 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
A simple empty inductive type
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/030_boolType"
Expected: 👍 accept · Size: 2.3 KB · Lines: 37 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
A simple enumeration inductive type
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/031_twoBool"
Expected: 👍 accept · Size: 4.2 KB · Lines: 65 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
A simple product type
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/032_andType"
Expected: 👍 accept · Size: 3.2 KB · Lines: 57 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
A parametrized product type (no level parameters)
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/033_prodType"
Expected: 👍 accept · Size: 3.8 KB · Lines: 76 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
A parametrized product type (with level parameters)
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/034_pprodType"
Expected: 👍 accept · Size: 3.8 KB · Lines: 75 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
A parametrized product type (with more general level parameters)
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/035_pUnitType"
Expected: 👍 accept · Size: 1.8 KB · Lines: 31 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Level-polymorphic unit type
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/036_eqType"
Expected: 👍 accept · Size: 3.2 KB · Lines: 62 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Equality, as an important indexed non-recursive data type
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/037_natDef"
Expected: 👍 accept · Size: 3.3 KB · Lines: 61 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
A recursive inductive data type
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/038_rbTreeDef"
Expected: 👍 accept · Size: 15.7 KB · Lines: 296 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
A recursive indexed data type
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/039_inductBadNonSort"
Expected: ✋ reject · Size: 1.2 KB · Lines: 20 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
An inductive type with a non-sort type
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/040_inductBadNonSort2"
Expected: ✋ reject · Size: 602 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Another inductive type with a non-sort type
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/041_inductLevelParam"
Expected: ✋ reject · Size: 519 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
An inductive with duplicate level params
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/042_inductTooFewParams"
Expected: ✋ reject · Size: 552 B · Lines: 6 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
An inductive with too few parameters in the type
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/043_inductWrongCtorParams"
Expected: ✋ reject · Size: 1.2 KB · Lines: 16 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
An inductive with a constructor with wrong parameters
Test result: 🚫 declined · exit code 2 · wall time: 15 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/044_inductWrongCtorResParams"
Expected: ✋ reject · Size: 1.3 KB · Lines: 19 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
An inductive with a constructor with wrong parameters in result (they are swapped)
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/045_inductWrongCtorResLevel"
Expected: ✋ reject · Size: 1.4 KB · Lines: 23 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
An inductive with a constructor with wrong level parameters in result (they are swapped)
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/046_inductInIndex"
Expected: ✋ reject · Size: 1.1 KB · Lines: 14 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
A constructor with an unexpected occurrence of the type in index position of a return type.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/047_indNeg"
Expected: ✋ reject · Size: 1000 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
The classic example of an inductive with negative recursive occurrence
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/048_reduceCtorParam.mk"
Expected: 👍 accept · Size: 4.1 KB · Lines: 80 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
When checking inductives, we expect the kernel to reduce the types of constructor arguments.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/049_reduceCtorType.mk"
Expected: ✋ reject · Size: 1.5 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
When checking inductives, we expect the kernel to not reduce the type of the constructor itself;
that should be all manifest foralls
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/050_indNegReducible"
Expected: ✋ reject · Size: 1.9 KB · Lines: 31 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
When checking inductives, we expect the kernel to not reduce the type of the constructor parameters further than head normal form. Recursive occurrences nested inside the head normal form are considered negative occurrences, even if they could be reduced to disappear.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/051_predWithTypeField"
Expected: 👍 accept · Size: 2.0 KB · Lines: 32 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
An inductive proposition can have constructors with fields of arbitrary level.
Test result: 🚫 declined · exit code 2 · wall time: 6 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/052_typeWithTypeField"
Expected: 👍 accept · Size: 2.1 KB · Lines: 36 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
An inductive type can have fields of level up to that of the inductive.
Test result: 🚫 declined · exit code 2 · wall time: 6 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/053_typeWithTypeFieldPoly"
Expected: 👍 accept · Size: 2.1 KB · Lines: 38 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
An inductive type can have fields of level up to that of the inductive (polymorphic variant).
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/054_typeWithTooHighTypeField.mk"
Expected: ✋ reject · Size: 947 B · Lines: 11 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
An inductive type can have fields of from higher universes.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/055_emptyRec"
Expected: 👍 accept · Size: 1.2 KB · Lines: 21 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/056_boolRec"
Expected: 👍 accept · Size: 3.0 KB · Lines: 53 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/057_twoBoolRec"
Expected: 👍 accept · Size: 4.8 KB · Lines: 78 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/058_andRec"
Expected: 👍 accept · Size: 3.2 KB · Lines: 58 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/059_prodRec"
Expected: 👍 accept · Size: 4.0 KB · Lines: 79 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/060_pprodRec"
Expected: 👍 accept · Size: 4.0 KB · Lines: 78 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/061_punitRec"
Expected: 👍 accept · Size: 2.2 KB · Lines: 39 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/062_eqRec"
Expected: 👍 accept · Size: 3.3 KB · Lines: 63 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 🚫 declined · exit code 2 · wall time: 6 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/063_nRec"
Expected: 👍 accept · Size: 3.3 KB · Lines: 61 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/064_rbTreeRef"
Expected: 👍 accept · Size: 16.2 KB · Lines: 303 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/065_boolPropRec"
Expected: 👍 accept · Size: 2.3 KB · Lines: 34 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Inductive predicates eliminate into Prop if they have more than one constructor.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/066_existsRec"
Expected: 👍 accept · Size: 3.6 KB · Lines: 66 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Inductive predicates eliminate into Prop if they have one constructors and it carries data.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/067_sortElimPropRec"
Expected: 👍 accept · Size: 5.6 KB · Lines: 97 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Inductive predicates eliminate into Sort if they have one constructors and it carries data, but the data is known from the type, e.g. a parameter or an index
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/068_sortElimProp2Rec"
Expected: 👍 accept · Size: 6.6 KB · Lines: 114 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Inductive predicates eliminate into Sort if they have one constructors and it carries data, but the data is known from the type, e.g. a parameter or an index. However, it must occur directly in the result type, with no intervening reduction.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/069_boolRecEqns"
Expected: 👍 accept · Size: 10.8 KB · Lines: 199 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Reduction behavior of Bool.rec
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/070_prodRecEqns"
Expected: 👍 accept · Size: 10.1 KB · Lines: 205 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Reduction behavior of Prod.rec
Test result: 🚫 declined · exit code 2 · wall time: 15 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/071_nRecReduction"
Expected: 👍 accept · Size: 12.7 KB · Lines: 238 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
A proof relying on the reduction behavior of N.rec
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/072_listRecReduction"
Expected: 👍 accept · Size: 17.5 KB · Lines: 335 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Reduction behavior of List.rec
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/073_RBTree.id_spec"
Expected: 👍 accept · Size: 47.9 KB · Lines: 1.0 k · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Reduction behavior of RBTree.rec
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/074_And.right"
Expected: 👍 accept · Size: 4.3 KB · Lines: 74 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Type-checking simple projection functions
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/075_Prod.snd"
Expected: 👍 accept · Size: 4.5 KB · Lines: 83 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Type-checking projection functions with parameters
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/076_PProd.snd"
Expected: 👍 accept · Size: 4.5 KB · Lines: 83 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Type-checking projection functions
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/077_PSigma.snd"
Expected: 👍 accept · Size: 5.1 KB · Lines: 96 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Type-checking dependent projection functions
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/078_projOutOfRange"
Expected: ✋ reject · Size: 3.8 KB · Lines: 67 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Out of range projection
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/079_projNotStruct"
Expected: ✋ reject · Size: 3.5 KB · Lines: 64 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Projection out something that is not a structure
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/080_projProp1"
Expected: 👍 accept · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Projecting out of a proposition
The lean kernel allows projections out of propositions if they precede all dependent data fields.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/081_projProp2"
Expected: ✋ reject · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Projecting out of a proposition
The lean kernel disallows data projections out of propositional structures.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/082_projProp3"
Expected: 👍 accept · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Projecting out of a proposition
The lean kernel allows projections out of propositions if they precede all dependent data fields. Non-dependent data fields are not relevant.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/083_projProp4"
Expected: ✋ reject · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Projecting out of a proposition
The lean kernel disallows data projections out of propositional structures.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/084_projProp5"
Expected: ✋ reject · Size: 8.4 KB · Lines: 148 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Projecting out of a proposition
The lean kernel disallows proof projections out of propositional structures that depend on data.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/085_projProp6"
Expected: ✋ reject · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Projecting out of a proposition.
The lean kernel rejects any projections out of a proposition that come after a dependent data field, even if that is not used by the present projection.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/086_projDataIndexRec"
Expected: 👍 accept · Size: 6.8 KB · Lines: 111 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
The recursor for ProjDataIndex allows elimination into sort.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/087_projIndexData"
Expected: ✋ reject · Size: 6.8 KB · Lines: 111 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Projecting out data is not allowed, even if this data appears as an index and the recursor would allow it.
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/088_projIndexData2"
Expected: ✋ reject · Size: 6.8 KB · Lines: 111 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Projecting out data is not allowed, even if this data appears as an index and the recursor would allow it.
This also forbids projecting out proofs that follow such fields.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/089_projRed"
Expected: 👍 accept · Size: 9.9 KB · Lines: 177 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Projection reductions
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/090_ruleK"
Expected: 👍 accept · Size: 6.5 KB · Lines: 121 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Rule k for Eq:
The recursor reduces even if the major argument is not a constructor,
as long replacing the major argument with a constructor is type correct.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/091_ruleKbad"
Expected: ✋ reject · Size: 6.5 KB · Lines: 121 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Rule k for Eq should not fire if the types of the major argument
do not match that of the constructor.
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/092_ruleKAcc"
Expected: ✋ reject · Size: 12.8 KB · Lines: 238 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Rule k should not fire for Acc.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/093_aNatLit"
Expected: 👍 accept · Size: 3.0 KB · Lines: 54 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Type checking Nat literals
Test result: 🚫 declined · exit code 2 · wall time: 6 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/094_natLitEq"
Expected: 👍 accept · Size: 6.1 KB · Lines: 114 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Reducing Nat literals
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/095_proofIrrelevance"
Expected: 👍 accept · Size: 5.0 KB · Lines: 100 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Proof irrelevance
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/096_unitEta1"
Expected: 👍 accept · Size: 6.2 KB · Lines: 116 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Unit eta
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/097_unitEta2"
Expected: 👍 accept · Size: 6.0 KB · Lines: 109 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Unit eta
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/098_unitEta3"
Expected: 👍 accept · Size: 6.0 KB · Lines: 111 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Unit eta
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/099_structEta"
Expected: 👍 accept · Size: 12.5 KB · Lines: 230 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Structure eta
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/100_funEta"
Expected: 👍 accept · Size: 5.2 KB · Lines: 104 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Function eta for non-dependent functions.
Test result: 🚫 declined · exit code 2 · wall time: 6 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/101_funEtaDep"
Expected: 👍 accept · Size: 5.3 KB · Lines: 106 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Function eta for dependent functions (pi types).
Test result: 🚫 declined · exit code 2 · wall time: 6 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/102_funEtaBad"
Expected: ✋ reject · Size: 4.9 KB · Lines: 97 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Eta should not identify functions with different bodies.
Test result: 🚫 declined · exit code 2 · wall time: 6 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/103_etaRuleK"
Expected: ✋ reject · Size: 6.5 KB · Lines: 121 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Corner case for function eta: Does a defeq between a partially applied recursor with rule k and a free variable trigger eta expansion?
Taking the official kernel as the specification, the answer is no. See https://github.com/leanprover/lean4/issues/12520 for a discussion.
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/104_etaCtor"
Expected: ✋ reject · Size: 9.0 KB · Lines: 148 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Corner case for function eta: Does a defeq between a partially applied constructor trigger eta expansion?
Taking the official kernel as the specification, the answer is no. See https://github.com/leanprover/lean4/issues/12520 for a discussion.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/105_reflOccLeft"
Expected: ✋ reject · Size: 3.7 KB · Lines: 61 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Rejection: recursive occurrence on the left of an arrow, behind further arrows inside a constructor argument.
The constructor argument is a function type Nat → (I → Nat).
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/106_reflOccInIndex"
Expected: ✋ reject · Size: 4.0 KB · Lines: 66 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Rejection: recursive occurrence in index position, behind a further arrow.
We build an indexed inductive I : Type → Type with a constructor argument
Nat → I (I α), so the recursive occurrence appears as an index argument.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/107_reduceCtorParamRefl.mk"
Expected: 👍 accept · Size: 4.5 KB · Lines: 88 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
When checking inductives, we expect the kernel to reduce the types of constructor arguments in all positive positions.
Test result: 🚫 declined · exit code 2 · wall time: 6 ms · instructions: 4.8 M · max rss memory: 2.8 MB
Test "tutorial/108_reduceCtorParamRefl2.mk"
Expected: 👍 accept · Size: 4.5 KB · Lines: 88 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
When checking inductives, we expect the kernel to reduce the types of constructor arguments in all positive positions.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/109_rTreeRec"
Expected: 👍 accept · Size: 5.5 KB · Lines: 91 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/110_rtreeRecReduction"
Expected: 👍 accept · Size: 10.8 KB · Lines: 193 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Reduction behavior of RTree.rec on RTree.mk.
Test result: 🚫 declined · exit code 2 · wall time: 3 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/111_accRecType"
Expected: 👍 accept · Size: 7.5 KB · Lines: 151 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of Acc.rec.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/112_accRecReduction"
Expected: 👍 accept · Size: 13.4 KB · Lines: 252 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Acc.rec reduces on Acc.intro.
Test result: 🚫 declined · exit code 2 · wall time: 6 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/113_accRecNoEta"
Expected: ✋ reject · Size: 13.0 KB · Lines: 244 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Acc.rec does not have structure eta.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/114_quotMkType"
Expected: 👍 accept · Size: 6.3 KB · Lines: 123 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of Quot.mk.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/115_quotIndType"
Expected: 👍 accept · Size: 6.3 KB · Lines: 124 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of Quot.ind.
Test result: 🚫 declined · exit code 2 · wall time: 3 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/116_quotLiftType"
Expected: 👍 accept · Size: 6.3 KB · Lines: 124 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of Quot.lift.
Test result: 🚫 declined · exit code 2 · wall time: 3 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/117_quotSoundType"
Expected: 👍 accept · Size: 7.2 KB · Lines: 141 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Asserting the type of Quot.sound.
Test result: 🚫 declined · exit code 2 · wall time: 3 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/118_quotLiftReduction"
Expected: 👍 accept · Size: 7.8 KB · Lines: 153 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Reduction behavior of Quot.lift on Quot.mk.
Test result: 🚫 declined · exit code 2 · wall time: 3 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/119_quotIndReduction"
Expected: 👍 accept · Size: 7.6 KB · Lines: 151 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Reduction behavior of Quot.ind on Quot.mk.
Test result: 🚫 declined · exit code 2 · wall time: 3 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/120_dup_defs"
Expected: ✋ reject · Size: 479 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
Two definitions with the same name
Test result: 🚫 declined · exit code 2 · wall time: 3 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/121_dup_ind_def"
Expected: ✋ reject · Size: 1.7 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
A definition and a constructor with the same name
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/122_dup_ctor_def"
Expected: ✋ reject · Size: 1.7 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
A definition and a constructor with the same name
Test result: 🚫 declined · exit code 2 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/123_dup_rec_def"
Expected: ✋ reject · Size: 1.7 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
A definition and a recursor with the same name
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/124_dup_rec_def2"
Expected: ✋ reject · Size: 1.7 KB · Lines: 28 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
A definition with the name of a recursor, and the recursor named differently. This would pass simple checks for duplicate definitions in the parser, but should still be rejected by the checker.
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/125_dup_ctor_rec"
Expected: ✋ reject · Size: 1.5 KB · Lines: 24 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
A constructor and a recursor with the same name
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB
Test "tutorial/126_DupConCon"
Expected: ✋ reject · Size: 2.2 KB · Lines: 35 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source
An inductive with two constructors with the same name
Test result: 🚫 declined · exit code 2 · wall time: 4 ms · instructions: 4.7 M · max rss memory: 2.8 MB