Checker "kiota"
Version: 0.1.0 · 📄 Declaration · 🔗 Source
kiota — a from-scratch Lean 4 kernel in Rust that re-derives K-likeness and ι instead of trusting those export fields. Not a nanoda fork. Init and Std export corpora typecheck; mathlib, cslib, and cedar run on the nightly job (skip-on-ci).
71 ✅ 0 ❌ 0 🚫
124 ✅ 2 ❌ 4 🚫
18 ✅ 0 🚫
| Test | Expected | Result | ⏱️ | 🧠 | |||
|---|---|---|---|---|---|---|---|
| cedar | 👍 | 💥 | 15.2 m | 14.1 GB | |||
| con-leche | 👍 | 🚫 | 45.5 s | 869.9 MB | |||
| cslib | 👍 | ✋ | 34.3 m | 3.6 GB | |||
| init | 👍 | 🚫 | 2.1 m | 1004.1 MB | |||
| init-prelude | 👍 | 👍 | 198 ms | (-45%) | 57.2 MB | (-23%) | |
| mathlib | 👍 | ✋ | 32.7 m | 8.3 GB | |||
| std | 👍 | ⌛ | 0 ms | 0 B | |||
| 18 | 65 ms | 19.3 MB | |||||
| constlevels | ✋ | ✋ | 1 ms | 9.1 MB | |||
| ctor-num-fields | ✋ | ✋ | 1 ms | 9.2 MB | |||
| k-rec-conv | ✋ | ✋ | 1 ms | 9.3 MB | |||
| large-elim-param | ✋ | ✋ | 1 ms | 7.0 MB | |||
| large-elim-prop-bool | ✋ | ✋ | 1 ms | 9.2 MB | |||
| level-imax-leq | ✋ | ✋ | 1 ms | 6.9 MB | |||
| level-imax-normalization | ✋ | ✋ | 1 ms | 6.9 MB | |||
| nat-rec-k-lie | ✋ | ✋ | 1 ms | 7.2 MB | |||
| nat-rec-rules | ✋ | ✋ | 1 ms | 7.1 MB | |||
| nested-unused-param | ✋ | ✋ | 3 ms | 11.3 MB | |||
| orphan-rec | ✋ | ✋ | 1 ms | 6.9 MB | |||
| proj-non-structure | ✋ | ✋ | 1 ms | 7.0 MB | |||
| proj-of-imax-prop | ✋ | ✋ | 1 ms | 9.0 MB | |||
| proj-of-stuck-prop | ✋ | ✋ | 13 ms | 19.3 MB | |||
| proj-of-subst-prop | ✋ | ✋ | 13 ms | 19.3 MB | |||
| rec-k-lie | ✋ | ✋ | 1 ms | 7.1 MB | |||
| rec-missing-ih | ✋ | ✋ | 13 ms | 19.3 MB | |||
| rec-of-subst-prop | ✋ | ✋ | 12 ms | 17.0 MB | |||
| 1 | 27 ms | 11.4 MB | |||||
| alg-conv-trans-acc | 🤷 | ✋ | 3 ms | 11.4 MB | |||
| alg-conv-trans-acc-left | 🤷 | 👍 | 3 ms | 11.0 MB | |||
| alg-conv-trans-acc-right | 🤷 | 👍 | 3 ms | 11.0 MB | |||
| alg-conv-trans-quot | 🤷 | ✋ | 1 ms | 7.0 MB | |||
| alg-conv-trans-quot-left | 🤷 | 👍 | 1 ms | 9.2 MB | |||
| alg-conv-trans-quot-left-def | 🤷 | 👍 | 1 ms | 9.0 MB | |||
| alg-conv-trans-quot-right | 🤷 | 👍 | 1 ms | 9.0 MB | |||
| eta-ctor | 🤷 | ✋ | 1 ms | 6.9 MB | |||
| eta-rule-k | 🤷 | ✋ | 1 ms | 7.1 MB | |||
| imax-right-successor | 🤷 | 👍 | 1 ms | 6.8 MB | |||
| let-value-type-mismatch | 🤷 | ✋ | 1 ms | 6.8 MB | |||
| nested-nonuniform-param | 🤷 | 👍 | 1 ms | 7.0 MB | |||
| positivity-whnf | 🤷 | ✋ | 1 ms | 6.8 MB | |||
| proj-maybe-prop | 🤷 | 👍 | 1 ms | 7.1 MB | |||
| proj-maybe-prop-past | 🤷 | 👍 | 1 ms | 7.2 MB | |||
| proof-param-ok | 👍 | 👍 | 1 ms | 7.0 MB | |||
| proof-param-swap | 🤷 | 👍 | 1 ms | 6.8 MB | |||
| subject-reduction-redex | 🤷 | 👍 | 3 ms | 11.0 MB | |||
| subject-reduction-reduct | 🤷 | ✋ | 3 ms | 11.0 MB | |||
| 9 | 10 ms | 9.1 MB | |||||
| extra-rec | ✋ | ✋ | 1 ms | 6.8 MB | |||
| level-index-out-of-order | 👍 | 👍 | 1 ms | 6.8 MB | |||
| nat-lit-add | 👍 | 👍 | 2 ms | 9.1 MB | |||
| nat-lit-add-bad | ✋ | ✋ | 2 ms | 9.1 MB | |||
| nat-lit-ble | 👍 | 👍 | 2 ms | 9.1 MB | |||
| nat-lit-sub | 👍 | 👍 | 2 ms | 9.0 MB | |||
| orphan-ctor | ✋ | ✋ | 1 ms | 6.9 MB | |||
| proj-of-prop | ✋ | ✋ | 1 ms | 6.9 MB | |||
| sparse-name-index | 👍 | 👍 | 1 ms | 6.7 MB | |||
| 25 | 2.2 m | (+88%) | 7.1 GB | ||||
| app-lam | 👍 | 👍 | 160 ms | (÷30) | 261.5 MB | (÷5.5) | |
| args-before-unfold | 👍 | 👍 | 6 ms | (÷5.7) | 16.4 MB | (÷4.0) | |
| beta-ladder | 👍 | 👍 | 582 ms | (÷2.9) | 538.2 MB | (+7%) | |
| church-numerals | 👍 | 👍 | 5 ms | (÷8.9) | 15.5 MB | (÷5.0) | |
| discarded-argument | 👍 | 👍 | 5 ms | (÷31) | 11.4 MB | (÷5.8) | |
| discarded-argument-match | 👍 | 👍 | 27 ms | (÷4.6) | 21.6 MB | (÷3.2) | |
| folded-constant-first | 👍 | 👍 | 8 ms | (÷5.0) | 18.4 MB | (÷3.7) | |
| folded-constant-last | 👍 | 👍 | 8 ms | (÷5.0) | 18.3 MB | (÷3.8) | |
| fueled-chain | 👍 | 👍 | 56 ms | (-45%) | 31.2 MB | (÷2.4) | |
| grind-ring-5 | 👍 | 👍 | 4.2 s | (+96%) | 345.9 MB | (+52%) | |
| identical-nesting | 👍 | 👍 | 1 ms | (÷31) | 7.0 MB | (÷9.5) | |
| irrelevance-before-evaluation | 👍 | 👍 | 1 ms | (÷24) | 8.9 MB | (÷7.4) | |
| let-ladder | 👍 | 👍 | 585 ms | (-42%) | 528.2 MB | (+65%) | |
| magma-list-deep-n21 | 👍 | 👍 | 1.8 s | (-21%) | 307.7 MB | (-45%) | |
| magma-list-deep-n36 | 👍 | 👍 | 23.7 s | (-19%) | 3.7 GB | (-42%) | |
| magma-list-pair-n21 | 👍 | 👍 | 15.3 s | (-11%) | 7.1 GB | (+99%) | |
| magma-list-pair-n7 | 👍 | 👍 | 1.4 s | (-10%) | 559.2 MB | (+45%) | |
| magma-string-n4 | 👍 | 👍 | 38.8 s | (×11) | 279.1 MB | (×2.4) | |
| magma-string-pair-n9 | 👍 | 👍 | 44.9 s | (×5.9) | 944.2 MB | (+6%) | |
| refute-cheap-first | ✋ | ✋ | 1 ms | (÷32) | 9.1 MB | (÷7.6) | |
| refute-cheap-last | ✋ | ✋ | 9 ms | (÷19) | 11.3 MB | (÷6.1) | |
| repeated-subproblem | 👍 | 👍 | 1 ms | (÷24) | 9.2 MB | (÷7.1) | |
| shared-subterm | 👍 | 👍 | 19 ms | (÷3.0) | 20.3 MB | (÷3.6) | |
| shift-cascade | 👍 | 👍 | 3.5 s | (×77) | 384.6 MB | (×5.7) | |
| unroll-versus-evaluate | 👍 | 👍 | 8 ms | (÷3.9) | 18.4 MB | (÷3.6) | |
| 141 | 115 ms | 13.0 MB | |||||
| 001_basicDef | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 002_badDef | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 003_arrowType | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 004_dependentType | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 005_constType | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 006_betaReduction | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 007_betaReduction2 | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 008_forallSortWhnf | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 009_forallSortBad | ✋ | ✋ | 1 ms | 7.1 MB | |||
| 010_nonTypeType | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 011_nonTypeAxiom | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 012_nonPropThm | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 013_thmProof | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 014_selfProof | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 015_levelComp1 | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 016_levelComp2 | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 017_levelComp3 | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 018_levelParams | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 019_tut06_bad01 | ✋ | ✋ | 1 ms | 6.8 MB | |||
| 020_levelComp4 | 👍 | 👍 | 1 ms | 6.7 MB | |||
| 021_levelComp5 | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 022_imax1 | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 023_imax2 | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 024_levelMaxComm | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 025_levelMaxAssoc | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 026_levelMaxIdem | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 027_levelMaxAbsorb | 👍 | 👍 | 1 ms | 6.7 MB | |||
| 028_inferVar | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 029_defEqLambda | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 030_peano1 | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 031_peano2 | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 032_peano3 | 👍 | 👍 | 1 ms | 9.0 MB | |||
| 033_letType | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 034_letTypeDep | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 035_letRed | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 036_empty | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 037_boolType | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 038_twoBool | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 039_andType | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 040_prodType | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 041_pprodType | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 042_pUnitType | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 043_eqType | 👍 | 👍 | 1 ms | 6.7 MB | |||
| 044_natDef | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 045_rbTreeDef | 👍 | 👍 | 1 ms | 9.2 MB | |||
| 046_inductBadNonSort | ✋ | ✋ | 1 ms | 6.8 MB | |||
| 047_inductBadNonSort2 | ✋ | ✋ | 1 ms | 6.7 MB | |||
| 048_inductLevelParam | ✋ | ✋ | 1 ms | 6.8 MB | |||
| 049_inductTooFewParams | ✋ | ✋ | 1 ms | 6.8 MB | |||
| 050_inductWrongCtorParams | ✋ | ✋ | 1 ms | 6.7 MB | |||
| 051_inductWrongCtorResParams | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 052_inductWrongCtorResLevel | ✋ | ✋ | 1 ms | 6.8 MB | |||
| 053_inductInIndex | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 054_indNeg | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 055_reduceCtorParam.mk | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 056_reduceCtorType.mk | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 057_indNegReducible | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 058_predWithTypeField | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 059_typeWithTypeField | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 060_typeWithTypeFieldPoly | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 061_typeWithTooHighTypeField.mk | ✋ | ✋ | 1 ms | 6.6 MB | |||
| 062_emptyRec | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 063_boolRec | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 064_twoBoolRec | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 065_andRec | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 066_prodRec | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 067_pprodRec | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 068_punitRec | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 069_eqRec | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 070_nRec | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 071_rbTreeRef | 👍 | 👍 | 1 ms | 9.1 MB | |||
| 072_boolPropRec | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 073_BogusRecursor | ✋ | ✋ | 1 ms | 6.8 MB | |||
| 074_existsRec | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 075_typeSingletonRecReduction | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 076_sortElimPropRec | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 077_sortElimProp2Rec | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 078_boolRecEqns | 👍 | 👍 | 1 ms | 9.1 MB | |||
| 079_prodRecEqns | 👍 | 👍 | 1 ms | 9.0 MB | |||
| 080_nRecReduction | 👍 | 👍 | 1 ms | 9.1 MB | |||
| 081_listRecReduction | 👍 | 👍 | 1 ms | 9.2 MB | |||
| 082_RBTree.id_spec | 👍 | 👍 | 3 ms | 13.0 MB | |||
| 083_And.right | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 084_Prod.snd | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 085_PProd.snd | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 086_PSigma.snd | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 087_projOutOfRange | ✋ | ✋ | 1 ms | 7.1 MB | |||
| 088_projNotStruct | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 089_projProp1 | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 090_projProp2 | ✋ | ✋ | 1 ms | 7.1 MB | |||
| 091_projProp3 | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 092_projProp4 | ✋ | ✋ | 1 ms | 7.2 MB | |||
| 093_projProp5 | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 094_projProp6 | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 095_projDataIndexRec | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 096_projIndexData | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 097_projIndexData2 | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 098_projRed | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 099_ruleK | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 100_ruleKbad | ✋ | ✋ | 1 ms | 7.1 MB | |||
| 101_ruleKAcc | ✋ | ✋ | 1 ms | 9.1 MB | |||
| 102_aNatLit | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 103_natLitEq | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 104_proofIrrelevance | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 105_proofIrrelevanceBad | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 106_proofIrrelevanceWhnf | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 107_proofIrrelevanceUnderBinder | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 108_unitEta1 | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 109_unitEta2 | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 110_unitEta3 | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 111_indexedUnitEta | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 112_structEta | 👍 | 👍 | 1 ms | 9.0 MB | |||
| 113_indexedStructEta | ✋ | ✋ | 1 ms | 7.2 MB | |||
| 114_funEta | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 115_funEtaDep | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 116_funEtaBad | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 117_reflOccLeft | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 118_reflOccInIndex | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 119_reduceCtorParamRefl.mk | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 120_reduceCtorParamRefl2.mk | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 121_rTreeRec | 👍 | 👍 | 1 ms | 6.8 MB | |||
| 122_rtreeRecReduction | 👍 | 👍 | 1 ms | 9.0 MB | |||
| 123_accRecType | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 124_accRecReduction | 👍 | 👍 | 1 ms | 9.1 MB | |||
| 125_accRecNoEta | ✋ | ✋ | 1 ms | 9.1 MB | |||
| 126_quotMkType | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 127_quotIndType | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 128_quotLiftType | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 129_quotSoundType | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 130_quotLiftReduction | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 131_quotIndReduction | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 132_dup_defs | ✋ | ✋ | 1 ms | 6.7 MB | |||
| 133_dup_ind_def | ✋ | ✋ | 1 ms | 6.7 MB | |||
| 134_dup_ctor_def | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 135_dup_rec_def | ✋ | ✋ | 1 ms | 6.8 MB | |||
| 136_misnamed_rec_user | ✋ | ✋ | 1 ms | 6.6 MB | |||
| 137_dup_rec_def2 | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 138_dup_ctor_rec | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 139_DupConCon | ✋ | ✋ | 1 ms | 6.8 MB | |||
| 140_falseFromUnsafe | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 141_falseFromPartial | ✋ | ✋ | 1 ms | 6.7 MB |
Detailed results
Test "bugs/constlevels"
Expected: ✋ reject · Size: 15.3 KB · Lines: 283 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: ✋ rejected · exit code 1 · wall time: 43 ms · instructions: 7.0 M · max rss memory: 9.1 MB
stderr:
REJECT: [_test] let value type mismatch
Test "bugs/ctor-num-fields"
Expected: ✋ reject · Size: 34.1 KB · Lines: 622 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Proof of False via trusted numFields on a constructor.
Define a wrapper structure S with one field, and lie by saying it has 0 fields, making
it look unit-like. Then definitional eta means all inhabitants are equal.
Derive a contradiction from S.mk false = S.mk true.
Nanoda and its descendants accepted this until it was fixed.
Test result: ✋ rejected · exit code 1 · wall time: 8 ms · instructions: 6.4 M · max rss memory: 9.2 MB
stderr:
REJECT: [_private.Test.0.S.f] projection index out of range
Test "bugs/k-rec-conv"
Expected: ✋ reject · Size: 13.0 KB · Lines: 243 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Bogus proof that tests for incorrectly implemented K-like reduction.
fun x => x and fun _ => y are not convertible, but a checker that does treat them
as convertible would accept the resulting theorem bad, which is true propositionally, but not definitionally.
Regression test for sokonanoda.
Test result: ✋ rejected · exit code 1 · wall time: 8 ms · instructions: 7.0 M · max rss memory: 9.3 MB
stderr:
REJECT: [bad] theorem 61: value type does not match declared type
Test "bugs/large-elim-param"
Expected: ✋ reject · Size: 6.2 KB · Lines: 88 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration
Proof of False via incorrect large elimination restriction.
If the check for whether a level is surely not zero is implemented wrong, in particular if it incorrectly returns true for params, we can create a universe-polymorphic
inductive MyBool.{u} : Sort u | tt | ff
where the recursor MyBool.rec.{1,0} can do large elimination of a Prop.
Because of proof irrelevance we have tt = ff, so we can derive a
contradiction.
Found by Anthony Wang using Aristotle, breaking the mini checker for the
T-shirt bounty; it was
fixed the same day.
Test result: ✋ rejected · exit code 1 · wall time: 8 ms · instructions: 4.8 M · max rss memory: 7.0 MB
stderr:
REJECT: [MyBool] recursor `MyBool.rec` allows large elimination out of a Prop-valued inductive that is not a subsingleton
Test "bugs/large-elim-prop-bool"
Expected: ✋ reject · Size: 22.6 KB · Lines: 438 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Proof of False by allowing a Prop inductive to have the same recursor
that the corresponding Type inductive would have.
Proof irrelevance makes .tt = .ff, but pick distinguishes between them.
Kiota accepted this until it was fixed.
Test result: ✋ rejected · exit code 1 · wall time: 8 ms · instructions: 7.5 M · max rss memory: 9.2 MB
stderr:
REJECT: [NewBool] recursor `NewBool.rec` allows large elimination out of a Prop-valued inductive that is not a subsingleton
Test "bugs/level-imax-leq"
Expected: ✋ reject · Size: 5.6 KB · Lines: 93 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration
Proof of False via incorrect universe level comparison for imax.
A correct kernel must reject leq(imax(u,v)+1, imax(u,v)), since at u=0, v=0 this becomes
leq(1, 0) which is false. However, a checker that only compares the imax arguments
structurally (without accounting for an accumulated successor offset) will incorrectly accept it.
This allows defining a universe-collapsing identity function
down.{u,v} : Sort (succ (imax u v)) → Sort (imax u v), which is used to cast between
True and False via Bool.rec at Sort (imax 0 0) = Prop.
Nanoda incorrectly accepted this proof until it was fixed.
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.8 M · max rss memory: 6.9 MB
stderr:
REJECT: [down] def 11: value type does not match declared type
Test "bugs/level-imax-normalization"
Expected: ✋ reject · Size: 5.8 KB · Lines: 96 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration
Proof of False via incorrect universe level normalization for imax.
A correct kernel must distinguish imax 0 v from succ(imax 0 v), since at v=0 these
evaluate to 0 and 1 respectively. However, a level normalization algorithm that drops an
accumulated successor offset when decomposing imax u (param v) will produce identical normal
forms for both, causing the equivalence check to incorrectly return true.
This allows defining a universe-collapsing identity function
down.{v} : Sort (succ (imax 0 v)) → Sort (imax 0 v), and then
myProp : Prop := down.{0} Bool (a Prop that is computationally Bool). Proof irrelevance on
myProp equates Bool.true and Bool.false, and Bool.rec maps this into False.
Test result: ✋ rejected · exit code 1 · wall time: 7 ms · instructions: 4.8 M · max rss memory: 6.9 MB
stderr:
REJECT: [down] def 11: value type does not match declared type
Test "bugs/nat-rec-k-lie"
Expected: ✋ reject · Size: 6.3 KB · Lines: 106 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration
Proof of False via trusted k on Nat.rec.
Lie by claiming Nat.rec is K-like. Then replace the major premise by Nat.zero,
but nat literals bypasses K-like reduction, so two reduction rules disagree.
∀ n, g n holds by the first, and g 1 is False by the second.
A variant of bugs/rec-k-lie, which nanoda and its descendants accepted until it
was fixed; at that time, nanoda
itself rejected this variant, as it had no literal path for Nat.rec.
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 5.2 M · max rss memory: 7.2 MB
stderr:
REJECT: [k1] theorem 29: value type does not match declared type
Test "bugs/nat-rec-rules"
Expected: ✋ reject · Size: 8.1 KB · Lines: 128 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration
Proof of False via incorrect recursor rule validation.
When processing an inductive type declaration, a correct kernel must verify that the generated recursor rules match the ones provided in the export data. A checker that accidentally compares the imported rules against themselves (instead of against independently constructed rules) will accept arbitrary recursor reduction behavior.
This test defines Nat with a wrong Nat.rec succ rule that always returns hzero (ignoring
the induction hypothesis). Combined with a nat literal extension that hardcodes correct
arithmetic for concrete nat literals but falls back to the wrong Nat.rec rules for symbolic
arguments, this creates an inconsistency that yields a proof of False.
Nanoda incorrectly accepted this proof until it was fixed.
Test result: ✋ rejected · exit code 1 · wall time: 7 ms · instructions: 5.5 M · max rss memory: 7.1 MB
stderr:
REJECT: [proof_of_false] application argument type mismatch
Test "bugs/nested-unused-param"
Expected: ✋ reject · Size: 59.2 KB · Lines: 1.1 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Checks that the parameters of a nested inductive application are type-checked even when they do not appear in the auxiliary type generated during nested-inductive compilation.
When an inductive E has a constructor whose type contains a nested
application L (E w) b, the elaboration of nested inductives replaces that
occurrence with an auxiliary type. The argument b does not occur in the
auxiliary declaration, so a checker that only checks the auxiliary type never
sees b. A correct checker must still ensure b is well-typed; this test
rejects if it is not.
Here b is a malformed projection C.0 (C.0 w) (applying a C projection to
a value of the unrelated structure W), disguised by a hash collision. If the
parameter is not checked, the bogus projection slips through and the resulting
E can be used to build an axiom-free proof of False (boom). The
projection is merely the payload; the property under test is that the
nested-inductive parameter is checked.
Origin: reported as leanprover/lean4#14576 by @kiranandcode, with the original source recorded by @xrchz (https://github.com/xrchz/collatzlean); fixed in leanprover/lean4#14577.
Test result: ✋ rejected · exit code 1 · wall time: 9 ms · instructions: 17.2 M · max rss memory: 11.3 MB
stderr:
REJECT: [E] projection struct name mismatch
Test "bugs/orphan-rec"
Expected: ✋ reject · Size: 1.4 KB · Lines: 21 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration
Proof of False from a recursor that claims not to belong to any inductive
type.
The export contains False exactly as the prelude has it — an empty
Prop-valued inductive with no constructors — together with its ordinary
False.rec. Smuggled into the same inductive block is a second recursor,
named rogue, whose type is False itself, which has no motives, no minor
premises and no rules, and whose all field is the empty list. The theorem
inconsistent : False is then simply rogue.
This is the sibling of other/extra-rec, and it defeats the obvious fix for it. A
checker that associates each exported recursor with the inductive type named
in its all field, and then requires the recursors so associated with an
inductive type to be exactly the ones it derives from that declaration, still
accepts rogue: False is associated with False.rec and nothing else, and
rogue is associated with nothing at all, so no comparison ever looks at it —
yet it is added to the environment and inhabits the genuine empty type.
A checker must therefore reject any recursor it did not itself derive from an
inductive declaration, rather than only checking the recursors that point at
one. The same hole is reachable by pointing all at a name that has no
declaration in the export (that variant is what other/orphan-ctor does on the
constructor side).
Nanoda accepted this export until it was fixed.
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.2 M · max rss memory: 6.9 MB
stderr:
REJECT: recursor `rogue` type telescope length 0 != 1
Test "bugs/proj-non-structure"
Expected: ✋ reject · Size: 5.0 KB · Lines: 75 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Bad has two constructors, so projections should not be allowed.
Prove false by using the second constructor, then projecting, hoping that the
first constructor is used when inferring the type of the projection.
Nanoda and its descendants accepted this until it was fixed.
Test result: ✋ rejected · exit code 1 · wall time: 7 ms · instructions: 4.8 M · max rss memory: 7.0 MB
stderr:
REJECT: [bad] projection: not a single-constructor inductive
Test "bugs/proj-of-imax-prop"
Expected: ✋ reject · Size: 19.3 KB · Lines: 321 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A closed proof of False, with no axioms, via a data projection out of a
proposition whose sort is Prop only up to universe level normalization.
ImaxProp : Sort (imax 1 0) is a proposition, since imax 1 0 normalizes to 0.
The exploit uses two definitionally equal spellings of that type. Proof
irrelevance is stated through ImaxAsProp : Prop := ImaxProp, whose type is the
literal Sort 0, so it is accepted; the data projection imaxProjBool is stated
on ImaxProp, whose type is the literal Sort (imax 1 0). A kernel that tests
sorts for Prop syntactically does not recognize the latter as a proposition and
wrongly allows projecting its Bool field out of a proof. Congruence on the
proof-irrelevance equation then equates false and true, giving False.
This is https://github.com/leanprover/lean4/pull/14613, a bug in the official kernel.
Test result: ✋ rejected · exit code 1 · wall time: 7 ms · instructions: 6.6 M · max rss memory: 9.0 MB
stderr:
REJECT: [imaxProjBool] cannot project a Type field from a Prop structure
Test "bugs/proj-of-stuck-prop"
Expected: ✋ reject · Size: 275.9 KB · Lines: 5.3 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Proof of False by projecting the Bool field out of a proposition, exploiting
that a kernel can disagree with itself about whether the structure lives in
Prop.
Same underlying defect as bugs/rec-missing-ih, but with a different consequence.
Mechanism
-
Definitional equality is not transitive here. Three functions
Bool → Boolare built fromAcc.recsuch that a kernel reportsrcA ≡ rcBandrcB ≡ rcC— both by proof irrelevance on theAccargument — whilercA ≢ rcC, because there the twoAccproofs have different types. -
In the affected kernels, the defeq cache closes that relation transitively, but only for hash-equal terms. Established equalities are kept in a union-find structure, and the comparison returns early, without consulting it, when the hashes differ:
~~~cpp if (is_eqp(a, b)) return true; if (m_use_hash && hash(a) != hash(b)) return false; // skips the union-find ... node_ref r1 = find(to_node(a)); node_ref r2 = find(to_node(b)); if (r1 == r2) return true; ~~~
So whether
rcA ≡ rcCholds depends on the hash of the surrounding term. The constants and paddings are chosen so that the hashes collide exactly when the argument is the free variable_kernel_fresh.0, and not for the closed instantiation used later. -
That comparison decides a result sort.
Native64ResultSortGateis a K-like inductive predicate, and its recursor is used as the result sort of the inductive familyNative64ResultSortOwner: the sortGate.rec x … Prop requested hreduces toProponly if the requested indices are definitionally equal to the ones ofGate.intro. HenceOwner x his a proposition in one context and a stuck sort in another:Native64ResultSort.asPropis checked against a constant standing for∀ x h, Prop, so the kernel introduces_kernel_fresh.0forx, the hashes collide,Owner x h : Propis accepted, andNative64ResultSortLeak.propositionis aPropfor every later declaration — including for proof irrelevance.Native64ResultSortLeak.observeprojects field 0 out of that proposition. There the sort of the closed termOwner false closedGateis needed, and that one is stuck — the affected kernels answerfalsewhen asked whether it is definitionally equal toProp— so they do not see a proposition and permit projecting out theBoolfield.
Proof irrelevance then identifies two Owner.mk applications carrying
different Bool fields, and observing them yields False. The affected
kernels rejected Native64ResultSortOwner with type expected as soon as the
hashes no longer collided.
This was accepted by the official kernel at v4.28.0, v4.29.1, v4.33.0 and
nightly-2026-08-01. Other kernels reject the export in one of two places:
either they refuse Native64ResultSortOwner because its result type does not
reduce to a sort, or they accept the type but refuse the projection of a data
field out of a proposition.
Both steps are ruled out now: the projection by
leanprover/lean4#14807, which
makes the kernel's is_prop check require the inferred type to reduce to a
sort, and the hash-gated transitivity of step 2 by
leanprover/lean4#14806, which
replaces the union-find defeq cache with an order-independent one. The same
projection, reached without any help from that cache, is bugs/proj-of-subst-prop.
Test result: ✋ rejected · exit code 1 · wall time: 16 ms · instructions: 76.3 M · max rss memory: 19.3 MB
stderr:
REJECT: [Native64ResultSortOwner] expected a sort
Test "bugs/proj-of-subst-prop"
Expected: ✋ reject · Size: 255.6 KB · Lines: 4.9 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Proof of False by projecting the Bool field out of a proposition, reached by
substituting a proof of one proposition for a proof of a definitionally equal
one.
Mechanism
-
Definitional equality is not transitive here.
a,bandcare threeBools built fromAcc.recsuch that a kernel reportsa ≡ bandb ≡ c— both by proof irrelevance on theAccargument, the latter after some iota steps — whilea ≢ c, because there the twoAccproofs have different types (Acc (· < ·) 1vs.Acc (· < ·) 0). -
So
P := a = bandQ := a = care definitionally equal types whose proofs behave differently.gate h := Eq.rec (motive := fun _ _ => Type) Prop hK-reduces toPropforh : P, because that reduction only needs the type ofhto be definitionally equal to the typea = aofEq.refl a, i.e.b ≡ a. For the closedwitness : Qit stays stuck, since that would needc ≡ a. -
An inductive family is declared over the reducing side and used on the stuck one.
Owner : ∀ (h : P), gate his accepted as a family of propositions — its recursor only eliminates intoProp.Owner witnessis well-typed, sinceQ ≡ P, but its sort does not reduce toProp, so the projectionobserveis permitted to extract theBoolfield from an inhabitant.
Proof irrelevance then identifies two Owner.mk applications carrying
different Bool fields, and observing them yields False, with no axioms
involved.
Unlike bugs/rec-missing-ih and bugs/proj-of-stuck-prop, this needs no interference
from the definitional-equality cache: every comparison above comes out the same
way in a fresh type-checker session, so it is independent of whether, and how,
such a cache is keyed. What it does need is that the sort of an inductive
family is re-examined after a substitution that definitional equality permits.
The projection in the last step is ruled out by
leanprover/lean4#14807, which
makes the kernel's is_prop check require the inferred type to reduce to a
sort: a stuck sort then raises (kernel) type expected instead of answering
that the type is not a proposition.
Test result: ✋ rejected · exit code 1 · wall time: 15 ms · instructions: 75.0 M · max rss memory: 19.3 MB
stderr:
REJECT: [PR14806Subst.Owner] expected a sort
Test "bugs/rec-k-lie"
Expected: ✋ reject · Size: 5.3 KB · Lines: 87 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
False theorem via trusted k on a recursor.
Define MyBool with two constructors, and lie by claiming its recursor is K-like,
so the major premise is replaced by the first constructor without being examined.
disc MyBool.true is then True rather than False.
MyBool rather than Bool because a module that overwrites an imported constant
cannot be re-imported by the exporter.
Nanoda and its descendants accepted this until it was fixed.
Test result: ✋ rejected · exit code 1 · wall time: 8 ms · instructions: 5.0 M · max rss memory: 7.1 MB
stderr:
REJECT: [bad] theorem 30: value type does not match declared type
Test "bugs/rec-missing-ih"
Expected: ✋ reject · Size: 289.6 KB · Lines: 5.5 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration
Proof of False from a generated recursor whose reduction rule drops the
induction hypothesis.
Mechanism
-
Definitional equality is not transitive here. The test builds three functions
Bool → BoolfromAcc.recfor which a kernel reportsrcA ≡ rcBandrcB ≡ rcC— both by proof irrelevance on theAccargument, the latter after some iota steps — butrcA ≢ rcC, because there the twoAccproofs have different types (Acc (· < ·) 1vs.Acc (· < ·) 0). -
In the affected kernels, the defeq cache closes that relation transitively, but only for hash-equal terms. Established equalities are kept in a union-find structure, and the comparison returns early, without consulting it, when the hashes differ:
~~~cpp if (is_eqp(a, b)) return true; if (m_use_hash && hash(a) != hash(b)) return false; // skips the union-find ... node_ref r1 = find(to_node(a)); node_ref r2 = find(to_node(b)); if (r1 == r2) return true; ~~~
So whether
rcA ≡ rcCholds depends on the hash of the surrounding term. The three constants and the two paddings are picked so that the hashes collide for the free variables that the affected implementations create while building the minor premises of the recursor (_ind_fresh.3,_ind_fresh.9), but not for the pass that builds the recursor rules (_ind_fresh.14). -
A K-like reduction is made to depend on that comparison.
Native64TwoHashGateis a K-like inductive predicate (one parameter, fourBoolindices, one field-less constructor pinning the indices), so reducingGate.rec … hrequires the indices ofh's type to be definitionally equal to the ones ofGate.intro's result type.Native64TwoHashOwner.stephas a recursive argument whose type is such aGate.recapplication, which therefore reduces toOwnerin one pass but not in the other.
The resulting Native64TwoHashOwner.rec has a step minor premise expecting
four arguments (including the induction hypothesis) but a rule that applies it
to only three, so the ih binder swallows the next argument. That makes the
Prop-valued badProp reduce to Bool, and a Prop with two
distinguishable inhabitants gives False.
Affected kernels not only accept these declarations, they also re-derive the
same broken recursor when replaying the export data. This was the case for
the official kernel at v4.28.0, v4.29.1, v4.33.0 and nightly-2026-08-01.
Kernels that construct the recursor independently reject the export, mostly
with an error about Native64TwoHashOwner.step having an invalid occurrence of
the datatype being declared — which is also what the affected kernels reported
as soon as one of the hashes no longer collided.
Fixed by leanprover/lean4#14806, which replaces the union-find defeq cache with an order-independent one, so that a hash collision can no longer make a comparison succeed that fails on its own.
Test result: ✋ rejected · exit code 1 · wall time: 16 ms · instructions: 77.2 M · max rss memory: 19.3 MB
stderr:
REJECT: [Native64TwoHashOwner] occurrence of inductive type in unsupported position
Test "bugs/rec-of-subst-prop"
Expected: ✋ reject · Size: 270.3 KB · Lines: 5.1 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Proof of False from a Prop that carries a Type field, recovered through
the recursor instead of a projection.
A second variant of bugs/proj-of-subst-prop, sharing its first two steps:
-
Definitional equality is not transitive on three
Bools built fromAcc.rec—gateA ≡ gateBandgateB ≡ gateCby proof irrelevance on theAccargument, butgateA ≢ gateC— soGateP := gateA = gateBandGateQ := gateA = gateCare definitionally equal types whose proofs behave differently underEq.rec.resultSort hK-reduces toPropfor a variableh : GatePand stays stuck for the closedgateWitness : GateQ. -
Issue.Owner : ∀ (h : GateP), resultSort his therefore accepted as a family of propositions whose constructor carries a fieldA : Type, whileOwner gateWitness— well-typed, sinceGateQ ≡ GateP— has a sort that does not reduce toProp.
Where bugs/proj-of-subst-prop then projects the field out, this variant eliminates
Owner with its own Prop-only recursor into Fiber X := Acc emptyTypeRel X,
which is a proposition, and recovers the data from there: Acc.rec eliminates
Acc into Type, and propext transports an Acc proof between two Fiber
types. Proof irrelevance identifies Owner.mk gateWitness Empty with
Owner.mk gateWitness Unit, so the identity function of one type is applied to
a value of the other, and Empty becomes inhabited. The proof of False uses
propext and no other axiom.
Because no projection is involved, the guard that stops bugs/proj-of-subst-prop —
refusing to project a data field out of a proposition — never fires here. A
checker has to refuse the substitution, or the stuck result sort of
Issue.Owner, instead.
Both variants are ruled out by
leanprover/lean4#14807, which
makes the kernel's is_prop check require the inferred type to reduce to a
sort: Issue.Owner is then rejected with (kernel) type expected.
The exploit is by Daniel Selsam (OpenAI), generated with OpenAI's internal models, and is the regression test added in leanprover/lean4#14847.
Test result: ✋ rejected · exit code 1 · wall time: 16 ms · instructions: 71.5 M · max rss memory: 17.0 MB
stderr:
REJECT: [Issue.Owner] expected a sort
Test "cedar"
Expected: 👍 accept · Size: 790.9 MB · Lines: 14.6 M · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: 💥 error · exit code 137 · wall time: 13.6 m · instructions: 5.5 T · max rss memory: 14.1 GB
stderr:
[decl #100] theorem Nat.le.brecOn [decl #200] def UInt8.ofNat [decl #300] theorem Nat.le_add_right [decl #400] def String.toByteArray [decl #500] def DecidableRel [decl #600] def UInt64.toBitVec [decl #700] def _private.Init.Data.Nat.Lemmas.0.Nat.shiftRight_succ_inside.match_1_1 [decl #800] theorem Nat.exists_ge_and_testBit_of_ge_two_pow [decl #900] def Nat.Linear.Var.denote [decl #1000] def UInt8.land [decl #1100] def _private.Init.Data.Nat.Lemmas.0.Nat.add_right_cancel_iff.match_1_1 [decl #1200] def _private.Init.Data.Int.Lemmas.0.Int.negSucc_ne_zero.match_1_1 [decl #1300] def Lean.Omega.Constraint.div [decl #1400] theorem Lean.Omega.IntList.gcd_cons_div_right [decl #1500] def _private.Init.Data.Int.DivMod.Bootstrap.0.Int.emod_add_mul_ediv.match_1_1 [decl #1600] theorem _private.Init.Data.BitVec.Bootstrap.0.BitVec.getLsbD_of_ge._proof_1_3 [decl #1700] def Nat.digitChar [decl #1800] def BitVec.instHShiftLeftNat [decl #1900] theorem Std.IsLinearOrder.toIsLinearPreorder [decl #2000] theorem _private.Init.Data.Int.Pow.0.Int.pow_succ._simp_1_2 [decl #2100] theorem _private.Init.Data.Nat.Bitwise.Lemmas.0.Nat.le_of_testBit._proof_1_1 [decl #2200] def Array.foldl [decl #2300] theorem BitVec.getLsbD_shiftLeft [decl #2400] def _private.Init.Data.Nat.MinMax.0.Nat.min_comm.match_1_1 [decl #2500] theorem List.length_append [decl #2600] theorem BitVec.getElem_cast._proof_2 [decl #2700] theorem eq_comm [decl #2800] theorem _private.Init.Data.String.Decode.0.utf8DecodeChar?_eq_assemble₂._proof_1 [decl #2900] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.toBitVec_eq_of_parseFirstByte_eq_twoMore [decl #3000] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.assemble₄_eq_some_iff_utf8EncodeChar_eq._simp_1_12 [decl #3100] theorem _private.Init.Data.String.Decode.0.utf8DecodeChar?_append_eq_assemble₃._proof_1 [decl #3200] theorem List.utf8DecodeChar?_utf8Encode_singleton_append [decl #3300] def _private.Cedar.Spec.Ext.IPAddr.0.Cedar.Spec.Ext.IPAddr.IPNetPrefix.toNat.match_1 [decl #3400] def Cedar.Spec.Value.ctorElim [decl #3500] theorem _private.Cedar.Spec.Ext.0.Cedar.Spec.instDecidableEqExt.decEq._proof_9 [decl #3600] def Std.DTreeMap.Internal.Impl.Ordered [decl #3700] theorem Std.DTreeMap.Internal.Impl.balanceL!.match_5.congr_eq_2 [decl #3800] theorem _private.Std.Data.DTreeMap.Internal.Balancing.0.Std.DTreeMap.Internal.Impl.balance!_eq_balanceₘ._proof_1_42 [decl #3900] theorem Std.DTreeMap.Internal.Impl.balanceₘ.eq_def [decl #4000] theorem Std.DTreeMap.Internal.Impl.balanceR!.match_1.congr_eq_4 [decl #4100] theorem Std.DTreeMap.Internal.Impl.minView._proof_23 [decl #4200] theorem Std.DTreeMap.Internal.Impl.BalancedAtRoot.adjust_right [decl #4300] theorem _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.link2._proof_9 [decl #4400] theorem _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.link._proof_24 [decl #4500] def Cedar.Validation.CedarType._sizeOf_1 [decl #4600] theorem _private.Cedar.Validation.Types.0.Cedar.Validation.decCedarType._mutual._proof_71 [decl #4700] def Except.map.match_1 [decl #4800] theorem USize.toNat.eq_1 [decl #4900] def compareOfLessAndEq [decl #5000] theorem _private.Init.Data.Array.Lemmas.0.Array.mapM.eq_1 [decl #5100] def Lean.Level.brecOn.go [decl #5200] def Lean.Elab.Term.Context.autoBoundImplicitForbidden [decl #5300] def HasEquiv.Equiv [decl #5400] theorem Std.DTreeMap.Internal.Impl.applyPartition._proof_4 [decl #5500] def _private.Init.Data.List.Sublist.0.List.cons_sublist_cons.match_1_1 [decl #5600] theorem Std.DTreeMap.Internal.Impl.toListModel_filter_gt_of_gt [decl #5700] theorem Std.DTreeMap.Internal.Impl.updateCell._proof_42 [decl #5800] theorem Std.DTreeMap.Internal.Impl.ordered_erase [decl #5900] def _private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.toListModel_insertMax.match_1_1 [decl #6000] theorem Std.Internal.List.DistinctKeys.tail [decl #6100] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.getMsbD_ushiftRight._proof_1_2 [decl #6200] theorem _private.Init.Data.List.Lemmas.0.List.getElem?_eq_some_iff._simp_1_5 INTERN_CALLS 100000000 nodes=1082301 INTERN_CALLS 200000000 nodes=4414777 [decl #6300] theorem _private.Std.Data.DHashMap.Internal.Defs.0.PSigma.casesOn._arg_pusher [decl #6400] theorem Std.DHashMap.Internal.Raw₀.containsThenInsertIfNew_eq_insertIfNewₘ INTERN_CALLS 300000000 nodes=2610704 INTERN_CALLS 400000000 nodes=3671697 [decl #6500] theorem Std.DHashMap.Internal.Raw₀.isHashSelf_filterₘ INTERN_CALLS 500000000 nodes=2113094 [decl #6600] theorem Std.DHashMap.Internal.Raw₀.isHashSelf_updateBucket_alter INTERN_CALLS 600000000 nodes=1420822 INTERN_CALLS 700000000 nodes=1008531 [decl #6700] theorem Std.DHashMap.Internal.Raw.WF.out [decl #6800] theorem String.Pos.Raw.ext [decl #6900] theorem List.cons_prefix_cons._simp_1 [decl #7000] theorem ByteArray.IsValidUTF8.isUTF8FirstByte_getElem_zero [decl #7100] def Lean.Core.instMonadCoreM [decl #7200] def IO.Error.toString [decl #7300] def Lean.Exception.isRuntime [decl #7400] theorem Array.append_inj' [decl #7500] theorem ByteArray.append_left_inj._simp_1 [decl #7600] def Std.IterM.toIter [decl #7700] theorem Classical.ofNonempty._proof_1 [decl #7800] def Std.IterM.IsPlausibleOutput [decl #7900] def Lean.Meta.Context.synthPendingDepth [decl #8000] def Lean.MVarId.intro1P [decl #8100] theorem Int.natCast_add_one [decl #8200] theorem _private.Init.Core.0.Quotient.rel_of_eq [decl #8300] theorem _private.Init.Data.List.Perm.0.List.Perm.eq_of_pairwise._simp_1_3 [decl #8400] theorem Subtype.exists._simp_1 [decl #8500] def Lean.Parser.TokenTable [decl #8600] theorem String.Pos.Raw.instLinearOrderPackage._proof_10 [decl #8700] def Lean.Kernel.Environment.quotInit [decl #8800] def Std.HashMap.get! [decl #8900] def List.forIn'.loop.match_3 [decl #9000] theorem _private.Cedar.SymCC.Term.0.Cedar.SymCC.Term.hasDecEq._proof_2 [decl #9100] theorem _private.Cedar.SymCC.TermType.0.Cedar.SymCC.TermType.hasDecEq._proof_19 [decl #9200] def Cedar.SymCC.Op.uuf.elim [decl #9300] def _private.Cedar.SymCC.Term.0.Cedar.SymCC.Term.hasListProdDec.match_1 [decl #9400] def Cedar.SymCC.Factory.ite.match_1 [decl #9500] theorem Std.DTreeMap.Internal.Impl.Equiv.maxKey_eq [decl #9600] theorem _private.Init.Data.Range.Polymorphic.Instances.0.Std.instLawfulUpwardEnumerableLTOfLawfulUpwardEnumerableOfLawfulUpwardEnumerableLEOfLawfulOrderLT._simp_1 [decl #9700] theorem WellFounded.transGen [decl #9800] theorem _private.Init.Data.Iterators.Lemmas.Consumers.Loop.0.Std.Iter.mem_toList_iff_isPlausibleIndirectOutput._simp_1_2 [decl #9900] def Int8.maxValue [decl #10000] theorem _private.Init.Data.Range.Polymorphic.Internal.SignedBitVec.0.BitVec.Signed.sle_iff_rotate_le_rotate._proof_1_10 [decl #10100] theorem Int8.toBitVec_inj [decl #10200] theorem Int.natCast_pow [decl #10300] theorem BitVec.succ?_eq_none [decl #10400] theorem List.forIn_cons INTERN_CALLS 800000000 nodes=3066999 [decl #10500] theorem _private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.Internal.List.interSmaller.eq_1 [decl #10600] def Cedar.SymCC.TermType._sizeOf_3 [decl #10700] def Lean.MonadCacheT.instMonad._aux_9 [decl #10800] theorem Std.DTreeMap.Internal.Impl.self_le_maxKey_insertIfNew INTERN_CALLS 900000000 nodes=1974377 [decl #10900] theorem Std.DHashMap.Internal.Raw₀.toListModel_diffₘ [decl #11000] theorem Ordering.then_self [decl #11100] theorem _private.Cedar.Spec.Wildcard.0.Cedar.Spec.wildcardMatchIdx._proof_5 [decl #11200] def Cedar.Spec.call._sparseCasesOn_4 [decl #11300] def Char.le [decl #11400] def instMonadExceptOfExcept [decl #11500] theorem Int.neg_ofNat_eq_negSucc_add_one_iff [decl #11600] def Std.Time.Modifier.casesOn [decl #11700] def Std.Time.Internal.UnitVal.add [decl #11800] def Std.Time.Internal.Bounded.LE.emod [decl #11900] theorem _private.Std.Time.DateTime.PlainDateTime.0.Std.Time.PlainDateTime.ofTimestampAssumingUTC._proof_16 [decl #12000] def Std.Time.GenericFormat.string [decl #12100] def Cedar.Spec.Ext.Datetime.Duration.toSeconds [decl #12200] theorem Std.DHashMap.Internal.Raw₀.wf_filterMap₀ INTERN_CALLS 1000000000 nodes=2062846 [decl #12300] theorem _private.Std.Data.DHashMap.Basic.0.Std.DHashMap.Const.insertManyIfNewUnit._proof_1 INTERN_CALLS 1100000000 nodes=3645221 [decl #12400] def Std.Rxc.Iterator.upperBound [decl #12500] def _private.Init.Data.List.Scan.Basic.0.List.scanAuxM.go [decl #12600] def Lean.NoConfusionInfo.regular.noConfusion [decl #12700] def Lean.instMonadTraceOfMonadLift [decl #12800] def Lean.PrettyPrinter.Parenthesizer.trailingNode.parenthesizer [decl #12900] def _private.Lean.Parser.Types.0.Lean.Parser.ParserState.mkErrorsAt._sparseCasesOn_1 [decl #13000] def _private.Cedar.Validation.RequestEntityValidator.0.Cedar.Validation.instanceOfType.match_5 [decl #13100] theorem _private.Init.Data.String.Basic.0.String.Slice.Pos.lt_next._simp_1_2 [decl #13200] def Substring.Raw.toString [decl #13300] theorem String.Slice.Pattern.CharPred.instBackwardPatternForallCharBool._proof_4 [decl #13400] def Lean.Parser.rawStrLitFnAux [decl #13500] def Lean.PrettyPrinter.Formatter.notFollowedBy.formatter [decl #13600] def Lean.PrettyPrinter.Formatter.optionalNoAntiquot.formatter [decl #13700] def Cedar.Thm.Entities.HasAllActions [decl #13800] def Cedar.Spec.Expr.or.elim [decl #13900] theorem _private.Cedar.Spec.Expr.0.Cedar.Spec.decExpr._proof_79 [decl #14000] theorem _private.Cedar.Spec.Expr.0.Cedar.Spec.decExpr._proof_128 [decl #14100] def _private.Cedar.Validation.Subtyping.0.Cedar.Validation.lub?._sparseCasesOn_2 [decl #14200] theorem _private.Cedar.Validation.Typechecker.0.Cedar.Validation.typeOf._unary._proof_15 [decl #14300] theorem _private.Init.Data.List.Monadic.0.List.mapM_cons._simp_1_1 [decl #14400] theorem _private.Cedar.Validation.TypedExpr.0.Cedar.Validation.decTypedExpr._proof_65 [decl #14500] def _private.Cedar.Validation.TypedExpr.0.Cedar.Validation.decTypedExpr.match_15 [decl #14600] def _private.Cedar.Thm.WellTyped.Expr.TypeLifting.0.Cedar.Validation.CedarType.liftBoolTypes.match_1.splitter._sparseCasesOn_4 [decl #14700] theorem Cedar.Validation.CedarType.brecOn_2.eq [decl #14800] theorem _private.Cedar.Validation.Typechecker.0.Cedar.Validation.typeOfEq._sparseCasesOn_3.else_eq [decl #14900] theorem Pi.instSubsingleton [decl #15000] theorem List.map.eq_def [decl #15100] theorem Cedar.Thm.substitute_action_preserves_evaluation._unary [decl #15200] def Cedar.Spec.Ext.IPAddr.instInhabitedCIDR [decl #15300] theorem List.le_refl [decl #15400] theorem _private.Cedar.Thm.Data.List.Canonical.0.List.insertCanonical_cases._simp_1_3 [decl #15500] def _private.Cedar.Thm.Validation.Typechecker.And.0.Cedar.Validation.typeOfAnd.match_1.splitter [decl #15600] theorem beq_eq_false_iff_ne._simp_1 [decl #15700] def _private.Cedar.Thm.Validation.Typechecker.BinaryApp.Contains.0.Cedar.Validation.typeOfBinaryApp.match_3.splitter._sparseCasesOn_26 INTERN_CALLS 1200000000 nodes=3007895 [decl #15800] theorem Cedar.Spec.Prim.entityUID.inj [decl #15900] theorem _private.Cedar.Thm.Data.List.Lemmas.0.List.mapM'_some_iff_forall₂._simp_1_2 [decl #16000] theorem _private.Cedar.Thm.Data.LT.0.Cedar.Spec.Value.lt.eq_16 [decl #16100] theorem Cedar.Thm.type_of_mem_is_soundₛ._simp_1_43 [decl #16200] def Option.decidableEqNone [decl #16300] def Cedar.Thm.type_of_set_inversion.match_1_12 [decl #16400] def Cedar.Thm.IsDecimalComparator [decl #16500] def Cedar.Thm.type_of_call_toTime_is_sound.match_1_1 [decl #16600] theorem Cedar.Thm.type_of_ok_list [decl #16700] def Int.Linear.Poly.below [decl #16800] def Int.Linear.le_of_le_diseq_cert [decl #16900] theorem Lean.Grind.Ring.OfSemiring.ofSemiring._proof_3 [decl #17000] theorem Lean.Grind.NatModule.add_one_nsmul [decl #17100] theorem Lean.Grind.CommRing.Poly.denote_ofMon [decl #17200] theorem Lean.Grind.CommRing.Poly.pow.eq_def [decl #17300] def Int.Linear.diseq_eq_subst_cert [decl #17400] theorem Lean.Grind.dite_cond_eq_false' [decl #17500] theorem List.idxToSigmaCount_sigmaCountToIdx [decl #17600] theorem Std.Internal.List.Const.length_alterKey_eq_add_one INTERN_CALLS 1300000000 nodes=2912653 [decl #17700] def Std.Rci.size [decl #17800] def Std.Time.Day.instDecidableLeOffset [decl #17900] def Std.Do.PredTrans.instMonad [decl #18000] theorem _private.Init.WFComputable.0.Acc.recC._unary._proof_2 [decl #18100] def BitVec.signedMax [decl #18200] def Lean.Order.PartialOrder.rel INTERN_CALLS 1400000000 nodes=1226886 [decl #18300] def Cedar.SymCC.compileCall₁ [decl #18400] def _private.Lean.Parser.Types.0.Lean.Parser.Error.merge.match_1 [decl #18500] def Lean.Parser.identNoAntiquot [decl #18600] def _private.Lean.DocString.Parser.0.Lean.Doc.Parser.nl [decl #18700] theorem _private.Std.Data.DTreeMap.Internal.Lemmas.0.Std.DTreeMap.Internal.Impl.Equiv.inter_congr._simp_1_4 [decl #18800] def Int.repr INTERN_CALLS 1500000000 nodes=3591694 [decl #18900] theorem Std.DHashMap.Internal.Raw.insert_eq [decl #19000] theorem Std.DTreeMap.Const.getThenInsertIfNew?._proof_1 INTERN_CALLS 1600000000 nodes=2348180 [decl #19100] def Std.Internal.List.maxKey! [decl #19200] theorem Std.Rcc.toList_eq_nil_iff INTERN_CALLS 1700000000 nodes=1793563 INTERN_CALLS 1800000000 nodes=713099 [decl #19300] theorem Std.DHashMap.Internal.Raw₀.get?_eq_get?ₘ [decl #19400] theorem List.minOn_cons._proof_1 [decl #19500] def Lean.Meta.ConfigWithKey._private_1 [decl #19600] theorem _private.Init.Data.Array.QSort.Basic.0.Array.qpartition._proof_12 [decl #19700] def _private.Init.System.ST.0.runST.match_1 [decl #19800] def Lean.NameMap.instForInProdNameOfMonad [decl #19900] def _private.Lean.ResolveName.0.Lean.ResolveName.resolveQualifiedName [decl #20000] def Lean.BaseMessage.pos [decl #20100] theorem _private.Lean.Util.Trace.0.Lean.inheritedTraceOptions._proof_1 [decl #20200] def Lean.PrettyPrinter.Delaborator.State.casesOn [decl #20300] def Lean.Option.get? [decl #20400] def Lean.Meta.DiscrTree.keysAsPattern [decl #20500] def Lean.mkApp6 [decl #20600] opaque _private.Lean.Meta.DiscrTree.Main.0.Lean.Meta.DiscrTree.toNatLit?.loop [decl #20700] theorem _private.Init.Data.Range.Polymorphic.Iterators.0.Std.Rio.Internal.isPlausibleIndirectOutput_iter_iff._simp_1_1 [decl #20800] def Lean.MetavarContext.MkBinding.Exception.casesOn [decl #20900] theorem Array.mem_toList_iff [decl #21000] def Lean.Meta.SynthInstance.Instance.val [decl #21100] def Lean.Meta.mkCongrFun [decl #21200] def Lean.hasMatchPatternAttribute [decl #21300] def Lean.Meta.litToCtor [decl #21400] def _private.Lean.Meta.WHNF.0.Lean.Meta.reduceQuotRec [decl #21500] theorem ByteArray.isSome_utf8Decode?_eq_validateUTF8 [decl #21600] def _private.Lean.Expr.0.Lean.Expr.getAppArgsN.loop [decl #21700] def _private.Lean.Meta.Eqns.0.Lean.Meta.initFn._sparseCasesOn_1._@.Lean.Meta.Eqns.758090479._hygCtx._hyg.2 [decl #21800] opaque Lean.Meta.Simp.backward.dsimp.instances [decl #21900] def _private.Lean.Data.RArray.0.Lean.RArray.toExpr.go.match_1 [decl #22000] def Lean.Meta.Simp.Arith.Nat.LinearCnstr [decl #22100] theorem _private.Init.Data.List.Lemmas.0.List.append_eq_append_iff._simp_1_3 [decl #22200] def Cedar.SymCC.compileApp₁._sparseCasesOn_4 [decl #22300] def List.mapUnion₂ [decl #22400] theorem List.getElem?_set [decl #22500] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.toNat_signExtend_of_le._proof_1_5 INTERN_CALLS 1900000000 nodes=1033509 [decl #22600] def Lean.IR.Arg.var.noConfusion [decl #22700] def Cedar.SymCC.verifyEvaluateOpt._sparseCasesOn_2 [decl #22800] theorem Int.ediv_one [decl #22900] theorem forIn_eq_forIn' [decl #23000] opaque _private.Lean.Meta.CongrTheorems.0.Lean.Meta.mkCongrSimpCore?.mk?.go INTERN_CALLS 2000000000 nodes=4182360 [decl #23100] theorem Std.ExtDTreeMap.get._proof_3 [decl #23200] theorem Std.Internal.List.getValue?_insertListIfNewUnit INTERN_CALLS 2100000000 nodes=3539631 [decl #23300] theorem _private.Init.Data.Int.Lemmas.0.Int.subNatNat_eq_coe._simp_1_1 [decl #23400] theorem Std.ExtDTreeMap.Const.insertManyIfNewUnit_cons [decl #23500] theorem List.findIdx.eq_1 [decl #23600] theorem Cedar.Thm.interpret_term_prim_wf [decl #23700] theorem _private.Cedar.Thm.SymCC.Data.LT.0.Cedar.Thm.PatElem.lt_trans INTERN_CALLS 2200000000 nodes=3039526 [decl #23800] theorem Cedar.SymCC.TermPrimType.entity.inj [decl #23900] theorem _private.Cedar.Thm.SymCC.Term.Interpret.Basic.0.Cedar.SymCC.Term.interpret.eq_6 [decl #24000] theorem _private.Cedar.Thm.SymCC.Term.WF.0.Cedar.Thm.wf_term_app_uuf._simp_1_4 [decl #24100] def _private.Cedar.Thm.SymCC.Term.Interpret.WF.0.Cedar.Thm.interpret_term_app_wf_bvsrem.match_1_2 [decl #24200] theorem _private.Cedar.Thm.SymCC.Term.Interpret.WF.0.Cedar.Thm.interpret_term_app_wf_bvsle._simp_1_8 [decl #24300] theorem _private.Cedar.Thm.SymCC.Term.Interpret.WF.0.Cedar.Thm.interpret_term_app_wf_set_inter [decl #24400] def _private.Cedar.Thm.SymCC.Term.WF.0.Cedar.SymCC.Factory.ext.decimal.val.match_1.splitter [decl #24500] theorem _private.Cedar.Thm.SymCC.Term.WF.0.Cedar.Thm.wf_term_app_ext_ipaddr_prefixV6._simp_1_1 [decl #24600] theorem Cedar.Thm.wf_interpretation_same_domain [decl #24700] def Cedar.SymCC.verifyAlwaysAllowsOpt [decl #24800] theorem _private.Cedar.SymCC.Factory.0.Cedar.SymCC.Factory.isNone._sparseCasesOn_3.else_eq [decl #24900] def _private.Cedar.Thm.SymCC.Compiler.Invert.0.Cedar.SymCC.compileApp₁.match_1.splitter._sparseCasesOn_8 [decl #25000] def _private.Cedar.Thm.SymCC.Compiler.WF.0.Cedar.Thm.compileApp₂_wf_types.match_1_39 [decl #25100] def _private.Cedar.Thm.SymCC.Compiler.Invert.0.Cedar.SymCC.compileAttrsOf.match_1.splitter._sparseCasesOn_5 [decl #25200] theorem Cedar.Thm.wf_prods_implies_wf_map_snd [decl #25300] def _private.Cedar.Thm.SymCC.Term.WF.0.Cedar.Thm.wf_datetime_offset.match_1_9 INTERN_CALLS 2300000000 nodes=2139972 [decl #25400] def _private.Cedar.Thm.SymCC.Term.Lit.0.Cedar.Thm.wfl_of_type_bool_is_bool.match_1_1 [decl #25500] def _private.Cedar.Thm.SymCC.Term.PE.0.Cedar.SymCC.Factory.set.inter.match_1.splitter._sparseCasesOn_3 [decl #25600] def _private.Cedar.Thm.SymCC.Term.Interpret.Factory.0.Cedar.SymCC.Factory.not.match_1.splitter._sparseCasesOn_3 [decl #25700] theorem _private.Cedar.Thm.SymCC.Term.Interpret.Factory.0.Cedar.Thm.interpret_isNone._simp_1_15 [decl #25800] def Lean.DataValue._sizeOf_1 [decl #25900] def Lean.OpaqueVal._sizeOf_1 [decl #26000] theorem Std.Do.WPMonad.wp_map [decl #26100] def Lean.NameGenerator._sizeOf_inst [decl #26200] theorem List.zipWithM'_eq_zipWithM [decl #26300] theorem String.Slice.RevPosIterator.instIteratorSubtypePosNeEndPosOfPure._proof_6 [decl #26400] def Cedar.SymCC.SymEnv.concretize?.match_1 [decl #26500] def Std.DTreeMap.Internal.Impl.beq [decl #26600] theorem Std.DTreeMap.Internal.Impl.WF.diff [decl #26700] def _private.Lean.Meta.GetUnfoldableConst.0.Lean.Meta.canUnfoldDefault._sparseCasesOn_1 [decl #26800] def Lean.Grind.IntModule.nsmul [decl #26900] def Lean.Doc.Parser.BlockCtxt.noConfusion INTERN_CALLS 2400000000 nodes=3426687 [decl #27000] def Cedar.SymCC.SymRequest.IsBasic [decl #27100] theorem _private.Cedar.Thm.SymCC.Enforcer.Extractor.0.Cedar.Thm.repairAncestors_table_wf._simp_1_5 [decl #27200] def _private.Cedar.Thm.SymCC.Term.TypeOf.0.Cedar.SymCC.TermType.isOptionEntityType.match_1.splitter._sparseCasesOn_4 [decl #27300] theorem _private.Cedar.Thm.SymCC.Concretizer.Lit.0.Cedar.Thm.wfl_term_isEntityType_implies_entityUID?_some._simp_1_10 [decl #27400] theorem Cedar.Thm.value?_some_implies_attrValue?_some [decl #27500] def _private.Cedar.Thm.SymCC.Concretizer.Lit.0.Cedar.SymCC.Term.tag?.match_1.splitter._sparseCasesOn_4 [decl #27600] theorem List.mem_iff_append [decl #27700] def _private.Cedar.Thm.SymCC.Term.Same.0.Cedar.Thm.value?_attrValue?_fst.match_1_3 [decl #27800] theorem _private.Cedar.Thm.SymCC.Concretizer.WF.0.Cedar.Thm.concretize?_εs_some_implies_closed._simp_1_8 [decl #27900] theorem Cedar.Thm.concretize?_some_same._simp_1_4 [decl #28000] def _private.Cedar.Thm.SymCC.Concretizer.Same.0.Cedar.Thm.concretize?_some_same_tags.match_1_10 [decl #28100] theorem List.find?_cons [decl #28200] theorem List.insertCanonical_not_nil [decl #28300] def _private.Cedar.Thm.SymCC.Enforcer.Compile.0.Cedar.Thm.compile_ite_ok_implies.match_1.splitter._sparseCasesOn_5 [decl #28400] theorem _private.Cedar.Thm.SymCC.Enforcer.Compile.0.Cedar.Thm.compile_interpret_var_in_footprint [decl #28500] def _private.Cedar.Thm.SymCC.Term.Interpret.Factory.0.Cedar.SymCC.Factory.ext.duration.val.match_1.splitter._sparseCasesOn_2 [decl #28600] theorem _private.Cedar.Thm.SymCC.Compiler.Call.0.Cedar.Thm.compileCall_interpret_decimal_lessThan [decl #28700] theorem _private.Cedar.Thm.SymCC.Compiler.Call.0.Cedar.Thm.compileCall_interpret_datetime_offset [decl #28800] theorem List.insertCanonical_find? [decl #28900] def _private.Cedar.Thm.SymCC.Compiler.Control.0.Cedar.SymCC.compileAnd.match_1.splitter._sparseCasesOn_7 [decl #29000] def _private.Cedar.Thm.SymCC.Compiler.Attr.0.Cedar.SymCC.compileHasAttr.match_1.splitter._sparseCasesOn_2 [decl #29100] def _private.Cedar.Thm.SymCC.Compiler.Control.0.Cedar.Spec.Value.asBool.match_1.splitter._sparseCasesOn_2 [decl #29200] def _private.Cedar.Thm.SymCC.Term.Same.0.Cedar.Thm.set_value?_implies_in_value.match_1_7 [decl #29300] theorem _private.Cedar.Thm.SymCC.Compiler.WF.0.Cedar.Thm.value_record_wf_implies_attr_value_wf [decl #29400] def _private.Cedar.Thm.SymCC.Term.Same.0.Cedar.Thm.record_value?_find?_optional_none.match_1_12 [decl #29500] theorem Cedar.Data.Set.inter_empty_left [decl #29600] theorem BitVec.ofFin.inj [decl #29700] theorem Cedar.Spec.Entities.attrs.eq_1 [decl #29800] theorem Cedar.Thm.compile_evaluate_record [decl #29900] def _private.Cedar.Thm.SymCC.Compiler.Call.0.Cedar.Thm.compile_evaluate_call_ipaddr_isMulticast.match_1_7 [decl #30000] theorem Nat.pow_pred_lt_pow [decl #30100] theorem BitVec.zero_eq_one_iff [decl #30200] def Nat.instTransLeLt [decl #30300] theorem BitVec.neg_eq_iff_eq_neg [decl #30400] theorem _private.Init.Data.Int.DivMod.Lemmas.0.Int.add_one_tdiv_of_pos._proof_1_11 [decl #30500] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.msb_umod._proof_1_5 [decl #30600] theorem Int64.ofInt_toInt INTERN_CALLS 2500000000 nodes=2478175 [decl #30700] theorem _private.Cedar.Thm.SymCC.Compiler.Call.0.Cedar.Thm.compile_evaluate_call_duration_toSeconds._simp_1_11 INTERN_CALLS 2600000000 nodes=649799 INTERN_CALLS 2700000000 nodes=1082882 INTERN_CALLS 2800000000 nodes=1133334 INTERN_CALLS 2900000000 nodes=1134651 INTERN_CALLS 3000000000 nodes=1166420
Test "con-leche"
Expected: 👍 accept · Size: 525.9 MB · Lines: 10.0 M · lean4export: 3.1.0 · Lean: 4.33.0 · 📄 Declaration · 🔗 Source
The con-leche development's
three theorems: the consistency proof of its verified checker —
model_exists, every environment the checker accepts has a
set-theoretic model, and its corollary no_proof_of_False, no proof of
False is accepted — and the equivalence of its byte-level parser with
a naive reference (scanLineSpec_eq_scanLineFwd), each with its
dependency cone.
Test result: 🚫 declined · exit code 2 · wall time: 15.3 s · instructions: 273.3 G · max rss memory: 869.9 MB
stderr:
[decl #100] def Bool.ctorIdx
[decl #200] theorem Nat.mod_lt
[decl #300] def Acc.recOn
[decl #400] def BitVec.casesOn
[decl #500] theorem _private.Init.Data.Nat.Div.Basic.0.Nat.modCore.go.fuel_congr
[decl #600] def _private.Init.Data.Nat.Basic.0.Nat.le_of_sub_le_sub_right.match_1_1
[decl #700] def List.reverseAux
[decl #800] theorem Nat.Internal.Linear.Poly.denote_insert
[decl #900] theorem Nat.div_lt_iff_lt_mul
[decl #1000] def Lean.Omega.Constraint.upperBound
[decl #1100] def _private.Init.Data.Int.Order.0.Int.lt_iff_le_and_ne.match_1_3
[decl #1200] theorem List.zipWith_nil_right
[decl #1300] theorem Nat.div_mul_le_self
[decl #1400] theorem Int.add_emod_emod
[decl #1500] def _private.Init.SimpLemmas.0.and_assoc.match_1_1
[decl #1600] def String.toByteArray
[decl #1700] theorem Bool.instDecidableForallOfDecidablePred._proof_2
[decl #1800] def Std.IsPreorder.of_le._auto_1
[decl #1900] def instTransEq_1
[decl #2000] theorem UInt8.and_le_right
[decl #2100] def Array.foldl
[decl #2200] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.getLsbD_shiftLeft._simp_1_1
[decl #2300] def _private.Init.Data.Nat.Lemmas.0.Nat.sub_min_sub_right.match_1_1
[decl #2400] theorem List.push_append_toArray
[decl #2500] theorem _private.Init.Data.String.Decode.0.String.toBitVec_getElem_utf8EncodeChar_zero_of_utf8Size_eq_one._simp_1_2
[decl #2600] theorem _private.Init.Data.ByteArray.Bootstrap.0.List.toList_data_toByteArray.toList_push
[decl #2700] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.toNat_twoPow._proof_1_2
[decl #2800] theorem BitVec.cons_append._proof_2
[decl #2900] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.parseFirstByte_utf8EncodeChar_eq_threeMore
[decl #3000] theorem ByteArray.extract_eq_empty_iff._simp_1
[decl #3100] theorem Classical.not_forall
[decl #3200] def System.Platform.numBits
[decl #3300] def _private.Init.Data.Nat.Power2.Basic.0.Nat.isPowerOfTwo_mul_two_of_isPowerOfTwo.match_1_1
[decl #3400] def Std.DHashMap.Internal.Raw₀.Const.getThenInsertIfNew?
[decl #3500] def ConLeche.Level.succ.noConfusion
[decl #3600] theorem _private.ConLeche.Kernel.PropWhen.0.ConLeche.PropWhenRepr.two.injEq
[decl #3700] def _private.ConLeche.Kernel.PropWhen.0.ConLeche.instHashablePropWhenRepr.hash.match_1
[decl #3800] def Std.DHashMap.contains
[decl #3900] def ConLeche.FEnv.visibleBelow
DECLINE: [ConLeche.Expr.wscopedBP.eq_1] WHNF core depth limit: (λ Nat. (λ BitVec #0. Fin.val (HPow.hPow .{0,0,0} Nat Nat Nat (instHPow .{0,0} Nat Nat (instPowNat .{0} Nat instNatPowNat)) (OfNat.ofNat .{0} Nat 2 (instOfNatNat 2)) #1) (BitVec.toFin #1 #0))) (OfNat.ofNat .{0} Nat 64 (instOfNatNat 64)) (UInt64.toBitVec (ConLeche.hash32 (mixHash (OfNat.ofNat .{0} UInt64 3 (UInt64.instOfNat 3)) (Hashable.hash .{succ(0)} Nat instHashableNat #0))))
Test "corner-cases/alg-conv-trans-acc"
Expected: 🤷 either · Size: 66.0 KB · Lines: 1.2 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
As Lean's type theory has undecidable conversion (a.k.a. definitional equality), there are bound to be gaps between so called "algorithmic" conversion (that which is implemented by a typechecker), and the "declarative" conversion.
In the official kernel, algorithmic conversion fails to be transitive. f 1 a
is a normal form: a is a variable, so Acc.rec cannot fire on it. Proof
irrelevance admits any other proof of Acc (· < ·) 1 in its place, and
Acc.intro 1 fun _ => Acc.inv a carries a constructor at the head, so it
reduces. left is that substitution, right the reduction it unblocks, and
trans chains the two.
acc asks for the endpoints on their own, which means inventing the middle
term: choosing, among the proofs of a proposition, the one that happens to
reduce the right way. The kernel has no reason to go looking, the left side
being normal already, and unfolding regardless does not terminate here, as
each step makes the term larger.
References:
- Mario Carneiro, The Type Theory of Lean, MSc thesis
Test result: ✋ rejected · exit code 1 · wall time: 8 ms · instructions: 18.6 M · max rss memory: 11.4 MB
stderr:
REJECT: [trans] theorem 199: value type does not match declared type
Test "corner-cases/alg-conv-trans-acc-left"
Expected: 🤷 either · Size: 67.0 KB · Lines: 1.2 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The creative half of corner-cases/alg-conv-trans-acc. Acc.rec is stuck
on the variable a, and proof irrelevance admits any other proof of
Acc (· < ·) 1 in its place, including one with a constructor at the head.
Given both sides, a checker verifies this immediately; producing the
right-hand side unprompted is the step no algorithm takes.
Test result: 👍 accepted · exit code 0 · wall time: 8 ms · instructions: 18.0 M · max rss memory: 11.0 MB
Test "corner-cases/alg-conv-trans-acc-right"
Expected: 🤷 either · Size: 67.3 KB · Lines: 1.2 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The mechanical half of corner-cases/alg-conv-trans-acc. With a
constructor in the major premise, Acc.rec fires and step descends to the
predecessor 0.
Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 18.7 M · max rss memory: 11.0 MB
Test "corner-cases/alg-conv-trans-quot"
Expected: 🤷 either · Size: 8.5 KB · Lines: 169 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
left composed with right. Quotients of propositions cause
algorithmic conversion transitivity to fail because the typechecker must
creatively synthesise the representative of the quotient, and
proof irrelevance is definitional.
References:
- Mario Carneiro, The Type Theory of Lean, MSc thesis
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 5.8 M · max rss memory: 7.0 MB
stderr:
REJECT: [trans] theorem 26: value type does not match declared type
Test "corner-cases/alg-conv-trans-quot-left"
Expected: 🤷 either · Size: 8.6 KB · Lines: 173 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Quot r is a Prop, so proof irrelevance relates q and Quot.mk r z.
However the official kernel does WHNF first, reducing the right side to f z,
so congruence never compares the arguments.
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.6 M · max rss memory: 9.2 MB
Test "corner-cases/alg-conv-trans-quot-left-def"
Expected: 🤷 either · Size: 10.5 KB · Lines: 208 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
left with Quot.lift behind a definition. WHNF does not unfold lift, so
the arguments are compared and proof irrelevance applies.
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 6.0 M · max rss memory: 9.0 MB
Test "corner-cases/alg-conv-trans-quot-right"
Expected: 🤷 either · Size: 9.0 KB · Lines: 180 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Quotient computation rule.
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.7 M · max rss memory: 9.0 MB
Test "corner-cases/eta-ctor"
Expected: 🤷 either · Size: 9.0 KB · Lines: 148 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Function eta between a partially applied constructor and a free variable. The official kernel does not trigger eta expansion here, but a checker may accept the equality by expanding the functions. See https://github.com/leanprover/lean4/issues/12520 for a discussion.
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 5.5 M · max rss memory: 6.9 MB
stderr:
REJECT: [etaCtor] def 33: value type does not match declared type
Test "corner-cases/eta-rule-k"
Expected: 🤷 either · Size: 6.5 KB · Lines: 121 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Function eta between a partially applied recursor with rule K and a free variable. The official kernel does not trigger eta expansion here, but a checker may accept the equality by expanding the functions. See https://github.com/leanprover/lean4/issues/12520 for a discussion.
Test result: ✋ rejected · exit code 1 · wall time: 7 ms · instructions: 5.4 M · max rss memory: 7.1 MB
stderr:
REJECT: [etaRuleK] def 21: value type does not match declared type
Test "corner-cases/imax-right-successor"
Expected: 🤷 either · Size: 806 B · Lines: 21 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Universe-level normalization corner cases. The declarations use imax u 1
and imax u (v + 1) where their declared types use the corresponding
max levels. A checker may reject these hand-crafted exports using a more
conservative normalization, or accept them by recognizing that the right
operand is nonzero.
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 4.3 M · max rss memory: 6.8 MB
Test "corner-cases/let-value-type-mismatch"
Expected: 🤷 either · Size: 601 B · Lines: 13 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration
A let has a mismatched annotation, but substitution removes the mismatch.
In readable notation, the exported declaration is:
def EcosystemCase : Sort 2 := let u : Sort 1 := Sort 1; u
The value Sort 1 has type Sort 2, rather than the annotated Sort 1.
Checking the supplied let can therefore reject it. Substituting its value
for u gives def EcosystemCase : Sort 2 := Sort 1, whose types match.
This records the choice to check the supplied annotation or first simplify the let. The discussion of this exact example supports allowing either outcome as practical checker policy, while leaving a completely authoritative answer open. This is not a false-theorem example.
Test result: ✋ rejected · exit code 1 · wall time: 7 ms · instructions: 4.2 M · max rss memory: 6.8 MB
stderr:
REJECT: [EcosystemCase] let value type mismatch
Test "corner-cases/nested-nonuniform-param"
Expected: 🤷 either · Size: 9.2 KB · Lines: 142 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Checks that a parameter supplied to a nested inductive occurrence really acts as the datatype's parameter, i.e. that it is the parameter itself and does not change between recursive occurrences (as is already enforced for non-nested occurrences).
The inductive E : W → Type has constructor
E.mk : (w : W) → L (E ⟨false⟩) → E w, where L (α : Type) is nested. The
occurrence E ⟨false⟩ inside the nested L uses the constant ⟨false⟩ in
the position of E's parameter, instead of the actual parameter w. That
argument is type-correct, so it is not caught by merely type-checking the
nested application (leanprover/lean4#14577); a correct checker must also
verify that it is the expected parameter.
This particular declaration is not known to yield a proof of False: here L
stores no value of type α, so the nested occurrence is phantom and E w is
isomorphic to Unit for every w. The variant where L actually stores an
α (so recursion would descend into an E ⟨false⟩ while the motive is fixed
at E w) is already rejected by the kernel's positivity check ("non valid
occurrence"). Since it is not a demonstrated unsoundness, it is not settled
whether a checker should accept or reject it, so the expected outcome is
either and the test does not count towards completeness or soundness.
Origin: raised by @arthur-adjedj on leanprover/lean4#14577 (https://github.com/leanprover/lean4/pull/14577#issuecomment-5101819377) as a case not covered by that PR's fix; related to leanprover/lean4#14576.
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.2 M · max rss memory: 7.0 MB
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.
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.8 M · max rss memory: 6.8 MB
stderr:
REJECT: [LALReduciblePositivity] non-positive (negative) occurrence in constructor argument
Test "corner-cases/proj-maybe-prop"
Expected: 🤷 either · Size: 8.1 KB · Lines: 131 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Projecting out of a structure that may or may not be a proposition.
MaybeProp is a structure whose sort is a bare level parameter: a
proposition for u := 0 and a data type for every other u. Lean's
inductive command refuses to declare one ("the resulting universe is not
Prop, but it may be Prop for some parameter values"), but the kernel
accepts it. The exported definition projects out its first field,
field : PUnit.{u}.
The official kernel accepts this. The field is not a proof for every u,
but the projection is sound at every instantiation: MaybeProp.{u} is a
proposition only for u := 0, and there the field's type PUnit.{0} is a
proposition too. That is no coincidence. A structure that is not a Prop
had every constructor field's universe checked against its resulting
universe (see the tutorial's typeWithTooHighTypeField), here u ≤ u, and
such an inequality survives instantiation — so wherever the structure does
turn out to be a proposition, so do all of its fields.
At the same time, the official kernel here allows more projections than the
recursor allows: MaybeProp.rec eliminates into Prop only, so this
projection cannot be expressed through the recursor. The elaborator does not
currently rely on this extra power, so for now it is reasonable for a
checker to be more restrictive here and reject the projection — for example
by asking "could this be a proposition?" and then demanding that the field
be definitely a proof. See
https://github.com/leanprover/lean4/issues/7637 for discussion.
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.2 M · max rss memory: 7.1 MB
Test "corner-cases/proj-maybe-prop-past"
Expected: 🤷 either · Size: 8.1 KB · Lines: 131 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The same as corner-cases/proj-maybe-prop, for a projection that only has
to step over such a field.
MaybeProp.tail is a proof for every u, so the field asked for here is
unobjectionable even under the restrictive reading. But reaching it means
walking past field, which proof depends on, and that is where the check
on a genuine proposition (the tutorial's projProp6) fires. A checker that
rejects corner-cases/proj-maybe-prop therefore rejects this one as well,
at field 0 rather than at field 2, and that remains a reasonable choice for
the same reason. See https://github.com/leanprover/lean4/issues/7637 for
discussion.
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.2 M · max rss memory: 7.2 MB
Test "corner-cases/proof-param-ok"
Expected: 👍 accept · Size: 2.9 KB · Lines: 53 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration
Keeps two proof parameters in their declared order in an inductive constructor result.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.5 M · max rss memory: 7.0 MB
Test "corner-cases/proof-param-swap"
Expected: 🤷 either · Size: 2.9 KB · Lines: 53 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration
Swaps two proof parameters in an inductive constructor result. Checkers may either reject the swap or accept it using proof irrelevance.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.5 M · max rss memory: 6.8 MB
Test "corner-cases/subject-reduction-redex"
Expected: 🤷 either · Size: 66.2 KB · Lines: 1.2 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Test for subject reduction, as in Carneiro's thesis.
The annotation on the lambda writes the middle term of
corner-cases/alg-conv-trans-acc down by hand, sparing the kernel from
having to invent it. The body checks against right, the argument against
left, and the two endpoints are never compared.
References:
- Mario Carneiro, The Type Theory of Lean, MSc thesis
Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 19.0 M · max rss memory: 11.0 MB
Test "corner-cases/subject-reduction-reduct"
Expected: 🤷 either · Size: 65.2 KB · Lines: 1.2 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Beta erases the annotation of corner-cases/subject-reduction-redex, and
with it the middle term, leaving the two endpoints to compare: the conversion
of corner-cases/alg-conv-trans-acc. A term the kernel accepts thus
reduces to one it rejects.
References:
- Mario Carneiro, The Type Theory of Lean, MSc thesis
Test result: ✋ rejected · exit code 1 · wall time: 8 ms · instructions: 18.1 M · max rss memory: 11.0 MB
stderr:
REJECT: [reduct] application argument type mismatch
Test "cslib"
Expected: 👍 accept · Size: 2.0 GB · Lines: 37.5 M · lean4export: 3.1.0 · Lean: 4.30.0 · 📄 Declaration · 🔗 Source
The Lean Computer Science Library (CSLib).
Test result: ✋ rejected · exit code 1 · wall time: 26.2 m · instructions: 12.3 T · max rss memory: 3.6 GB
stderr:
[decl #100] def Nat.le.below.casesOn [decl #200] def _private.Init.Prelude.0.Nat.pow_pos.match_1_1 [decl #300] def NonUnitalNonAssocSemiring.toMul [decl #400] def Function.comp [decl #500] def Finset.val [decl #600] def EmptyCollection.emptyCollection [decl #700] theorem instDecidableIff._proof_1 [decl #800] def MonoidWithZero.toMulZeroOneClass [decl #900] def Function.Injective.addCommMagma [decl #1000] theorem MonoidHom.instFunLike._proof_1 [decl #1100] theorem RingHomInvPair.ids [decl #1200] theorem le_sup_inf [decl #1300] theorem or_self [decl #1400] def CompleteBooleanAlgebra.toCompleteLattice [decl #1500] theorem Prop.instBooleanAlgebra._proof_6 [decl #1600] def Acc.recOn [decl #1700] def panicCore [decl #1800] theorem Lean.Data.AC.Context.sort_loop_nonEmpty [decl #1900] theorem Function.LeftInverse.eq_rightInverse [decl #2000] def Iff.eq [decl #2100] theorem WithTop.addZeroClass._proof_2 [decl #2200] theorem not_iff_comm [decl #2300] theorem Countable.of_equiv [decl #2400] theorem _private.Init.Data.List.Pairwise.0.List.pairwise_map._simp_1_1 [decl #2500] theorem exists_and_right [decl #2600] def _private.Init.Data.NeZero.0.instNeZeroNatHAdd.match_5 [decl #2700] def Int.casesOn [decl #2800] theorem Int.subNatNat_sub [decl #2900] def Int.ediv [decl #3000] theorem Nat.modCore_eq [decl #3100] theorem Int.dvd_refl [decl #3200] theorem _private.Init.Omega.IntList.0.Lean.Omega.IntList.gcd_eq_zero._simp_1_1 [decl #3300] def Lean.Omega.LinearCombo.add [decl #3400] theorem List.findIdx_cons [decl #3500] def Int.Linear.hugeFuel [decl #3600] theorem Int.Linear.eq_diseq_subst [decl #3700] def Lean.Grind.Semiring.natCast [decl #3800] def Lean.Grind.CommRing.Poly.below [decl #3900] def Nat.Linear.ExprCnstr.denote [decl #4000] def Lean.Grind.CommRing.Mon.mul.go.match_1 [decl #4100] theorem Lean.Grind.AddCommMonoid.add_comm [decl #4200] theorem Lean.Grind.Semiring.pow_succ [decl #4300] theorem Lean.Grind.CommRing.instBEqMon.beq.eq_1 [decl #4400] theorem Lean.Grind.CommRing.instBEqPoly.beq.eq_3 [decl #4500] theorem Finite.of_equiv [decl #4600] def List.replicate [decl #4700] theorem List.find?_eq_none [decl #4800] theorem exists_exists_and_eq_and [decl #4900] theorem le_compl_compl [decl #5000] theorem Finset.mk_cons [decl #5100] theorem Std.DTreeMap.Internal.Impl.insert._proof_10 [decl #5200] theorem Std.DTreeMap.Internal.Impl.balance!.match_1.congr_eq_1 [decl #5300] theorem Std.DTreeMap.Internal.Impl.balanceₘ.match_1.congr_eq_1 [decl #5400] theorem Std.DTreeMap.Internal.Impl.balanceR!.fun_cases_unfolding [decl #5500] theorem Std.DTreeMap.Internal.Impl.minView._proof_23 [decl #5600] theorem Std.DTreeMap.Internal.Impl.alter._proof_18 [decl #5700] def instSizeOfDefault [decl #5800] theorem Std.DTreeMap.Internal.Impl.link._proof_18 [decl #5900] theorem Std.DTreeMap.Internal.Impl.applyCell._proof_4 [decl #6000] def Std.DTreeMap.Internal.Cell.noConfusion [decl #6100] theorem _private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.toListModel_filter_lt_of_lt._simp_1_2 [decl #6200] theorem Std.DTreeMap.Internal.Impl.updateCell._proof_58 [decl #6300] theorem Std.DTreeMap.Internal.Impl.Const.alter.eq_2 [decl #6400] theorem Std.DTreeMap.Internal.Impl.ordered_mergeWith [decl #6500] theorem Std.Internal.List.DistinctKeys.tail [decl #6600] def Lean.Name.casesOn [decl #6700] theorem Nat.zero_shiftRight [decl #6800] theorem Nat.mul_left_cancel_iff [decl #6900] theorem BitVec.getElem_and [decl #7000] def BitVec.instOfNat [decl #7100] def ByteArray.instAppend [decl #7200] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.shiftLeft_add._proof_1_1 [decl #7300] theorem Array.foldl_toList [decl #7400] theorem _private.Init.Data.String.Decode.0.String.utf8EncodeChar_eq_utf8EncodeCharFast._proof_1_10 [decl #7500] theorem Array.getElem_append [decl #7600] theorem BitVec.toNat_of_zero_length [decl #7700] def Nat.shiftLeft_bitwise_distrib._auto_5 [decl #7800] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.isInvalidContinuationByte_getElem_utf8EncodeChar_one_of_utf8Size_eq_four [decl #7900] theorem _private.Init.Data.String.Decode.0.utf8DecodeChar?_append_eq_assemble₄ [decl #8000] def String.decEq.match_1 [decl #8100] def Std.DHashMap.Internal.AssocList.casesOn [decl #8200] def _private.Std.Data.DHashMap.Internal.AssocList.Basic.0.Std.DHashMap.Internal.AssocList.filter.go._f [decl #8300] def _private.Lean.Expr.0.Lean.instBEqMVarId.beq.match_1 [decl #8400] def instMaxUInt32 [decl #8500] def Std.TreeMap.inner [decl #8600] def Lean.NameMap.instEmptyCollection [decl #8700] theorem _private.Init.Data.String.Basic.0.String.Pos.Raw.isValidUTF8_extract_iff._simp_1_2 [decl #8800] theorem String.Pos.Raw.IsValid.le_rawEndPos [decl #8900] theorem String.Pos.Raw.isValidUTF8_extract_iff [decl #9000] theorem String.Pos.Raw.IsValidForSlice.le_rawEndPos [decl #9100] theorem String.Slice.endPos_copy [decl #9200] theorem _private.Init.Data.String.Basic.0.String.Pos.Raw.IsValid.append_left._simp_1_2 [decl #9300] def Std.IteratorLoop.rel [decl #9400] def Lean.Name.isPrefixOf [decl #9500] theorem String.Slice.slice._proof_1 [decl #9600] def Lean.privateHeader [decl #9700] def Lean.Core.Context.quotContext [decl #9800] def Lean.ReducibilityStatus.casesOn [decl #9900] def Lean.ExprStructEq.instBEq [decl #10000] def UInt64.lor [decl #10100] def _private.Lean.Data.PersistentHashMap.0.Lean.PersistentHashMap.insert.match_1 [decl #10200] def Lean.instInhabitedSyntax [decl #10300] def _private.Lean.Meta.LitValues.0.Lean.Meta.getNatValue?.match_1 [decl #10400] theorem Array.reverse.loop._unary._proof_3 [decl #10500] def _private.Std.Data.DHashMap.Internal.Defs.0.Std.DHashMap.Internal.Raw₀.get.match_1 INTERN_CALLS 100000000 nodes=3127334 [decl #10600] theorem LawfulHashable.hash_eq INTERN_CALLS 200000000 nodes=2989155 [decl #10700] theorem Std.DHashMap.Internal.Raw.WFImp.size_eq INTERN_CALLS 300000000 nodes=3911333 [decl #10800] theorem Std.DHashMap.Internal.Raw₀.eraseₘaux.eq_1 INTERN_CALLS 400000000 nodes=1386329 INTERN_CALLS 500000000 nodes=3482289 [decl #10900] theorem UInt64.toNat_toUSize INTERN_CALLS 600000000 nodes=2064758 [decl #11000] theorem Std.Internal.List.getValue?_append_of_containsKey_eq_false INTERN_CALLS 700000000 nodes=923953 [decl #11100] theorem left_inv_eq_right_inv [decl #11200] theorem Filter.HasBasis.tendsto_right_iff [decl #11300] theorem IsOrderedMonoid.mul_le_mul_right [decl #11400] def instTransIff [decl #11500] def Lean.LocalContext.getUnusedName [decl #11600] def Units.instDivInvMonoid [decl #11700] def Std.ExtDTreeMap.Const.modify [decl #11800] theorem _private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.minEntry?ₘ_eq_minEntry?._simp_1_1 [decl #11900] theorem Std.LawfulOrderMin.toMinEqOr [decl #12000] def LinearOrder.min_def._autoParam [decl #12100] def Pi.instAdd [decl #12200] def Ordering.Compares.match_1 [decl #12300] theorem Ring.toNonUnitalRing._proof_4 [decl #12400] theorem AddCancelCommMonoid.toIsLeftCancelAdd [decl #12500] theorem IsAbsoluteValue.abv_mul' [decl #12600] theorem DivisionRing.isDomain [decl #12700] theorem Nat.instIsStrictOrderedRing [decl #12800] theorem Int.cast_natCast [decl #12900] theorem Pi.mulZeroOneClass._proof_3 [decl #13000] theorem Nat.eq_of_mul_eq_mul_left [decl #13100] theorem _private.Init.Data.Int.DivMod.Lemmas.0.Int.natAbs_ediv._proof_1_3 [decl #13200] theorem Rat.mul._proof_1 [decl #13300] theorem _private.Init.Data.Rat.Lemmas.0.Rat.divInt_eq_divInt_iff._simp_1_2 [decl #13400] theorem Rat.inv._proof_3 [decl #13500] theorem _private.Init.Data.Rat.Lemmas.0.Rat.lt_iff._proof_1_2 [decl #13600] theorem Function.Involutive.eq_iff [decl #13700] theorem OrderIso.map_sup [decl #13800] def CommRing.toGrindCommRing [decl #13900] theorem _private.Mathlib.Data.Real.Basic.0.Real.wrapped._proof_1._@.Mathlib.Data.Real.Basic.1138242547._hygCtx._hyg.8 [decl #14000] def Lean.Grind.Linarith.Poly.denote' [decl #14100] def Lean.Grind.Linarith.Expr.norm [decl #14200] theorem CauSeq.instPreorderAbs._proof_3 [decl #14300] theorem CauSeq.le_of_eq_of_le [decl #14400] theorem GaloisCoinsertion.liftCompleteLattice._proof_1 [decl #14500] theorem Function.Surjective.forall₂ [decl #14600] theorem Function.Surjective.mulOneClass._proof_4 [decl #14700] theorem NonUnitalRing.mul_assoc [decl #14800] theorem CauSeq.Completion.Cauchy.divisionRing._proof_2 [decl #14900] theorem Rat.cast_one [decl #15000] theorem Int.negSucc_add_negSucc [decl #15100] def OrderEmbedding.ofMapLEIff [decl #15200] theorem Nat.gc_ceil_coe [decl #15300] theorem Commute.neg_left_iff [decl #15400] theorem SeminormedCommRing.toNonUnitalSeminormedCommRing._proof_11 [decl #15500] theorem Multiset.le_cons_erase [decl #15600] theorem Multiset.coe_fold_l [decl #15700] theorem List.bagInter._sparseCasesOn_1.else_eq [decl #15800] theorem Finset.fold_union_inter [decl #15900] theorem Finset.sdiff_eq_filter [decl #16000] theorem Filter.Tendsto.prodMk_nhds [decl #16100] theorem compl_le_iff_compl_le [decl #16200] theorem uniformContinuous_neg [decl #16300] theorem WithTop.le_def' [decl #16400] theorem ENNReal.instAddCommMonoidWithOne._proof_11 [decl #16500] theorem Option.mem_def [decl #16600] def WithTop.instMulZeroOneClass [decl #16700] theorem CompletelyDistribLattice.le_himp_iff [decl #16800] theorem OrderIso.isLUB_preimage' [decl #16900] theorem NNReal.instConditionallyCompleteLinearOrderBot._proof_12 [decl #17000] theorem WithTop.instCompleteLinearOrder._proof_5 [decl #17100] theorem _private.Mathlib.Order.Interval.Set.Defs.0.Set.Ioo._simp_2 [decl #17200] theorem Nonneg.coe_inv [decl #17300] theorem le_iff_exists_add [decl #17400] def Lean.Grind.AC.Expr.toSeq'.match_1 [decl #17500] theorem WithTop.add_eq_top._simp_1 INTERN_CALLS 800000000 nodes=742897 [decl #17600] theorem dist_nonneg [decl #17700] theorem edist_add_add_le [decl #17800] theorem Metric.uniformity_eq_comap_nhds_zero [decl #17900] theorem Filter.Eventually.and [decl #18000] theorem _private.Mathlib.Order.Filter.Map.0.Filter.principal_singleton._simp_1_1 [decl #18100] theorem Set.BijOn.mapsTo [decl #18200] def Pairwise [decl #18300] theorem OrderTopology.to_orderClosedTopology [decl #18400] theorem iSup_inf_eq [decl #18500] theorem continuousAt_const [decl #18600] theorem Filter.tendsto_map [decl #18700] theorem isClosed_Iic [decl #18800] theorem Multiset.coe_bind [decl #18900] theorem ContinuousSub.continuous_sub [decl #19000] theorem Set.range_eq_singleton [decl #19100] def pseudoEMetricSpacePi [decl #19200] theorem Finset.prod_erase_mul [decl #19300] theorem norm_eq_zero [decl #19400] def RingCon.instPartialOrder [decl #19500] theorem Set.instIsNonstrictStrictOrderSubsetSSubset [decl #19600] theorem tsub_eq_zero_of_le [decl #19700] theorem norm_sub_rev [decl #19800] theorem Filter.pure_le_principal [decl #19900] theorem Vector.mk.inj [decl #20000] theorem AddSubgroup.neg_mem' [decl #20100] def instLTFloat [decl #20200] def _private.Lean.Meta.Basic.0.Lean.Meta.mkFreshExprMVarImpl [decl #20300] def _private.Lean.Meta.DiscrTree.Main.0.Lean.Meta.DiscrTree.toNatLit?.match_1 [decl #20400] def Lean.Meta.ConfigWithKey._private_1 [decl #20500] def Lean.getOutParamPositions? [decl #20600] def instMonadControlStateRefT'._aux_1 [decl #20700] def Std.IterStep.ctorElim [decl #20800] theorem Std.Rxc.LawfulHasSize.size_eq_succ_of_succ?_eq_some [decl #20900] def _private.Lean.Data.PersistentArray.0.Lean.PersistentArray.forIn.match_1 [decl #21000] theorem Submonoid.copy._proof_2 [decl #21100] theorem FreeAlgebra.instAlgebra._proof_1 [decl #21200] def LinearMapClass [decl #21300] def AddSubmonoid.instMin.match_1 [decl #21400] theorem Subsemiring.toSemiring._proof_3 [decl #21500] theorem Real.normedField._proof_11 [decl #21600] theorem Rat.lt_of_le_of_ne [decl #21700] theorem Nat.cast_add_one [decl #21800] theorem RingHomCompTriple.ids [decl #21900] theorem inner_eq_zero_symm [decl #22000] theorem mul_mul_mul_comm [decl #22100] theorem isPreconnected_empty [decl #22200] theorem Topology.IsInducing.continuous_iff [decl #22300] theorem add_left_inj [decl #22400] def Int8.casesOn [decl #22500] theorem AddSubmonoid.instCompleteLattice._proof_1 [decl #22600] theorem Std.DTreeMap.Internal.Impl.maxKey.induct_unfolding [decl #22700] def String._sizeOf_inst [decl #22800] theorem Finsupp.sum_hom_add_index [decl #22900] def Matrix [decl #23000] def Lean.Meta.Grind.instBEqPreInstance.match_1 [decl #23100] def Lean.Meta.Sym.instHashableAlphaKey [decl #23200] theorem Finset.mem_of_mem_inter_left [decl #23300] theorem pow_mod_orderOf [decl #23400] theorem List.Disjoint.symm [decl #23500] theorem Equiv.equivCongr._proof_5 [decl #23600] theorem Int.emod_emod [decl #23700] def _private.Mathlib.Data.Fintype.Defs.0.Fintype.subsingleton.match_1 [decl #23800] def Trunc.liftOn [decl #23900] theorem SemiconjBy.inv_right_iff._simp_2 [decl #24000] theorem forall_prop_of_false [decl #24100] theorem Std.DTreeMap.Internal.Impl.minKey!_eq_minKey! [decl #24200] theorem Equiv.prodPUnit._proof_1 [decl #24300] theorem Cardinal.commSemiring._proof_11 [decl #24400] theorem instCommSemiringENat._proof_17 [decl #24500] theorem Set.pairwise_singleton [decl #24600] def SuccOrder.ofCore [decl #24700] theorem _private.Mathlib.SetTheory.Cardinal.ENat.0.Cardinal.toENat._simp_1 [decl #24800] theorem Filter.Tendsto.congr' [decl #24900] theorem Finset.mem_preimage [decl #25000] theorem mul_lt_mul_of_pos' [decl #25100] theorem Finset.sum_nonneg [decl #25200] def Set.uniqueSingleton [decl #25300] theorem mem_closure_iff_nhds_ne_bot [decl #25400] theorem Set.Nonempty.some.congr_simp [decl #25500] theorem mul_invOf_cancel_right' [decl #25600] theorem _private.Mathlib.Topology.Algebra.InfiniteSum.ENNReal.0.ENNReal.hasSum_coe._simp_1_2 [decl #25700] theorem cauchy_iff_exists_le_nhds [decl #25800] def _private.Mathlib.Order.Filter.CountablyGenerated.0.Filter.exists_antitone_seq.match_1_1 [decl #25900] theorem le_of_tendsto_of_tendsto [decl #26000] theorem ENNReal.instT5Space [decl #26100] theorem Lean.Grind.CommRing.Mon.denote.match_1.congr_eq_1 [decl #26200] theorem sInf_lt_iff [decl #26300] theorem pairwise_on_bool [decl #26400] theorem Finset.insert_eq_of_mem [decl #26500] theorem Finset.le_inf [decl #26600] theorem MeasureTheory.Measure.trim_le [decl #26700] theorem _private.Mathlib.Data.Set.Insert.0.Set.insert_subset_iff._proof_1_1 [decl #26800] theorem MeasureTheory.measure_congr [decl #26900] def eventuallyMeasurableSpace [decl #27000] theorem aeSeq.iSup [decl #27100] def Function.Injective.mulAction [decl #27200] theorem ENNReal.le_sub_of_add_le_left [decl #27300] theorem MeasureTheory.toMeasure_apply₀ [decl #27400] theorem _private.Mathlib.Topology.Bases.0.TopologicalSpace.IsTopologicalBasis.isOpen_iff._simp_1_1 [decl #27500] theorem Equiv.subtypeSubtypeEquivSubtypeExists._proof_9 [decl #27600] theorem _private.Mathlib.Order.Filter.Ultrafilter.Defs.0.Ultrafilter.le_sup_iff._simp_1_2 [decl #27700] theorem SetRel.refl [decl #27800] theorem Directed.extend_bot [decl #27900] theorem CovBy._to_dual_cast_4 [decl #28000] def LinearLocallyFiniteOrder.predOrder [decl #28100] theorem nhds_discrete [decl #28200] theorem Pi.instCompleteLattice._proof_2 [decl #28300] theorem Filter.subseq_forall_of_frequently [decl #28400] theorem Equiv.boolProdEquivSum._proof_1 [decl #28500] def PUnit.instMeasurableSpace [decl #28600] theorem MeasurableSpace.gc_comap_map [decl #28700] theorem MeasureTheory.lintegral_add_left [decl #28800] def mul_nsmul._f [decl #28900] def Bornology.casesOn [decl #29000] theorem Nat.find_eq_iff [decl #29100] def Set.smulSet [decl #29200] theorem List.forall₂_same._simp_1 [decl #29300] theorem NNReal.coe_pow [decl #29400] def Filter.limsInf_le_limsInf._auto_1 [decl #29500] theorem _private.Mathlib.Data.ENNReal.Basic.0.ENNReal.toReal_eq_zero_iff._simp_1_2 [decl #29600] theorem Filter.frequently_mem_iff_neBot [decl #29700] theorem isPiSystem_prod [decl #29800] theorem Lean.Lsp.WorkDoneProgressOptions.mk.inj [decl #29900] def Lean.LevelMVarId._sizeOf_inst [decl #30000] theorem AddMonoidAlgebra.nonAssocSemiring._proof_1 [decl #30100] def Std.DTreeMap.Internal.Impl.foldrM [decl #30200] def Std.Iterators.PostconditionT.casesOn [decl #30300] theorem LinearEquiv.instEquivLike._proof_1 [decl #30400] theorem Module.toAddMonoidEnd._proof_2 [decl #30500] def Lean.Syntax.setArg [decl #30600] def Std.Packages.PreorderOfLEArgs.le [decl #30700] def String.Pos.Raw.instLinearOrderPackage [decl #30800] def Lean.Parser.SyntaxStack.push [decl #30900] theorem wellFounded_dvdNotUnit [decl #31000] theorem _private.Init.Data.SInt.Lemmas.0.Int32.le_refl._simp_1_1 [decl #31100] def Char.isWhitespace [decl #31200] theorem _private.Init.Data.String.Lemmas.FindPos.0.String.Slice.le_posLE_iff._simp_1_2 [decl #31300] def Lean.Parser.ParserState.next' [decl #31400] def Lean.Syntax.getTailInfo [decl #31500] theorem Set.pi_univ_Icc [decl #31600] def Std.ExtHashMap.inner INTERN_CALLS 900000000 nodes=878911 [decl #31700] theorem Std.Internal.List.List.getValue?_filter_containsKey [decl #31800] theorem DistribMulActionSemiHomClass.toDistribMulActionHom._proof_4 INTERN_CALLS 1000000000 nodes=649536 [decl #31900] theorem SummationFilter.neBot_or_eq_bot [decl #32000] def AddMonoidAlgebra.singleZeroRingHom [decl #32100] theorem MonoidHom.ext_mnat [decl #32200] def Std.DTreeMap.Internal.Impl.Const.get! [decl #32300] theorem intCast_mem [decl #32400] theorem Subgroup.inv_mem' [decl #32500] def Subgroup.instMin.match_1 [decl #32600] def Complex.commRing [decl #32700] theorem Real.sqrt_mul_self_eq_abs [decl #32800] theorem Complex.instField._proof_2 [decl #32900] theorem DistribSMul.compFun._proof_1 [decl #33000] theorem _private.Mathlib.Algebra.Group.Basic.0.mul_zpow._simp_1_3 [decl #33100] theorem Finset.sum_nbij' [decl #33200] theorem Mathlib.Meta.NormNum.isNat_natCast [decl #33300] theorem Complex.cos_conj [decl #33400] theorem Complex.sinh_neg [decl #33500] theorem Real.sin_le_one [decl #33600] theorem Real.cos_antiperiodic [decl #33700] def Cslib.LambdaCalculus.LocallyNameless.Untyped.Term.LcAt [decl #33800] theorem beq_eq_false_iff_ne._simp_1 INTERN_CALLS 1100000000 nodes=3456294 [decl #33900] def Std.ExtDHashMap.insertIfNew INTERN_CALLS 1200000000 nodes=2481070 [decl #34000] def Filter.Germ.instZero [decl #34100] theorem Complex.exp_ofReal_im [decl #34200] theorem Real.tendsto_exp_atBot_nhdsGT [decl #34300] def MeasureTheory.MemLp [decl #34400] theorem LinearMap.inverse._proof_2 [decl #34500] theorem isProperMap_of_isClosedMap_of_inj [decl #34600] def Complex.imCLM [decl #34700] theorem map_ne_zero [decl #34800] theorem MulOpposite.instGroupWithZero._proof_2 [decl #34900] def StrictConvexOn [decl #35000] theorem Fin.castSucc_lt_succ [decl #35100] theorem Topology.IsInducing.pseudoMetrizableSpace [decl #35200] theorem Pi.commSemigroup._proof_1 [decl #35300] theorem ENNReal.toNNReal_inv [decl #35400] theorem MeasureTheory.Lp.instNormedAddCommGroup._proof_2 [decl #35500] theorem Filter.limsSup_le_of_le [decl #35600] theorem _private.Mathlib.Topology.Constructions.SumProd.0.closure_prod_eq._simp_1_1 [decl #35700] theorem IsOpenMap.preimage_closure_eq_closure_preimage [decl #35800] theorem MeasureTheory.Lp.simpleFunc.module._proof_4 [decl #35900] theorem Function.support_prodMk [decl #36000] def MeasureTheory.measureReal_union₀._auto_3 [decl #36100] def UniformFun.ofFun [decl #36200] theorem abs_sub_map_le_sub [decl #36300] def UniformEquiv.instEquivLike [decl #36400] theorem UniformOnFun.hasBasis_uniformity_of_basis_aux₁ [decl #36500] theorem MeasureTheory.L1.SimpleFunc.norm_integral_le_norm [decl #36600] theorem _private.Mathlib.Topology.Instances.ENNReal.Lemmas.0.continuous_edist._abel_1_1 [decl #36700] def MeasureTheory.SimpleFunc.instSub [decl #36800] theorem tendsto_abs_nhdsNE_zero [decl #36900] def ClusterPt.limsInf._auto_3 [decl #37000] theorem _private.Mathlib.MeasureTheory.Integral.Lebesgue.Add.0.MeasureTheory.lintegral_iSup_ae._simp_1_4 [decl #37100] theorem Turing.BlankRel.symm [decl #37200] theorem Array.forIn'.loop._proof_2 INTERN_CALLS 1300000000 nodes=684861 [decl #37300] def Lean.RecursorVal.toConstantVal [decl #37400] def Array.idxOf? [decl #37500] theorem DFinsupp.zipWith_single_single [decl #37600] def Lean.Meta.Grind.Arith.Linear.LinExpr [decl #37700] theorem AddSubgroup.mem_carrier [decl #37800] def repr [decl #37900] def BoundedContinuousFunction.instSemiring INTERN_CALLS 1400000000 nodes=58996 [decl #38000] theorem ContinuousMap.algebra._proof_3 [decl #38100] def Monoid.toOppositeMulAction [decl #38200] theorem Filter.comap_bot [decl #38300] theorem t2_separation [decl #38400] theorem _private.Mathlib.Topology.Maps.Basic.0.Topology.IsOpenEmbedding.of_continuous_injective_isOpenMap._simp_1_1 [decl #38500] theorem TopologicalSpace.Opens.instSetLike._proof_1 [decl #38600] theorem _private.Mathlib.Topology.UniformSpace.Pi.0.cauchy_pi_iff'._simp_1_1 [decl #38700] theorem Real.le_toNNReal_iff_coe_le [decl #38800] theorem MeasurableSpace.exists_measurableSet_of_ne [decl #38900] def TensorProduct.leftHasSMul.match_1 [decl #39000] theorem _private.Mathlib.LinearAlgebra.TensorProduct.Associator.0.TensorProduct.lid._simp_2 [decl #39100] theorem IsCompact.elim_directed_cover [decl #39200] theorem Polynomial.C_mul_X_pow_eq_monomial [decl #39300] theorem Polynomial.natDegree_mul' [decl #39400] theorem Polynomial.degree_le_degree [decl #39500] theorem eq_isEquiv [decl #39600] theorem _private.Mathlib.MeasureTheory.Function.SimpleFunc.0.MeasureTheory.SimpleFunc.lintegral_sum._simp_1_1 [decl #39700] theorem MeasureTheory.Measure.LebesgueDecomposition.iSup_mem_measurableLE [decl #39800] theorem MeasureTheory.exists_measure_pos_of_not_measure_iUnion_null [decl #39900] theorem MeasureTheory.Measure.restrict_union_congr [decl #40000] theorem Nat.ne_iff_lt_or_gt INTERN_CALLS 1500000000 nodes=2309029 [decl #40100] theorem Lean.Grind.CommRing.Poly.powC.eq_def [decl #40200] theorem MeasureTheory.Measure.instHaveLebesgueDecompositionZeroLeft [decl #40300] theorem Std.Iter.TerminationMeasures.Finite.rel_of_skip [decl #40400] def Lean.Meta.Simp.State.congrCache [decl #40500] theorem ByteArray.validateUTF8_eq_true_iff [decl #40600] def Lean.MonadFileMap.getFileMap [decl #40700] def _private.Lean.Meta.FunInfo.0.Lean.Meta.instHashableFunInfoEnvCacheKey.hash [decl #40800] def Lean.Meta.mkCongrSimpCore? [decl #40900] theorem Submodule.span_eq [decl #41000] def _private.Mathlib.Logic.Function.Basic.0.Function.bijective_iff_has_inverse.match_1_1 [decl #41100] def Finset.choose [decl #41200] theorem sdiff_eq_left [decl #41300] theorem LinearIndependent.linearCombinationEquiv._proof_1 [decl #41400] theorem MulOpposite.instSemiring._proof_9 [decl #41500] theorem Std.DTreeMap.Internal.Impl.getEntry?_eq_getEntry?ₘ [decl #41600] theorem Module.End.instSemiring._proof_7 [decl #41700] theorem TensorProduct.mapBilinear._proof_2 [decl #41800] def Lean.MonadResolveName.getCurrNamespace [decl #41900] theorem Int.subNatNat_eq_coe [decl #42000] theorem Fin.instDistrib._proof_1 [decl #42100] theorem Summable.tsum_sigma' [decl #42200] def Lean.Meta.Simp.Context.metaConfig [decl #42300] def _private.Mathlib.Logic.Nonempty.0.Classical.nonempty_pi.match_1_1 [decl #42400] theorem Std.HashMap.fold_eq_foldl_toArray [decl #42500] def Sum.getRight.match_1 [decl #42600] def Lean.Elab.Do.ContInfoRef [decl #42700] def Std.HashMap._sizeOf_inst [decl #42800] theorem AddSubgroup.op._proof_2 [decl #42900] theorem Submodule.Quotient.module'._proof_4 [decl #43000] theorem Ideal.comap._proof_5 [decl #43100] def Lean.Elab.Tactic.runTermElab [decl #43200] opaque Lean.ResolveName.backward.privateInPublic.warn [decl #43300] def _private.Lean.Elab.InfoTree.Main.0.Lean.Elab.withInfoContext'.match_3 [decl #43400] def List.zipWithM._sparseCasesOn_1 [decl #43500] theorem List.minIdxOn_eq_get_minIdxOn? [decl #43600] theorem Std.IterM.TerminationMeasures.Finite.Rel.eq_1 [decl #43700] theorem Subarray.mkSlice_rci_eq_mkSlice_rco [decl #43800] theorem _private.Init.Data.Array.Sort.Basic.0.Array.MergeSort.Internal.merge.go._unary.induct_unfolding [decl #43900] theorem Subarray.foldl_toList [decl #44000] theorem topologicalGroup_sInf [decl #44100] opaque String.Internal.isEmpty [decl #44200] def Cslib.Logic.CLL.PhaseSpace.Fact.linImpl [decl #44300] theorem Finset.prod_singleton [decl #44400] theorem Finsupp.count_toMultiset [decl #44500] def MultilinearMap.instSMul [decl #44600] theorem Function.Injective.hasDistribNeg._proof_1 [decl #44700] theorem Finset.coe_insert._simp_1 [decl #44800] def Pi.commMonoidWithZero [decl #44900] theorem ByteArray.extract_zero_max_size [decl #45000] def Std.DTreeMap.Const.beq [decl #45100] def Matrix.addCommMonoid [decl #45200] def Equiv.subtypeUnivEquiv INTERN_CALLS 1600000000 nodes=3149990 [decl #45300] theorem MonoidHom.snd._proof_2 [decl #45400] theorem Finset.image₂_left [decl #45500] def Lean.Parser.ParserExtension.Entry.token.noConfusion [decl #45600] theorem Std.instIrreflOfAsymm [decl #45700] def List.SublistForall₂.casesOn [decl #45800] theorem String.Pos.byteIdx_offset_le_utf8ByteSize._simp_1 [decl #45900] def WellFounded.recursion [decl #46000] def Std.Do.Invariant.withEarlyReturnNewDo [decl #46100] theorem _private.Std.Data.String.ToNat.0.NoRepetition.left_of_append._simp_1_1 [decl #46200] theorem List.infix_refl [decl #46300] theorem String.Slice.Pos.le_of_not_lt [decl #46400] def _private.Batteries.CodeAction.Misc.0.Batteries.CodeAction.instanceStub.collectFields._sparseCasesOn_1 [decl #46500] def Std.Iter.findSome? [decl #46600] theorem MonoidAlgebra.semiring._proof_2 [decl #46700] def _private.Mathlib.Data.Nat.Prime.Defs.0.Nat.Prime.two_le.match_1_1 [decl #46800] theorem Associated.symm [decl #46900] def IsAddCommutative.instAddCommSemigroup [decl #47000] theorem AddSubgroup.quotientEquivOfEq._proof_1 [decl #47100] def ENat.recTopCoe [decl #47200] theorem Std.DTreeMap.Const.foldl_eq_foldl_toList [decl #47300] theorem Nat.primeFactorsList_unique [decl #47400] theorem AddGroupSeminorm.instMax._proof_3 [decl #47500] theorem List.modify_eq_set [decl #47600] def Std.Sat.AIG.IsDAG [decl #47700] theorem Pi.constRingHom._proof_3 [decl #47800] theorem Finsupp.domLCongr_symm [decl #47900] theorem LinearMap.funLeft_id [decl #48000] theorem IsCofinal.univ [decl #48100] def InitialSeg.total.match_1 [decl #48200] theorem Ordinal.type_preimage [decl #48300] theorem Ordinal.typein_le_typein [decl #48400] theorem Ordinal.liftInitialSeg._proof_2 [decl #48500] theorem Std.LawfulBCmp.toLawfulBEqCmp [decl #48600] theorem Ordinal.cof_le_card [decl #48700] theorem Order.cof_Iio [decl #48800] theorem Ordinal.le_preOmega_self [decl #48900] def Ordinal.ToType.toOrd [decl #49000] theorem Submonoid.top_closure_mul_self_subset [decl #49100] theorem NNReal.HolderConjugate.inv_add_inv_eq_one [decl #49200] theorem Std.DTreeMap.Internal.Impl.Const.get!_eq_getValue! [decl #49300] def AddMonoidHom.toAddEquiv [decl #49400] theorem WithLp.equiv._proof_1 [decl #49500] theorem _private.Mathlib.Data.ENNReal.Real.0.ENNReal.ofReal_le_coe._simp_1_1 [decl #49600] def LinearIsometryEquiv.instEquivLike [decl #49700] theorem Equiv.sumPiEquivProdPi._proof_1 INTERN_CALLS 1700000000 nodes=1193263 [decl #49800] def Lean.Json.getStr? [decl #49900] theorem _private.Mathlib.Algebra.GroupWithZero.Semiconj.0.SemiconjBy.inv_right₀._simp_1_1 [decl #50000] theorem List.map_id'' [decl #50100] theorem Submodule.mk_eq_top [decl #50200] theorem Cycle.Mem._proof_1 [decl #50300] theorem _private.Mathlib.Data.List.Cycle.0.List.next_getElem._proof_1_8 [decl #50400] def Joined [decl #50500] theorem Std.Iter.toListRev_eq_toListRev_toIterM [decl #50600] theorem Lean.Order.ReverseImplicationOrder.instOrder._proof_2 [decl #50700] theorem Std.IterM.Equiv.symm [decl #50800] theorem Nat.instAssociativeMax [decl #50900] def MulHom.copy [decl #51000] theorem Vector.vector₂_induction [decl #51100] def Std.DTreeMap.Internal.Impl.minKeyD.match_1 [decl #51200] theorem Finset.prod_add_prod_le' [decl #51300] theorem _private.Mathlib.MeasureTheory.MeasurableSpace.Pi.0.generateFrom_pi_eq._proof_1_2 [decl #51400] theorem MeasureTheory.Measure.dirac_apply_of_mem [decl #51500] theorem Continuous.vsub [decl #51600] def ZMod.decidableEq [decl #51700] theorem Subgroup.leftCosetEquivSubgroup._proof_6 [decl #51800] def Lean.Meta.Tactic.Cbv.CbvSimprocEntry.mk.noConfusion [decl #51900] theorem Std.DTreeMap.getKey_inter [decl #52000] theorem TotallyBounded.isBounded [decl #52100] def Matrix.col [decl #52200] theorem _private.Mathlib.Algebra.Polynomial.Div.0.Polynomial.degree_modByMonic_lt._proof_1_6 [decl #52300] theorem le_of_isLUB_le_isGLB [decl #52400] theorem Polynomial.eq_one_of_monic_natDegree_zero [decl #52500] theorem ENat.top_ne_zero [decl #52600] def RingCon.instMulQuotient [decl #52700] theorem Std.Internal.List.getKey?_minKey? [decl #52800] theorem _private.Init.Data.Range.Polymorphic.RangeIterator.0.Std.Rxo.Iterator.instIteratorLoop.loopWf_eq [decl #52900] theorem _private.Init.Data.Array.Lex.Lemmas.0.Array.cons_lex_cons [decl #53000] def Finset.weightedVSubOfPoint [decl #53100] def Lean.mkErrorStringWithPos [decl #53200] def Lean.Parser.orelse [decl #53300] def _private.Lean.Meta.Hint.0.Lean.Meta.Hint.mkSuggestionsMessage.match_3 [decl #53400] def Lean.Diff.instBEqAction [decl #53500] theorem Std.DTreeMap.Internal.Impl.tree_split_ind [decl #53600] theorem Metric.hasBasis_nhdsSet_thickening [decl #53700] def Std.Packages.LinearPreorderOfLEArgs.noConfusion [decl #53800] theorem Array.mkSlice_roi_eq_mkSlice_roo [decl #53900] def GroupNorm.casesOn [decl #54000] theorem _private.Mathlib.Data.Matrix.Invertible.0.Matrix.add_mul_mul_mul_invOf_eq_one._simp_1_2 [decl #54100] def Std.Tactic.BVDecide.BVExpr.brecOn.go [decl #54200] theorem Std.Tactic.BVDecide.BVExpr.decEq._proof_71 [decl #54300] def Std.Tactic.BVDecide.BVExpr.decEq.match_17 [decl #54400] def Std.Tactic.BVDecide.BVExpr.Cache.Key.expr INTERN_CALLS 1800000000 nodes=4237029 [decl #54500] theorem String.ofByteArray.congr_simp [decl #54600] theorem AbstractCompletion.map_id [decl #54700] def Cslib.URM.Instr.JumpsBoundedBy [decl #54800] theorem Function.invFunOn_pos [decl #54900] def Submodule.pi [decl #55000] theorem Finset.sup_le_of_le_directed [decl #55100] theorem LinearMap.ker_le_of_iterateMapComap_eq_succ [decl #55200] theorem Fin.succAbove_lt_iff_castSucc_lt [decl #55300] theorem Int.neg_lt_zero_iff._simp_1 [decl #55400] def _private.Mathlib.GroupTheory.Finiteness.0.AddSubmonoid.fg_iff.match_1_1 [decl #55500] theorem _private.Mathlib.Algebra.BigOperators.Group.Finset.Piecewise.0.Finset.sum_dite_eq'._proof_1_1 [decl #55600] theorem LinearMap.quotKerEquivRange._proof_2 [decl #55700] theorem _private.Mathlib.LinearAlgebra.Prod.0.LinearMap.ker_coprod_of_disjoint_range._simp_1_4 [decl #55800] theorem Finset.card_lt_univ_of_notMem [decl #55900] theorem balancedCoreAux_balanced [decl #56000] theorem Submodule.t3_quotient_of_isClosed [decl #56100] def Module.Basis.constrL [decl #56200] def _private.Init.Data.Nat.Lemmas.0.Nat.one_lt_iff_ne_zero_and_ne_one.match_1_1 [decl #56300] def Mathlib.Tactic.AtomM.Recurse.instInhabitedConfig [decl #56400] theorem isometry_mul_left [decl #56500] theorem Std.ExtDTreeMap.getKeyLT._proof_1 [decl #56600] theorem instRightCommutativeOfLeftCommutative [decl #56700] theorem Equiv.listUniqueEquiv_symm_apply [decl #56800] def Lean.Meta.instInhabitedDiagnostics.default INTERN_CALLS 1900000000 nodes=861398 [decl #56900] theorem ContinuousAddMonoidHom.ext [decl #57000] theorem NonUnitalSubringClass.toNonUnitalNonAssocCommRing._proof_1 [decl #57100] theorem Ordinal.monoid._proof_10 [decl #57200] theorem _private.Mathlib.SetTheory.Ordinal.Arithmetic.0.Ordinal.mul_le_of_limit_aux._proof_1_3 [decl #57300] def Lean.MonadBacktrack.ctorIdx [decl #57400] theorem List.getElem_permutations'Aux [decl #57500] theorem List.modifyTailIdx_modifyTailIdx [decl #57600] def Lean.Meta.Closure.State.newLocalDeclsForMVars [decl #57700] def _private.Lean.Namespace.0.Lean.State [decl #57800] def _private.Lean.Meta.Sorry.0.Lean.Meta.SorryLabelView.decode?.match_4 [decl #57900] def Lean.Option.set [decl #58000] theorem supClosure._proof_4 [decl #58100] theorem CompositionAsSet.card_boundaries_pos [decl #58200] theorem Std.Sat.AIG.Fanin.gate_mk INTERN_CALLS 2000000000 nodes=1986107 [decl #58300] theorem NonUnitalRingHom.fst._proof_2 [decl #58400] theorem Int.mul_nonneg_of_nonneg_or_nonpos [decl #58500] def Std.Time.Day.instOfNatOrdinal._aux_1 [decl #58600] theorem MonoidHom.inr._proof_1 [decl #58700] theorem Nat.getElem_toList_rco [decl #58800] def Lean.groupKind [decl #58900] theorem RingEquiv.mopMatrix._proof_2 [decl #59000] theorem Equiv.image._proof_4 [decl #59100] theorem Std.ExtDTreeMap.minKeyD_insert_le_self [decl #59200] def WithZero.instLT [decl #59300] theorem List.nodup_iff_count [decl #59400] theorem List.mem_dlookup [decl #59500] theorem Std.Iterators.PostconditionT.run_attachLift [decl #59600] theorem AddMonoidAlgebra.mapAlgEquiv._proof_3 [decl #59700] theorem Submonoid.IsLocalizationMap.exists_of_eq [decl #59800] theorem IsLocalization.map_mk' [decl #59900] def IsTopologicalAddGroup.leftUniformSpace [decl #60000] def NormedAddGroupHom.lift [decl #60100] def Lean.SubExpr.Pos.instOrd [decl #60200] def Lean.sanitizeName [decl #60300] theorem vectorSpan_singleton [decl #60400] theorem _private.Batteries.Data.List.Lemmas.0.List.countPBefore_succ._proof_1_2 [decl #60500] theorem Equiv.cast_eq_iff_heq [decl #60600] theorem MultilinearMap.piRingEquiv._proof_1 [decl #60700] theorem Finset.map_injective [decl #60800] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.getLsbD_sshiftRight._simp_1_4 [decl #60900] opaque _private.Init.Meta.Defs.0.Lean.version.getPatch [decl #61000] def TopologicalSpace.Clopens.instPartialOrder [decl #61100] def _private.Lean.Meta.Check.0.Lean.Meta.throwAppTypeMismatch.match_1 INTERN_CALLS 2100000000 nodes=2503957 [decl #61200] def List.takeDTR.go.match_1 [decl #61300] theorem Con.subgroup_quotientGroupCon [decl #61400] def EReal.instMul [decl #61500] theorem EReal.instSubNegZeroMonoid._proof_3 [decl #61600] theorem sign_mul [decl #61700] theorem LinearMap.toMatrix_one [decl #61800] theorem OrderIso.IicTop._proof_2 [decl #61900] theorem Ideal.Quotient.field._proof_3 [decl #62000] theorem LinearMap.coe_det [decl #62100] theorem ENNReal.tsum_eq_top_of_eq_top [decl #62200] theorem Set.singleton_ne_empty [decl #62300] theorem Std.Internal.List.Const.beqModel_eq_true_of_perm [decl #62400] theorem Set.partiallyWellOrderedOn_union._simp_1 [decl #62500] def OreLocalization.oreCondition [decl #62600] theorem _private.Mathlib.RingTheory.OreLocalization.Ring.0.OreLocalization.add_smul._simp_1_1 [decl #62700] theorem OreLocalization.instDivisionRingNonZeroDivisors._proof_10 [decl #62800] theorem _private.Mathlib.Data.Fintype.Defs.0.Finset.eq_univ_iff_forall._simp_1_1 [decl #62900] theorem Fin.val_one [decl #63000] theorem Fin.addNat_le_addNat_iff [decl #63100] theorem RingHom.map_det [decl #63200] def _private.Mathlib.Algebra.BigOperators.GroupWithZero.Finset.0.Finset.prod_eq_zero_iff.match_1_1 [decl #63300] theorem Std.Internal.List.containsKey_minKey?_eraseKey [decl #63400] theorem Multiset.toFinsupp_eq_iff [decl #63500] def _private.Plausible.Random.0.Plausible.RandT.up.match_1 [decl #63600] def Array.take [decl #63700] def Aesop.RuleName._sizeOf_inst INTERN_CALLS 2200000000 nodes=3796342 [decl #63800] theorem Std.Tactic.BVDecide.BVExpr.bitblast.blastRotateLeft._proof_8 [decl #63900] theorem Nat.binaryRec._proof_1 [decl #64000] def StateT.monadControl [decl #64100] def Lean.throwMaxRecDepthAt [decl #64200] theorem map_list_sum [decl #64300] theorem _private.Mathlib.Data.List.Perm.Basic.0.List.map_append_flatMap_perm._simp_1_1 [decl #64400] theorem Nat.pow_pred_lt_pow [decl #64500] theorem _private.Init.Data.BitVec.Bitblast.0.BitVec.toInt_sdiv_of_ne_or_ne._proof_1_1 [decl #64600] theorem _private.Init.Data.BitVec.Bitblast.0.BitVec.getLsbD_neg._simp_1_9 [decl #64700] theorem _private.Init.Data.BitVec.Bitblast.0.BitVec.sdiv_ne_intMin_of_ne_intMin._proof_1_3 [decl #64800] def instStreamRawChar [decl #64900] def Asymptotics.IsEquivalent [decl #65000] theorem Std.DTreeMap.Internal.Impl.Equiv.size_eq [decl #65100] def Aesop.Index.instEmptyCollection [decl #65200] def Aesop.Frontend.RuleConfig.ruleSets [decl #65300] def _private.Aesop.RulePattern.0.Aesop.RulePattern.elab.fvarsToMVars [decl #65400] def Aesop.RuleBuilderOptions.casesIndexTransparency [decl #65500] opaque Aesop.UnionFind.merge [decl #65600] def Lean.Meta.eqnAffectingOptions [decl #65700] def Lean.Meta.Simp.SimprocDecl.declName [decl #65800] theorem _private.Lean.Meta.Tactic.Simp.Simproc.0.Lean.Meta.Simp.builtinSimprocDeclsRef._proof_1 [decl #65900] def _private.Lean.Meta.Basic.0.Lean.Meta.instTypeNameRealizeConstantResult [decl #66000] def Lean.Meta.Simp.main [decl #66100] def _private.Lean.Meta.WHNF.0.Lean.Meta.unfoldNestedDIte._sparseCasesOn_1 [decl #66200] def _private.Aesop.RuleSet.0.Aesop.BaseRuleSet.erase.match_1 INTERN_CALLS 2300000000 nodes=1407068 [decl #66300] theorem Std.DHashMap.Internal.Raw₀.contains_of_contains_union_of_contains_eq_false_left [decl #66400] def Lean.Meta.Grind.Arith.Cutsat.LeCnstrProof.ofDiseqSplit.elim [decl #66500] theorem AddEquiv.self_comp_symm [decl #66600] theorem Topology.IsInducing.sumElim [decl #66700] def OrderDual.instGeneralizedCoheytingAlgebra [decl #66800] def IO.FS.FileType.casesOn [decl #66900] theorem Std.DTreeMap.Internal.Impl.maxEntry?_eq_minEntry? [decl #67000] def Std.Http.Internal.Char.isQueryDataChar [decl #67100] theorem LinearMap.addCommGroup._proof_1 [decl #67200] def Lean.Expr.replaceFVarId [decl #67300] theorem Std.DTreeMap.Const.contains_eq_isSome_get? [decl #67400] def Lean.Meta.mkLT [decl #67500] theorem Std.DTreeMap.Internal.Impl.getKeyD_filter! [decl #67600] def _private.Mathlib.Tactic.Push.0.Mathlib.Tactic.Push.pushStep.match_1 [decl #67700] theorem Submodule.mem_dualCoannihilator._simp_1 [decl #67800] theorem ContinuousLinearMap.postcomp._proof_1 [decl #67900] def Lean.Compiler.LCNF.LetDecl.fvarId [decl #68000] def _private.Lean.Compiler.LCNF.CompilerM.0.Lean.Compiler.LCNF.CacheExtension.insert.match_1 INTERN_CALLS 2400000000 nodes=23492 [decl #68100] theorem ENNReal.div_lt_div_iff_right [decl #68200] def Std.Tactic.BVDecide.LRAT.Internal.lratChecker.match_3 [decl #68300] def Lean.Parser.Tactic.anchor [decl #68400] theorem UniqueFactorizationMonoid.prime_of_normalized_factor [decl #68500] def _private.Mathlib.Analysis.Convex.Segment.0.segment_symm.match_1_3 [decl #68600] theorem Equiv.semilatticeSup._proof_2 [decl #68700] theorem Function.Injective.completelyDistribLattice._proof_2 [decl #68800] theorem _private.Init.Data.Slice.List.Lemmas.0.List.toArray_mkSlice_roo._simp_1_1 [decl #68900] theorem _private.Mathlib.Logic.Equiv.Set.0.dite_comp_equiv_update._proof_1_2 [decl #69000] theorem Set.mulIndicator_apply_eq_one._simp_2 [decl #69100] theorem _private.Mathlib.Data.Fin.Basic.0.Fin.heq_ext_iff._simp_1_1 [decl #69200] theorem midpoint._proof_1 [decl #69300] theorem Std.Tactic.BVDecide.LRAT.Internal.Assignment.addNeg_addPos_eq_both [decl #69400] theorem _private.Mathlib.Data.Nat.Lattice.0.Nat.sInf_eq_zero._simp_1_1 [decl #69500] theorem Filter.eventually_iSup [decl #69600] def Std.Iterators.ULiftT.run [decl #69700] def Lean.Compiler.LCNF.instInhabitedLitValue [decl #69800] theorem _private.Cslib.Languages.LambdaCalculus.LocallyNameless.Fsub.Opening.0.Cslib.LambdaCalculus.LocallyNameless.Fsub.Term.openRecTm_substTm_intro._proof_1_7 [decl #69900] theorem HasProd.hasProd_compl_iff [decl #70000] theorem LLVM.instNonemptyBasicBlock [decl #70100] def _private.Init.Data.Int.DivMod.Lemmas.0.Int.negSucc_ediv.match_1_1 [decl #70200] def essSup_map_measure._auto_1 [decl #70300] def MulAction.ofQuotientStabilizer [decl #70400] def StrongDual.extendRCLikeₗ [decl #70500] theorem Std.Tactic.BVDecide.BVExpr.bitblast.blastAdd._proof_2 [decl #70600] def Std.Time.Modifier.S.elim [decl #70700] theorem _private.Mathlib.Analysis.LocallyConvex.Bounded.0.Bornology.isVonNBounded_iff_tendsto_smallSets_nhds._simp_1_1 [decl #70800] theorem MeasurableConstSMul.measurable_const_smul [decl #70900] theorem Std.DTreeMap.Internal.Impl.size_erase_le [decl #71000] theorem Finset.mk.inj [decl #71100] def Lean.Grind.CommRing.Mon.mul_nc.match_1 [decl #71200] theorem Complex.cpow_int_mul [decl #71300] def _private.Mathlib.Algebra.Order.GroupWithZero.Unbundled.Basic.0.pow_lt_one₀.match_1_1 INTERN_CALLS 2500000000 nodes=2337392 [decl #71400] def Lean.Elab.Tactic.Grind.State.noConfusionType [decl #71500] def ContinuousLinearEquiv.refl INTERN_CALLS 2600000000 nodes=1567374 [decl #71600] def Lean.Meta.Grind.Arith.CommRing.get' [decl #71700] theorem AlgHom.liftOfSurjective.congr_simp [decl #71800] theorem Subring.center._proof_4 [decl #71900] def SupHom.copy [decl #72000] theorem Std.DHashMap.Internal.Raw₀.Const.size_insertManyIfNewUnit_list [decl #72100] theorem MonoidHom.eqLocusM._proof_1 [decl #72200] theorem Std.DHashMap.Internal.Raw₀.get?_eq_of_equiv [decl #72300] def Std.Packages.LinearPreorderOfOrdArgs.lt._autoParam [decl #72400] def _private.Lean.Meta.Tactic.Simp.BuiltinSimprocs.Nat.0.Nat.NatOffset.casesOn [decl #72500] theorem Set.infinite_of_injective_forall_mem [decl #72600] theorem Submodule.prodEquivOfIsCompl_symm_apply INTERN_CALLS 2700000000 nodes=1840411 [decl #72700] def Set.div [decl #72800] theorem Nat.succ_pred_eq_of_ne_zero [decl #72900] theorem _private.Init.Data.BitVec.Bitblast.0.BitVec.signExtend_neg_of_le._simp_1_3 [decl #73000] def Cslib.Logic.Modal.Satisfies.Bundled [decl #73100] theorem _private.Mathlib.Order.LatticeIntervals.0.Set.Iic.disjoint_iff._simp_1_1 [decl #73200] theorem isSimpleOrder_iff_isAtom_top [decl #73300] theorem _private.Init.Data.String.Lemmas.FindPos.0.String.Slice.Pos.ofSliceTo_prev._simp_1_1 [decl #73400] def _private.Std.Time.Format.Basic.0.Std.Time.formatWith.match_3 [decl #73500] theorem _private.Std.Time.Date.ValidDate.0.Std.Time.ValidDate.dayOfYear._proof_1 [decl #73600] def Std.Time.TimeZone.name [decl #73700] def Std.Time.DateTime.ofPlainDateTimeAssumingUTC [decl #73800] def Relation.Fibration [decl #73900] theorem NonUnitalStarAlgebra.adjoin._proof_1 [decl #74000] def _private.Mathlib.SetTheory.Ordinal.Arithmetic.0.Ordinal.lift_natCast.match_1_1 [decl #74100] theorem Asymptotics.isBigO_self_const_mul [decl #74200] def _private.Init.Data.String.Lemmas.Splits.0.String.Slice.copy_slice_eq_iff_splits.match_1_1 [decl #74300] theorem Algebra.TensorProduct.instSemiring._proof_9 [decl #74400] theorem _private.Std.Internal.Http.Data.URI.Encoding.0.Std.Http.URI.isValidPercentEncoding.loop._proof_2 [decl #74500] theorem Order.Coframe.ofMinimalAxioms._proof_1 [decl #74600] theorem _private.Cslib.Languages.LambdaCalculus.LocallyNameless.Untyped.MultiApp.0.Cslib.LambdaCalculus.LocallyNameless.Untyped.Term.steps_multiApp_r._proof_1_2 [decl #74700] theorem Std.DHashMap.Internal.Raw₀.isHashSelf_filterMapₘ INTERN_CALLS 2800000000 nodes=960742 [decl #74800] theorem InfTopHom.id._proof_1 [decl #74900] theorem List.filterMap_eq_map' [decl #75000] def Lean.Meta.mkEqTrans [decl #75100] opaque Lean.auxRecExt [decl #75200] opaque Lean.Meta.Simp.Arith.Nat.ToLinear.toLinearExpr [decl #75300] def _private.Lean.Meta.Tactic.Simp.Arith.Int.Simp.0.Lean.Meta.Simp.Arith.Int.simpEq?.match_5 [decl #75400] def Nat.Linear.instBEqExpr.beq._sparseCasesOn_1 [decl #75500] theorem _private.Std.Data.DTreeMap.Internal.Lemmas.0.Std.DTreeMap.Internal.Impl.Const.size_insertManyIfNewUnit_list._simp_1_1 INTERN_CALLS 2900000000 nodes=120929 [decl #75600] def Std.ExtHashMap.diff [decl #75700] theorem Std.Internal.List.getValueCast!_nil [decl #75800] theorem Finset.powerset._proof_1 [decl #75900] theorem Finset.sum_filter_not_add_sum_filter [decl #76000] def Lean.Compiler.LCNF.Pass.phaseInv._autoParam [decl #76100] theorem Std.PRange.UpwardEnumerable.Map.PreservesRxoSize.size_eq [decl #76200] theorem UInt32.left_eq_add [decl #76300] def ContinuousMultilinearMap.instAdd [decl #76400] theorem ContinuousMultilinearMap.normedSpace._proof_3 [decl #76500] theorem _private.Mathlib.Data.Finsupp.Multiset.0.Finsupp.orderIsoMultiset._simp_2 INTERN_CALLS 3000000000 nodes=75369 INTERN_CALLS 3100000000 nodes=4169846 [decl #76600] opaque Lean.Meta.Match.instantiatePatternMVars [decl #76700] theorem MeasureTheory.Measure.measurable_join [decl #76800] theorem not_and_of_not_left [decl #76900] theorem _private.Mathlib.Data.Nat.Digits.Defs.0.Nat.ofDigits_inj_of_len_eq._simp_1_2 [decl #77000] theorem Std.Iter.atIdxSlow?._proof_7 [decl #77100] def Submonoid.LocalizationMap.ofMulEquivOfLocalizations [decl #77200] def MeasureTheory.indicatorConstLp [decl #77300] theorem _private.Mathlib.MeasureTheory.Function.L1Space.HasFiniteIntegral.0.MeasureTheory.hasFiniteIntegral_const_iff_enorm._simp_1_1 [decl #77400] theorem _private.Mathlib.MeasureTheory.Function.L1Space.Integrable.0.MeasureTheory.LipschitzWith.integrable_comp_iff_of_antilipschitz._simp_1_1 [decl #77500] theorem Bornology.isVonNBounded_of_smul_tendsto_zero INTERN_CALLS 3200000000 nodes=2229193 [decl #77600] theorem NNRat.tendsto_algebraMap_inv_atTop_nhds_zero_nat [decl #77700] theorem _private.Mathlib.MeasureTheory.Measure.OpenPos.0.IsOpen.measure_eq_zero_iff._simp_1_2 [decl #77800] def Mathlib.Meta.NormNum.Result.isNNRat [decl #77900] theorem UpperSemicontinuousAt.comp [decl #78000] theorem Algebra.idealMap_mul [decl #78100] def LinearOrderedAddCommGroupWithTop.toNeg [decl #78200] theorem OrderDual.isOrderedMonoid [decl #78300] theorem Polynomial.erase_zero [decl #78400] def Lean.PersistentHashMap.Zipper.brecOn.go [decl #78500] theorem USize.toFin_mod [decl #78600] theorem Std.ExtTreeMap.isNone_maxKey?_eq_isEmpty [decl #78700] theorem RingHom.injective_nat [decl #78800] theorem List.zip_unzip [decl #78900] theorem Std.DTreeMap.Internal.Impl.getKey?_union [decl #79000] theorem Std.Time.Modifier.y.inj INTERN_CALLS 3300000000 nodes=1094369 [decl #79100] theorem UInt16.ofBitVec_shiftLeft [decl #79200] theorem MeasureTheory.ae_dirac_eq [decl #79300] def Lean.LeanOption.noConfusion [decl #79400] theorem ProbabilityTheory.Kernel.indep_congr [decl #79500] def ProofWidgets.Component.noConfusionType [decl #79600] def IsMulCommutative.instCommMagma [decl #79700] theorem Cslib.LTS.Execution.eq_1 [decl #79800] theorem _private.Cslib.Computability.Automata.NA.Loop.0.Cslib.Automata.NA.loop_fin_run_exists._proof_1_82 [decl #79900] theorem Cardinal.natCast_mul_strictMono [decl #80000] theorem IsUnit.eq_inv_mul_iff_mul_eq [decl #80100] theorem Asymptotics.isBigOWith_const_const [decl #80200] def Lean.Elab.Tactic.Do.State.casesOn [decl #80300] theorem MeasureTheory.tendsto_lintegral_filter_of_dominated_convergence INTERN_CALLS 3400000000 nodes=3619370 [decl #80400] def Mathlib.Tactic.Ring.Common.instInhabitedRatCoeff.default [decl #80500] theorem Set.inter_singleton_eq_empty [decl #80600] def Int.Linear.eq_unsat_coeff_cert [decl #80700] theorem List.findSome?_cons [decl #80800] theorem eventually_ne_nhdsWithin [decl #80900] theorem LowerSet.instMax._proof_1 [decl #81000] def Mathlib.Tactic.Ring.Common.Result.casesOn [decl #81100] theorem Homeomorph.refl._proof_1 [decl #81200] theorem Set.image_star [decl #81300] theorem Set.Iic.instCompleteLattice._proof_6 INTERN_CALLS 3500000000 nodes=285274 [decl #81400] theorem _private.Mathlib.Algebra.BigOperators.Group.Finset.Basic.0.Finset.prod_insert_of_eq_one_if_notMem._proof_1_1 [decl #81500] theorem LinearPMap.map_add [decl #81600] theorem Std.Roi.toList_eq_match_rci [decl #81700] theorem EReal.top_ne_coe [decl #81800] theorem Int64.le_refl [decl #81900] def Subgroup.noncommPiCoprod [decl #82000] theorem Semigroup.opposite_smulCommClass [decl #82100] theorem Algebra.lmul._proof_6 [decl #82200] theorem Homeomorph.prodComm._proof_2 [decl #82300] def Std.Time.Awareness.type.match_1 [decl #82400] def _private.Std.Time.Format.Basic.0.Std.Time.GenericFormat.DateBuilder.m [decl #82500] def Std.Do.PostShape.ctorElim [decl #82600] theorem MonoidAlgebra.mapAddEquiv._proof_4 [decl #82700] def OrderHom.dual INTERN_CALLS 3600000000 nodes=2575692 [decl #82800] def Lean.Meta.Grind.AC.Struct.vars [decl #82900] def Cslib.Logic.PL.Theory.Derivation.brecOn.go [decl #83000] def _private.Lean.Meta.Tactic.Apply.0.Lean.MVarId.iffOfEq._sparseCasesOn_2 [decl #83100] def Additive.addCommGroup [decl #83200] theorem Std.DTreeMap.Internal.Impl.Const.maxEntry!.eq_def [decl #83300] theorem _private.Mathlib.Algebra.Group.Int.Even.0.Int.even_iff._simp_1_3 [decl #83400] def Lean.Meta.RefinedDiscrTree.Key.hash [decl #83500] theorem DenseRange.exists_mem_open [decl #83600] def Quot.hrecOn₂ [decl #83700] theorem MonoidHom.compHom._proof_2 [decl #83800] def LinearPMap.sSup [decl #83900] theorem String.Pos.ofToSlice_next_toSlice._proof_1 [decl #84000] theorem Filter.Eventually.diag_of_prod_left [decl #84100] theorem WithTop.map_comp_map [decl #84200] theorem AddSubmonoid.bot_or_nontrivial [decl #84300] def _private.Lean.Meta.Sym.Simp.Forall.0.Lean.Meta.Sym.Simp.simpArrows.match_3 INTERN_CALLS 3700000000 nodes=4613553 [decl #84400] theorem Nat.toArray_toList_rcc [decl #84500] theorem AlgEquiv.applyMulSemiringAction._proof_2 [decl #84600] theorem ContinuousMap.instContinuousEvalConst [decl #84700] def Lean.Language.DynamicSnapshot.tree [decl #84800] def _private.Lean.Server.Completion.SyntheticCompletion.0.Lean.Server.Completion.findSyntheticIdentifierCompletion?.match_1 [decl #84900] def _private.Lean.DocString.Markdown.0.Lean.Doc.MarkdownM.State.endBlock [decl #85000] theorem _private.Mathlib.LinearAlgebra.Finsupp.LinearCombination.0.Fintype.linearCombination._simp_2 [decl #85100] theorem Polynomial.coeff_mul_add_eq_of_natDegree_le INTERN_CALLS 3800000000 nodes=272599 [decl #85200] def Substring.Raw.isNat [decl #85300] theorem Nat.even_add [decl #85400] theorem List.findFinIdx?_eq_pmap_findIdx?._simp_1 [decl #85500] def System.FilePath.isDir [decl #85600] def Plausible.GenError.noConfusion [decl #85700] theorem IsUniformInducing.mk' [decl #85800] theorem ContinuousMapZero.instNonUnitalCommRing._proof_6 [decl #85900] theorem ContinuousMap.coe_smul [decl #86000] theorem Equiv.subsingleton [decl #86100] theorem Set.Iic_diff_Iio_same [decl #86200] def _private.Lean.Elab.Tactic.BVDecide.Frontend.BVDecide.Reflect.0.Lean.Elab.Tactic.BVDecide.Frontend.M.atomsAssignment.match_3 [decl #86300] def Lean.Parser.ParserExtension.OLeanEntry.kind.elim [decl #86400] theorem Set.one_nonempty [decl #86500] theorem _private.Init.Data.String.Basic.0.String.Slice.Pos.ofSlice_le._simp_1_1 [decl #86600] theorem MeasureTheory.Lp.simpleFunc.neg_toSimpleFunc [decl #86700] def Plausible.Testable.runPropE [decl #86800] theorem FreeGroup.Red.Step.append_left [decl #86900] theorem AffineSubspace.vadd_mem_of_mem_direction [decl #87000] theorem sub_zsmul [decl #87100] theorem Ordering.isEq_eq_false [decl #87200] theorem AddMonoidAlgebra.mapDomainAddEquiv._proof_3 [decl #87300] theorem Cslib.FreeM.brecOn.eq [decl #87400] theorem _private.Std.Data.Internal.List.Associative.0.Std.Internal.List.mem_iff_getValue?_eq_some._simp_1_2 [decl #87500] theorem Continuous.comp₃ INTERN_CALLS 3900000000 nodes=3844363 [decl #87600] theorem OrderEmbedding.withTopMap._proof_1 [decl #87700] def _private.Lean.Elab.Tactic.Omega.OmegaM.0.Lean.Elab.Tactic.Omega.analyzeAtom.match_14 [decl #87800] theorem _private.Init.Data.String.FindPos.0.PSigma.casesOn._arg_pusher [decl #87900] def _private.Std.Internal.Http.Data.Body.Stream.0.Std.Http.Body.Channel.Consumer.ctorIdx [decl #88000] def SeparationQuotient.instAddCommGroup [decl #88100] theorem Std.TreeMap.Raw.size_le_size_insertManyIfNewUnit_list [decl #88200] theorem AddCommute.self_nsmul [decl #88300] def Lean.Meta.ConfigWithKey.casesOn [decl #88400] theorem Vector.reverse_mk._proof_1 [decl #88500] def Std.Internal.IndexMultiMap.instMembership INTERN_CALLS 4000000000 nodes=3054246 INTERN_CALLS 4100000000 nodes=1288525 [decl #88600] theorem ConjAct.Subgroup.val_conj_smul [decl #88700] def _private.Aesop.Tracing.0.Aesop.exceptRuleResultToEmoji.match_1 [decl #88800] theorem AntivaryOn.of_inv_right₀ [decl #88900] theorem String.Slice.Pattern.Model.ForwardStringSearcher.isMatch_iff [decl #89000] def Lean.Elab.Command.expandNoKindMacroRulesAux [decl #89100] theorem _private.Mathlib.LinearAlgebra.Matrix.SemiringInverse.0.Matrix.detp_mul._simp_1_1 [decl #89200] theorem Matrix.left_inv_eq_left_inv [decl #89300] def SubAddAction.inclusion [decl #89400] theorem MonotoneOn.reflect_lt [decl #89500] theorem Subgroup.centralizer_le_normalizer [decl #89600] def Aesop.RuleTacDescr.ruleTac.elim [decl #89700] theorem toIocMod_le_right [decl #89800] theorem Finset.sum_update_of_mem [decl #89900] theorem AddSubmonoid.unop._proof_2 [decl #90000] theorem Std.MaxEqOr.max_eq_or [decl #90100] theorem Matrix.range_cons [decl #90200] def fixedPointsSubMulOfNormal [decl #90300] def Lean.IR.EmitLLVM.Context.llvmmodule INTERN_CALLS 4200000000 nodes=1617661 [decl #90400] theorem TensorProduct.comm._proof_3 [decl #90500] def instMulPNat._aux_1 [decl #90600] theorem _private.Std.Data.DTreeMap.Internal.Lemmas.0.Std.DTreeMap.Internal.Impl.mem_keys._simp_1_1 [decl #90700] theorem _private.Cslib.Computability.Languages.ExampleEventuallyZero.0.Cslib.ωLanguage.Example.extend_by_zero [decl #90800] theorem _private.Cslib.Foundations.Data.Nat.Segment.0.Nat.strictMono_range_gap._proof_1_2 [decl #90900] theorem Lean.Grind.AC.diseq_simp_rhs_exact [decl #91000] theorem Composition.blocks_pos [decl #91100] theorem Cslib.Algorithms.Lean.TimeM.merge._unary.eq_def [decl #91200] theorem Vector.getElem_toList [decl #91300] def Lean.Meta.simpCore [decl #91400] def Std.Tactic.BVDecide.BVUnOp.eval [decl #91500] theorem Set.Icc_eq_Ioc_same_iff [decl #91600] def Cslib.Logic.HML.Satisfies.Context.state [decl #91700] theorem _private.Cslib.Foundations.Semantics.LTS.Execution.0.Cslib.LTS.Execution.to_mTr._proof_1_45 [decl #91800] theorem _private.Init.Data.String.Lemmas.Pattern.Basic.0.String.Slice.Pattern.Model.LawfulBackwardPatternModel.skipSuffix?_eq_none_iff._simp_1_1 [decl #91900] theorem _private.Init.Data.UInt.Lemmas.0.UInt32.toNat_ofNatTruncate_of_le._proof_1_2 [decl #92000] theorem Polynomial.coeff_X_pow_self INTERN_CALLS 4300000000 nodes=1629020 [decl #92100] theorem MeasureTheory.nnnorm_indicatorConstLp_le [decl #92200] theorem sup_eq_right._simp_2 [decl #92300] def Lean.Elab.Tactic.Simp.DischargeWrapper.ctorElimType [decl #92400] def _private.Lean.Elab.Tactic.Do.ProofMode.Basic.0.Lean.Elab.Tactic.Do.ProofMode.mStart.match_1 [decl #92500] theorem _private.Mathlib.Data.Int.Interval.0.Finset.Ioo_succ_succ._proof_1_3 [decl #92600] opaque _private.Lean.Data.Json.Basic.0.Lean.JsonNumber.countDigits.loop [decl #92700] def Lean.RBTree.forM [decl #92800] theorem isClosed_frontier [decl #92900] theorem _private.Init.Grind.Ordered.Linarith.0.Lean.Grind.Linarith.lt_norm._simp_1_2 [decl #93000] def Lean.ImportM.Context.casesOn [decl #93100] def _private.Mathlib.Data.List.Sublists.0.List.sublistsLenAux.match_1.splitter [decl #93200] def Finsupp.Lex.partialOrder [decl #93300] def Lean.Compiler.LCNF.JoinPointContextExtender.ExtendContext.noConfusion [decl #93400] theorem _private.Mathlib.Data.List.Sort.0.List.sortedGE_iff_pairwise._proof_1_4 [decl #93500] theorem star_ratCast_smul [decl #93600] theorem Std.DHashMap.Internal.Raw₀.contains_insert_self INTERN_CALLS 4400000000 nodes=3757667 [decl #93700] theorem AlgEquiv.uniqueProd._proof_1 [decl #93800] theorem Cslib.Logic.CLL.PhaseSpace.dualFact.eq_1 [decl #93900] def Lean.Server.WithRpcRef.mk [decl #94000] theorem Std.DTreeMap.Internal.Impl.Const.size_insertMany_list [decl #94100] theorem Function.range_eq_image_or_of_support_subset [decl #94200] theorem _private.Init.Data.List.ToArray.0.Array.findM?.eq_1 [decl #94300] theorem toZ_nonneg [decl #94400] def Std.Time.TimeZone.convertTransition [decl #94500] theorem _private.Cslib.Computability.Automata.DA.ToNA.0.Cslib.Automata.DA.toNA_run._proof_1_3 [decl #94600] theorem ContinuousLinearMap.definition._proof_1._@.Mathlib.Analysis.Normed.Operator.Banach.754268252._hygCtx._hyg.2 [decl #94700] theorem AffineIndependent.of_comp [decl #94800] def Std.Iterators.Types.StepSizeIterator.recOn [decl #94900] theorem UInt8.toUSize._proof_1 [decl #95000] theorem PosSMulStrictMono.toPosSMulReflectLT [decl #95100] def Lean.MonadHashMapCacheAdapter.getCache [decl #95200] def Aesop.instBEqRawHyp INTERN_CALLS 4500000000 nodes=2909051 [decl #95300] def Lean.Meta.Grind.Arith.CommRing.EqCnstrProof.brecOn [decl #95400] theorem Ideal.quotEquivOfEq._proof_2 [decl #95500] theorem Equiv.generalizedHeytingAlgebra._proof_2 [decl #95600] theorem AddSubgroupClass.subtype._proof_2 [decl #95700] theorem Std.Ric.toArray_toList [decl #95800] theorem LinearMap.GeneralLinearGroup.coeFn_generalLinearEquiv [decl #95900] def Lean.Lsp.WorkspaceEditClientCapabilities.mk.noConfusion [decl #96000] theorem ContinuousAt.clm_apply [decl #96100] def Lean.AttributeImplCore.ref [decl #96200] theorem _private.Mathlib.Data.Nat.Factorization.Defs.0.Nat.factorization_eq_zero_iff._simp_1_4 [decl #96300] theorem Polynomial.mul_comp INTERN_CALLS 4600000000 nodes=1670836 [decl #96400] def Std.TreeMap.Raw.valuesArray [decl #96500] theorem ContinuousAffineMap.decompLinearEquiv._proof_1 [decl #96600] def MulDistribMulActionHom.instFunLike [decl #96700] theorem divp.eq_1 [decl #96800] theorem isPathConnected_singleton INTERN_CALLS 4700000000 nodes=1607328 [decl #96900] theorem _private.Mathlib.Data.Finset.Insert.0.Finset.consPiProdEquiv._proof_10 [decl #97000] def Lean.Compiler.SpecializeAttributeKind.casesOn [decl #97100] theorem _private.Mathlib.Order.Filter.Lift.0.Filter.lift_neBot_iff._simp_1_4 [decl #97200] theorem TensorProduct.directSum._proof_1 [decl #97300] theorem Function.Antiperiodic.nat_mul_eq_of_eq_zero [decl #97400] theorem Filter.EventuallyEq.fun_star [decl #97500] theorem unitInterval.toNNReal_continuous [decl #97600] theorem Matrix.twoBlockTriangular_det' [decl #97700] theorem Set.preimage_subset_iff [decl #97800] theorem powMonoidHom_apply INTERN_CALLS 4800000000 nodes=3760740 [decl #97900] theorem Std.Internal.Parsec.Error.eof.sizeOf_spec [decl #98000] theorem _private.Std.Data.Internal.List.Associative.0.Std.Internal.List.minKey?_eraseKey_eq_iff_beq_minKey?_eq_false._simp_1_2 [decl #98100] def Std.Tactic.BVDecide.BVExpr.bitblast.blastMul.go._unary [decl #98200] theorem _private.Cslib.Foundations.Semantics.FLTS.FLTSToLTS.0.Cslib.FLTS.toLTS_mtr._proof_1_1 [decl #98300] theorem _private.Cslib.Foundations.Data.OmegaSequence.Temporal.0.Cslib.ωSequence.drop_frequently_iff_frequently._simp_1_1 [decl #98400] def _private.Lean.Meta.Tactic.Assert.0.Lean.MVarId.note.match_1 [decl #98500] theorem String.skipSuffix?_bool_eq_some_iff._proof_1 [decl #98600] theorem instCompleteAtomicBooleanAlgebraLanguage._proof_16 [decl #98700] def ContinuousAlgEquiv.toContinuousAlgHom INTERN_CALLS 4900000000 nodes=3979983 [decl #98800] theorem Polynomial.coeff_reverse [decl #98900] def Finset.finAntidiagonal.aux.match_1 [decl #99000] theorem NonUnitalAlgHom.prod._proof_4 [decl #99100] theorem RingEquiv.toNonUnitalRingHom_refl [decl #99200] theorem IsCompactlyGenerated.exists_sSup_eq [decl #99300] theorem _private.Std.Tactic.BVDecide.LRAT.Internal.Formula.Lemmas.0.Std.Tactic.BVDecide.LRAT.Internal.DefaultFormula.readyForRupAdd_ofArray._proof_1_29 [decl #99400] theorem Std.Tactic.BVDecide.LRAT.Internal.Assignment.not_has_remove [decl #99500] theorem _private.Std.Tactic.BVDecide.LRAT.Internal.Formula.RupAddResult.0.Std.Tactic.BVDecide.LRAT.Internal.DefaultFormula.confirmRupHint_preserves_invariant_helper._proof_1_13 [decl #99600] theorem _private.Std.Tactic.BVDecide.LRAT.Internal.Formula.RupAddResult.0.Std.Tactic.BVDecide.LRAT.Internal.DefaultFormula.nodup_insertRupUnits._proof_1_8 [decl #99700] theorem _private.Std.Tactic.BVDecide.LRAT.Internal.Formula.Lemmas.0.Std.Tactic.BVDecide.LRAT.Internal.DefaultFormula.mem_of_insertRupUnits._simp_1_6 [decl #99800] theorem Std.Tactic.BVDecide.LRAT.Internal.DefaultFormula.formula_performRatCheck [decl #99900] theorem _private.Std.Tactic.BVDecide.LRAT.Internal.Formula.RatAddSound.0.Std.Tactic.BVDecide.LRAT.Internal.DefaultFormula.sat_of_confirmRupHint_of_insertRat_fold._simp_1_2 [decl #100000] def Cslib.SKI.Sqrt [decl #100100] opaque Lean.LibrarySuggestions.moduleDenyListExt [decl #100200] def Std.Internal.Parsec.String.ws [decl #100300] theorem _private.Mathlib.Data.Fin.Tuple.Basic.0.Fin.findX._proof_12 [decl #100400] def Aesop.Frontend.Feature.phase.elim INTERN_CALLS 5000000000 nodes=2569051 [decl #100500] theorem Int64.xor_comm [decl #100600] theorem MeasureTheory.integrable_withDensity_iff_integrable_coe_smul [decl #100700] def Aesop.IndexMatchResult.patternSubsts? [decl #100800] def _private.Aesop.RuleTac.Forward.Basic.0.Aesop.getForwardHypData.match_1 [decl #100900] def Lean.LocalContext.inaccessibleFVars [decl #101000] def Aesop.ForwardRuleMatches.eraseHyps [decl #101100] def _private.Lean.Meta.Tactic.Simp.SimpAll.0.Lean.Meta.SimpAll.main.match_1 [decl #101200] def Aesop.IndexMatchLocation.instBEq [decl #101300] def _private.Aesop.Tree.RunMetaM.0.Aesop.Goal.runMetaMInPostNormState'.match_1 [decl #101400] def _private.Aesop.Tree.Data.0.Aesop.GoalState.isProven.match_1 [decl #101500] def _private.Lean.Setup.0.Lean.instHashableImport.hash.match_1 [decl #101600] theorem compl_sdiff [decl #101700] theorem _private.Init.Data.String.Lemmas.FindPos.0.String.Pos.ofSliceTo_prev._simp_1_3 [decl #101800] def _private.Lean.Meta.Sym.ReplaceS.0.Lean.Meta.Sym.visitChild._sparseCasesOn_4 [decl #101900] theorem neg_ball [decl #102000] theorem AddSubmonoid.LocalizationMap.ext_iff [decl #102100] def Lean.Meta.Grind.SavedState.restore [decl #102200] theorem Std.DTreeMap.contains_of_contains_map [decl #102300] def List.instTransSubset [decl #102400] theorem ContinuousLinearEquiv.toSpanNonzeroSingleton._proof_3 [decl #102500] theorem Filter.comap_surjective_eq_bot [decl #102600] theorem _private.Std.Data.ExtDTreeMap.Lemmas.0.Std.ExtDTreeMap.Const.ofList_eq_empty_iff._simp_1_3 INTERN_CALLS 5100000000 nodes=932985 [decl #102700] def Std.Tactic.BVDecide.BoolExpr.below [decl #102800] def Units.mulAction' [decl #102900] theorem Lean.Doc.DescItem.mk.sizeOf_spec [decl #103000] theorem ENNReal.toReal_min [decl #103100] theorem LinearMap.isPairSelfAdjointSubmodule._proof_2 [decl #103200] theorem List.replicate_succ' [decl #103300] def Aesop.RappId.noConfusionType [decl #103400] def Cslib.CCS.Act._sizeOf_inst [decl #103500] theorem Std.Do.Spec.forIn'_array [decl #103600] def Std.Time.Day.instDecidableLtOffset._aux_1 [decl #103700] theorem _private.Batteries.Data.BinomialHeap.Basic.0.Batteries.BinomialHeap.Imp.HeapNode.realSize_toHeap.go [decl #103800] def Mathlib.Tactic.Ring.Common.Result._sizeOf_1 [decl #103900] theorem Std.HashMap.Raw.getKey!_eq_default_of_contains_eq_false [decl #104000] theorem Int.add_one_tdiv_of_pos [decl #104100] theorem _private.Init.Data.String.Lemmas.FindPos.0.String.Pos.posLE_offset._simp_1_2 [decl #104200] def Lean.Elab.Tactic.elabGrindConfigInteractive [decl #104300] opaque _private.Lean.Meta.Tactic.Grind.EMatchTheorem.0.Lean.Meta.Grind.OldCollector.collect [decl #104400] def Lean.Meta.Grind.EMatchTheoremKind.toAttribute [decl #104500] def Lean.Grind.Config.splitImp [decl #104600] def Lean.Meta.Grind.getOnlyExtensionState [decl #104700] def _private.Lean.Meta.Tactic.Grind.Intro.0.Lean.Meta.Grind.preprocessHypothesis.match_1 [decl #104800] def Lean.Meta.mkHEqOfEq [decl #104900] def Lean.Level.isAlreadyNormalizedCheap._f [decl #105000] def Lean.Meta.Grind.activateInjectiveTheorem [decl #105100] def _private.Lean.Meta.Tactic.Grind.ForallProp.0.Lean.Meta.Grind.isEqTrueHyp?._sparseCasesOn_1 [decl #105200] def _private.Lean.Meta.Tactic.Induction.0.Lean.Meta.mkRecursorAppPrefix._sparseCasesOn_8 [decl #105300] def Lean.Elab.Tactic.Grind.Context.methods [decl #105400] def _private.Lean.Meta.Tactic.Grind.Arith.CommRing.DenoteExpr.0.Lean.Grind.CommRing.Mon.denoteExpr.go._f [decl #105500] theorem Array.replace_extract [decl #105600] theorem Cardinal.ne_zero_of_isSuccLimit [decl #105700] theorem _private.Mathlib.Topology.Instances.EReal.Lemmas.0.EReal.continuousAt_mul_top_pos._simp_1_11 [decl #105800] theorem TopologicalSpace.Opens.frameMinimalAxioms._proof_1 [decl #105900] theorem _private.Std.Data.DTreeMap.Internal.Zipper.0.Std.DTreeMap.Internal.Zipper.ordered_prependMap_done._simp_1_5 [decl #106000] def List.lookmap.go.match_1 [decl #106100] theorem Measurable.neg [decl #106200] theorem Int16.add_comm [decl #106300] theorem ContinuousLinearEquiv.conjContinuousAlgEquiv._proof_8 [decl #106400] theorem _private.Std.Data.DTreeMap.Internal.Lemmas.0.Std.DTreeMap.Internal.Impl.forM_eq_forM_toArray._simp_1_1 [decl #106500] theorem IsUnit.exists_left_inv [decl #106600] def Lean.Meta.RefinedDiscrTree.casesOn [decl #106700] def Lean.Meta.RefinedDiscrTree.getMatch [decl #106800] def Std.Http.Header.Value.noConfusion INTERN_CALLS 5200000000 nodes=3284991 [decl #106900] theorem Cslib.LambdaCalculus.LocallyNameless.Fsub.Term.substTy.eq_5 [decl #107000] theorem instCommutativeISizeHAdd [decl #107100] theorem Submodule.continuous_prodEquivOfIsCompl [decl #107200] def Cslib.Automata.DA.Muller.toDA [decl #107300] theorem _private.Init.Data.UInt.Lemmas.0.UInt32.toUSize_le._simp_1_2 [decl #107400] theorem Prod.instCancelCommMonoid.eq_1 [decl #107500] theorem continuousWithinAt_iff_continuous_left_right [decl #107600] theorem NonUnitalSeminormedCommRing.mul_comm [decl #107700] def _private.Mathlib.Tactic.Widget.LibraryRewrite.0.Mathlib.Tactic.LibraryRewrite.renderRewrites.renderSection.match_1 [decl #107800] def ProofWidgets.instToJsonMakeEditLinkProps.toJson [decl #107900] theorem Seminorm.instAdd._proof_1 [decl #108000] def Lean.Grind.CommRing.Poly.isSorted.match_1 [decl #108100] def Lean.Grind.CommRing.Power.renameVars [decl #108200] def _private.Lean.Meta.Tactic.Grind.Arith.CommRing.SafePoly.0.Lean.Meta.Grind.Arith.CommRing.applyChar [decl #108300] def Lean.Meta.Grind.CheckResult.casesOn [decl #108400] def Std.DTreeMap.Const.getEntryGE INTERN_CALLS 5300000000 nodes=754644 [decl #108500] def Lean.Lsp.instFromJsonDiagnosticWith [decl #108600] theorem _private.Mathlib.Data.List.NodupEquivFin.0.List.sublist_iff_exists_orderEmbedding_getElem?_eq._simp_1_1 [decl #108700] theorem map_nnrat_smul [decl #108800] theorem Std.TreeMap.Raw.getKey_erase [decl #108900] def _private.Lean.Meta.Sym.LitValues.0.Lean.Meta.Sym.getNatValue?._sparseCasesOn_2 [decl #109000] def Lean.Grind.AC.instInhabitedSeq.default [decl #109100] theorem Disjoint.map_orderIso [decl #109200] theorem IsFractionRing.algEquivOfAlgEquiv._proof_2 [decl #109300] theorem StarAlgHom.copy._proof_5 [decl #109400] theorem Int.pow_succ' [decl #109500] theorem Multiset.eq_zero_of_subset_zero [decl #109600] theorem Ideal.map_eq_iff_sup_ker_eq_of_surjective [decl #109700] theorem Subring.topologicalClosure._proof_2 [decl #109800] def Lean.Parser.Command.optDeclSig.parenthesizer [decl #109900] theorem Std.DHashMap.Internal.Raw₀.Const.get!_map' [decl #110000] def Lean.MetavarKind.isNatural [decl #110100] def _private.Lean.Meta.Sym.Simp.Have.0.Lean.Meta.Sym.Simp.simpBetaApp.go.match_3 [decl #110200] theorem Std.HashSet.Equiv.beq [decl #110300] theorem ContinuousLinearEquiv.image_symm_image INTERN_CALLS 5400000000 nodes=392684 [decl #110400] theorem _private.Init.Data.Nat.Lemmas.0.Nat.eq_sub_of_add_eq._proof_1_1 [decl #110500] def ContinuousMap.fst [decl #110600] def Nat.foldTR [decl #110700] def Matrix.toLinearEquiv' [decl #110800] theorem Submodule.IsCompl.projection_range [decl #110900] theorem Fin.pos_iff_nonempty [decl #111000] theorem _private.Mathlib.RingTheory.Ideal.Maximal.0.Ideal.span_singleton_prime._simp_1_3 INTERN_CALLS 5500000000 nodes=2136517 [decl #111100] theorem AddCommGroup.not_modEq_iff_toIcoMod_eq_toIocMod [decl #111200] theorem intEquivOfZMultiplesEqTop._proof_1 [decl #111300] def Lean.SerialMessage.toString [decl #111400] theorem Std.DTreeMap.Internal.Impl.Equiv.constMergeWith [decl #111500] def Std.DTreeMap.Internal.Impl.Const.getEntryLT [decl #111600] theorem _private.Cslib.Languages.LambdaCalculus.LocallyNameless.Fsub.Opening.0.Cslib.LambdaCalculus.LocallyNameless.Fsub.Term.openRecTm_lc._proof_1_9 [decl #111700] def Std.DHashMap.Raw.instInhabited [decl #111800] theorem _private.Mathlib.Logic.Equiv.Prod.0.Equiv.piEquivPiSubtypeProd._proof_12 [decl #111900] theorem Finset.sum_of_injOn [decl #112000] theorem SeminormedGroup.ofMulDist._proof_2 [decl #112100] def Lean.Elab.Tactic.Do.VCGenM [decl #112200] theorem Finsupp.curryLinearEquiv._proof_1 [decl #112300] def Std.Iterators.Types.ULiftIterator.instIterator [decl #112400] def StarMonoidHom._sizeOf_1 [decl #112500] theorem _private.Mathlib.Data.Set.Lattice.0.Set.iInter₂_eq_empty_iff._simp_1_2 [decl #112600] theorem ContinuousMonoidHom.toContinuousMonoidHom._proof_1 [decl #112700] theorem _private.Cslib.Languages.LambdaCalculus.LocallyNameless.Untyped.Properties.0.Cslib.LambdaCalculus.LocallyNameless.Untyped.Term.close_open_to_subst._proof_1_4 [decl #112800] theorem MulSemiringAction.toRingHom._proof_1 REJECT: [Cslib.LambdaCalculus.LocallyNameless.Untyped.Term.Eta] recursor `Cslib.LambdaCalculus.LocallyNameless.Untyped.Term.Eta.rec` allows large elimination out of a Prop-valued inductive that is not a subsingleton
Test "init"
Expected: 👍 accept · Size: 309.5 MB · Lines: 6.1 M · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: 1.0 m · instructions: 755.2 G · max rss memory: 1004.1 MB
stderr:
[decl #100] theorem Eq.symm [decl #200] theorem Nat.pow_pos [decl #300] def inferInstance [decl #400] def _private.Init.Core.0.dif_neg.match_1_1 [decl #500] def instNatCastInt [decl #600] theorem Nat.not_le [decl #700] def Lean.Omega.normalize?.match_1 [decl #800] theorem Int.dvd_mul_right [decl #900] theorem Nat.add_mul_div_right [decl #1000] theorem Int.natCast_nonneg [decl #1100] def _private.Init.Data.Int.Lemmas.0.Int.neg_eq_neg_one_mul.match_1_1 [decl #1200] def instDecidableOr [decl #1300] theorem of_decide_eq_false [decl #1400] theorem LawfulApplicative.toLawfulFunctor [decl #1500] theorem Array.ext' [decl #1600] theorem imp_false._simp_1 [decl #1700] def Std.IsLinearPreorder.of_le._auto_1 [decl #1800] theorem Std.PRange.instLawfulUpwardEnumerableLTNat [decl #1900] def Fin.instOfNat [decl #2000] theorem String.Pos.Raw.le_iff [decl #2100] def Std.Packages.LinearOrderOfLEArgs.max_eq._autoParam [decl #2200] theorem String.Pos.Raw.instLinearOrderPackage._proof_5 [decl #2300] def _private.Init.Data.Nat.Lemmas.0.Nat.zero_shiftRight.match_1_1 [decl #2400] theorem Nat.Linear.Poly.denote_append [decl #2500] theorem _private.Init.Data.Nat.Bitwise.Lemmas.0.Nat.testBit_two_pow_mul._simp_1_1 [decl #2600] def Lean.Grind.CommRing.Poly.mulMon_nc [decl #2700] def List.decidableBEx.match_3 [decl #2800] def ByteArray.instGetElemNatUInt8LtSize [decl #2900] theorem Nat.min_eq_right [decl #3000] def BitVec.shiftLeftZeroExtend [decl #3100] theorem _private.Init.Data.Nat.Lemmas.0.Nat.succ_mod_succ_eq_zero_iff._simp_1_3 [decl #3200] theorem _private.Init.Data.Nat.Bitwise.Lemmas.0.Nat.le_of_testBit._proof_1_1 [decl #3300] theorem _private.Init.Data.String.Decode.0.utf8Size_le_of_utf8DecodeChar?_eq_some._proof_1_3 [decl #3400] theorem Char.utf8Size_eq_four_iff [decl #3500] theorem List.cons_ne_self._simp_1 [decl #3600] theorem String.utf8EncodeCharFast.fun_cases_unfolding [decl #3700] theorem _private.Init.Data.String.Decode.0.utf8DecodeChar?_eq_assemble₂ [decl #3800] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.assemble₃_eq_some_iff_utf8EncodeChar_eq._proof_1_5 [decl #3900] theorem _private.Init.Data.Array.Extract.0.Array.extract_eq_self_iff._proof_1_2 [decl #4000] theorem ByteArray.append_assoc [decl #4100] def _private.Init.Data.String.Defs.0.String.Pos.Raw.isValid_iff_isValidUTF8_extract_zero.match_1_3 [decl #4200] theorem String.Pos.Raw.IsValidForSlice.isValid_offsetBy [decl #4300] theorem Int.neg_eq_comm [decl #4400] def Lean.Grind.Semiring.natCast [decl #4500] def Array.swap._auto_1 [decl #4600] theorem Array.getElem_push_lt._proof_3 [decl #4700] def ForInStep.casesOn [decl #4800] theorem _private.Init.Prelude.0.System.Platform.getNumBits._proof_1 [decl #4900] theorem _private.Init.Data.Range.Polymorphic.Iterators.0.Std.Rxo.Iterator.upwardEnumerableLe_of_isPlausibleIndirectOutput._simp_1_4 [decl #5000] theorem Int.ediv_nonneg [decl #5100] theorem _private.Init.Data.Range.Polymorphic.Internal.SignedBitVec.0.BitVec.Signed.instLawfulUpwardEnumerable [decl #5200] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.toInt_sub._proof_1_1 [decl #5300] theorem Int.emod_eq_of_lt [decl #5400] def BitVec.instRxcHasSize [decl #5500] theorem BitVec.msb_eq_decide [decl #5600] theorem Int8.eq_iff_toBitVec_eq [decl #5700] theorem Int.emod_pos_of_not_dvd [decl #5800] def Rat.numDenCasesOn'' [decl #5900] theorem and_congr_right_iff [decl #6000] theorem UInt64.neg_one_or [decl #6100] theorem List.findFinIdx?._proof_1 [decl #6200] theorem Lean.Grind.Linarith.Expr.intMul.inj [decl #6300] theorem _private.Init.Data.Range.Polymorphic.Lemmas.0.Std.Rcc.getElem?_toList_eq._simp_1_2 [decl #6400] theorem Nat.dvd_mul_left_of_dvd [decl #6500] theorem List.pmap_congr_left [decl #6600] theorem compareOfLessAndEq_eq_swap_of_lt_iff_not_gt_and_ne [decl #6700] def _private.Init.Data.List.Nat.TakeDrop.0.List.length_take.match_1_1 [decl #6800] theorem Rat.mkRat_eq_iff [decl #6900] theorem Std.IterM.step_filterMapM [decl #7000] theorem _private.Init.Data.String.OrderInstances.0.String.Pos.Raw.instTotalLe._simp_2 [decl #7100] theorem String.Slice.utf8ByteSize_sliceFrom [decl #7200] theorem String.Pos.next._proof_2 [decl #7300] def RandomGen.mk.noConfusion [decl #7400] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.toInt_neg_of_ne_intMin._proof_1_3 [decl #7500] theorem Nat.decidableBallLT._proof_1 [decl #7600] def Option.pfilter.match_1 [decl #7700] def _private.Init.Data.List.Sublist.0.List.sublist_append_right.match_1_1 [decl #7800] theorem _private.Init.Data.String.Termination.0.String.Slice.Pos.lt_iff_remainingBytes_lt._simp_1_2 [decl #7900] def Lean.Grind.IntModule.OfNatModule.Q.mk [decl #8000] theorem _private.Init.Data.Iterators.Combinators.Monadic.Take.0.Std.IterM.take.surjective_of_zero_lt._proof_1_2 [decl #8100] theorem Nat.Coprime.coprime_div_left [decl #8200] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.msb_allOnes._proof_1_1 [decl #8300] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.toInt_one._proof_1_2 [decl #8400] theorem USize.toNat_mod_size [decl #8500] theorem Array.getElem_map._proof_1 [decl #8600] theorem _private.Init.Data.String.PosRaw.0.String.Pos.Raw.le_trans._simp_1_1 [decl #8700] def String.instDecidableLePos_1 [decl #8800] def String.front [decl #8900] def instDecidableIte [decl #9000] theorem _private.Init.Data.Range.Polymorphic.BitVec.0.BitVec.instRxcLawfulHasSize._simp_1 [decl #9100] theorem Array.forIn_yield_eq_foldlM [decl #9200] theorem UInt32.succMany?_ofBitVec [decl #9300] theorem _private.Init.Data.Array.Basic.0.Array.back._proof_1 [decl #9400] def MonadReader.read [decl #9500] def prec(_) [decl #9600] def Std.Roc.Sliceable.noConfusionType [decl #9700] theorem List.append_eq_append_iff [decl #9800] theorem Std.Iterators.ProductivenessRelation.wf [decl #9900] theorem _private.Init.Data.List.Range.0.List.mem_range'._simp_1_9 [decl #10000] opaque UInt64.toFloat [decl #10100] theorem List.find?_some [decl #10200] def Vector.flatMap [decl #10300] def instLEISize [decl #10400] theorem Array.mem_of_ne_of_mem [decl #10500] theorem Nat.succ_max_succ [decl #10600] def Lean.ParserDescr.noConfusion [decl #10700] def Lean.Data.AC.Expr.brecOn.go [decl #10800] def Std.Iter.isEmpty [decl #10900] theorem Nat.toList_ric_succ [decl #11000] def Lean.Grind.CommRing.Poly.mul.go [decl #11100] theorem Lean.Grind.CommRing.Mon.mul.go.match_3.congr_eq_1 [decl #11200] theorem Lean.Grind.CommRing.norm_int [decl #11300] theorem UInt8.toUSize._proof_2 [decl #11400] theorem Lean.Grind.Linarith.instBEqPoly.beq.eq_def [decl #11500] theorem Lean.Grind.CommRing.instBEqPoly.beq.eq_1 [decl #11600] theorem Array.getElem?_extract_of_lt [decl #11700] theorem _private.Init.Data.Array.Basic.0.Array.eraseIdx._unary._proof_3 [decl #11800] theorem List.length_zipIdx [decl #11900] def IO.FS.Mode.ctorIdx [decl #12000] theorem _private.Init.Data.Range.Polymorphic.UInt.0.USize.instLawfulHasSize._simp_2 [decl #12100] theorem Nat.size_rco [decl #12200] def Std.Ric.HasRcoIntersection.casesOn [decl #12300] theorem Std.IterM.DefaultConsumers.forIn'_eq_wf INTERN_CALLS 100000000 nodes=1301628 [decl #12400] theorem Std.Rxc.Iterator.isPlausibleIndirectOutput_iff [decl #12500] def Fin.instXorOp [decl #12600] theorem Vector.getElem_push_eq [decl #12700] theorem ISize.toInt_inj [decl #12800] def FloatArray.casesOn [decl #12900] theorem Option.mem_def [decl #13000] def instMonadEIO._aux_1 [decl #13100] theorem Vector.mem_range' [decl #13200] def CoeSort.noConfusionType [decl #13300] theorem Int64.mul_comm [decl #13400] def Std.Iterators.ProductivenessRelation.casesOn [decl #13500] def String.Pos.ofSliceFrom [decl #13600] def List.zip [decl #13700] def Array.swapAt! [decl #13800] theorem Int.getElem_toList_roo [decl #13900] def Int32.toInt8 [decl #14000] def BitVec.uppcRec.match_1 [decl #14100] theorem UInt8.instLawfulUpwardEnumerable [decl #14200] def Lean.Grind.CommRing.Expr.neg.noConfusion [decl #14300] def Std.Legacy.Range.forIn' [decl #14400] def StateCpsT.lift [decl #14500] theorem _private.Init.Data.SInt.Lemmas.0.Int64.toInt_ofNat_of_lt._proof_1_2 [decl #14600] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.reverse_append._proof_1_1 [decl #14700] def _private.Init.Meta.Defs.0.Lean.Name.needsNoEscapeAscii [decl #14800] theorem _private.Init.Data.String.Pattern.String.0.String.Slice.Pattern.ForwardSliceSearcher.buildTable.computeDistance._unary._proof_1 [decl #14900] theorem Std.Rxc.Iterator.instLawfulIteratorLoop [decl #15000] theorem Lean.Grind.rfl_true DECLINE: [_private.Init.Data.Range.Polymorphic.SInt.0.Int32.instRxcHasSize_eq] WHNF depth limit
Test "init-prelude"
Expected: 👍 accept · Size: 3.5 MB · Lines: 63.7 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The Init.Prelude module export.
Test result: 👍 accepted · exit code 0 · wall time: 165 ms · instructions: 1.2 G · max rss memory: 57.2 MB
stderr:
[decl #100] def Eq.casesOn [decl #200] def Fin.Internal.ofNat [decl #300] def Dvd.casesOn [decl #400] theorem decide_eq_false [decl #500] def EStateM.bind.match_1 [decl #600] def Lean.ParserDescr.noConfusion [decl #700] def Lean.Name.mkSimple [decl #800] def MonadExceptOf.tryCatch [decl #900] def HAnd.hAnd [decl #1000] def One.ctorIdx [decl #1100] def Except.ctorIdx [decl #1200] def OrElse.orElse [decl #1300] theorem congrFun' [decl #1400] def Bind.noConfusion [decl #1500] def ShiftRight.noConfusion [decl #1600] def Hashable.noConfusionType
Test "mathlib"
Expected: 👍 accept · Size: 5.2 GB · Lines: 100.0 M · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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.
Test result: ✋ rejected · exit code 1 · wall time: 36.8 m · instructions: 11.8 T · max rss memory: 8.3 GB
stderr:
[decl #100] def _private.Init.Prelude.0.Nat.ble_eq_true_of_le.match_1_4 [decl #200] def List.utf8Encode [decl #300] def AddZero.toAdd [decl #400] theorem List.mem_cons_self [decl #500] def instHasEquivOfSetoid [decl #600] def _private.Init.Data.Nat.Basic.0.Nat.succ_add.match_1_1 [decl #700] theorem instDecidableIff._proof_2 [decl #800] theorem decide_false [decl #900] def Finset.instEmptyCollection [decl #1000] theorem List.nodup_singleton [decl #1100] theorem _private.Init.Data.List.Erase.0.List.erase_of_not_mem._simp_1_3 [decl #1200] theorem instNonemptyOfInhabited [decl #1300] def _private.Init.Data.List.Perm.0.List.perm_append_comm.match_1_1 [decl #1400] def Inter.inter [decl #1500] def Multiset.union [decl #1600] theorem WellFounded.Nat.eager_eq [decl #1700] def Int.mul [decl #1800] theorem Int.add_left_cancel [decl #1900] theorem Lean.Omega.IntList.mul_nil_right [decl #2000] theorem Nat.mod_add_div [decl #2100] theorem Int.neg_ediv_of_dvd [decl #2200] theorem Lean.Omega.Coeffs.dot_smul_left [decl #2300] def List.instGetElem?NatLtLength [decl #2400] theorem Multiset.countP_add [decl #2500] def Lean.Data.AC.Context.arbitrary [decl #2600] def Int.Linear.Poly.add.noConfusion [decl #2700] theorem List.filter_cons [decl #2800] theorem Multiset.le_filter [decl #2900] def _private.Init.PropLemmas.0.not_imp_of_and_not.match_1_1 [decl #3000] theorem _private.Init.PropLemmas.0.exists_eq_or_imp._simp_1_2 [decl #3100] theorem Finsupp.zipWith_apply [decl #3200] def AddSubmonoid.toAddSubsemigroup [decl #3300] def BoundedOrder.toOrderTop [decl #3400] theorem Std.le_refl [decl #3500] theorem Std.IsPreorder.le_refl [decl #3600] def _private.Mathlib.Order.SetNotation.0.Set.mem_iUnion.match_1_3 [decl #3700] theorem Set.Subset.antisymm_iff [decl #3800] theorem AddMonoidAlgebra.nonAssocSemiring._proof_2 [decl #3900] theorem AddMonoidAlgebra.singleZeroRingHom._proof_2 [decl #4000] theorem Monoid.toMulAction._proof_2 [decl #4100] def _private.Mathlib.Data.Finsupp.Defs.0.Finsupp.ext_iff'.match_1_1 [decl #4200] theorem Int.Linear.norm_le [decl #4300] def Nat.Linear.Poly [decl #4400] def Lean.Grind.CommRing.Mon.revlex [decl #4500] theorem Lean.Grind.CommRing.Poly.beq'_eq [decl #4600] theorem Int.eq_natAbs_of_nonneg [decl #4700] theorem Lean.Grind.CommRing.Poly.mulMon.go.induct_unfolding [decl #4800] theorem Lean.Grind.instCommRingInt._proof_5 [decl #4900] theorem List.find?_eq_none [decl #5000] def Function.onFun [decl #5100] theorem List.eq_nil_iff_forall_not_mem [decl #5200] theorem Ideal.mul_mem_left [decl #5300] theorem AddMonoidAlgebra.addAddCommGroup._proof_9 [decl #5400] theorem RingHom.comp_apply [decl #5500] def SubMulAction.casesOn [decl #5600] theorem _private.Mathlib.Data.Set.Image.0.Set.image_mono._proof_1_1 [decl #5700] theorem WithBot.instPreorder._proof_1 [decl #5800] theorem AddAction.mem_orbit_self [decl #5900] def AddSubgroup.toAddGroup [decl #6000] def QuotientAddGroup.Quotient.addGroup._aux_4 [decl #6100] theorem MulZeroClass.negZeroClass._proof_1 [decl #6200] def RingCon.instZeroQuotient._aux_1 [decl #6300] def RingCon.instSubQuotient._aux_1 [decl #6400] theorem AddSubgroup.orderIsoAddCon._proof_1 [decl #6500] theorem Function.Injective.mulOneClass._proof_2 [decl #6600] theorem Polynomial.finset_sum_coeff [decl #6700] theorem Finset.le_sup [decl #6800] def Units.inv [decl #6900] def Units.map [decl #7000] def CategoryTheory.Limits.MultispanIndex.fst [decl #7100] theorem Mathlib.Tactic.Reassoc.eq_whisker'._to_dual_1 [decl #7200] theorem map_smul [decl #7300] theorem Submonoid.instSubmonoidClass [decl #7400] theorem Nat.gcd_one_left [decl #7500] theorem DivisionSemiring.mul_inv_cancel [decl #7600] theorem eq_or_lt_of_le [decl #7700] theorem Commute.mul_self_eq_mul_self_iff [decl #7800] theorem _private.Mathlib.Algebra.GroupWithZero.Defs.0.noZeroDivisors_iff_eq_zero_of_mul._simp_1_2 [decl #7900] theorem Units.mk0_val [decl #8000] theorem Pi.nonAssocSemiring._proof_4 [decl #8100] theorem Nat.gcd_pos_of_pos_left [decl #8200] def _private.Init.Data.Int.DivMod.Bootstrap.0.Int.emod_lt_of_pos.match_1_1 [decl #8300] theorem Nat.gcd_ne_zero_left [decl #8400] theorem Int.tdiv_mul_cancel_of_tmod_eq_zero [decl #8500] theorem Int.one_ne_zero [decl #8600] def instDecidableForall [decl #8700] def Rat.commSemiring [decl #8800] theorem nsmul_two_semiclosed [decl #8900] theorem Int.cast_ofNat [decl #9000] def Lean.Grind.CommRing.Stepwise.core_cert [decl #9100] def Int._sizeOf_1 [decl #9200] theorem Nat.eq_zero_of_le_zero [decl #9300] theorem Real.mk_le [decl #9400] def Real.definition._@.Mathlib.Data.Real.Basic.1934218611._hygCtx._hyg.8 [decl #9500] def HeytingAlgebra.toBoundedOrder [decl #9600] theorem List.getElem_cons [decl #9700] def Fintype.ofFinset [decl #9800] def List.pairwise_lt_range'._auto_1 [decl #9900] theorem NormedField.toNormedDivisionRing._proof_8 [decl #10000] theorem Filter.isGLB_sInf [decl #10100] theorem GaloisConnection.l_sSup [decl #10200] theorem Lean.Grind.AC.Seq.var.injEq [decl #10300] def GaloisConnection.liftOrderBot [decl #10400] theorem coinduced_le_iff_le_induced [decl #10500] theorem Filter.mem_inf_of_inter [decl #10600] theorem nhdsGE_eq_iInf_inf_principal [decl #10700] theorem le_self_pow₀ [decl #10800] theorem Homeomorph.isInducing [decl #10900] theorem Set.Nonempty.ne_empty [decl #11000] theorem lt_inv_of_lt_inv₀ [decl #11100] theorem TwoSidedIdeal.rel_iff [decl #11200] def NonUnitalSeminormedRing.toPseudoMetricSpace [decl #11300] theorem CauSeq.Completion.Cauchy.ring._proof_38 [decl #11400] def NNRat.instDistribSMul [decl #11500] theorem Real.commRing._proof_21 [decl #11600] theorem Real.ofCauchy_nnratCast [decl #11700] def instZeroENNReal [decl #11800] theorem WithTop.lattice._proof_3 [decl #11900] def Nonneg.semilatticeInf._aux_1 [decl #12000] theorem WithTop.instNonUnitalNonAssocSemiring._proof_4 [decl #12100] theorem ENNReal.coe_inj [decl #12200] theorem isClosed_sInter [decl #12300] theorem Filter.Tendsto.le_comap [decl #12400] theorem _private.Mathlib.Order.Bounds.Basic.0.lt_isLUB_iff._simp_1_4 [decl #12500] theorem Int.floor_nonpos [decl #12600] theorem Nat.commute_cast [decl #12700] def Int.leastOfBdd.match_3 [decl #12800] theorem OrderIso.isLUB_image [decl #12900] theorem Set.image_empty [decl #13000] theorem WithTop.instCompleteLinearOrder._proof_9 [decl #13100] theorem NNReal.instSemifield._proof_12 [decl #13200] theorem CanonicallyOrderedAdd.toLinearOrderedCommGroupWithZero._proof_8 [decl #13300] theorem abs_sub_le [decl #13400] theorem T1Space.t1 [decl #13500] theorem subset_interior_iff_mem_nhdsSet [decl #13600] def Filter.GenerateSets.recOn [decl #13700] theorem iSup_range [decl #13800] def _private.Mathlib.Order.Directed.0.IsMax.isTop.match_1_1 [decl #13900] theorem Prod.pseudoEMetricSpaceMax._proof_4 [decl #14000] theorem dist_dist_dist_le [decl #14100] theorem Real.normedField._proof_14 [decl #14200] def _private.Mathlib.Tactic.NormNum.Result.0.Mathlib.Meta.NormNum.IsInt.to_raw_eq.match_1_1 [decl #14300] theorem isPreconnected_closed_iff [decl #14400] theorem instPseudoMetricSpaceNNReal._proof_8 [decl #14500] theorem NNReal.powOrderIso._proof_3 [decl #14600] theorem Complex.normSq_zero [decl #14700] theorem Lean.Grind.CommRing.Stepwise.d_init [decl #14800] theorem IsCauSeq.of_abv [decl #14900] theorem div_self [decl #15000] theorem Nat.cast_pow [decl #15100] theorem Finset.sum_nonneg [decl #15200] theorem NNRat.instSemifield._proof_4 [decl #15300] theorem Nat.choose_succ_succ [decl #15400] def Finset.Icc [decl #15500] theorem uniformContinuous_sub [decl #15600] def EMetricSpace.toPseudoEMetricSpace [decl #15700] theorem _private.Mathlib.Topology.Separation.Basic.0.t0Space_iff_not_inseparable._simp_1_1 [decl #15800] theorem MulAction.compHom._proof_2 [decl #15900] theorem Set.fintypeLENat._proof_1 [decl #16000] theorem _private.Mathlib.Topology.UniformSpace.Real.0.Real.instCompleteSpace._simp_1 [decl #16100] theorem add_lt_add_of_lt_of_le [decl #16200] theorem IsUnit.div_eq_iff [decl #16300] theorem zero_lt_three [decl #16400] theorem OrderDual.instAddCommGroup._proof_1 [decl #16500] theorem Mathlib.Tactic.FieldSimp.eq_eq_cancel_eq [decl #16600] theorem Complex.cosh_conj [decl #16700] theorem Function.leftInverse_surjInv [decl #16800] theorem Real.abs_sin_le_one [decl #16900] theorem MulOpposite.instMulOneClass._proof_2 [decl #17000] theorem _private.Mathlib.Topology.UniformSpace.UniformEmbedding.0.isComplete_image_iff._simp_1_3 [decl #17100] theorem SemilinearEquivClass.toAddEquivClass [decl #17200] theorem _private.Mathlib.Order.Filter.IsBounded.0.OrderIso.isBoundedUnder_le_comp._simp_1_1 [decl #17300] theorem Subtype.coe_mk [decl #17400] theorem Complex.IsExpCmpFilter.isTheta_cpow_exp_re_mul_log [decl #17500] def Pi.subtractionMonoid [decl #17600] theorem Asymptotics.IsBigOWith.comp_tendsto [decl #17700] theorem Set.ordConnectedProj._proof_1 [decl #17800] theorem Set.compl_ordConnectedSection_ordSeparatingSet_mem_nhdsLE [decl #17900] theorem Set.iUnion_of_empty [decl #18000] theorem SubgroupClass.toInvMemClass [decl #18100] def Std.DTreeMap.Internal.Impl.balanceLErase.match_5 INTERN_CALLS 100000000 nodes=188909 [decl #18200] theorem _private.Std.Data.DTreeMap.Internal.Balancing.0.Std.DTreeMap.Internal.Impl.balance!_eq_balanceₘ._proof_1_15 [decl #18300] theorem Std.DTreeMap.Internal.Impl.balanced_balanceL._simp_1 [decl #18400] theorem Std.DTreeMap.Internal.Impl.erase._proof_7 [decl #18500] theorem _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.size_glue._proof_1_11 [decl #18600] theorem _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.Const.alter._proof_28 [decl #18700] theorem _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.filter._proof_3 [decl #18800] theorem Std.DTreeMap.Equiv.trans [decl #18900] theorem Std.DTreeMap.Internal.Impl.applyPartition.eq_1 [decl #19000] theorem Std.DTreeMap.Internal.Impl.toListModel_filter_lt_of_lt [decl #19100] theorem _private.Std.Data.DTreeMap.Internal.Model.0.Std.DTreeMap.Internal.Impl.updateCell._proof_62 [decl #19200] theorem Std.DTreeMap.Internal.Impl.modify.eq_2 [decl #19300] theorem Std.DTreeMap.Equiv.inner [decl #19400] theorem Std.DTreeMap.Internal.Impl.getKey!_eq_getKey!ₘ [decl #19500] theorem DirectLimit.instMonoid._proof_9 [decl #19600] def ByteArray.utf8Decode?.go.match_1 [decl #19700] def instHOrOfOrOp [decl #19800] theorem Nat.testBit_two_pow_mul [decl #19900] def UInt32.decLt._aux_1 [decl #20000] def ByteArray.utf8DecodeChar? [decl #20100] theorem _private.Init.Data.String.Decode.0.Char.utf8Size_eq_three_iff._simp_1_3 [decl #20200] def _private.Init.GetElem.0.List.getElem_cons_drop.match_1_1 [decl #20300] theorem _private.Init.Data.String.Decode.0.String.utf8EncodeChar_eq_utf8EncodeCharFast._proof_1_13 [decl #20400] theorem _private.Init.Data.Array.Extract.0.Array.extract_append_extract._proof_1_3 [decl #20500] def _private.Init.Data.Nat.Lemmas.0.Nat.one_lt_two_pow.match_1_1 [decl #20600] theorem BitVec.cons_append [decl #20700] theorem _private.Init.Data.String.Decode.0.Char.toNat_val_le._proof_1_1 [decl #20800] theorem _private.Init.Data.ByteArray.Lemmas.0.ByteArray.append_inj_left._simp_1_1 [decl #20900] def String.instOrd [decl #21000] def _private.Init.Data.Nat.Basic.0.Nat.zero_lt_sub_of_lt.match_1_1 [decl #21100] def _private.Std.Data.DHashMap.Internal.Defs.0.Std.DHashMap.Internal.Raw₀.Const.modify.match_1 [decl #21200] def FloatSpec.float [decl #21300] def Lean.Meta.SynthInstanceCacheKey.casesOn [decl #21400] def Std.HashMap.instMembership [decl #21500] def Lean.isIdFirst [decl #21600] theorem String.Pos.Raw.isValid_empty_iff._simp_1 [decl #21700] theorem List.take_eq_take_min [decl #21800] theorem Array.append_inj_left' [decl #21900] def UInt8.instDecidableIsUTF8FirstByte [decl #22000] def String.Slice.sliceTo [decl #22100] def Std.Iter.IsPlausibleSuccessorOf [decl #22200] theorem String.Pos.Raw.byteIdx_inc [decl #22300] def Char.toLower [decl #22400] theorem Std.Iterators.Types.FilterMap.instIterator._proof_5 [decl #22500] def ST.Ref.modifyGet [decl #22600] def _private.Lean.Exception.0.Lean.Exception.hasSyntheticSorry.match_1 [decl #22700] theorem _private.Init.Data.Array.BinSearch.0.Array.binSearch._proof_3 [decl #22800] def _private.Lean.Meta.WHNF.0.Lean.Meta.matchConstAux.match_1 [decl #22900] def Lean.Level.updateIMax! [decl #23000] def Array.set! [decl #23100] def Lean.Meta.whnfD [decl #23200] def Lean.LocalDecl.value? [decl #23300] theorem InitialSeg.trans._proof_1 [decl #23400] def _private.Mathlib.Order.RelIso.Basic.0.RelEmbedding.trichotomous.match_1_1 [decl #23500] def _private.Init.Data.Sum.Basic.0.Sum.lex_inr_inl.match_1_1 [decl #23600] theorem LinearMap.module._proof_1 [decl #23700] theorem instDiscreteTopologyBool [decl #23800] def Profinite.NobelingProof.GoodProducts.sum_to [decl #23900] theorem List.prod_eq_zero_iff [decl #24000] theorem _private.Mathlib.Topology.Category.Profinite.Nobeling.Basic.0.Profinite.NobelingProof.Products.eval_πs._simp_1_1 [decl #24100] theorem List.IsChain.sortedGT [decl #24200] def MulOpposite.instInv [decl #24300] theorem FreeGroup.instGroup._proof_8 [decl #24400] def Subgroup.normalClosure [decl #24500] theorem Multiplicative.monoid._proof_1 [decl #24600] def Abelianization.of [decl #24700] theorem Multiset.singleton_ne_zero [decl #24800] def TensorProduct.addCommSemigroup [decl #24900] theorem LinearMap.llcomp._proof_1 INTERN_CALLS 200000000 nodes=585254 [decl #25000] theorem Std.DHashMap.Internal.Raw.get_eq._proof_2 [decl #25100] theorem instLawfulHashableOfLawfulBEq INTERN_CALLS 300000000 nodes=719287 [decl #25200] theorem List.Perm.of_eq INTERN_CALLS 400000000 nodes=3315372 INTERN_CALLS 500000000 nodes=3877940 [decl #25300] theorem List.Sublist.map INTERN_CALLS 600000000 nodes=2379046 INTERN_CALLS 700000000 nodes=4085970 [decl #25400] theorem _private.Std.Data.Internal.List.Associative.0.Std.Internal.List.length_alterKey._simp_1_4 INTERN_CALLS 800000000 nodes=3370888 INTERN_CALLS 900000000 nodes=2657332 [decl #25500] theorem _private.Std.Data.Internal.List.Associative.0.Std.Internal.List.getValueCast_mem._simp_1_5 [decl #25600] theorem LinearMap.ext_iff [decl #25700] def _private.Mathlib.Logic.Function.Basic.0.Function.bijective_iff_has_inverse.match_1_1 [decl #25800] theorem _private.Mathlib.Order.Preorder.Chain.0.IsChain.superChain_succChain._simp_1_2 [decl #25900] def Multiset.chooseX [decl #26000] theorem Set.subset_iInter_iff._simp_1 [decl #26100] theorem _private.Mathlib.Data.Finsupp.Single.0.Finsupp.single_eq_zero._simp_1_1 [decl #26200] theorem LinearIndependent.linearCombination_repr [decl #26300] theorem Submodule.gi._proof_1 [decl #26400] theorem iSup_le_iff [decl #26500] def Cardinal.instZero [decl #26600] theorem nonempty_unique [decl #26700] def Cardinal.aleph0 [decl #26800] theorem Finset.sum_pi_single [decl #26900] theorem Fintype.card_coe [decl #27000] theorem Equiv.nonempty [decl #27100] theorem Infinite.of_cardinalMk_le [decl #27200] theorem Sigma.mk.inj_iff [decl #27300] theorem RelIso.sumLexComplLeft._proof_1 [decl #27400] theorem Ordinal.lt_lift_iff [decl #27500] theorem WCovBy.ge_of_gt [decl #27600] theorem Ordinal.isInitial_ord [decl #27700] theorem Finset.not_nonempty_empty [decl #27800] theorem Ordinal.one_ne_zero [decl #27900] theorem Infinite.false [decl #28000] def Equiv.add [decl #28100] theorem Module.addCommMonoidToAddCommGroup._proof_1 [decl #28200] theorem AddSubmonoid.subtype._proof_1 [decl #28300] theorem Finset.image_empty [decl #28400] def _private.Mathlib.Data.Set.Insert.0.Set.eq_singleton_iff_nonempty_unique_mem.match_1_1 [decl #28500] theorem LinearMap.iterateMapComap_eq_succ [decl #28600] theorem Subsemiring.toSemiring._proof_6 [decl #28700] theorem MvPolynomial.eval₂Hom_X' [decl #28800] theorem Fin.subNat._proof_1 [decl #28900] theorem Polynomial.algHom_ext' [decl #29000] theorem WithBot.add_bot [decl #29100] theorem Lean.Grind.Ring.OfSemiring.Q.exact [decl #29200] def Subalgebra.copy [decl #29300] theorem AddSubgroup.mem_sInf [decl #29400] theorem RingHom.mem_range [decl #29500] theorem DFinsupp.distribMulAction._proof_2 [decl #29600] theorem rank_finsupp [decl #29700] theorem SubfieldClass.toDivisionRing._proof_25 [decl #29800] theorem Lean.Grind.IntInterval.mem_io._simp_1 [decl #29900] theorem Lean.Grind.Fin.instCommRingFinOfNeZeroNat._proof_8 [decl #30000] def MulOpposite.instAddCommMonoid [decl #30100] theorem MulOpposite.instDivisionSemiring._proof_6 [decl #30200] def Finsupp.sigmaFinsuppAddEquivPiFinsupp [decl #30300] theorem LinearMap.coe_comp [decl #30400] theorem ENat.coe_ne_top [decl #30500] theorem Module.Basis.toDual_linearCombination_left [decl #30600] def Function.Injective.nonUnitalNonAssocRing [decl #30700] def Equiv.swapCore [decl #30800] theorem MonoidHom.map_isConj [decl #30900] theorem Finset.sum_mul_sum [decl #31000] theorem Pi.instFintype._proof_1 INTERN_CALLS 1000000000 nodes=981190 [decl #31100] theorem Matrix.one_apply_eq [decl #31200] def AddMonoid.End.instAddCommMonoid [decl #31300] theorem Matrix.detp_smul_adjp [decl #31400] theorem AlternatingMap.instSMul._proof_1 [decl #31500] theorem Pi.disjoint_iff [decl #31600] theorem List.instDecidablePairwise._proof_3 [decl #31700] def Pi.ringHom [decl #31800] theorem IsField.mul_comm [decl #31900] theorem AddSubgroup.mem_mk [decl #32000] theorem Module.Basis.coe_extend [decl #32100] theorem Module.instIsReflexiveOfFiniteOfProjective [decl #32200] theorem ContinuousMultilinearMap.instMulAction._proof_2 [decl #32300] theorem Filter.Tendsto.uniformity_add [decl #32400] theorem pseudoMetricSpacePi._simp_3 [decl #32500] theorem OrderDual.instFrame._proof_4 [decl #32600] theorem uniformity_eq_comap_nhds_zero_swapped [decl #32700] theorem instAddGroupUniformOnFun._proof_4 [decl #32800] theorem ContinuousAt.tendsto [decl #32900] theorem ContinuousMultilinearMap.le_mul_prod_of_opNorm_le_of_le [decl #33000] theorem Fin.succAbove_right_injective [decl #33100] theorem HasFPowerSeriesWithinOnBall.r_le [decl #33200] theorem continuousMultilinearCurryLeftEquiv._proof_3 [decl #33300] def FormalMultilinearSeries.compAlongOrderedFinpartition [decl #33400] theorem OrderedFinpartition.compAlongOrderedFinpartitionₗ._proof_11 [decl #33500] theorem ContinuousLinearMap.opNorm_smul_le [decl #33600] theorem Fin.snoc_castSucc [decl #33700] def ContinuousLinearMap.id [decl #33800] theorem Filter.Eventually.exists_mem_basis_of_smallSets [decl #33900] theorem isMax_iff_forall_not_lt [decl #34000] theorem PSigma.exists INTERN_CALLS 1100000000 nodes=3967458 [decl #34100] theorem _private.Mathlib.Analysis.Calculus.FDeriv.Congr.0.Filter.EventuallyEq.hasFDerivAtFilter_iff._simp_1_1 [decl #34200] theorem ContinuousLinearMap.coe_sum [decl #34300] theorem _private.Mathlib.Data.List.Sublists.0.List.mem_sublists'._simp_1_3 [decl #34400] theorem _private.Mathlib.Data.Multiset.Sum.0.Multiset.mem_disjSum._simp_1_2 [decl #34500] theorem _private.Init.Data.List.Sort.Lemmas.0.List.merge.eq_1 [decl #34600] theorem Function.rec_update [decl #34700] theorem Finset.sdiff_union_inter [decl #34800] theorem ENNReal.div_le_div [decl #34900] theorem Nat.frequently_modEq [decl #35000] theorem Set.indicator_compl_add_self_apply [decl #35100] theorem Summable.mul_left [decl #35200] theorem Nat.descFactorial_eq_zero_iff_lt [decl #35300] theorem _private.Mathlib.Order.Filter.AtTopBot.Finset.0.Filter.tendsto_atTop_finset_of_monotone._simp_1_2 [decl #35400] theorem NNReal.continuous_coe [decl #35500] theorem Set.MapsTo.mono [decl #35600] theorem Asymptotics.IsBigO.const_mul_left [decl #35700] theorem _private.Mathlib.Algebra.BigOperators.Ring.Finset.0.Finset.prod_add._simp_1_7 [decl #35800] theorem _private.Mathlib.Data.Finset.Basic.0.Finset.erase_insert._proof_1_1 [decl #35900] theorem LinearMap.coprod_inl [decl #36000] theorem _private.Mathlib.Analysis.Calculus.ContDiff.FaaDiBruno.0.OrderedFinpartition.eraseLeft._simp_9 INTERN_CALLS 1200000000 nodes=620645 [decl #36100] theorem Function.update_idem [decl #36200] theorem _private.Mathlib.Combinatorics.Enumerative.Composition.0.compositionAsSetEquiv._simp_7 [decl #36300] theorem Finset.inf_le [decl #36400] theorem Composition.mem_range_embedding [decl #36500] theorem Set.Ico_eq_empty_iff [decl #36600] theorem Sigma.snd.hcongr_3 [decl #36700] theorem Prod.instAddMonoidWithOne._proof_1 [decl #36800] theorem MultilinearMap.prod._proof_2 [decl #36900] def Filter.bind [decl #37000] theorem _private.Mathlib.Topology.NhdsWithin.0.eventually_mem_of_tendsto_nhdsWithin._simp_1_3 [decl #37100] theorem instAddMonoidUniformFun._proof_7 [decl #37200] theorem instT2SpaceOfR1SpaceOfT0Space [decl #37300] theorem Prod.swap_rightInverse [decl #37400] theorem SeparationQuotient.isInducing_mk [decl #37500] def _private.Mathlib.Topology.UniformSpace.Completion.0.CauchyFilter.denseRange_pureCauchy.match_1_1 [decl #37600] def _private.Init.Data.Function.0.Function.uncurry_curry.match_1_1 INTERN_CALLS 1300000000 nodes=1269378 [decl #37700] theorem UniformSpace.Completion.uniformContinuous_dist [decl #37800] theorem Summable.of_norm [decl #37900] theorem SetRel.preimage_empty_right [decl #38000] theorem SeparationQuotient.uniformContinuous_mk [decl #38100] theorem closure_eq_iff_isClosed [decl #38200] theorem Nat.lt_log2_self [decl #38300] def Encodable.ofLeftInjection [decl #38400] theorem LinearMap.mkContinuousOfExistsBound₂._proof_6 [decl #38500] def IsBoundedLinearMap.toContinuousLinearMap.match_1 [decl #38600] theorem _private.Mathlib.Data.List.Nodup.0.List.Nodup.map_update._simp_1_1 [decl #38700] theorem summable_of_ratio_norm_eventually_le [decl #38800] def _private.Mathlib.Order.Max.0.not_isBot.match_1_1 [decl #38900] theorem HasFDerivAt.differentiableAt INTERN_CALLS 1400000000 nodes=1110213 [decl #39000] def Composition.mk.noConfusion [decl #39100] theorem Decidable.eq_iff_le_not_lt [decl #39200] theorem _private.Mathlib.Combinatorics.Enumerative.Composition.0.List.splitWrtComposition_flatten._simp_1_1 [decl #39300] theorem Filter.eventuallyEq_set INTERN_CALLS 1500000000 nodes=2427650 [decl #39400] theorem ContinuousLinearMap.monoidWithZero._proof_4 [decl #39500] theorem ContinuousLinearMap.toNormedRing._proof_12 [decl #39600] theorem Asymptotics.isThetaTVS_iff_isTheta [decl #39700] theorem HasFPowerSeriesAt.prod [decl #39800] def FormalMultilinearSeries.instAddCommGroup._aux_6 [decl #39900] theorem analyticAt_rexp [decl #40000] theorem CategoryTheory.instCompleteLatticePresieve._proof_27 [decl #40100] def CategoryTheory.Presieve.IsSheafFor.amalgamate [decl #40200] theorem RCLike.copy_of_normedField._proof_11 [decl #40300] theorem Bundle.Trivialization.mem_source [decl #40400] theorem ModelWithCorners.convex_range [decl #40500] theorem FiberBundle.trivialization_mem_atlas' [decl #40600] def _private.Mathlib.Data.Set.Function.0.Set.LeftInvOn.mapsTo.match_1_1 [decl #40700] theorem eventually_nhdsWithin_of_eventually_nhds [decl #40800] theorem DifferentiableAt.clm_apply [decl #40900] def Lean.MVarId.withContext [decl #41000] def LieModuleHom.casesOn [decl #41100] theorem Finset.weightedVSubOfPoint_eq_of_sum_eq_zero [decl #41200] def AffineBasis.toMatrix [decl #41300] theorem Std.DTreeMap.Equiv.constModify [decl #41400] theorem _private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.minEntry?ₘ_eq_minEntry?._simp_1_2 [decl #41500] theorem Subtype.instReflLE [decl #41600] theorem Lattice.copy._proof_9 [decl #41700] def CommRingCat.Colimits.ColimitType.instZero [decl #41800] theorem TopCat.instCategory._proof_3 [decl #41900] def AlgebraicGeometry.LocallyRingedSpace.comp [decl #42000] theorem CategoryTheory.ConcreteCategory.homEquiv._proof_1 [decl #42100] theorem CategoryTheory.Limits.initialIsInitial._proof_5 [decl #42200] def CategoryTheory.Limits.IsColimit.ofIsoColimit [decl #42300] def CategoryTheory.Adjunction.mkOfHomEquiv INTERN_CALLS 1600000000 nodes=2081712 [decl #42400] theorem CategoryTheory.Functor.FullyFaithful.preimage_map [decl #42500] def CategoryTheory.Skeletal [decl #42600] def CategoryTheory.Functor.PreservesPointwiseLeftKanExtension [decl #42700] theorem CategoryTheory.Sieve.shrinkFunctorUliftFunctorIso._proof_1 [decl #42800] theorem iInf_Prop_eq [decl #42900] theorem CategoryTheory.ObjectProperty.FullSubcategory.category._proof_9 [decl #43000] theorem CategoryTheory.Presheaf.isSheaf_iff_multifork [decl #43100] theorem CategoryTheory.IsCofilteredOrEmpty.cone_objs [decl #43200] theorem CategoryTheory.GrothendieckTopology.Plus.exists_of_sep [decl #43300] def CategoryTheory.Limits.IsTerminal.ofUnique [decl #43400] theorem CategoryTheory.Limits.IsColimit.coconePointsIsoOfNatIso._proof_2 [decl #43500] def CategoryTheory.Adjunction.functorialityAdjunction [decl #43600] theorem CategoryTheory.Functor.Final.induction._proof_1 [decl #43700] theorem CategoryTheory.zigzag_isConnected [decl #43800] def TopologicalSpace.Opens.infLELeft [decl #43900] theorem CategoryTheory.Limits.Cone.whiskeringEquivalence._proof_2 [decl #44000] theorem TopCat.Presheaf.SheafCondition.pairwiseToOpensLeCoverMap._proof_2 [decl #44100] theorem List.getLast_eq_getElem [decl #44200] def Ideal.primeCompl [decl #44300] theorem Submonoid.instSMulCommClassSubtypeMem [decl #44400] theorem OreLocalization.mul_one INTERN_CALLS 1700000000 nodes=2932876 [decl #44500] theorem RingCat.instConcreteCategoryRingHomCarrier._proof_3 [decl #44600] def AddMonCat.sectionsAddSubmonoid [decl #44700] def CategoryTheory.Limits.IsLimit.ofFaithful [decl #44800] theorem Equiv.addGroupWithOne._proof_3 [decl #44900] theorem Equiv.commRing._proof_10 [decl #45000] theorem Submonoid.LocalizationMap.mk'._proof_1 [decl #45100] theorem _private.Mathlib.GroupTheory.MonoidLocalization.Basic.0.Localization.r_iff_exists._simp_1_1 [decl #45200] theorem Submonoid.LocalizationMap.map._proof_1 [decl #45300] theorem DFinsupp.instAddGroup._proof_2 [decl #45400] theorem DFinsupp.single_add_erase [decl #45500] def Pi.mulAction' INTERN_CALLS 1800000000 nodes=4854481 [decl #45600] theorem SemiRingCat.FilteredColimits.colimitSemiring._proof_1 [decl #45700] theorem AddMonCat.FilteredColimits.cocone_naturality [decl #45800] theorem TopologicalSpace.OpenNhds.instLattice._proof_1 [decl #45900] theorem AlgebraicGeometry.StructureSheaf.commRingCatStalkEquivModuleStalk._proof_6 INTERN_CALLS 1900000000 nodes=1739632 INTERN_CALLS 2000000000 nodes=5395347 INTERN_CALLS 2100000000 nodes=1992584 [decl #46000] theorem CategoryTheory.Preadditive.instSemiringEnd._proof_1 [decl #46100] theorem ModuleCat.mkOfSMul_smul [decl #46200] theorem localizedModuleIsLocalizedModule INTERN_CALLS 2200000000 nodes=3982932 [decl #46300] theorem AlgebraicGeometry.StructureSheaf.Localizations.comapFun._proof_9 [decl #46400] theorem Ideal.comap_mono [decl #46500] theorem Localization.localRingHom_to_map INTERN_CALLS 2300000000 nodes=642720 [decl #46600] theorem CategoryTheory.MorphismProperty.ContainsIdentities.id_mem [decl #46700] theorem Multiset.card_disjSum [decl #46800] theorem Nat.lt_div_mul_add [decl #46900] theorem Finset.card_eq_sum_ones [decl #47000] def AddSubgroup.addGroupEquivQuotientProdAddSubgroup [decl #47100] theorem Nat.mul_right_inj [decl #47200] theorem MulAction.orbitEquivQuotientStabilizer._proof_1 [decl #47300] theorem ZMod.commRing._proof_11 [decl #47400] theorem QuotientAddGroup.quotientAddEquivOfEq._proof_1 [decl #47500] theorem WithBot.instMulZeroClass._proof_4 [decl #47600] def _private.Mathlib.Algebra.Polynomial.Div.0.Polynomial.modByMonic_eq_sub_mul_div.match_1_1 [decl #47700] theorem Finsupp.erase_add_single [decl #47800] theorem Polynomial.degree_X_pow_add_C [decl #47900] theorem Submonoid.instCompleteLattice._proof_9 [decl #48000] theorem Multiset.count_eq_zero_of_notMem [decl #48100] def IntermediateField.noConfusion [decl #48200] def _private.Mathlib.Combinatorics.Quiver.Path.0.Quiver.Path.nil_comp.match_1_1 [decl #48300] theorem CategoryTheory.Cat.FreeRefl.instCategory._proof_8 [decl #48400] def Lean.RBNode.appendTrees._unary [decl #48500] def Float.ofNat [decl #48600] def Lean.mkMVar [decl #48700] def Lean.MetavarDecl.kind [decl #48800] def Lean.Meta.ConfigWithKey._private_1 [decl #48900] def Lean.getOutParamPositions? [decl #49000] def instMonadControlStateRefT' [decl #49100] theorem Std.Rxo.Iterator.Monadic.isPlausibleStep_iff [decl #49200] theorem Std.Rxc.LawfulHasSize.size_eq_one_of_succ?_eq_none [decl #49300] opaque Lean.PersistentArray.forInAux [decl #49400] def FreeAlgebra.instMul [decl #49500] theorem _private.Mathlib.Algebra.FreeAlgebra.0.Algebra.adjoin_range_eq_range_freeAlgebra_lift._simp_1_3 [decl #49600] def AlgebraicGeometry.Scheme.OpenCover [decl #49700] theorem CategoryTheory.Limits.has_colimits_of_hasCoequalizers_and_coproducts [decl #49800] theorem CategoryTheory.CommSq.w_assoc [decl #49900] def CategoryTheory.Limits.createsLimitFullSubcategoryInclusionOfClosed [decl #50000] theorem CategoryTheory.discreteEquiv._proof_2 [decl #50100] theorem AlgebraicGeometry.PresheafedSpace.sheafIsoOfIso._proof_2 [decl #50200] theorem Order.Frame.MinimalAxioms.inf_sSup_le_iSup_inf [decl #50300] theorem CategoryTheory.Limits.diagramIsoParallelPair._proof_2 INTERN_CALLS 2400000000 nodes=2036791 [decl #50400] theorem CategoryTheory.Limits.coequalizer.π_desc [decl #50500] theorem Homeomorph.coinduced_eq [decl #50600] theorem AlgebraicGeometry.LocallyRingedSpace.instHasColimits [decl #50700] theorem CategoryTheory.Limits.hasFiniteWidePullbacks_of_hasFiniteLimits [decl #50800] theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.pullbackConeOfLeftFst._proof_1 [decl #50900] theorem AlgebraicGeometry.PresheafedSpace.ofRestrict_mono [decl #51000] def Topology.IsInducing.opensGI [decl #51100] theorem _private.Mathlib.RingTheory.Spectrum.Prime.Topology.0.PrimeSpectrum.localization_comap_isInducing._simp_1_1 [decl #51200] theorem CategoryTheory.Limits.Multicofork.sigma_condition [decl #51300] theorem AlgebraicGeometry.Scheme.JointlySurjective.exists_eq [decl #51400] theorem AlgebraicGeometry.PresheafedSpace.GlueData.toTopGlueData._proof_1 [decl #51500] theorem CategoryTheory.Limits.hasPullback_of_left_factors_mono [decl #51600] theorem AlgebraicGeometry.Scheme.Pullback.p1._proof_3 [decl #51700] theorem AlgebraicGeometry.IsOpenImmersion.instIsIsoCommRingCatStalkMap [decl #51800] theorem AlgebraicGeometry.Scheme.Pullback.pullbackFstιToV._proof_4 INTERN_CALLS 2500000000 nodes=1733355 [decl #51900] theorem CategoryTheory.Functor.IsCoverDense.sheaf_eq_amalgamation [decl #52000] theorem AddMonoidHom.fst._proof_1 [decl #52100] theorem Submodule.idemSemiring._proof_4 [decl #52200] theorem _private.Mathlib.Order.Atoms.0.bot_covBy_iff._simp_1_3 [decl #52300] theorem AlgebraicGeometry.LocallyRingedSpace.toΓSpecSheafedSpace_app_spec [decl #52400] def CategoryTheory.Limits.WidePushoutShape.fintypeHom [decl #52500] def Algebra.TensorProduct.instAddCommMonoidWithOne [decl #52600] theorem Algebra.TensorProduct.includeLeftRingHom._proof_1 [decl #52700] theorem Algebra.TensorProduct.lift._proof_4 INTERN_CALLS 2600000000 nodes=603222 [decl #52800] def FirstOrder.Language.Equiv.casesOn [decl #52900] def FirstOrder.Language.ElementaryEmbedding.noConfusionType [decl #53000] theorem _private.Mathlib.ModelTheory.ElementaryMaps.0.FirstOrder.Language.ElementaryEmbedding.map_boundedFormula._simp_1_2 [decl #53100] def FirstOrder.Language.Substructure.closure [decl #53200] theorem ENNReal.tsum_prod [decl #53300] theorem Finset.coe_Iic [decl #53400] theorem MeasureTheory.measure_iUnion [decl #53500] def MeasurableSpace.DynkinSystem.toMeasurableSpace [decl #53600] theorem MeasureTheory.extend_mono [decl #53700] theorem sdiff_eq_bot_iff [decl #53800] def AlgEquiv.ofLinearEquiv [decl #53900] theorem _private.Mathlib.Data.Setoid.Basic.0.Quotient.subsingleton_iff._simp_1_3 [decl #54000] theorem Matrix.mulVecLin_one [decl #54100] theorem cauchy_iInf_uniformSpace' [decl #54200] theorem Submodule.disjoint_iff_comap_eq_bot [decl #54300] theorem VAddCommClass.vadd_comm [decl #54400] theorem isOpen_biInter_finset [decl #54500] theorem UniformConvergenceCLM.t2Space [decl #54600] theorem IsCompact.of_isClosed_subset [decl #54700] theorem _private.Mathlib.Topology.Order.IsLUB.0.ConditionallyCompleteLinearOrder.isCompact_Icc._proof_1_9 [decl #54800] theorem Set.iInter_mono' [decl #54900] def Metric.infDist [decl #55000] theorem MeasurableSpace.generateFrom_le [decl #55100] theorem MeasurableSpace.copy_eq [decl #55200] theorem UniformSpace.mem_closure_iff_ball [decl #55300] theorem Function.Injective.semilatticeSup._proof_3 [decl #55400] theorem ENNReal.instUniqueAddUnits._proof_2 [decl #55500] theorem PerfectlyNormalSpace.toNormalSpace [decl #55600] theorem measurable_const [decl #55700] theorem measurable_coe_nnreal_ennreal [decl #55800] theorem Filter.atTop_eq_generate_of_forall_exists_le [decl #55900] theorem MeasureTheory.measure_ne_top [decl #56000] def _private.Mathlib.Data.Set.Pairwise.Basic.0.Set.pairwiseDisjoint_fiber.match_1_1 [decl #56100] theorem Equiv.boolProdEquivSum._proof_1 [decl #56200] theorem _private.Mathlib.MeasureTheory.Integral.Lebesgue.Basic.0.MeasureTheory.lintegral_eq_nnreal._simp_1_3 [decl #56300] def _private.Mathlib.Topology.Compactness.Lindelof.0.IsLindelof.elim_nhds_subcover.match_1_1 [decl #56400] theorem Subsingleton.measurableSet [decl #56500] def MeasurableEquiv.shearAddRight [decl #56600] def _private.Mathlib.MeasureTheory.OuterMeasure.Operations.0.MeasureTheory.OuterMeasure.top_apply.match_1_1 [decl #56700] theorem MeasureTheory.Measure.restrict_eq_self [decl #56800] theorem MeasureTheory.lintegral_lintegral_add_neg [decl #56900] theorem MeasureTheory.NullMeasurable.measurable' [decl #57000] theorem MeasureTheory.Measure.addHaarMeasure_apply [decl #57100] def Module.Basis.definition._@.Mathlib.MeasureTheory.Measure.Haar.OfBasis.29914027._hygCtx._hyg.2 [decl #57200] theorem Real.HolderTriple.inv_add_inv_eq_inv [decl #57300] theorem NNReal.HolderTriple.lt [decl #57400] theorem ENNReal.Lp_add_le [decl #57500] theorem LocallyBoundedMap.ofMapBounded._proof_1 [decl #57600] theorem Orthonormal.inner_right_finsupp [decl #57700] theorem sub_sub_sub_cancel_left [decl #57800] theorem Submodule.closure_induction [decl #57900] theorem Encodable.List.Vector.encodable._proof_5 [decl #58000] theorem List.prod_toFinset [decl #58100] theorem _private.Mathlib.MeasureTheory.Measure.Stieltjes.0.StieltjesFunction.outer_Ioc._simp_1_7 [decl #58200] theorem Set.Icc_union_Ioc_eq_Icc [decl #58300] theorem Real.measure_ext_Ioo_rat [decl #58400] theorem Matrix.Pivot.listTransvecCol_mul_mul_listTransvecRow_last_row [decl #58500] def MeasurableEquiv.piCongrLeft [decl #58600] theorem MeasureTheory.map_add_right_eq_self [decl #58700] theorem _private.Mathlib.LinearAlgebra.Matrix.ToLinearEquiv.0.Matrix.exists_mulVec_eq_zero_iff_aux._simp_1_1 [decl #58800] theorem FractionRing.field._proof_2 [decl #58900] theorem IsClosed.notMem_iff_infDist_pos [decl #59000] theorem _private.Mathlib.MeasureTheory.Covering.Besicovitch.0.Besicovitch.exist_disjoint_covering_families._simp_1_17 INTERN_CALLS 2700000000 nodes=2605912 [decl #59100] theorem _private.Mathlib.MeasureTheory.Covering.Besicovitch.0.Besicovitch.exists_closedBall_covering_tsum_measure_le._simp_1_15 [decl #59200] def Besicovitch.SatelliteConfig.centerAndRescale [decl #59300] theorem Filter.eventually_smallSets_subset._simp_1 [decl #59400] theorem add_le_iff_nonpos_left [decl #59500] theorem ContinuousLinearEquiv.one_le_norm_mul_norm_symm [decl #59600] theorem LinearMap.toContinuousLinearMap._proof_6 [decl #59700] theorem MeasureTheory.Measure.eq_withDensity_rnDeriv [decl #59800] theorem MeasureTheory.Measure.MutuallySingular.eq_1 [decl #59900] theorem Set.Subsingleton.finite [decl #60000] theorem Filter.frequently_lt_of_lt_limsup [decl #60100] theorem VitaliFamily.measure_le_mul_of_subset_limRatioMeas_lt [decl #60200] theorem ApproximatesLinearOn.norm_fderiv_sub_le [decl #60300] theorem _private.Mathlib.Order.Filter.Bases.Basic.0.Filter.HasBasis.sup'._simp_1_1 [decl #60400] theorem Option.instCountable [decl #60500] theorem IsComplete.nonempty_iInter_of_nonempty_biInter [decl #60600] def HomologicalComplex.X [decl #60700] theorem Module.End.instRing._proof_2 [decl #60800] theorem Module.End.commute_pow_left_of_commute [decl #60900] theorem LieModule.maxTrivHom._proof_3 [decl #61000] def Submodule.innerProductSpace [decl #61100] theorem ComplexShape.up'._proof_2 [decl #61200] theorem Representation.IntertwiningMap.instAddCommGroup._proof_2 [decl #61300] def Finsupp.curryLinearEquiv [decl #61400] theorem CategoryTheory.Limits.uniqueFromInitial._proof_1 [decl #61500] theorem CategoryTheory.Limits.hasLimitsOfShape_discrete [decl #61600] theorem CategoryTheory.Limits.isLimitMapConeForkEquiv'._proof_1 [decl #61700] theorem CategoryTheory.Limits.PreservesCokernel.π_iso_hom [decl #61800] theorem CategoryTheory.NormalEpiCategory.hasColimit_parallelPair [decl #61900] theorem CategoryTheory.Limits.zeroCokernelOfZeroCancel._proof_1 INTERN_CALLS 2800000000 nodes=369163 [decl #62000] theorem Rep.add_comp [decl #62100] theorem MonoidAlgebra.ring._proof_7 [decl #62200] theorem ModuleCat.limitAddCommMonoid._proof_12 [decl #62300] theorem MonoidAlgebra.single_eq_zero [decl #62400] theorem Representation.single_smul [decl #62500] theorem Rep.instMonoidalCategory._proof_6 INTERN_CALLS 2900000000 nodes=1498173 [decl #62600] theorem CategoryTheory.MonoidalCategory.hom_inv_whiskerRight [decl #62700] theorem Action.FunctorCategoryEquivalence.unitIso._proof_2 [decl #62800] theorem CategoryTheory.typesCartesianMonoidalCategory._proof_2 [decl #62900] theorem DirectSum.instModule._proof_3 [decl #63000] theorem Rep.hom_hom_associator INTERN_CALLS 3000000000 nodes=999216 [decl #63100] theorem Rep.mkIso_inv_hom_apply INTERN_CALLS 3100000000 nodes=6574290 [decl #63200] theorem CategoryTheory.ShortComplex.abelianImageToKernelIsKernel._proof_1 [decl #63300] theorem BitVec.add_sub_cancel [decl #63400] theorem Matrix.isRepresentation._proof_1 [decl #63500] def Fintype.decidableEqEquivFintype [decl #63600] theorem Algebra.TensorProduct.algEquivOfLinearEquivTensorProduct._proof_6 [decl #63700] theorem MulMemClass.mul_mem_add_closure [decl #63800] def Polynomial.Splits [decl #63900] theorem isAlgebraic_iff_isIntegral [decl #64000] theorem Polynomial.monic_toSubring [decl #64100] theorem EuclideanDomain.gcdMonoid._proof_2 [decl #64200] theorem AdjoinRoot.instCommRing._proof_30 INTERN_CALLS 3200000000 nodes=1607196 [decl #64300] theorem Polynomial.instCommRingSplittingField._proof_23 [decl #64400] theorem Polynomial.SplittingField.instField._proof_10 [decl #64500] theorem _private.Mathlib.Algebra.Polynomial.Splits.0.Polynomial.splits_iff_exists_multiset'._simp_1_2 [decl #64600] theorem Prime.dvd_mul [decl #64700] theorem RelHom.instRelHomClass [decl #64800] def Multiset.gcd [decl #64900] theorem Polynomial.cancelLeads.eq_1 [decl #65000] theorem Associates.coe_unit_eq_one [decl #65100] theorem Associates.prod_coe [decl #65200] def _private.Mathlib.Algebra.GroupWithZero.Associated.0.Associated.prime.match_1_1 [decl #65300] theorem AlgebraicClosure.toSplittingField._proof_2 INTERN_CALLS 3300000000 nodes=2318131 [decl #65400] theorem AlgEquiv.toLinearEquiv._proof_2 [decl #65500] theorem AdjoinRoot.mk_C [decl #65600] theorem IntermediateField.Lifts.instPartialOrder._proof_1 [decl #65700] def PowerBasis.liftEquiv INTERN_CALLS 3400000000 nodes=2269955 [decl #65800] theorem normal_self [decl #65900] theorem IntermediateField.adjoin_rootSet_isSplittingField [decl #66000] theorem Polynomial.integralNormalization_coeff_mul_leadingCoeff_pow [decl #66100] def IsFractionRing.lift [decl #66200] theorem Submonoid.LocalizationMap.mk'_sec [decl #66300] def _private.Mathlib.RingTheory.Localization.FractionRing.0.IsFractionRing.div_surjective.match_1_1 [decl #66400] theorem Polynomial.eval_smul [decl #66500] def _private.Mathlib.RingTheory.Coprime.Basic.0.isCoprime_zero_left.match_1_3 [decl #66600] theorem Finset.Ico_eq_cons_Ioo [decl #66700] theorem _private.Mathlib.Data.Nat.Log.0.Nat.log_of_lt._proof_1_5 [decl #66800] theorem pow [decl #66900] theorem Nat.gcd_eq_gcd_ab [decl #67000] theorem Field.finSepDegree_eq_of_equiv INTERN_CALLS 3500000000 nodes=2543050 [decl #67100] theorem Subalgebra.toSubmodule_injective [decl #67200] theorem AlgEquiv.ofInjective._proof_2 [decl #67300] theorem _private.Mathlib.Algebra.Group.Irreducible.Lemmas.0.irreducible_units_mul._simp_1_2 [decl #67400] theorem Subalgebra.mem_map [decl #67500] def IsFractional [decl #67600] theorem FractionalIdeal.mem_div_iff_of_ne_zero [decl #67700] theorem IsField.toSemifield._proof_9 [decl #67800] theorem FractionalIdeal.div_spanSingleton INTERN_CALLS 3600000000 nodes=708549 [decl #67900] theorem Set.ncard_coe_finset [decl #68000] theorem _private.Mathlib.LinearAlgebra.FreeModule.Finite.Matrix.0.linearMapEquivFun._proof_1 [decl #68100] theorem LinearIndependent.map' [decl #68200] theorem Ideal.le_comap_of_ramificationIdx_ne_zero [decl #68300] theorem Monotone.mul' [decl #68400] def _private.Mathlib.LinearAlgebra.Dimension.Localization.0.IsLocalizedModule.lift_rank_eq.match_1_1 [decl #68500] theorem Ideal.Quotient.algebraOfLiesOver._proof_2 [decl #68600] def IsDedekindDomain.HeightOneSpectrum.asIdeal INTERN_CALLS 3700000000 nodes=2592583 [decl #68700] theorem Ideal.IsDedekindDomain.ramificationIdx_eq_factors_count [decl #68800] theorem Function.Surjective.smulZeroClassLeft._proof_2 [decl #68900] def Ideal.Filtration.Stable [decl #69000] theorem PolynomialModule.instIsScalarTower [decl #69100] theorem Ideal.Filtration.inf_submodule [decl #69200] theorem Polynomial.natDegree_scaleRoots INTERN_CALLS 3800000000 nodes=3382126 [decl #69300] theorem Submodule.rank_le_one_iff_isPrincipal [decl #69400] theorem Polynomial.leadingCoeff_scaleRoots [decl #69500] def Submodule.Quotient.distribSMul' [decl #69600] theorem Ideal.exists_smul_eq_of_isGaloisGroup [decl #69700] theorem IsFractionRing.comap_isAlgebraic_iff [decl #69800] theorem MulEquiv.op._proof_3 [decl #69900] def matrixRingEquivEndVecMulOpposite [decl #70000] theorem LinearMap.separatingLeft_congr_iff [decl #70100] theorem LinearMap.BilinForm.toMatrix_mul_basis_toMatrix [decl #70200] theorem Polynomial.eraseLead_add_C_mul_X_pow [decl #70300] theorem _private.Mathlib.Data.Finset.Defs.0.Finset.instAntisymmSubset._proof_1 [decl #70400] theorem Function.Embedding.toEquivRange._proof_3 [decl #70500] theorem Equiv.sumCompl_symm_apply_of_neg [decl #70600] theorem _private.Mathlib.GroupTheory.Perm.Fin.0.Equiv.Perm.prod_Iio_comp_eq_sign_mul_prod._simp_1_1 INTERN_CALLS 3900000000 nodes=1237079 [decl #70700] theorem Polynomial.divX_eq_zero_iff [decl #70800] theorem AlgEquiv.apply_smulCommClass' [decl #70900] def IsGalois.intermediateFieldEquivSubgroup [decl #71000] def IsInvariantSubfield.toMulSemiringAction [decl #71100] theorem _private.Mathlib.NumberTheory.Cyclotomic.Basic.0.IsCyclotomicExtension.eq_self_sdiff_zero._simp_1_1 INTERN_CALLS 4000000000 nodes=2683955 [decl #71200] theorem Ideal.quotientInfEquivQuotientProd._proof_4 [decl #71300] theorem Submodule.smithNormalFormBotBasis._proof_1 [decl #71400] theorem LinearMap.associated_det_of_eq_comp [decl #71500] theorem Nat.eq_zero_of_dvd_of_lt [decl #71600] theorem IsPrimitiveRoot.powerBasis._proof_1 [decl #71700] theorem _private.Mathlib.RingTheory.RootsOfUnity.PrimitiveRoots.0.IsPrimitiveRoot.card_primitiveRoots._simp_1_5 [decl #71800] theorem Int.normalizationMonoid._proof_3 [decl #71900] theorem VectorSpace.card_fintype [decl #72000] theorem Finset.prod_range_succ [decl #72100] theorem Matrix.BlockTriangular.det_fintype [decl #72200] def Set.decidableCompl._aux_1 [decl #72300] theorem CharP.congr [decl #72400] theorem mem_list_primes_of_dvd_prod [decl #72500] theorem Nat.primeFactorsList_prime [decl #72600] def Nat.recOnPrimePow [decl #72700] theorem Nat.lcm_comm [decl #72800] def Lean.Grind.AC.superpose_ac_idempotent_cert [decl #72900] theorem Int.ofNat_two [decl #73000] theorem IsFractionRing.algEquivOfAlgEquiv._proof_1 [decl #73100] theorem Finset.card_empty INTERN_CALLS 4100000000 nodes=1798633 [decl #73200] def _private.Init.Data.Int.DivMod.Lemmas.0.Int.emod_lt.match_1_1 [decl #73300] theorem Std.DTreeMap.Internal.Impl.isEmpty_insertIfNew [decl #73400] def MvPowerSeries.instAddMonoid [decl #73500] theorem MvPowerSeries.coeff_add_mul_monomial [decl #73600] theorem Finset.mem_finsupp_iff_of_support_subset [decl #73700] theorem _private.Mathlib.Topology.UniformSpace.DiscreteUniformity.0.DiscreteUniformity.uniformContinuous._simp_1_2 [decl #73800] theorem _private.Mathlib.RingTheory.MvPowerSeries.Substitution.0.MvPowerSeries.hasSubst_iff_hasEval_of_discreteTopology._simp_1_1 [decl #73900] theorem _private.Mathlib.RingTheory.MvPowerSeries.Basic.0.MvPowerSeries.coeff_prod._simp_1_4 [decl #74000] theorem MvPowerSeries.comp_eval₂ [decl #74100] def ByteArray._sizeOf_1 [decl #74200] def _private.Lean.Meta.Tactic.Grind.Types.0.Lean.Meta.Grind.congrHash._sparseCasesOn_1 [decl #74300] def Lean.Meta.Grind.instHashableCongrTheoremCacheKey [decl #74400] theorem Equiv.Perm.apply_pow_apply_eq_iff [decl #74500] theorem Equiv.Perm.inv_eq_iff_eq [decl #74600] theorem List.Perm.foldr_eq' [decl #74700] def WeierstrassCurve.a₂ [decl #74800] def UInt16._sizeOf_1 [decl #74900] theorem isPreconnected_iff_subset_of_fully_disjoint_closed [decl #75000] def _private.Std.Data.DTreeMap.Internal.Zipper.0.Std.DTreeMap.Internal.Impl.pruneLE.match_1 [decl #75100] def _private.Init.Data.Iterators.Lemmas.Combinators.Monadic.FilterMap.0.Std.IterM.step_filterMapWithPostcondition.match_3.splitter [decl #75200] theorem LinearMap.extendScalarsOfSurjectiveEquiv._proof_4 [decl #75300] def MonadAttach.CanReturn [decl #75400] def Lean.KeyedDeclsAttribute.instInhabitedOLeanEntry [decl #75500] theorem Std.Packages.LinearOrderOfLEArgs.min_eq [decl #75600] def Lean.Parser.CacheableParserContext.forbiddenTk? [decl #75700] def _private.Mathlib.Tactic.NormNum.NatFactorial.0.Mathlib.Meta.NormNum.evalNatFactorial.match_3 [decl #75800] def PiTensorProduct.tprod [decl #75900] theorem MultilinearMap.compLinearMapₗ._proof_2 INTERN_CALLS 4200000000 nodes=2753185 [decl #76000] theorem PiTensorProduct.instSemiring._proof_1 [decl #76100] theorem Basis.piTensorProduct_repr_tprod_apply [decl #76200] theorem DFA.evalFrom_append_singleton [decl #76300] theorem CategoryTheory.Limits.KernelFork.isLimitOfIsLimitOfIff._proof_4 [decl #76400] theorem CategoryTheory.ShortComplex.LeftHomologyMapData.commf' [decl #76500] theorem HahnSeries.isPWO_support' [decl #76600] def Finset.VAddAntidiagonal [decl #76700] def Lean.PrettyPrinter.Formatter.State.stxTrav [decl #76800] def String.Slice.Pos.Down.inner [decl #76900] theorem String.Slice.Pos.instLinearOrderPackage._proof_9 [decl #77000] def Lean.Syntax.NameLit [decl #77100] def WithLp.instProdNorm [decl #77200] def PSet.brecOn.go [decl #77300] theorem Finset.mem_powerset_self [decl #77400] def Std.ExtDHashMap.mk INTERN_CALLS 4300000000 nodes=2130994 [decl #77500] theorem Std.ExtDHashMap.Const.get?_inter [decl #77600] def NonUnitalAlgHom.comp INTERN_CALLS 4400000000 nodes=2097281 [decl #77700] def Height.AdmissibleAbsValues.archAbsVal [decl #77800] theorem Function.mulSupport_comp_subset [decl #77900] theorem OrderDual.instRightCancelSemigroup._proof_1 [decl #78000] theorem CategoryTheory.Subobject.ofLE_arrow [decl #78100] theorem HomotopicalAlgebra.instCofibrationITrivialCofibrationsFibrations [decl #78200] theorem HomotopicalAlgebra.PathObject.instFibrationP₀ [decl #78300] theorem HomotopicalAlgebra.Cylinder.ofFactorizationData._proof_1 [decl #78400] theorem PresheafOfModules.instCategory._proof_1 [decl #78500] theorem Filter.Germ.instAddMonoid._proof_5 [decl #78600] theorem IsProperMap.isCompact_preimage [decl #78700] theorem ENNReal.rpow_add_rpow_le_add [decl #78800] def Filter.limsSup_le_limsSup_of_le._auto_1 [decl #78900] theorem _private.Mathlib.MeasureTheory.Function.LpSeminorm.TriangleInequality.0.MeasureTheory.eLpNorm'_add_le._simp_1_1 [decl #79000] theorem MeasureTheory.Lp.aestronglyMeasurable [decl #79100] def OrderIso.limsup_apply._auto_5 [decl #79200] theorem _private.Mathlib.MeasureTheory.Function.L1Space.Integrable.0.MeasureTheory.memLp_one_iff_integrable._simp_1_2 [decl #79300] theorem MeasureTheory.SimpleFunc.setToSimpleFunc_smul [decl #79400] theorem intervalIntegral.integral_symm [decl #79500] theorem MeasureTheory.eLpNorm_one_add_measure [decl #79600] def CategoryTheory.Bundled.str [decl #79700] def Lat.str [decl #79800] def SSet.Edge.toTruncated [decl #79900] def CategoryTheory.AddMon.Hom.hom [decl #80000] def FintypeCat.toProfinite [decl #80100] theorem FintypeCat.homMk_eq_id_iff._simp_1 [decl #80200] theorem FintypeCat.toLightProfinite._proof_6 [decl #80300] theorem CategoryTheory.Monad.ForgetCreatesLimits.liftedCone._proof_3 [decl #80400] theorem CategoryTheory.Adjunction.adjunctionOfEquivLeft._proof_4 [decl #80500] theorem Setoid.kerLift_injective [decl #80600] theorem TopologicalSpace.IsSeparable.image INTERN_CALLS 4500000000 nodes=1573895 [decl #80700] theorem List.getElem_replace._proof_1 INTERN_CALLS 4600000000 nodes=1091835 [decl #80800] theorem Std.Internal.List.getEntry?_insertListIfNewUnit [decl #80900] theorem _private.Mathlib.CategoryTheory.ComposableArrows.One.0.CategoryTheory.ComposableArrows.mapFunctorArrows._proof_15 [decl #81000] theorem _private.Mathlib.Analysis.SpecialFunctions.Pow.Continuity.0.NNReal.continuousAt_rpow._simp_1_1 [decl #81100] theorem MeasureTheory.L1.setToL1'._proof_6 [decl #81200] theorem CategoryTheory.instEssSurjSkeletonFromSkeleton [decl #81300] theorem DirectSum.lid._proof_1 [decl #81400] def AddCon.quotientKerEquivOfRightInverse [decl #81500] def CategoryTheory.Monoidal.instMonoidalTransportedInverseEquivalenceTransported INTERN_CALLS 4700000000 nodes=2046836 [decl #81600] theorem MvPolynomial.rename_eq [decl #81700] def List.headI.match_1 [decl #81800] theorem Std.Internal.List.pairwise_fst_eq_false INTERN_CALLS 4800000000 nodes=2144516 [decl #81900] def _private.Lean.Elab.PreDefinition.Structural.IndGroupInfo.0.Lean.Elab.Structural.IndGroupInst.isDefEq.match_3 [decl #82000] theorem measurable_up [decl #82100] theorem MeasureTheory.SimpleFunc.negPart_map_norm [decl #82200] theorem enorm_norm [decl #82300] theorem MeasureTheory.setToFun_nonneg [decl #82400] theorem Subgroup.disjoint_def' [decl #82500] def CategoryTheory.Preadditive.coforkOfCokernelCofork [decl #82600] theorem CategoryTheory.ShortComplex.hasLimit_of_hasLimitπ [decl #82700] theorem ValuativeRel.ValueGroupWithZero.lift₂._proof_1 [decl #82800] theorem CategoryTheory.NatTrans.naturality_apply [decl #82900] theorem PresheafOfModules.Sheafify.zero_smul INTERN_CALLS 4900000000 nodes=75588 [decl #83000] def PresheafOfModules.instAddHom [decl #83100] theorem AddCommGrpCat.limitAddCommGroup._proof_7 [decl #83200] theorem AddCommGrpCat.hasLimit_iff_small_sections INTERN_CALLS 5000000000 nodes=979313 [decl #83300] theorem GenContFract.IntFractPair.nth_stream_fr_nonneg_lt_one [decl #83400] theorem List.idxOf?_cons [decl #83500] def ContinuousMap.instPow [decl #83600] theorem stdSimplex_subset_Icc [decl #83700] def instTopologicalSpaceEmpty [decl #83800] theorem Absorbs.inter [decl #83900] theorem Primcodable.prim [decl #84000] theorem PrimrecRel.comp₂ [decl #84100] theorem Matrix.vecMulBilin._proof_6 [decl #84200] theorem CategoryTheory.Subobject.le_inf [decl #84300] theorem CategoryTheory.Subobject.orderBot._proof_1 [decl #84400] theorem CategoryTheory.MonoOver.mapIso._proof_5 [decl #84500] theorem CategoryTheory.wellPowered_of_isDetecting [decl #84600] def CategoryTheory.Comma.natTrans [decl #84700] theorem CategoryTheory.Limits.CoproductsFromFiniteFiltered.liftToFinsetObj._proof_4 [decl #84800] def CategoryTheory.CommSq.shortComplex [decl #84900] theorem CategoryTheory.Subobject.isoOfMkEqMk._proof_5 [decl #85000] theorem IsLocalization.AtPrime.comap_maximalIdeal INTERN_CALLS 5100000000 nodes=818480 [decl #85100] theorem CategoryTheory.StrictlyUnitaryLaxFunctor.id._proof_1 [decl #85200] theorem PMF.instFunLike._proof_1 [decl #85300] theorem _private.Mathlib.MeasureTheory.Function.EssSup.0.ENNReal.essSup_indicator_eq_essSup_restrict._simp_1_2 [decl #85400] theorem MeasureTheory.Integrable.const_mul [decl #85500] def CategoryTheory.Limits.instHasZeroMorphismsFunctor INTERN_CALLS 5200000000 nodes=1864786 [decl #85600] theorem CategoryTheory.Linear.preadditiveIntLinear._proof_1 [decl #85700] def CategoryTheory.GradedObject.mapBifunctorBifunctor₂₃Desc [decl #85800] theorem MeasureTheory.withDensity_apply_le [decl #85900] theorem _private.Init.Data.Iterators.Lemmas.Basic.0.Std.Iter.inductSteps._proof_1 [decl #86000] theorem SeminormFamily.moduleFilterBasis._proof_2 [decl #86100] def SchwartzMap.instNeg [decl #86200] def _private.Lean.Environment.0.Lean.RealizationContext.realizeMapRef [decl #86300] def String.fromUTF8! [decl #86400] opaque Lean.trace.profiler.output [decl #86500] def _private.Lean.Meta.TransparencyMode.0.Lean.Meta.TransparencyMode.lt.match_1 [decl #86600] theorem _private.Lean.ReservedNameAction.0.Lean.reservedNameActionsRef._proof_1 [decl #86700] theorem DirectSum.Decomposition.left_inv [decl #86800] theorem SetLike.mul_mem_graded [decl #86900] def DirectSum.toSemiring [decl #87000] def HomogeneousLocalization.NumDenSameDeg.instNeg [decl #87100] theorem HomogeneousLocalization.isLocalRing [decl #87200] theorem _private.Mathlib.AlgebraicGeometry.ProjectiveSpectrum.Scheme.0.AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier.add_mem._simp_1_1 INTERN_CALLS 5300000000 nodes=1413691 [decl #87300] def AlgebraicGeometry.projIsoSpecTopComponent [decl #87400] theorem AlgebraicGeometry.Proj.localRingHom_comp_stalkIso [decl #87500] theorem AlgebraicGeometry.pullbackRestrictIsoRestrict._proof_2 [decl #87600] def PEquiv.toMatrix [decl #87700] theorem CategoryTheory.MonoidalCategory.pentagon_inv [decl #87800] theorem Filter.Germ.instMulZeroOneClass._proof_4 [decl #87900] theorem Filter.Germ.instDivInvMonoid._proof_2 [decl #88000] theorem Std.DTreeMap.inter_eq [decl #88100] theorem Cubic.splits_iff_roots_eq_three [decl #88200] theorem MvPolynomial.rename_C [decl #88300] def DFinsupp.neLocus [decl #88400] theorem PrimeSpectrum.mem_image_comap_zeroLocus_sdiff INTERN_CALLS 5400000000 nodes=297181 [decl #88500] theorem Polynomial.eraseLead_coeff_of_ne [decl #88600] theorem Finsupp.mapDomain_sum [decl #88700] theorem LinearEquiv.conjAlgEquiv._proof_1 [decl #88800] theorem Polynomial.coeff_mul_X_pow' [decl #88900] theorem Polynomial.coeff_map_eq_comp [decl #89000] theorem LinearMap.baseChangeHom._proof_2 [decl #89100] theorem _private.Mathlib.Topology.UniformSpace.Compact.0.IsCompact.nhdsSet_basis_uniformity._simp_1_1 INTERN_CALLS 5500000000 nodes=3899739 [decl #89200] theorem ContinuousMap.coev._proof_1 [decl #89300] def Lean.Elab.Command.State.ngen [decl #89400] def WeierstrassCurve.b₈ [decl #89500] theorem essSup_map_measure [decl #89600] theorem exists_compact_closed_between [decl #89700] theorem Equiv.constVSub._proof_2 [decl #89800] theorem Urysohns.CU.lim_eq_midpoint [decl #89900] theorem MeasureTheory.integral_inter_add_diff₀ [decl #90000] theorem _private.Mathlib.MeasureTheory.Integral.SetToL1.0.MeasureTheory.setToFun_top_smul_measure._simp_1_4 [decl #90100] theorem MeasureTheory.Measure.IsAddLeftInvariant.vaddInvariantMeasure [decl #90200] def MeasureTheory.measureReal_eq_measureReal_iff._auto_3 [decl #90300] theorem intervalIntegrable_iff_integrableOn_Ioc_of_le [decl #90400] theorem hasDerivAtFilter_id [decl #90500] theorem _private.Mathlib.Analysis.Calculus.ContDiff.RCLike.0.ContDiffAt.hasStrictFDerivAt'._simp_1_1 [decl #90600] theorem hasDerivWithinAt_Ici_of_tendsto_deriv [decl #90700] theorem Submodule.eq_top_of_nonempty_interior' [decl #90800] theorem _private.Mathlib.MeasureTheory.Integral.IntervalIntegral.FundThmCalculus.0.intervalIntegral.integrableOn_deriv_right_of_nonneg._simp_1_2 [decl #90900] theorem MeasureTheory.Measure.map_eq_sum [decl #91000] def EReal.neg.match_1 [decl #91100] theorem EReal.coe_nnreal_eq_coe_real [decl #91200] theorem EReal.continuousAt_add_coe_coe [decl #91300] theorem Set.preimage_mul_const_Ici₀ [decl #91400] theorem MeasureTheory.AECover.biUnion_Iic_aecover [decl #91500] theorem LinearPMap.dExt [decl #91600] theorem AddSubmonoid.topologicalClosure._proof_2 INTERN_CALLS 5600000000 nodes=2040616 [decl #91700] theorem HasDerivAt.comp [decl #91800] theorem Complex.arg_eq_nhds_of_re_pos [decl #91900] theorem AEMeasurable.nullMeasurableSet_preimage [decl #92000] theorem Set.eqOn_empty [decl #92100] theorem mul_nonneg_iff_of_pos_right [decl #92200] theorem Mathlib.Meta.Positivity.abs_pos_of_ne_zero [decl #92300] theorem hasFDerivAt_integral_of_dominated_loc_of_lip [decl #92400] theorem ContinuousLinearEquiv.piFinTwo._proof_3 [decl #92500] def BoxIntegral.IntegrationParams.bHenstock [decl #92600] def BoxIntegral.TaggedPrepartition.IsPartition [decl #92700] theorem _private.Mathlib.Data.Set.Lattice.0.Set.biUnion_diff_biUnion_subset._simp_1_2 [decl #92800] theorem BoxIntegral.Prepartition.mem_ofWithBot._simp_1 [decl #92900] theorem _private.Mathlib.Analysis.BoxIntegral.Partition.Split.0.BoxIntegral.Prepartition.restrict_split._simp_1_3 [decl #93000] theorem BoxIntegral.Prepartition.biUnionIndex_of_mem [decl #93100] theorem BoxIntegral.IntegrationParams.MemBaseSet.unionComplToSubordinate [decl #93200] theorem ContinuousWithinAt.finInsertNth [decl #93300] theorem BoxIntegral.integrable_const [decl #93400] theorem Uniform.tendsto_nhds_right [decl #93500] def Complex.basisOneI [decl #93600] theorem Module.Ray.ind [decl #93700] def instMulActionRay [decl #93800] theorem Complex.orthonormalBasisOneI._proof_1 [decl #93900] theorem Path.map'._proof_1 [decl #94000] theorem Convex.isPreconnected [decl #94100] theorem HasFDerivAt.fun_pow' [decl #94200] theorem UInt64.ofNatTruncate._proof_1 [decl #94300] theorem semilatticeSup_mk'_partialOrder_eq_semilatticeInf_mk'_partialOrder [decl #94400] def FirstOrder.Language.withConstantsStructure [decl #94500] theorem IndepMatroid.matroid._proof_5 [decl #94600] theorem Matroid.dual_isBase_iff [decl #94700] def Set.Iic.instLatticeElem [decl #94800] theorem Matroid.IsCircuit.strong_multi_elimination [decl #94900] opaque Lean.PersistentArray.forMAux [decl #95000] theorem _private.Init.Data.Array.Lemmas.0.Array.foldrM_start_stop._proof_1_9 [decl #95100] def Lean.Server.RequestContext.rpcSessions [decl #95200] def Std.DTreeMap.Internal.Impl.Const.IteratedUnitInsertionInto [decl #95300] def Lean.Elab.UserWidgetInfo._sizeOf_inst [decl #95400] def _private.Lean.Environment.0.Lean.RealizationContext._sizeOf_inst [decl #95500] def Lean.NameGenerator._sizeOf_1 [decl #95600] def Lean.Linter.LinterSets [decl #95700] def Lean.MessageData.ofList [decl #95800] def Lean.Elab.Tactic.elabTermForApply [decl #95900] def _private.Init.Data.List.Monadic.0.List.zipWithM.match_1.splitter._sparseCasesOn_2 [decl #96000] theorem _private.Mathlib.Data.Finsupp.Indicator.0.Finsupp.indicator_indicator._proof_1_1 INTERN_CALLS 5700000000 nodes=2738087 [decl #96100] def CategoryTheory.PreOneHypercover.isoMk [decl #96200] theorem ODE.FunSpace.mk.inj [decl #96300] theorem intervalIntegral.integral_eq_sub_of_hasDeriv_right [decl #96400] theorem _private.Mathlib.MeasureTheory.Integral.IntervalIntegral.Basic.0.IntervalIntegrable.intervalIntegrable_norm_iff._simp_1_1 [decl #96500] theorem isClosed_setOf_lipschitzWith [decl #96600] theorem CategoryTheory.Bicategory.id_whiskerLeft [decl #96700] theorem CategoryTheory.Oplax.OplaxTrans.whiskerLeft_naturality_id_assoc [decl #96800] def Lean.Macro.Context.quotContext [decl #96900] theorem _private.Init.Data.UInt.Bitwise.0.USize.left_le_or._simp_1_1 [decl #97000] theorem ULift.instLinearOrder._proof_3 [decl #97100] def CategoryTheory.Limits.image.isoStrongEpiMono [decl #97200] theorem SimplicialObject.Splitting.cofan_inj_eq_assoc [decl #97300] theorem _private.Mathlib.AlgebraicTopology.DoldKan.Faces.0.AlgebraicTopology.DoldKan.HigherFacesVanish.comp_δ_eq_zero._proof_1_2 [decl #97400] theorem AlgebraicTopology.DoldKan.PInfty_f_idem_assoc [decl #97500] theorem _private.Mathlib.AlgebraicTopology.DoldKan.Degeneracies.0.AlgebraicTopology.DoldKan.σ_comp_P_eq_zero._simp_1_5 [decl #97600] theorem MeasureTheory.VectorMeasure.m_iUnion' [decl #97700] theorem CoheytingHomClass.toBoundedLatticeHomClass [decl #97800] def CategoryTheory.GrpObj.right_inv._autoParam [decl #97900] theorem WeierstrassCurve.Jacobian.instMulActionForallFinOfNatNat._proof_4 [decl #98000] theorem _private.Std.Data.Internal.List.Associative.0.Std.Internal.List.Option.dmap_map [decl #98100] theorem DirectLimit.instAddSemigroupOfAddHomClass._proof_2 INTERN_CALLS 5800000000 nodes=1230699 [decl #98200] def TensorProduct.toDirectLimit [decl #98300] theorem TensorProduct.quotientTensorQuotientEquiv._proof_6 [decl #98400] theorem CategoryTheory.Limits.biproduct.ι_desc [decl #98500] def instOnePosNum [decl #98600] theorem Num.bit0_of_bit0 [decl #98700] def CategoryTheory.Limits.reflexivePair INTERN_CALLS 5900000000 nodes=1882967 [decl #98800] theorem CategoryTheory.GrothendieckTopology.mem_sInf [decl #98900] theorem algebraMapCLM._proof_2 [decl #99000] theorem ContinuousMapZero.instModule._proof_5 [decl #99100] def Unitization.instNonAssocRing [decl #99200] theorem cfcₙ_apply_of_not_map_zero [decl #99300] theorem ContinuousMap.toNNReal_algebraMap [decl #99400] def StarSubalgebra.completeLattice [decl #99500] theorem ContinuousMap.instSeminormedAddCommGroup._proof_1 [decl #99600] theorem RingHom.compLeftContinuous._proof_2 [decl #99700] theorem Subalgebra.seminormedRing._proof_4 INTERN_CALLS 6000000000 nodes=3712479 [decl #99800] def ContinuousMap.instSMul' [decl #99900] theorem ContinuousMap.instNonAssocRingOfIsTopologicalRing._proof_8 [decl #100000] theorem _private.Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Continuity.0.continuous_cfcHomSuperset_left._simp_1_3 [decl #100100] theorem ContinuousMap.instNonUnitalSemiringOfIsTopologicalSemiring._proof_5 [decl #100200] theorem NonUnitalStarAlgebra.adjoin_eq_span [decl #100300] def Rep.resFunctor [decl #100400] def _private.Mathlib.FieldTheory.SeparableDegree.0.minpoly.natSepDegree_eq_one_iff_eq_expand_X_sub_C.match_1_1 [decl #100500] def CategoryTheory.ShortComplex.rightHomologyIso [decl #100600] def CategoryTheory.ShortComplex.RightHomologyData.op [decl #100700] def ArithmeticFunction.add [decl #100800] theorem SimpleGraph.Walk.IsPath.support_nodup [decl #100900] theorem SimpleGraph.Walk.cons_copy [decl #101000] theorem ModelWithCorners.image_eq [decl #101100] theorem fderivWithin_inter [decl #101200] theorem Function.locallyFinsuppWithin.restrict._proof_4 [decl #101300] theorem Monoid.exponent_dvd_iff_forall_pow_eq_one [decl #101400] theorem cauchyPowerSeries._proof_2 INTERN_CALLS 6100000000 nodes=40675 [decl #101500] theorem _private.Mathlib.Analysis.Complex.CauchyIntegral.0.Complex.hasFPowerSeriesOnBall_of_differentiable_off_countable._simp_1_4 [decl #101600] theorem ContinuousOn.circleIntegrable' [decl #101700] theorem _private.Mathlib.Analysis.SpecialFunctions.Complex.Log.0.Complex.countable_preimage_exp._simp_1_2 [decl #101800] theorem HasDerivAt.tendsto_nhdsNE [decl #101900] theorem Filter.HasBasis.tangentConeAt_eq_biInter_closure [decl #102000] theorem RCLike.norm_natCast [decl #102100] theorem NonUnitalSeminormedRing.induced._proof_4 [decl #102200] theorem Subring.instIsTopologicalRing [decl #102300] theorem ZSpan.mem_fundamentalDomain._simp_1 [decl #102400] def NumberField.RingOfIntegers.mapRingHom [decl #102500] theorem List.prod_le_pow_card [decl #102600] theorem _private.Mathlib.NumberTheory.NumberField.Units.DirichletTheorem.0.NumberField.Units.dirichletUnitTheorem.logEmbedding_component_le._simp_1_1 [decl #102700] theorem basisOfPiSpaceOfLinearIndependent._proof_2 [decl #102800] theorem LinearMap.restrict_apply [decl #102900] theorem DFinsupp.subtypeSupportEqEquiv._proof_1 [decl #103000] theorem ClosureOperator.IsClosed.closure_eq [decl #103100] theorem interior_iInter_of_finite [decl #103200] theorem LinearMap.GeneralLinearGroup.generalLinearEquiv._proof_2 INTERN_CALLS 6200000000 nodes=2347618 [decl #103300] def Real.Gamma [decl #103400] theorem MeasureTheory.measurePreserving_piFinSuccAbove [decl #103500] theorem MeasureTheory.Measure.toSphere._proof_1 [decl #103600] theorem div_lt_self [decl #103700] theorem AddMonoidHom.toMultiplicativeRight._proof_4 [decl #103800] theorem MulAction.orbitRel.Quotient.orbit_eq_orbit_out [decl #103900] def _private.Mathlib.Algebra.GroupWithZero.NonZeroDivisors.0.mk_mem_nonZeroDivisors_associates.match_1_1 [decl #104000] def Hamming.instSMul._aux_1 [decl #104100] theorem _private.Batteries.CodeAction.Misc.0.Batteries.CodeAction.getElimExprNames._proof_1 [decl #104200] opaque Lean.Parser.parserExtension [decl #104300] theorem _private.Mathlib.RingTheory.Polynomial.Resultant.Basic.0.Polynomial.resultant_comm._simp_1_4 [decl #104400] theorem _private.Mathlib.RingTheory.Polynomial.Resultant.Basic.0.Polynomial.resultant_C_mul_right._simp_1_4 [decl #104500] def ProbabilityTheory.Kernel.const [decl #104600] theorem Disjoint.inf_left [decl #104700] theorem isUpperSet_sUnion [decl #104800] def Circle.instCommGroup._aux_8 [decl #104900] theorem InnerProductSpace.Core.inner_self_eq_norm_mul_norm [decl #105000] theorem Complex.cpow_nat_mul [decl #105100] theorem Subgroup.leftTransversals.diff.eq_1 [decl #105200] theorem CategoryTheory.endofunctorMonoidalCategory._proof_11 [decl #105300] theorem CategoryTheory.Monoidal.MonFunctorCategoryEquivalence.unitIso._proof_12 INTERN_CALLS 6300000000 nodes=1776959 [decl #105400] theorem CategoryTheory.Limits.HasEqualizersOfHasPullbacksAndBinaryProducts.constructEqualizer._proof_2 [decl #105500] theorem ContMDiff.continuous [decl #105600] theorem Std.Sat.AIG.instDecidableEqDecl.decEq._proof_12 [decl #105700] def _private.Std.Data.DHashMap.RawDef.0.Std.DHashMap.Raw.all.match_1 [decl #105800] theorem AdicCompletion.instCommRing._proof_6 [decl #105900] theorem Subsemiring.center.commSemiring._proof_1 [decl #106000] def ContinuousMap.Homotopy.curry [decl #106100] theorem Path.Homotopy.reparam._proof_2 [decl #106200] theorem SimpleGraph.chromaticNumber_bddBelow [decl #106300] theorem Std.DTreeMap.Internal.Impl.glue!.eq_def [decl #106400] def Lean.Doc.Inline.concat.elim [decl #106500] theorem PointedCone.toConvexCone._proof_2 [decl #106600] theorem _private.Mathlib.NumberTheory.ModularForms.SlashActions.0.ModularForm.slash_mul [decl #106700] def Matrix.instModuleForall INTERN_CALLS 6400000000 nodes=3820043 [decl #106800] theorem SSet.N.mk_surjective [decl #106900] theorem CategoryTheory.Limits.CategoricalPullback.CatCommSqOver.mkIso._proof_3 [decl #107000] theorem DFinsupp.erase_add_single [decl #107100] theorem ContinuousLinearMap.toSesqForm._proof_18 [decl #107200] theorem Metric.mem_closedEBall_self [decl #107300] theorem ContinuousLinearMap.reApplyInnerSelf_smul [decl #107400] theorem Submodule.orthogonal_le [decl #107500] theorem Matrix.star_dotProduct_star INTERN_CALLS 6500000000 nodes=3454591 [decl #107600] def Std.Time.Number._sizeOf_inst [decl #107700] def CochainComplex.HomComplex.instModuleCochain._aux_1 [decl #107800] theorem CochainComplex.HomComplex.Cochain.leftShift_leftUnshift [decl #107900] theorem AddMonoidAlgebra.decomposeAux._proof_6 [decl #108000] def CoalgCat.category [decl #108100] theorem Std.Internal.List.Const.length_alterKey' [decl #108200] theorem ULift.group._proof_2 [decl #108300] def GrpCat.limitGroup [decl #108400] theorem Lean.Elab.Tactic.ElabSimpArgResult.erase.injEq [decl #108500] def Cycle.Nodup [decl #108600] theorem _private.Mathlib.Data.List.Cycle.0.List.prev_eq_getElem._proof_1_5 [decl #108700] def CategoryTheory.Quiv.lift [decl #108800] def CategoryTheory.bifunctorComp₂₃Functor INTERN_CALLS 6600000000 nodes=852721 [decl #108900] theorem CategoryTheory.Localization.Construction.whiskerLeft_natTransExtension [decl #109000] theorem CategoryTheory.Functor.flip_injective [decl #109100] theorem Subsemiring.op._proof_2 [decl #109200] theorem Matrix.SpecialLinearGroup.monoid._proof_1 [decl #109300] theorem CategoryTheory.Limits.preservesLimit_of_evaluation [decl #109400] theorem inf_eq_top_iff [decl #109500] def WithZero.instMonoidWithZero [decl #109600] theorem WithZero.instCommGroupWithZero._proof_1 [decl #109700] theorem Rat.cast_add._simp_1 [decl #109800] def Std.Iterators.Types.Flatten.casesOn [decl #109900] theorem Std.Iterators.PostconditionT.run_eq_map [decl #110000] def Std.Iterators.HetT.pure [decl #110100] theorem Std.IterM.ext [decl #110200] theorem _private.Mathlib.Topology.UniformSpace.Closeds.0.TopologicalSpace.Closeds.noncompactSpace_iff._simp_1_1 [decl #110300] theorem UniformSpace.hausdorff.isUniformInducing_closure [decl #110400] theorem QuadraticMap.coeFn_smul [decl #110500] theorem _private.Mathlib.Order.KrullDimension.0.Order.height_eq_iSup_lt_height._proof_1_1 [decl #110600] theorem Array.instDecidableEqEmp._proof_1 [decl #110700] theorem List.getElem_attach._proof_1 [decl #110800] theorem CategoryTheory.Limits.Types.pullbackLimitCone._proof_2 [decl #110900] def CategoryTheory.Functor.isEmptyExt [decl #111000] theorem CategoryTheory.Presieve.ofArrows_of_unique [decl #111100] theorem CategoryTheory.instHasPairwisePullbacksOfExtensive [decl #111200] theorem CategoryTheory.isSheafFor_extensive_of_preservesFiniteProducts [decl #111300] theorem iInf_nat_gt_zero_eq [decl #111400] theorem _private.Std.Data.DHashMap.Internal.RawLemmas.0.Std.DHashMap.Internal.Raw₀.insert_equiv_congr._simp_1_1 INTERN_CALLS 6700000000 nodes=2677887 [decl #111500] theorem Std.DTreeMap.Internal.Impl.minKeyD.match_1.congr_eq_1 [decl #111600] theorem WeakDual.CharacterSpace.continuousMapEval._proof_4 [decl #111700] theorem _private.Mathlib.NumberTheory.ModularForms.JacobiTheta.TwoVariable.0.norm_jacobiTheta₂_term_le._simp_1_2 [decl #111800] theorem Filter.prod_mono_right [decl #111900] theorem rexp_neg_quadratic_isLittleO_rpow_atTop [decl #112000] theorem QuotientAddGroup.equivIocMod._proof_3 [decl #112100] theorem AddCircle.continuousAt_equivIoc [decl #112200] theorem Set.liftCover_coe [decl #112300] def ContinuousMap.toAEEqFun [decl #112400] theorem NNReal.rpow_add_rpow_le_add [decl #112500] theorem _private.Mathlib.MeasureTheory.Function.LpSeminorm.Basic.0.MeasureTheory.eLpNorm'_enorm_rpow._simp_1_3 [decl #112600] theorem NormedAddCommGroup.uniformity_basis_dist [decl #112700] def Additive.involutiveNeg [decl #112800] theorem HilbertBasis.instFunLike._proof_1 [decl #112900] theorem HilbertBasis.coe_mk [decl #113000] theorem IsClosed.tendsto_coe_cofinite_of_isDiscrete [decl #113100] theorem Set.IccExtend_of_le_left [decl #113200] theorem _private.Mathlib.Order.KrullDimension.0.Order.krullDim_nonpos_iff_forall_isMax._simp_1_3 [decl #113300] theorem Filter.instInvolutiveInv._proof_2 [decl #113400] theorem Finpartition.instBotFinset._proof_1 [decl #113500] theorem _private.Mathlib.Order.Partition.Finpartition.0.Finpartition.mem_avoid._simp_1_3 [decl #113600] def LowerHemicontinuousAt [decl #113700] theorem Multiset.instDistribLattice._proof_4 [decl #113800] theorem PNat.factorMultiset_le_iff' [decl #113900] theorem Module.FaithfullyFlat.rTensor_reflects_exact [decl #114000] def AddMonoid.casesOn [decl #114100] theorem Real.arccos_eq_pi_div_two_sub_arcsin INTERN_CALLS 6800000000 nodes=642603 [decl #114200] def Multiset.sym2 [decl #114300] theorem _private.Mathlib.Combinatorics.SimpleGraph.Matching.0.SimpleGraph.Subgraph.isMatching_iff_forall_degree._simp_1_1 [decl #114400] theorem GradedAlgHom.coe_fn_injective [decl #114500] theorem Equiv.field._proof_9 [decl #114600] theorem Representation.Coinvariants.lift._proof_6 [decl #114700] theorem AlgebraicGeometry.Scheme.Opens.iSupOpenCover._proof_2 [decl #114800] theorem CategoryTheory.Limits.IsColimit.ι_app_homEquiv_symm [decl #114900] theorem CategoryTheory.MonoidalCategory.whiskerLeft_rightUnitor_inv [decl #115000] theorem CategoryTheory.Comon.ComonToMonOpOp._proof_5 [decl #115100] theorem MulChar.inv_mul INTERN_CALLS 6900000000 nodes=1764560 [decl #115200] theorem _private.Init.Data.Array.Lex.Basic.0.Array.lex._proof_4 [decl #115300] theorem Std.Rco.forIn'_eq_forIn'_toList [decl #115400] def LowerSet.instSetLike [decl #115500] theorem Equiv.Set.image_symm_apply [decl #115600] theorem Quotient.liftOn.congr_simp [decl #115700] theorem _private.Mathlib.Algebra.MvPolynomial.Basic.0.MvPolynomial.coeff_mul_X'._simp_1_4 [decl #115800] theorem SSet.Truncated.Path₁.arrow_tgt [decl #115900] theorem _private.Mathlib.AlgebraicTopology.SimplicialSet.Horn.0.SSet.horn.primitiveEdge._proof_5 [decl #116000] def Lean.mkErrorStringWithPos [decl #116100] def Lean.Parser.orelseFn [decl #116200] theorem String.Pos.next._proof_1 [decl #116300] def _private.Lean.Meta.Hint.0.Lean.Meta.Hint.mkDiffString [decl #116400] theorem _private.Std.Data.Internal.Cut.0.Std.Internal.instIsStrictCutCompareThenGt._simp_1 [decl #116500] theorem intervalIntegral.FTCFilter.nhdsIcc [decl #116600] theorem IsTopologicalAddGroup.ext_iff [decl #116700] theorem HasFPowerSeriesAt.eq_pow_order_mul_iterate_dslope [decl #116800] def AlgebraicGeometry.IsAffineOpen [decl #116900] def CategoryTheory.Aut.unitsEndEquivAut [decl #117000] def Std.Packages.LinearPreorderOfLEArgs.noConfusion [decl #117100] def OrderRingHom.noConfusionType [decl #117200] def Aesop.instBEqSlotIndex [decl #117300] theorem Mathlib.Tactic.Bicategory.eval_comp INTERN_CALLS 7000000000 nodes=634075 [decl #117400] def Std.Rcc.HasRcoIntersection.recOn [decl #117500] theorem MeasurableSpace.measurable_injection_nat_bool_of_countablySeparated [decl #117600] def MeasureTheory.embeddingReal [decl #117700] def StieltjesFunction.noConfusionType [decl #117800] theorem LinearEquiv.toSpanNonzeroSingleton_homothety [decl #117900] theorem _private.Mathlib.Probability.Kernel.Disintegration.CondCDF.0.ProbabilityTheory.monotone_preCDF._simp_1_1 [decl #118000] opaque ProbabilityTheory.Kernel.wrapped._@.Mathlib.Probability.Kernel.Composition.ParallelComp.2743311029._hygCtx._hyg.8 [decl #118100] theorem ProbabilityTheory.IsCondKernelCDF.toKernel_apply [decl #118200] theorem ProbabilityTheory.Kernel.prod_apply [decl #118300] theorem OrdinalApprox.le_lfpApprox [decl #118400] theorem _private.Mathlib.MeasureTheory.Covering.Vitali.0.Vitali.exists_disjoint_subfamily_covering_enlargement._simp_1_2 [decl #118500] theorem Lean.Grind.Linarith.diseq_split [decl #118600] theorem Monoid.Coprod.mrange_mk [decl #118700] theorem _private.Mathlib.Analysis.Polynomial.MahlerMeasure.0.Polynomial.logMahlerMeasure_eq_log_leadingCoeff_add_sum_log_roots._proof_1_1 [decl #118800] theorem _private.Mathlib.Analysis.Meromorphic.Order.0.MeromorphicOn.codiscrete_setOf_meromorphicOrderAt_eq_zero_or_top._simp_1_7 [decl #118900] theorem MeromorphicAt.eq_nhdsNE_toMeromorphicNFAt [decl #119000] def Function.locallyFinsuppWithin.instAddGroup [decl #119100] theorem Set.preimage_const_add_Iic [decl #119200] theorem _private.Mathlib.SetTheory.Cardinal.Order.0.Cardinal.lift_two_power._simp_1_1 [decl #119300] theorem circleIntegrable_log_norm_meromorphicOn [decl #119400] theorem ContDiffWithinAt.insert INTERN_CALLS 7100000000 nodes=1698015 [decl #119500] theorem ContinuousMultilinearMap.piEquiv._proof_2 [decl #119600] theorem HasFTaylorSeriesUpToOn.comp_continuousAffineMap [decl #119700] theorem tensorIteratedFDerivTwo.eq_1 [decl #119800] theorem _private.Mathlib.Analysis.Complex.HasPrimitives.0.Complex.hasDerivAt_wedgeIntegral_im_aux [decl #119900] theorem InnerProductSpace.laplacian_eq_iteratedFDeriv_stdOrthonormalBasis [decl #120000] theorem InnerProductSpace.HarmonicAt.congr_simp [decl #120100] theorem norm_natCast [decl #120200] theorem Std.Tactic.BVDecide.BVExpr.decEq._proof_45 [decl #120300] theorem Std.Tactic.BVDecide.instDecidableEqBVUnOp.decEq._proof_24 [decl #120400] theorem Std.Tactic.BVDecide.BVExpr.decEq._proof_143 INTERN_CALLS 7200000000 nodes=1902335 [decl #120500] theorem Filter.Tendsto.sup_nhds' [decl #120600] def HahnModule.instAddCommMonoid._aux_6 [decl #120700] theorem HahnSeries.instSemiring._proof_2 [decl #120800] theorem CategoryTheory.yonedaEquiv._proof_2 [decl #120900] theorem sign_apply [decl #121000] theorem _private.Mathlib.Analysis.InnerProductSpace.Orthogonal.0.Submodule.isOrtho_span._simp_1_3 [decl #121100] theorem _private.Mathlib.Analysis.SpecialFunctions.Complex.Arg.0.Complex.arg_neg_eq_arg_add_pi_of_im_neg._simp_1_1 [decl #121200] theorem EuclideanGeometry.oangle_rev [decl #121300] theorem Nat.one_le_cast._simp_1 [decl #121400] theorem HomologicalComplex.truncGE'.isLimitKernelFork._proof_12 [decl #121500] theorem CochainComplex.shiftFunctorAdd_eq [decl #121600] theorem CochainComplex.next [decl #121700] theorem instCategoryHomotopyCategory._proof_9 [decl #121800] theorem Homotopy.equivSubZero._proof_1 [decl #121900] def CategoryTheory.ShortComplex.LeftHomologyMapData.ofNullHomotopic [decl #122000] theorem CategoryTheory.Quotient.natTrans_ext [decl #122100] def HomotopyCategory.Pretriangulated.distinguishedTriangles [decl #122200] theorem CochainComplex.mappingCone.inr_fst [decl #122300] theorem CochainComplex.mappingCone.descCocycle._proof_1 [decl #122400] theorem CategoryTheory.shiftFunctorZero_hom_app_shift INTERN_CALLS 7300000000 nodes=2912467 [decl #122500] theorem CategoryTheory.shift_shift_neg' [decl #122600] def CategoryTheory.Pretriangulated.shortComplexOfDistTriangle [decl #122700] theorem CategoryTheory.Functor.mapZeroObject._proof_1 [decl #122800] theorem CategoryTheory.Pretriangulated.Triangle.π₂._proof_1 [decl #122900] theorem HomologicalComplex.isColimitOfEval._proof_3 [decl #123000] theorem CategoryTheory.Functor.instPreservesEpimorphisms [decl #123100] theorem HomologicalComplex.instPreservesZeroMorphismsOpcyclesFunctor [decl #123200] theorem Fin.succFunctor._proof_2 [decl #123300] theorem HomologicalComplex.cycles_left_exact [decl #123400] theorem CategoryTheory.ObjectProperty.instIsCompatibleWithShiftTrWIntOfIsStableUnderShift [decl #123500] theorem CategoryTheory.Limits.coker.π_app [decl #123600] theorem localization_unit_isIso [decl #123700] theorem CategoryTheory.MonoidalCategory.MonoidalRightAction.actionOfMonoidalFunctorToEndofunctor_actionUnitIso_inv [decl #123800] def instAddCommMonoidWithOneEReal [decl #123900] def Filter.le_limsup_iff'._auto_1 [decl #124000] def ExceptT.mk [decl #124100] theorem Std.DHashMap.Internal.Raw₀.isHashSelf_mapₘ [decl #124200] theorem ProbabilityTheory.variance_eq_integral INTERN_CALLS 7400000000 nodes=2057706 [decl #124300] theorem _private.Mathlib.Combinatorics.Colex.0.Finset.Colex.trans_aux._simp_1_3 [decl #124400] def Lean.Parser.ppLine [decl #124500] theorem Prod.nonUnitalSeminormedRing._proof_8 [decl #124600] theorem ContinuousLinearMap.unit_le_opNorm [decl #124700] theorem Differentiable.const_sub [decl #124800] def StarAlgebra.adjoinCommSemiringOfComm.match_1 [decl #124900] theorem StarAlgebra.elemental.instCommCStarAlgebraSubtypeMemStarSubalgebraComplexOfIsStarNormal._proof_4 [decl #125000] theorem WeakDual.eval_continuous [decl #125100] theorem NormedSpace.exp_add_of_commute [decl #125200] def StarAlgebra.elemental.instCommSemiringSubtypeMemStarSubalgebraOfT2SpaceOfIsStarNormal [decl #125300] theorem Ideal.Quotient.normedCommRing._proof_3 INTERN_CALLS 7500000000 nodes=3433055 [decl #125400] theorem gelfandStarTransform._proof_11 [decl #125500] theorem WeakDual.instAddCommGroup._proof_5 [decl #125600] theorem SeminormedAddCommGroup.ofCore._proof_2 [decl #125700] theorem ContinuousMapZero.nonUnitalStarAlgHom_precomp._proof_3 [decl #125800] theorem NonUnitalStarSubalgebra.instNonUnitalSubringClass [decl #125900] theorem _private.Mathlib.Topology.Maps.Basic.0.Topology.IsEmbedding.of_comp_iff._simp_1_1 [decl #126000] theorem SpectrumRestricts.mul_comm_iff INTERN_CALLS 7600000000 nodes=363330 [decl #126100] theorem mul_star_self_nonneg [decl #126200] def WithCStarModule.instCStarModule [decl #126300] theorem RCLike.ofReal_ne_zero [decl #126400] def CompletelyPositiveMap.casesOn [decl #126500] def Aesop.ForwardRuleMatch.casesOn [decl #126600] opaque Aesop.tree [decl #126700] theorem _private.Mathlib.GroupTheory.Complement.0.Subgroup.isComplement_subgroup_left_iff_existsUnique_quotientMk''._simp_1_2 [decl #126800] theorem _private.Mathlib.Data.List.Sigma.0.List.dlookup_isSome._proof_1_1 [decl #126900] theorem Subgroup.nontrivial_iff_ne_bot [decl #127000] theorem _private.Mathlib.FieldTheory.RatFunc.Basic.0.RatFunc.wrapped._proof_1._@.Mathlib.FieldTheory.RatFunc.Basic.870781102._hygCtx._hyg.2 [decl #127100] theorem Valuation.extendToLocalization._proof_2 [decl #127200] def Units.instPreorder [decl #127300] theorem WithVal.instRing._proof_1 [decl #127400] theorem HahnSeries.instRing._proof_4 [decl #127500] theorem finsum_eq_dif [decl #127600] theorem HahnModule.instModule._proof_5 [decl #127700] theorem HahnSeries.SummableFamily.single._proof_1 [decl #127800] theorem UniqueFactorizationMonoid.of_exists_prime_factors [decl #127900] theorem PowerSeries.idealX._proof_2 [decl #128000] theorem Multiset.count_eq_one_of_mem [decl #128100] theorem IsTopologicalAddGroup.t2Space_of_zero_sep [decl #128200] theorem Valuation.restrict_lt_iff INTERN_CALLS 7700000000 nodes=4178315 [decl #128300] theorem PowerSeries.coe_X [decl #128400] def CategoryTheory.uniformProd [decl #128500] theorem SSet.Truncated.Edge.tensor._proof_3 [decl #128600] theorem ValuationSubring.instFieldSubtypeMemTop._proof_3 [decl #128700] theorem ValuationRing.linearOrder._proof_5 [decl #128800] def _private.Aesop.Rule.Name.0.Aesop.instOrdDisplayRuleName.ord._sparseCasesOn_1 [decl #128900] theorem ContDiffWithinAt.comp_continuousLinearMap INTERN_CALLS 7800000000 nodes=4289854 [decl #129000] theorem _private.Mathlib.Analysis.Distribution.TemperateGrowth.0.Function.hasTemperateGrowth_one_add_norm_sq_rpow._proof_1_1 [decl #129100] theorem descPochhammer.eq_2 [decl #129200] theorem _private.Mathlib.CategoryTheory.Monoidal.Action.Basic.0.CategoryTheory.MonoidalCategory.MonoidalLeftAction.action_exchange._simp_1_3 [decl #129300] theorem _private.Mathlib.SetTheory.Cardinal.Ordinal.0.Ordinal.lift_card_iSup_le_sum_card._simp_1_1 [decl #129400] def QuaternionAlgebra.instAdd [decl #129500] theorem QuaternionAlgebra.star_eq_two_re_sub [decl #129600] theorem PontryaginDual.map_comp [decl #129700] theorem Multiset.lists._proof_1 [decl #129800] theorem List.modifyTailIdx_modifyTailIdx_self [decl #129900] def _private.Lean.Elab.Tactic.Omega.Frontend.0.Lean.Elab.Tactic.Omega.asLinearComboImpl.handleNatCast._sparseCasesOn_1 [decl #130000] def _private.Lean.Declaration.0.Lean.ConstantInfo.isUnsafe.match_1 [decl #130100] def Lean.Environment.AddConstAsyncResult.asyncEnv [decl #130200] def Lean.Core.wrapAsync [decl #130300] theorem FiniteField.frobeniusAlgHom._proof_1 [decl #130400] theorem exists_isCompact_superset_iff [decl #130500] theorem AlgebraicGeometry.IsZariskiLocalAtSource.of_openCover INTERN_CALLS 7900000000 nodes=1552195 [decl #130600] theorem Std.Sat.AIG.hconst INTERN_CALLS 8000000000 nodes=282413 [decl #130700] theorem AddSubsemigroup.unop_op [decl #130800] theorem CategoryTheory.Limits.pullbackSymmetry_inv_comp_snd_assoc [decl #130900] def AlgebraicGeometry.IsAffineOpen.fromSpecStalk [decl #131000] def _private.Mathlib.Geometry.RingedSpace.SheafedSpace.0.AlgebraicGeometry.SheafedSpace.mono_of_base_injective_of_stalk_epi.match_1_1 [decl #131100] theorem AlgebraicGeometry.Scheme.basicOpen_le [decl #131200] def MonoidHom.submonoidMap [decl #131300] theorem AlgebraicGeometry.stalkwiseIsZariskiLocalAtTarget_of_respectsIso INTERN_CALLS 8100000000 nodes=308806 [decl #131400] theorem AlgebraicGeometry.HasAffineProperty.instIsZariskiLocalAtTarget [decl #131500] theorem Std.DTreeMap.Equiv.get!_eq [decl #131600] def Lean.Level.PP.Result.casesOn [decl #131700] theorem ContMDiffMap.contMDiff [decl #131800] def Lean.PersistentHashSet.insert [decl #131900] def _private.Mathlib.Tactic.DeriveTraversable.0.Mathlib.Deriving.Traversable.getAuxDefOfDeclName.match_4 [decl #132000] def _private.Lean.Meta.Diagnostics.0.Lean.Meta.collectAboveThreshold.match_1 [decl #132100] opaque Lean.pp.privateNames [decl #132200] def Lean.Meta.Simp.Step.casesOn [decl #132300] def Lean.hasAssignableMVar [decl #132400] def Lean.RecursorRule.ctor [decl #132500] def Lean.Meta.Simp.simpUsingDecide [decl #132600] def _private.Lean.Expr.0.Lean.intMulFn [decl #132700] def _private.Lean.Expr.0.Lean.natEqPred [decl #132800] def Lean.recOnSuffix [decl #132900] def Lean.Meta.RecursorInfo.produceMotive [decl #133000] def Lean.Meta.Grind.GoalState.exprs [decl #133100] theorem VectorBundleCore.coordChange_comp [decl #133200] theorem _private.Mathlib.Topology.FiberBundle.Basic.0.FiberBundleCore.localTrivAsPartialEquiv_trans._simp_1_8 [decl #133300] theorem OpenPartialHomeomorph.map_extend_nhdsWithin_eq_image_of_subset [decl #133400] theorem HasMFDerivAt.mfderiv [decl #133500] theorem HasFDerivWithinAt.insert [decl #133600] theorem _private.Mathlib.Algebra.Group.Submonoid.Membership.0.Submonoid.closure_induction_left._simp_1_1 [decl #133700] def _private.Init.Data.Nat.Control.0.Nat.forRevM.loop [decl #133800] def TrivSqZeroExt.mulOneClass [decl #133900] theorem CategoryTheory.GrothendieckTopology.over_map_coverPreserving [decl #134000] def CategoryTheory.SmallObject.SuccStruct.X₀ [decl #134100] theorem Std.Do.PredTrans.mono [decl #134200] theorem _private.Mathlib.CategoryTheory.SmallObject.Iteration.ExtendToSucc.0.CategoryTheory.SmallObject.SuccStruct.extendToSucc.obj_succ_eq._simp_1_1 [decl #134300] theorem CategoryTheory.SmallObject.SuccStruct.arrowMap_refl._proof_1 [decl #134400] def CategoryTheory.SmallObject.SuccStruct.isColimitIterationCocone [decl #134500] theorem add_eq_add_iff_eq_and_eq [decl #134600] theorem ContDiffMapSupportedIn.toBoundedContinuousFunctionLM._proof_3 INTERN_CALLS 8200000000 nodes=2421833 [decl #134700] theorem TestFunction.instSMulOfSMulCommClassRealOfContinuousConstSMul._proof_3 [decl #134800] theorem Std.Internal.List.minKeyD_of_perm [decl #134900] def Std.DTreeMap.Internal.Impl.erase! [decl #135000] def MvPFunctor.M.pathDestLeft [decl #135100] theorem OrderIso.lt_iff_lt._simp_1 [decl #135200] theorem Finset.notMem_of_coe_lt_min [decl #135300] theorem CategoryTheory.isColimitOfEffectiveEpiFamilyStruct._proof_4 [decl #135400] theorem CategoryTheory.Sieve.image_mem_functorPushforward [decl #135500] theorem Std.Internal.instLawfulMonadLiftBindFunctionBindMonadLiftOfLawfulMonadLiftTOfLawfulMonad [decl #135600] theorem SchwartzMap.instLineDeriv._proof_1 [decl #135700] theorem AddMagmaCat.instCategory._proof_2 [decl #135800] theorem FreeAbelianGroup.liftMonoid._proof_10 [decl #135900] theorem Std.DTreeMap.Internal.Impl.insert!_eq_insertₘ [decl #136000] theorem CategoryTheory.MorphismProperty.LeftFraction₂.hs [decl #136100] theorem CategoryTheory.Localization.Preadditive.add'_assoc [decl #136200] theorem CategoryTheory.Triangulated.Octahedron.ofIso._proof_16 [decl #136300] def HomologicalComplexUpToQuasiIso.homologyFunctorFactors [decl #136400] theorem _private.Mathlib.Algebra.Homology.Opposite.0.HomologicalComplex.quasiIso_opFunctor_map_iff._simp_1_1 [decl #136500] theorem quasiIsoAt_iff_exactAt' [decl #136600] theorem CategoryTheory.Functor.CommShift.comp_commShiftIso_inv_app [decl #136700] theorem CategoryTheory.ShortComplex.SnakeInput.L₀'_exact INTERN_CALLS 8300000000 nodes=746498 [decl #136800] theorem CategoryTheory.ShortComplex.π_leftRightHomologyComparison_ι [decl #136900] theorem CategoryTheory.normalEpiOfNormalMonoUnop._proof_2 [decl #137000] theorem CategoryTheory.Limits.hasColimit_inverse_equivalence_comp_iff [decl #137100] theorem CategoryTheory.ShortComplex.ShortExact.singleδ._proof_1 [decl #137200] theorem CategoryTheory.SingleFunctors.id_hom [decl #137300] theorem CategoryTheory.Discrete.addMonoidalFunctorMonoidal._proof_2 [decl #137400] def CategoryTheory.Pretriangulated.shiftFunctor_op_map._auto_1 [decl #137500] theorem AddCommGrpCat.kernelIsLimit._proof_4 [decl #137600] theorem _private.Mathlib.CategoryTheory.Shift.ShiftedHom.0.CategoryTheory.ShiftedHom.comp_mk₀._simp_1_2 INTERN_CALLS 8400000000 nodes=743742 [decl #137700] def Rep.ihom [decl #137800] theorem AddSubgroup.Normal.comap [decl #137900] theorem IsSeparatedMap.eq_of_comp_eq [decl #138000] def Lean.Elab.Command.withScope [decl #138100] theorem List.findIdxNth.eq_1 [decl #138200] theorem ZeroAtInftyContinuousMapClass.toContinuousMapClass [decl #138300] theorem MultilinearMap.freeFinsuppEquiv._proof_2 [decl #138400] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.getElem_sshiftRight._proof_1_1 [decl #138500] theorem toIocDiv_add_right [decl #138600] def AlgebraicGeometry.Scheme.IdealSheafData.glueDataObj [decl #138700] theorem _private.Mathlib.AlgebraicGeometry.IdealSheaf.Subscheme.0.AlgebraicGeometry.Scheme.IdealSheafData.glueDataT_fst_assoc INTERN_CALLS 8500000000 nodes=2959362 [decl #138800] def AlgebraicGeometry.Scheme.Hom.toImage [decl #138900] theorem AlgebraicGeometry.quasiCompact_iff [decl #139000] theorem AlgebraicGeometry.Scheme.Pullback.isAffine_of_isAffine_isAffine_isAffine [decl #139100] theorem Prod.instNonAssocRing._proof_1 [decl #139200] theorem AlgebraicGeometry.LocallyRingedSpace.emptyTo._proof_2 [decl #139300] theorem CategoryTheory.StructuredArrow.instEssSurjObjCompPostOfFull [decl #139400] def _private.Lean.Elab.Term.TermElabM.0.Lean.Elab.Term.throwTypeMismatchError.match_1 [decl #139500] def MulArchimedeanClass.instLinearOrder [decl #139600] def InfHom.id [decl #139700] theorem DirectSum.instLieAlgebraSubtypeMemSubmodule._proof_1 [decl #139800] theorem Stream'.tail_iterate [decl #139900] theorem Computation.destruct_eq_think [decl #140000] theorem Stream'.WSeq.tail_nil [decl #140100] theorem TensorProduct.exists_of_fg INTERN_CALLS 8600000000 nodes=962032 [decl #140200] theorem EReal.inv_zero [decl #140300] theorem PadicInt.instNormedCommRing._proof_3 [decl #140400] theorem padicNorm.dvd_iff_norm_le [decl #140500] theorem Polynomial.smeval_C [decl #140600] theorem _private.Mathlib.MeasureTheory.OuterMeasure.OfFunction.0.MeasureTheory.OuterMeasure.comap_iInf._simp_1_2 [decl #140700] theorem CategoryTheory.Functor.flipping._proof_8 INTERN_CALLS 8700000000 nodes=937573 [decl #140800] theorem AlgebraicGeometry.Scheme.Cover.RelativeGluingData.glued._proof_1 [decl #140900] theorem AlgebraicGeometry.AffineTargetMorphismProperty.diagonal_respectsIso [decl #141000] theorem CochainComplex.Plus._proof_1 [decl #141100] def Sum.inlₗ [decl #141200] def HahnSeries.ofFinsupp [decl #141300] theorem ArchimedeanClass.subsemigroup_strictAnti [decl #141400] def instAddMonoidLex INTERN_CALLS 8800000000 nodes=1147944 [decl #141500] theorem lt_of_sub_pos [decl #141600] theorem Asymptotics.IsBigOTVS.refl [decl #141700] theorem OnePoint.continuousAt_infty' [decl #141800] theorem Path.Homotopy.transAssocReparamAux_one [decl #141900] theorem _private.Mathlib.Topology.Path.0.Path.map_trans._proof_1_1 INTERN_CALLS 8900000000 nodes=3431260 [decl #142000] theorem Semicontinuous.semicontinuousAt [decl #142100] theorem MeasureTheory.smul_set_ae_eq [decl #142200] theorem Std.TreeMap.maxKey_erase_le_maxKey [decl #142300] theorem Relation.TransGen.trans [decl #142400] def Lean.Meta.Grind.PreInstance.mk.noConfusion [decl #142500] def _private.Mathlib.CategoryTheory.Dialectica.Basic.0.CategoryTheory.Dial.Hom.ext.match_1 [decl #142600] theorem QuadraticMap.polar.eq_1 [decl #142700] def QuadraticMap.basisRepr [decl #142800] theorem Int.eq_mul_of_ediv_eq_right [decl #142900] theorem FiniteField.instFieldExtension._proof_7 INTERN_CALLS 9000000000 nodes=2717379 INTERN_CALLS 9100000000 nodes=2854863 [decl #143000] theorem FiniteField.instAlgebraExtension._proof_1 [decl #143100] def CategoryTheory.Bicategory.InducedBicategory [decl #143200] theorem List.pop_toArray INTERN_CALLS 9200000000 nodes=1143149 [decl #143300] theorem UpperHalfPlane.continuous_re [decl #143400] def Aesop.ForwardRulePriority._sizeOf_inst [decl #143500] theorem CategoryTheory.StrictPseudofunctorCore.map₂_right_unitor [decl #143600] theorem contMDiffWithinAt_iff_of_mem_source [decl #143700] def CategoryTheory.Localization.Lifting₃.uncurry INTERN_CALLS 9300000000 nodes=2925328 [decl #143800] theorem ENNReal.coe_lt_one_iff._simp_1 [decl #143900] theorem _private.Mathlib.Analysis.Complex.UpperHalfPlane.MoebiusAction.0.UpperHalfPlane.im_smul._simp_1_2 [decl #144000] theorem Matrix.transposePath._proof_1 [decl #144100] def Lean.Meta.coerceToSort? [decl #144200] theorem DenseRange.topologicalClosure_map_addSubgroup [decl #144300] theorem NNReal.tendsto_coe_atTop [decl #144400] theorem _private.Mathlib.Data.List.OffDiag.0.List.mem_offDiag_iff_getElem._simp_1_10 [decl #144500] theorem _private.Init.Data.Int.DivMod.Lemmas.0.Int.zero_bmod._proof_1_1 [decl #144600] theorem Nat.add_div_left [decl #144700] theorem BitVec.toInt_ne [decl #144800] theorem CategoryTheory.Bimon.instCategory._proof_7 [decl #144900] theorem CategoryTheory.Bimon.equivMonComon._proof_4 INTERN_CALLS 9400000000 nodes=3228368 [decl #145000] def RingHom.QuasiFinite [decl #145100] def _private.Mathlib.Order.Atoms.0.IsAtomic.Set.Iic.isAtomic.match_1 [decl #145200] theorem Ne.not_le_or_not_ge [decl #145300] theorem IsSemisimpleModule.range [decl #145400] theorem RingEquiv.toSemilinearEquiv._proof_1 [decl #145500] theorem AlgebraicGeometry.IsLocallyArtinian.of_topologicalKrullDim_le_zero [decl #145600] theorem Algebra.TensorProduct.piRightHom._proof_3 [decl #145700] theorem right_eq_sup._simp_2 INTERN_CALLS 9500000000 nodes=5030737 INTERN_CALLS 9600000000 nodes=2752868 [decl #145800] theorem Algebra.QuasiFinite.iff_of_isArtinianRing [decl #145900] theorem LinearMap.liftBaseChangeEquiv._proof_7 INTERN_CALLS 9700000000 nodes=3548539 [decl #146000] theorem AlgebraicGeometry.targetAffineLocally_affineAnd_eq_affineLocally [decl #146100] theorem AlgebraicGeometry.instLocallyQuasiFiniteOfIsImmersion [decl #146200] theorem CategoryTheory.colimitYonedaHomEquiv._proof_1 [decl #146300] theorem CategoryTheory.ObjectProperty.isoClosure_strictColimitsOfShape [decl #146400] theorem CategoryTheory.OverPresheafAux.OverArrows.map₁_map₂ [decl #146500] theorem CategoryTheory.OverPresheafAux.OverArrows.costructuredArrowIso._proof_3 [decl #146600] theorem CategoryTheory.Limits.colimitLimitToLimitColimitCone._proof_1 INTERN_CALLS 9800000000 nodes=3573300 [decl #146700] theorem CategoryTheory.zigzag_symmetric [decl #146800] theorem CategoryTheory.Coyoneda.colimitCoconeIsColimit._proof_1 [decl #146900] theorem CategoryTheory.StructuredArrow.commaMapEquivalenceUnitIso._proof_4 [decl #147000] def CategoryTheory.Functor.leftKanExtensionObjIsoColimit [decl #147100] theorem _private.Mathlib.CategoryTheory.Comma.Over.Basic.0.CategoryTheory.Under.UnderMorphism.ext._simp_1_5 INTERN_CALLS 9900000000 nodes=1026514 [decl #147200] theorem CategoryTheory.instIsCorepresentableIdType [decl #147300] theorem CategoryTheory.instFullIndFunctorOppositeTypeInclusion [decl #147400] def WittVector.eval [decl #147500] def MvPolynomial.expand [decl #147600] theorem _private.Mathlib.RingTheory.WittVector.Basic.0.WittVector.comm_ring_aux₂._proof_5 [decl #147700] theorem ULift.commMonoid._proof_1 [decl #147800] def StateTransition.EvalsToInTime.toEvalsTo [decl #147900] theorem Nat.eq_Ici_of_nonempty_of_upward_closed [decl #148000] theorem Nat.compare_eq_lt._simp_1 [decl #148100] theorem Set.smul_set_subset_smul [decl #148200] opaque Aesop.option._@.Aesop.Check.2536445200._hygCtx._hyg.3 [decl #148300] def Aesop.RuleBuilderOptions.casesPatterns? [decl #148400] def Lean.LocalContext.mkBinding [decl #148500] def Aesop.RulePattern.argMap [decl #148600] def Aesop.Slot.common [decl #148700] def Lean.realizeGlobalConstCore [decl #148800] def Aesop.RuleBuilder.tactic [decl #148900] def _private.Aesop.Util.Unfold.0.Aesop.unfoldManyCore.pre.match_4 [decl #149000] def Aesop.SimpTheorems.containsDecl INTERN_CALLS 10000000000 nodes=1866012 [decl #149100] def CategoryTheory.sum.associator [decl #149200] def Std.Time.PlainTime.toNanoseconds [decl #149300] theorem CochainComplex.HomComplex.Cocycle.coe_zero [decl #149400] theorem _private.Std.Data.ExtTreeMap.Lemmas.0.Std.ExtTreeMap.ext_iff [decl #149500] theorem _private.Mathlib.AlgebraicGeometry.IdealSheaf.Basic.0.AlgebraicGeometry.Scheme.IdealSheafData.instSemilatticeInf._simp_3 [decl #149600] def Set.ZPow [decl #149700] theorem Derivation.instZero._proof_1 [decl #149800] theorem HahnSeries.toMvPowerSeries._proof_3 [decl #149900] def Lean.Meta.Grind.State.lawfulEqCmpMap INTERN_CALLS 10100000000 nodes=1224197 [decl #150000] theorem trivialVectorBundleCore._proof_2 [decl #150100] theorem Bundle.Pretrivialization.continuousLinearMap_symm_apply' [decl #150200] def Bundle.ContMDiffRiemannianMetric.toContinuousRiemannianMetric [decl #150300] theorem ContDiffMapSupportedIn.seminorm_fderivLM_le [decl #150400] theorem CategoryTheory.Abelian.functorCategoryAbelian._proof_1 [decl #150500] theorem MeasureTheory.AddContent.extend_eq_top [decl #150600] theorem _private.Mathlib.MeasureTheory.Constructions.Cylinders.0.MeasureTheory.eq_of_cylinder_eq_of_subset._simp_1_1 [decl #150700] theorem MeasureTheory.addContent_biUnion_le [decl #150800] theorem MeasurableEquiv.IicProdIoc._proof_5 [decl #150900] theorem _private.Mathlib.Probability.Kernel.IonescuTulcea.Traj.0.iterateInduction.match_1._arg_pusher [decl #151000] theorem _private.Mathlib.Probability.ProductMeasure.0.MeasureTheory.Measure.map_piSingleton._simp_1_7 [decl #151100] theorem MeasureTheory.IsProjectiveLimit.measure_cylinder [decl #151200] theorem instMetricSpacePUnit._proof_2 [decl #151300] theorem SimpleGraph.radius.eq_1 [decl #151400] theorem String.Pos.byteIdx_offset_le_utf8ByteSize._simp_1 INTERN_CALLS 10200000000 nodes=2596544 [decl #151500] theorem _private.Mathlib.Algebra.Order.Ring.GeomSum.0.geom_sum_alternating_of_le_neg_one._simp_1_1 [decl #151600] def CategoryTheory.GrothendieckTopology.Point.isCofiltered._autoParam [decl #151700] def CategoryTheory.Oplax.LaxTrans.naturality_naturality._autoParam [decl #151800] theorem MulEquiv.map_eq_one_iff [decl #151900] theorem Option.get!_none [decl #152000] def FP.Float.ctorElimType [decl #152100] def CategoryTheory.Functor.relativelyRepresentable.pullback₃ [decl #152200] theorem WeakFEPair.symm._proof_1 [decl #152300] theorem aemeasurable_iUnion_iff [decl #152400] def VectorFourier.fourierSMulRight [decl #152500] theorem Real.volume_Iic INTERN_CALLS 10300000000 nodes=2682490 [decl #152600] theorem FourierInvPair.fourier_fourierInv_eq [decl #152700] theorem Std.DHashMap.Internal.Raw.Const.get!_eq [decl #152800] theorem instLinearOrderedCommMonoidWithZeroMultiplicativeOrderDual._proof_3 [decl #152900] def CategoryTheory.PreOneHypercover.Hom._sizeOf_1 [decl #153000] def BialgHom.id [decl #153100] theorem AdicCompletion.AdicCauchySequence.instSMul._proof_1 INTERN_CALLS 10400000000 nodes=1772962 [decl #153200] theorem _private.Mathlib.RingTheory.AdicCompletion.AsTensorProduct.0.AdicCompletion.tens_surj [decl #153300] theorem AdicCompletion.component_sumInv INTERN_CALLS 10500000000 nodes=2807730 [decl #153400] theorem Lean.Compiler.LCNF.CtorLayout.mk.sizeOf_spec [decl #153500] theorem CategoryTheory.BimonObj.mul_comul [decl #153600] theorem LocallyConstant.ofIsClopen._proof_1 [decl #153700] def Ctop.Realizer.nhds.match_7 [decl #153800] def Lean.Meta.LazyDiscrTree.MatchClone.toNatLit? [decl #153900] theorem aestronglyMeasurable_of_aestronglyMeasurable_trim [decl #154000] theorem continuous_of_linear_of_bound [decl #154100] theorem MeasureTheory.setIntegral_indicatorConstLp [decl #154200] theorem MeasureTheory.ExistsSeqTendstoAe.seqTendstoAeSeq_spec [decl #154300] theorem OneHom.map_one [decl #154400] theorem CategoryTheory.MorphismProperty.IsStableUnderComposition.inverseImage INTERN_CALLS 10600000000 nodes=389288 [decl #154500] def CentroidHom.comp [decl #154600] theorem SSet.Truncated.Quasicategory₂._proof_1 [decl #154700] def _private.Lean.Compiler.LCNF.CompilerM.0.Lean.Compiler.LCNF.getType.match_4 [decl #154800] def _private.Lean.Compiler.LCNF.Bind.0.Lean.Compiler.LCNF.FunDecl.etaExpand._sparseCasesOn_1 [decl #154900] theorem TensorProduct.AlgebraTensorModule.coe_lTensor [decl #155000] def PSum.noConfusionType [decl #155100] theorem CategoryTheory.Pretriangulated.Triangle.instZeroHom._proof_6 [decl #155200] theorem Finset.neg_univ [decl #155300] def Std.Tactic.BVDecide.LRAT.Internal.Clause.empty [decl #155400] def Lean.Meta.Sym.ExprPtr._sizeOf_inst [decl #155500] theorem Lean.OpenDecl.simple.sizeOf_spec [decl #155600] theorem CategoryTheory.LaxFunctor.mapComp_naturality_right_assoc [decl #155700] theorem ProbabilityTheory.Kernel.indepSet_zero_left [decl #155800] theorem ENat.iInf_coe_eq_top INTERN_CALLS 10700000000 nodes=3308224 [decl #155900] theorem CategoryTheory.Bicategory.Adjunction.homEquiv₂._proof_6 [decl #156000] theorem CircleDeg1Lift.instLattice._proof_6 [decl #156100] def instSliceableListNatListSlice_4 [decl #156200] theorem SSet.Truncated.StrictSegal.isStrictSegal [decl #156300] def _private.Mathlib.Topology.Connected.LocPathConnected.0.IsOpen.pathComponentIn.match_1_1 [decl #156400] theorem instAddLeftReflectLEPNat._proof_1 [decl #156500] theorem UniformSpace.Completion.ring._proof_37 [decl #156600] theorem ProbabilityTheory.Kernel.lintegral_restrict [decl #156700] theorem MeasureTheory.Measure.setLIntegral_rnDeriv_le [decl #156800] theorem MeasureTheory.stoppedValue_upperCrossingTime [decl #156900] theorem MeasureTheory.Integrable.sup [decl #157000] theorem _private.Mathlib.Probability.Martingale.Upcrossing.0.MeasureTheory.mul_upcrossingsBefore_le._simp_1_7 [decl #157100] theorem Filter.tendsto_of_subseq_tendsto [decl #157200] theorem _private.Mathlib.MeasureTheory.Function.StronglyMeasurable.Basic.0.MeasureTheory.StronglyMeasurable.measurableSet_lt._simp_1_1 [decl #157300] theorem MeasureTheory.Measure.AbsolutelyContinuous.compProd_right [decl #157400] def IsLocalDiffeomorphAt.mfderivToContinuousLinearEquiv [decl #157500] theorem Matroid.IsBase.encard_eq_eRank [decl #157600] theorem subtypeOrLeftEmbedding._proof_2 [decl #157700] def CategoryTheory.Over.toOverSectionsAdj [decl #157800] theorem Rack.left_inv [decl #157900] theorem Sum.Lex.toLexRelIsoLT._proof_3 [decl #158000] theorem IntermediateField.isPurelyInseparable_tower_top INTERN_CALLS 10800000000 nodes=1393033 [decl #158100] theorem Module.compHom.toLinearEquiv._proof_3 [decl #158200] theorem IsLocalRing.basisQuotient._proof_2 INTERN_CALLS 10900000000 nodes=2394911 [decl #158300] theorem isTrans_le [decl #158400] theorem Finset.card_add_card_compl [decl #158500] theorem Option.map₂_coe_right [decl #158600] theorem Nat.subset_range_nth [decl #158700] def Zsqrtd.ofInt [decl #158800] def Finset.decidableForallOfDecidableSubsets' [decl #158900] theorem Nat.instDecidablePredOdd._proof_1 [decl #159000] def _private.Mathlib.Algebra.Group.Basic.0.add_right_iterate.match_1_1 [decl #159100] theorem SimpleGraph.nonuniformWitness_subset [decl #159200] theorem MulChar.coe_toUnitHom [decl #159300] theorem _private.Batteries.Data.Array.Scan.0.Array.scanr_ne_empty._proof_1_1 [decl #159400] theorem CategoryTheory.Idempotents.KaroubiHomologicalComplexEquivalence.inverse._proof_2 [decl #159500] opaque Lean.Compiler.LCNF.LetValue.updateReuse! [decl #159600] theorem _private.Mathlib.Topology.Algebra.InfiniteSum.Defs.0.hasProd_prod_support_of_ne_finset_one._proof_1_3 [decl #159700] def Metric.glueDist [decl #159800] theorem vectorSpan_insert_eq_vectorSpan [decl #159900] theorem tendsto_atBot_iSup [decl #160000] theorem Std.ExtHashMap.getKeyD_alter [decl #160100] def Module.Baer.ExtensionOfMaxAdjoin.idealTo [decl #160200] theorem AdjoinRoot.algEquivOfEq._proof_1 INTERN_CALLS 11000000000 nodes=2104957 [decl #160300] def ContinuousAlternatingMap.instNormedSpace [decl #160400] theorem AddGroupSeminorm.instPartialOrder._proof_1 [decl #160500] def _private.Mathlib.Order.Category.PartOrdEmb.0.PartOrdEmb.Hom.ext.match_1 [decl #160600] def List.mapIdx_eq_zipIdx_map.match_1 [decl #160700] theorem Nat.succPNat_coe [decl #160800] def CategoryTheory.Limits.FormalCoproduct.powerFan [decl #160900] def LocPathConnectedSpace.casesOn [decl #161000] theorem Prime.dvd_pow_iff_dvd [decl #161100] def UnitAddTorus.mFourier [decl #161200] def instDecidableEqONote.decEq [decl #161300] theorem continuous_sub_right [decl #161400] theorem CategoryTheory.Limits.ChosenPullback₃.p₂₃_p₃ [decl #161500] theorem CategoryTheory.StrictlyUnitaryPseudofunctorCore.map₂_left_unitor INTERN_CALLS 11100000000 nodes=4362729 [decl #161600] theorem CategoryTheory.Pi.monoidalCategory._proof_7 [decl #161700] theorem Set.Finite.vsub [decl #161800] theorem List.coe_toFinset [decl #161900] def Mathlib.Tactic.BicategoryLike.instInhabitedStructuralAtom.default [decl #162000] theorem CategoryTheory.MorphismProperty.Over.pullback._proof_4 [decl #162100] theorem Array.getElem_zipWith._proof_2 [decl #162200] theorem LieModule.traceForm_apply_lie_apply INTERN_CALLS 11200000000 nodes=3915536 [decl #162300] theorem LieHom.mem_range._simp_1 [decl #162400] theorem LieSubmodule.mono_lie_right [decl #162500] theorem LieModule.lowerCentralSeriesLast_le_max_triv [decl #162600] theorem Module.End.mem_maxGenEigenspace._simp_1 [decl #162700] theorem LieSubmodule.equivMapOfInjective._proof_1 [decl #162800] theorem LieSubmodule.iSup_toSubmodule INTERN_CALLS 11300000000 nodes=1005248 [decl #162900] theorem TensorProduct.AlgebraTensorModule.rightComm._proof_13 [decl #163000] theorem _private.Mathlib.LinearAlgebra.Eigenspace.Basic.0.Module.End.independent_genEigenspace._simp_1_4 [decl #163100] theorem Submodule.finrank_lt_finrank_of_lt [decl #163200] theorem _private.Mathlib.LinearAlgebra.Eigenspace.Basic.0.Module.End.mapsTo_restrict_maxGenEigenspace_restrict_of_mapsTo._simp_1_1 INTERN_CALLS 11400000000 nodes=641220 [decl #163300] theorem IsSimpleModule.toSpanSingleton_surjective [decl #163400] theorem complementedLattice_iff [decl #163500] theorem isReduced_iff [decl #163600] def LieDerivation.instAddCommGroup [decl #163700] theorem _private.Mathlib.Algebra.Lie.Ideal.0.LieHom.isIdealMorphism_iff._simp_1_6 [decl #163800] theorem lie_abelian_iff_equiv_lie_abelian [decl #163900] theorem _private.Mathlib.LinearAlgebra.BilinearForm.Orthogonal.0.LinearMap.BilinForm.inf_orthogonal_self_le_ker_restrict._simp_1_4 INTERN_CALLS 11500000000 nodes=3555724 [decl #164000] def _private.Mathlib.Algebra.Lie.Weights.Cartan.0.LieAlgebra.mem_corootSpace'.match_1_11 [decl #164100] theorem LieAlgebra.IsKilling.coroot.eq_1 [decl #164200] def ModularForm.funLike INTERN_CALLS 11600000000 nodes=2776476 [decl #164300] theorem ShrinkingLemma.PartialRefinement.instPartialOrder._proof_2 [decl #164400] def MeasureTheory.convolution [decl #164500] theorem _private.Mathlib.Analysis.Calculus.BumpFunction.FiniteDimension.0.IsOpen.exists_contDiff_support_eq._proof_1_11 [decl #164600] theorem _private.Mathlib.MeasureTheory.Measure.Haar.NormedSpace.0.MeasureTheory.Measure.integral_comp_smul._simp_1_1 INTERN_CALLS 11700000000 nodes=1620155 [decl #164700] theorem ContDiffWithinAt.div_const [decl #164800] theorem Finset.prod_one_sub_ordered [decl #164900] theorem BumpCovering.IsSubordinate.toPartitionOfUnity [decl #165000] theorem StrongDual.toLp._proof_5 [decl #165100] theorem _private.Mathlib.Probability.Distributions.Fernique.0.ProbabilityTheory.Fernique.logRatio_pos._simp_1_2 [decl #165200] theorem Real.sqrt_eq_one [decl #165300] theorem _private.Mathlib.MeasureTheory.Measure.HasOuterApproxClosed.0.MeasureTheory.tendsto_lintegral_nn_filter_of_le_const._simp_1_2 [decl #165400] theorem BoundedContinuousFunction.instRing._proof_13 [decl #165500] theorem BoundedContinuousFunction.charMonoidHom_apply [decl #165600] theorem ProbabilityTheory.IsGaussian.memLp_two_id [decl #165700] def Lean.Meta.Grind.Action.notApplicable [decl #165800] def _private.Lean.Meta.Tactic.Grind.Arith.Cutsat.Util.0.Int.Linear.Poly.eval?.go [decl #165900] theorem Finset.filter_ne [decl #166000] theorem Lean.Export.Entry.name.inj INTERN_CALLS 11800000000 nodes=4031019 [decl #166100] theorem AlgebraicGeometry.tilde.isIso_toOpen_top [decl #166200] def _private.Mathlib.Combinatorics.SimpleGraph.Paths.0.SimpleGraph.Walk.isCycle_iff_isPath_tail_and_le_length.match_1_1 [decl #166300] theorem CategoryTheory.Limits.binaryBiconeOfIsSplitMonoOfCokernel._proof_6 [decl #166400] theorem RatFunc.denom_one [decl #166500] theorem CategoryTheory.ShortComplex.moduleCatMkOfKerLERange._proof_1 [decl #166600] theorem FractionalIdeal.canonicalEquiv_spanSingleton INTERN_CALLS 11900000000 nodes=1290725 [decl #166700] def Lean.Elab.Term.Quotation.HeadCheck.ctorElim [decl #166800] theorem comap_norm_nhds_one [decl #166900] theorem instModuleTensorProductKaehlerDifferential._proof_6 INTERN_CALLS 12000000000 nodes=2030134 [decl #167000] def String.Slice.takeEnd [decl #167100] theorem PartOrdEmb.hasForgetToPartOrd._proof_4 [decl #167200] theorem Real.continuousOn_tan_Ioo [decl #167300] def CompactlySupportedContinuousMap.toRealLinearMap [decl #167400] theorem GroupSeminormClass.map_inv_eq_map [decl #167500] theorem CategoryTheory.Abelian.SpectralObject.rightHomologyDataShortComplex._proof_10 [decl #167600] theorem _private.Init.Data.String.Pattern.String.0.String.Slice.Pattern.ForwardSliceSearcher.buildTable._proof_8 [decl #167700] def LinearEquiv.baseChange INTERN_CALLS 12100000000 nodes=3145897 [decl #167800] theorem Std.DTreeMap.Internal.Impl.isEmpty_filter_eq_false_iff [decl #167900] theorem _private.Mathlib.Analysis.SpecialFunctions.Gamma.Beta.0.Complex.betaIntegral_recurrence._simp_1_2 [decl #168000] theorem tendsto_setIntegral_pow_smul_of_unique_maximum_of_isCompact_of_continuousOn [decl #168100] theorem _private.Mathlib.Analysis.SpecialFunctions.Gamma.BohrMollerup.0.Real.BohrMollerup.ge_logGammaSeq._proof_1_1 [decl #168200] theorem Algebra.Generators.Hom.aeval_val [decl #168300] theorem Algebra.Generators.cotangentSpaceBasis._proof_1 INTERN_CALLS 12200000000 nodes=2715284 [decl #168400] theorem KaehlerDifferential.derivationQuotKerTotal._proof_2 [decl #168500] def Std.DTreeMap.Raw.ofList [decl #168600] theorem Nat.toList_rco_succ_right_eq_append [decl #168700] def CategoryTheory.Abelian.Preradical.colonπ INTERN_CALLS 12300000000 nodes=1121625 INTERN_CALLS 12400000000 nodes=3975255 [decl #168800] theorem Std.DTreeMap.Internal.Impl.alter!.eq_2 [decl #168900] def _private.Mathlib.Algebra.Star.UnitaryStarAlgAut.0.Unitary.conjStarAlgAut_ext_iff'.match_1_13 [decl #169000] theorem upperCentralSeriesStep._proof_8 [decl #169100] def CategoryTheory.WithInitial.instUniqueHomStar REJECT: [CategoryTheory.Functor.IsHomLift] recursor `CategoryTheory.Functor.IsHomLift.rec` allows large elimination out of a Prop-valued inductive that is not a subsingleton
Test "other/extra-rec"
Expected: ✋ reject · Size: 1.4 KB · Lines: 21 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration
Proof of False from an extra recursor that no inductive declaration could
produce.
The export contains False exactly as the prelude has it — an empty
Prop-valued inductive with no constructors — together with its ordinary
False.rec. Smuggled into the same inductive group is a second recursor,
named rogue, whose type is False itself and which has no motives, no minor
premises and no rules. The theorem inconsistent : False is then simply
rogue.
A checker must derive the recursors of an inductive group from the inductive
declaration and reject any exported recursor that is not one of them; here that
fails on the name (rogue is not False.rec) as well as on the type. A
checker that instead registers exported recursors as given ends up with an
inhabitant of the genuine empty type.
This is a different gap from bugs/nat-rec-rules, which perturbs the rules of a
legitimate recursor: here an entire recursor constant is fabricated, so
validating only the rules of the recursors one expects does not catch it.
Test result: ✋ rejected · exit code 1 · wall time: 11 ms · instructions: 4.2 M · max rss memory: 6.8 MB
stderr:
REJECT: recursor `rogue` type telescope length 0 != 1
Test "other/level-index-out-of-order"
Expected: 👍 accept · Size: 328 B · Lines: 6 · lean4export: 0.1.0 · Lean: 4.29.1 · 📄 Declaration
Lean4export will create internalization-table references contiguously in
order: in references for names, il references for levels, and ie
references for expressions all work this way.
However, the spec merely requires that these are integers. It's reasonable for an implementation to assume these are approximately dense (and to treat them as array indices instead of hashtable entries), but a kernel should handle skipped indices or out-of-order indices.
This test checks that the kernel doesn't require internaliation-table
references to be presented in ascending order. If the level referenes 2 and
1 were swapped, this would be the expected encoding of axiom foo : Sort 2.
This encoding should be equivalent.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.2 M · max rss memory: 6.8 MB
Test "other/nat-lit-add"
Expected: 👍 accept · Size: 25.7 KB · Lines: 473 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The kernel's Nat extension reduces Nat.add applied to two literals to a
literal, instead of unfolding the numerals to Nat.succ chains. The
arguments here are large enough that unfolding is not a practical
alternative, so a checker that only implements natLitEq-style
literal↔succ conversion will not get this for free.
Exported as natAddLit : Nat.add 123456789 987654321 = 1111111110 := rfl.
The application is Nat.add on .lits (not HAdd/OfNat).
Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 9.1 M · max rss memory: 9.1 MB
Test "other/nat-lit-add-bad"
Expected: ✋ reject · Size: 25.0 KB · Lines: 460 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The claimed result of Nat.add on two literals does not match the
kernel's literal arithmetic:
natAddLitBad : Nat.add 123456789 987654321 = 1111111111
:= Eq.refl (Nat.add 123456789 987654321)
The value is well-typed as @Eq Nat (Nat.add …) (Nat.add …) and is
injected with debug.skipKernelTC. A sound checker must reject the
declaration type mismatch against the claimed = 1111111111.
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 9.1 M · max rss memory: 9.1 MB
stderr:
REJECT: [natAddLitBad] theorem 88: value type does not match declared type
Test "other/nat-lit-ble"
Expected: 👍 accept · Size: 28.5 KB · Lines: 515 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Nat.ble on two literals reduces to a Bool constructor:
Nat.ble 1000000 1000001 = true. Same Nat-literal extension as
nat-lit-add; the result is Bool rather than Nat.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 9.6 M · max rss memory: 9.1 MB
Test "other/nat-lit-sub"
Expected: 👍 accept · Size: 29.7 KB · Lines: 556 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Nat.sub on two literals truncates at zero: Nat.sub 1000000 1000001 = 0.
Same Nat-literal extension as nat-lit-add; the numerals are large enough
that unfolding Nat.sub to a Nat.succ recursor is not a practical path.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 10.1 M · max rss memory: 9.0 MB
Test "other/orphan-ctor"
Expected: ✋ reject · Size: 1.4 KB · Lines: 22 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration
Proof of False from a constructor of an inductive type that does not exist.
The export contains False exactly as the prelude has it — an empty
Prop-valued inductive with no constructors, its ctors field is the empty
list — together with its ordinary False.rec. Smuggled into the same
inductive block is a constructor named rogue, of type False, with no
parameters and no fields, whose induct field names Orphan, a name for
which the export has no declaration at all. The theorem inconsistent : False
is then simply rogue.
A checker must derive the constructors of an inductive group from the
inductive declarations and reject any exported constructor that is not one of
them; here that fails because False has no constructors, and the inductive
type rogue claims to come from does not exist. A checker that instead
registers exported constructors as given — or that only checks constructors
whose induct field points at a declaration it knows — ends up with an
inhabitant of the genuine empty type.
This is the constructor-side counterpart of bugs/orphan-rec: in both cases the
bogus declaration escapes by not being attached to any inductive declaration
that the checker verifies, rather than by disagreeing with one.
Test result: ✋ rejected · exit code 1 · wall time: 4 ms · instructions: 4.3 M · max rss memory: 6.9 MB
stderr:
REJECT: constructor `rogue` claims inductive `Orphan`, which this block does not declare
Test "other/proj-of-prop"
Expected: ✋ reject · Size: 3.9 KB · Lines: 56 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A proof of False via a projection from a Prop-typed structure whose
constructor was applied to an ill-typed argument. The exported term is
badFalse : False := (Wrapper.mk True.intro).p
where Wrapper : Prop has a single field p : False, so Wrapper.mk
expects a proof of False but is given True.intro : True.
A sound checker must reject this. A checker that types a projection by
inferring (rather than checking) its structure argument — i.e. that
trusts the structure to be well-typed instead of verifying the
constructor's argument types against its binders — will accept it,
because Wrapper.mk True.intro still formally inhabits Wrapper at
the structural level, and the p projection is then read back out at
the declared field type False.
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.6 M · max rss memory: 6.9 MB
stderr:
REJECT: [badFalse] application argument type mismatch
Test "other/sparse-name-index"
Expected: 👍 accept · Size: 292 B · Lines: 4 · lean4export: 0.1.0 · Lean: 4.29.1 · 📄 Declaration
Lean4export will create internalization-table references contiguously in
order: in references for names, il references for levels, and ie
references for expressions all work this way.
However, the spec merely requires that these are integers. It's reasonable for an implementation to assume these are approximately dense (and to treat them as array indices instead of hashtable entries), but a kernel should handle skipped indices or out-of-order indices.
This test checks that a kernel doesn't require internalization-table
references to be assigned sequentially starting from 1. If the "2" and "4"
were replaced by "1" and "0", respectively, this would be the expected
encoding of axiom foo : Prop. This encoding should be equivalent.
Test result: 👍 accepted · exit code 0 · wall time: 4 ms · instructions: 4.2 M · max rss memory: 6.7 MB
Test "perf/app-lam"
Expected: 👍 accept · Size: 1.2 MB · Lines: 28.6 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A synthetically generated term with n levels of alternating applications and lambdas, with DAG sharing.
At each level, a constant is applied to two identical lambda arguments. The export format records these as a single shared expression (DAG). Each lambda body grows with the nesting depth, referencing all enclosing binders.
This tests two aspects of checker performance:
Infer cache: Since both arguments at each level are the same expression, a checker without an infer cache re-infers the type of each shared subterm, doubling work at every level — O(2ⁿ) total.
Substitution cost: Even with a cache, type-inferring each lambda requires substituting into its body (size O(n)) at each of the n levels, giving O(n²) total. Whether this cost arises depends on the checker's binder representation.
Test result: 👍 accepted · exit code 0 · wall time: 83 ms · instructions: 958.3 M · max rss memory: 261.5 MB
Test "perf/args-before-unfold"
Expected: 👍 accept · Size: 44.5 KB · Lines: 1.2 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The declaration to check compares
count #n and count (N.add #(n-1) #1)
where #k is the numeral with k successors, and count #k evaluates to #k
in Θ(k²) reductions.
N.add #(n-1) #1 reduces to #n in n steps, so the two arguments agree for
Θ(n), and the applications agree with them without count ever being
unfolded. Evaluating both applications costs Θ(n²). The test asks whether
a checker tries the arguments of a shared head constant before unfolding it.
N=1000 in the Lean source. From Courant and Leroy, POPL 2026, §10.
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 37.5 M · max rss memory: 16.4 MB
Test "perf/beta-ladder"
Expected: 👍 accept · Size: 450.2 KB · Lines: 10.4 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The declaration to check reduces
(fun x₁ => … (fun xₙ => x₁ + (x₂ + (… + (xₙ + 0)))) 0 …) 0
to 0, through n beta redexes over a body that reads every binder.
Reducing the ladder takes n beta steps whatever a checker does, so the test is what one step costs. Substituting into the body on entry to binder k copies the n − k redexes still below it, and those copies sum to Θ(n²). Carrying the substitution in an environment leaves the body untouched, for Θ(n).
N=2000 in the Lean source.
Test result: 👍 accepted · exit code 0 · wall time: 716 ms · instructions: 3.5 G · max rss memory: 538.2 MB
Test "perf/church-numerals"
Expected: 👍 accept · Size: 9.6 KB · Lines: 227 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The declaration to check compares
cmul (cnum n) (cnum (n+1)) and cmul (cnum (n+1)) (cnum n)
where cnum k is the Church numeral fun X s z => s (s (... z)) and
cmul a b iterates b as many times as a counts.
Both sides have the normal form with n(n+1) applications of the bound s.
Unfolding cmul on the left leaves cnum n X (cnum (n+1) X s), where each of
the n occurrences of the bound function copies the redex cnum (n+1) X s, so
the normal form takes n(n+1) beta steps and shares nothing. No other delta
step is available, so the Θ(n²) measured is beta reduction under binders
and little else.
N=120 in the Lean source, giving a reduction depth of 14520. From the
conv_eval benchmark of András Kovács' smalltt.
Test result: 👍 accepted · exit code 0 · wall time: 8 ms · instructions: 31.7 M · max rss memory: 15.5 MB
Test "perf/discarded-argument"
Expected: 👍 accept · Size: 15.9 KB · Lines: 367 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The declaration to check compares
dropArg (count #n) and dropArg (count #(n+1))
where count #k evaluates to the numeral #k in Θ(k²) reductions, and
dropArg maps every numeral to N.O.
Unfolding dropArg leaves N.O against N.O, for Θ(1). Comparing the
arguments first evaluates two numerals of different value, for Θ(n²), and
then throws that answer away. The test asks whether a checker unfolds a
constant before looking at an argument the constant never uses.
N=200 in the Lean source. From Courant and Leroy, POPL 2026, §10.
Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 31.8 M · max rss memory: 11.4 MB
Test "perf/discarded-argument-match"
Expected: 👍 accept · Size: 28.6 KB · Lines: 596 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
discarded-argument.lean with count and N.add written by structural
recursion, so the declaration to check is the same
dropArg (count #n) and dropArg (count #(n+1))
over definitions that unfold through brecOn rather than through N.rec.
brecOn reduces via the course-of-values table
N.below #k = m #(k-1) ×' (m #(k-2) ×' (… ×' PUnit)), a k-deep tuple holding
the result at every predecessor. The compiled count reads only x.1, so
the rest of the table is built and never read, and typing each projection
forces N.below to the depth of that projection.
N=200 in the Lean source, matching its pair.
Test result: 👍 accepted · exit code 0 · wall time: 20 ms · instructions: 162.7 M · max rss memory: 21.6 MB
Test "perf/folded-constant-first"
Expected: 👍 accept · Size: 52.0 KB · Lines: 1.3 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The declaration to check compares
tagged (count #n) and (false, count #n)
where tagged m = (isZero m, m), so unfolding the left side leaves the same
application count #n in both components, forced by isZero in one and
plain in the other.
The plain occurrences are identical, for Θ(1); the forced one evaluates
count #n once. The order matters for a checker that leaves a constant
unfolded once it reduces it: reducing the forced component first replaces
count #n by its value on one side, and the plain comparison then faces a
folded application against an evaluated one. Here the forcing component
comes first; folded-constant-last.lean swaps them, and the ratio between
the two files is what that costs.
N=1000 in the Lean source. From Courant and Leroy, POPL 2026, §10, where the two orders cost Rocq 3 × 10⁻⁵ s and 0.078 s.
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 48.6 M · max rss memory: 18.4 MB
Test "perf/folded-constant-last"
Expected: 👍 accept · Size: 51.0 KB · Lines: 1.3 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The declaration to check compares
tagged (count #n) and (count #n, false)
where tagged m = (m, isZero m): folded-constant-first.lean with the
components swapped, so the plain occurrences of count #n are compared
before anything forces the application.
N=1000 in the Lean source. From Courant and Leroy, POPL 2026, §10.
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 48.5 M · max rss memory: 18.3 MB
Test "perf/fueled-chain"
Expected: 👍 accept · Size: 476.7 KB · Lines: 9.3 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Distilled from con-leche's fuel-bridge (_datF) lemmas, the declarations on
which nanobruijn times out on the con-leche test.
Fueled α packages a fuel-indexed family p : Nat → Except Unit α with a
proof whose type mentions p twice under binders. A _datF lemma states that
running a monadic function in Fueled and extracting at fuel F equals
running it in Except Unit, proved by unfolding and rewriting with the atF
lemmas for bind/pure/throw/ite. What is left for the kernel is a
definitional equality between two monadic programs that differ only in the
monad instance, under one binder per bind and a do-notation join point
per unless … throw guard.
chainN (N = 6, 9, 12) has N binds, each followed by a guard. A checker
that recognises the unfolded and the literal program as equal outright is
fast (nanoda: 2 ms, 18 ms, 32 ms); one that compares them structurally
unfolds bind to Subtype.mk p h and, through proof irrelevance on the
hs, re-compares the rest of the program twice per guard
(nanobruijn: 19 ms, 4.1 s, 256 s). Without the guards it is cheap for both.
Test result: 👍 accepted · exit code 0 · wall time: 38 ms · instructions: 334.6 M · max rss memory: 31.2 MB
stderr:
[decl #100] def False.elim
Test "perf/grind-ring-5"
Expected: 👍 accept · Size: 9.7 MB · Lines: 199.2 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: 👍 accepted · exit code 0 · wall time: 2.0 s · instructions: 25.3 G · max rss memory: 345.9 MB
stderr:
[decl #100] theorem Nat.succ_le_succ [decl #200] def List.utf8Encode [decl #300] def Exists.casesOn [decl #400] theorem Lean.Grind.AddCommGroup.neg_add_cancel [decl #500] theorem Nat.add_sub_cancel_left [decl #600] theorem Int.nonneg_or_nonneg_neg [decl #700] def Lean.Omega.Constraint.sat [decl #800] def Int.instDiv [decl #900] theorem WellFounded.Nat.fix_eq [decl #1000] theorem Int.negSucc_eq [decl #1100] def _private.Init.Data.Int.DivMod.Bootstrap.0.Int.emod_emod_of_dvd.match_1_1 [decl #1200] def GetElem?.getElem? [decl #1300] theorem Nat.lt_or_gt_of_ne [decl #1400] theorem Bool.false_eq_true [decl #1500] theorem Int.add_le_add_iff_right._simp_1 [decl #1600] def Prod.lex [decl #1700] def Bool.dcond.match_1 [decl #1800] theorem Lean.Grind.CommRing.instBEqMon.beq.eq_3 [decl #1900] theorem Lean.Grind.Semiring.ofNat_mul [decl #2000] theorem Lean.Grind.CommRing.denoteInt_eq
Test "perf/identical-nesting"
Expected: 👍 accept · Size: 8.7 KB · Lines: 172 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The declaration to check compares
f4 (f4 (... (f4 N.O) ...)) and f4 (f4 (... (f4 N.O) ...))
n applications of f4 on each side, the same term twice, where f0 is the
identity on N and each of f1, f2, f3, f4 applies its predecessor
twice, so the nesting expands into 16n applications of f0.
The test asks whether a checker compares the two sides before it starts unfolding, which answers in Θ(n). Unfolding one side at a time offers 16n applications to choose from per side, and the reachable pairs of partially unfolded sides grow exponentially in n.
N=30 in the Lean source. From Courant and Leroy, POPL 2026, §10.
Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 5.5 M · max rss memory: 7.0 MB
Test "perf/irrelevance-before-evaluation"
Expected: 👍 accept · Size: 17.5 KB · Lines: 389 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The declaration to check is
slowTriv (count #n) = True.intro
proved by Eq.refl, where slowTriv m : True recurses over m, so forcing
it to a constructor evaluates the numeral in Θ(n²) reductions.
Checking compares the two proofs as arguments of Eq, whose head is rigid:
nothing can be unfolded instead. Proof irrelevance settles the proofs by
their type for Θ(1); evaluating the left one to a constructor costs
Θ(n²) and yields the answer irrelevance already gave. The test asks
whether a checker consults proof irrelevance before it reduces.
N=200 in the Lean source.
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 7.0 M · max rss memory: 8.9 MB
Test "perf/let-ladder"
Expected: 👍 accept · Size: 457.3 KB · Lines: 10.4 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The declaration to check has type Nat and value
let x₃ := 0; x₃ + (let x₂ := 0; x₂ + (let x₁ := 0; x₁ + (x₃ + (x₂ + (x₁ + 0)))))
shown at n=3: n let bindings, each separated from the next by an addition,
over an innermost sum that names every binding.
Substituting a binding into the body before checking it traverses O(n) nodes at each of the n bindings, for Θ(n²) in time and in allocated nodes. Recording the binding and reading it where the body names it costs O(1) per binding, for Θ(n).
The additions are what keep the bindings apart: a run of adjacent lets could
be opened by a single substitution; not so here.
Nat.add is the only application head, so no beta reduction is involved.
N=2000 in the Lean source.
Test result: 👍 accepted · exit code 0 · wall time: 768 ms · instructions: 3.5 G · max rss memory: 528.2 MB
Test "perf/magma-list-deep-n21"
Expected: 👍 accept · Size: 1.1 MB · Lines: 21.6 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Countermodel certificate for an equational-theories implication, closed by
decide. A magma on Fin 21 with an inline List operation table satisfies
x = (x ◇ x) ◇ (x ◇ (y ◇ y)) but not x = x ◇ (x ◇ x). The search space is
only 21^2 tuples, but each equation nests the operation several deep, so
every tuple expands into a chain of linear list lookups.
From a corpus of certificates generated for the SAIR math distillation
challenge (equational theories track). The small end of the deep-nesting
family; magma-list-deep-n36 is the same workload at a larger scale.
Test result: 👍 accepted · exit code 0 · wall time: 2.0 s · instructions: 10.7 G · max rss memory: 307.7 MB
stderr:
[decl #100] def Nat.noConfusion [decl #200] def _private.Init.Data.Nat.Div.Basic.0.Nat.div.go.fuel_congr.match_1_1 [decl #300] def List.concat [decl #400] theorem Nat.decidableBallLT._proof_1
Test "perf/magma-list-deep-n36"
Expected: 👍 accept · Size: 1.2 MB · Lines: 22.8 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Countermodel certificate for an equational-theories implication, closed by
decide. A magma on Fin 36 with an inline List operation table satisfies
x = y ◇ (y ◇ (x ◇ (y ◇ x))) but not x = x ◇ (x ◇ x). The search space is
only 36^2 tuples, but each side of the equation nests the operation five
deep, so every tuple expands into a long chain of linear list lookups. The
heaviest test of the magma family.
From a corpus of certificates generated for the SAIR math distillation
challenge (equational theories track). magma-list-deep-n21 is the same
workload at a smaller scale.
Test result: 👍 accepted · exit code 0 · wall time: 53.2 s · instructions: 141.9 G · max rss memory: 3.7 GB
stderr:
[decl #100] def Nat.noConfusion [decl #200] def _private.Init.Data.Nat.Div.Basic.0.Nat.div.go.fuel_congr.match_1_1 [decl #300] def List.concat [decl #400] theorem Nat.decidableBallLT._proof_1 INTERN_CALLS 100000000 nodes=25059507 INTERN_CALLS 200000000 nodes=41335381
Test "perf/magma-list-pair-n21"
Expected: 👍 accept · Size: 581.8 KB · Lines: 11.0 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Countermodel certificate for an equational-theories implication, closed by
decide. A magma on Fin 21 with an inline List operation table satisfies
x ◇ y = z ◇ w but not x = x ◇ x. Checking the certificate evaluates the
decidable instance over all 21^4 ≈ 195k four-tuples; every ◇ unfolds to a
linear lookup into the list. The widest search space of the magma family.
From a corpus of certificates generated for the SAIR math distillation
challenge (equational theories track). magma-list-pair-n7 is the same
workload at a smaller scale.
Test result: 👍 accepted · exit code 0 · wall time: 25.0 s · instructions: 91.7 G · max rss memory: 7.1 GB
stderr:
[decl #100] theorem Nat.le_refl [decl #200] theorem Fin.val_eq_of_eq INTERN_CALLS 100000000 nodes=65990945
Test "perf/magma-list-pair-n7"
Expected: 👍 accept · Size: 582.4 KB · Lines: 11.0 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Countermodel certificate for an equational-theories implication, closed by
decide. A magma on Fin 7 with an inline List operation table satisfies
x ◇ y = z ◇ (w ◇ u) but not x = x ◇ x. Checking the certificate evaluates
the decidable instance over all 7^5 ≈ 17k five-tuples; every ◇ unfolds to
a linear lookup into the list.
From a corpus of certificates generated for the SAIR math distillation
challenge (equational theories track). The small end of the list-table
family; magma-list-pair-n21 is the same workload at a larger scale.
Test result: 👍 accepted · exit code 0 · wall time: 1.6 s · instructions: 8.3 G · max rss memory: 559.2 MB
stderr:
[decl #100] theorem Nat.le_refl [decl #200] theorem Fin.val_eq_of_eq
Test "perf/magma-string-n4"
Expected: 👍 accept · Size: 16.4 MB · Lines: 342.4 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Countermodel certificate for an equational-theories implication, closed by
decide. A magma on Fin 4 with the operation table encoded as a String
satisfies x ◇ x = y ◇ ((x ◇ (y ◇ z)) ◇ z) but not
x ◇ x = x ◇ (((y ◇ x) ◇ y) ◇ z). The smallest magma of the family (4^3
tuples); the cost is dominated by decoding each table entry out of the
string on every lookup.
From a corpus of certificates generated for the SAIR math distillation
challenge (equational theories track). The small end of the string-table
family; magma-string-pair-n9 is the same workload at a larger scale.
Test result: 👍 accepted · exit code 0 · wall time: 13.3 s · instructions: 232.6 G · max rss memory: 279.1 MB
stderr:
[decl #100] def instAddNat [decl #200] def Nat.div.go [decl #300] theorem UInt8.decEq._proof_2 [decl #400] theorem Nat.bitwise_rec_lemma [decl #500] theorem WellFounded.Nat.fix_eq [decl #600] theorem Nat.mul_assoc [decl #700] theorem Iff.of_eq [decl #800] theorem String.ofList._proof_1 [decl #900] def Lean.Omega.UpperBound [decl #1000] theorem Int.negSucc.injEq [decl #1100] def Nat.gcd._unary [decl #1200] def _private.Init.Data.Nat.Dvd.0.Nat.dvd_add_iff_right.match_1_1 [decl #1300] theorem Int.eq_ofNat_of_zero_le [decl #1400] theorem Lean.Omega.Constraint.neg_sat [decl #1500] def Lean.Omega.LinearCombo.instAdd [decl #1600] theorem Eq.mpr_not [decl #1700] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.extractLsb'_append_extractLsb'_eq_extractLsb'._simp_1_2 [decl #1800] theorem _private.Init.Data.Nat.Lemmas.0.Nat.succ_mod_succ_eq_zero_iff._simp_1_2 [decl #1900] def UInt8.neg [decl #2000] theorem Char.utf8Size._proof_3 [decl #2100] def Nat.decidable_dvd [decl #2200] theorem Array.extract_loop_succ [decl #2300] theorem List.toByteArray.loop.eq_def [decl #2400] theorem UInt8.toUInt8_toUInt32 [decl #2500] def _private.Init.Data.ByteArray.Bootstrap.0.List.toByteArray_append'.ext.match_1 [decl #2600] def _private.Init.Data.Nat.Lemmas.0.Nat.one_lt_two_pow.match_1_1 [decl #2700] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.cons_append._proof_1 [decl #2800] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.parseFirstByte_utf8EncodeChar_eq_threeMore [decl #2900] theorem ByteArray.extract_eq_empty_iff._simp_1 [decl #3000] theorem Classical.not_not
Test "perf/magma-string-pair-n9"
Expected: 👍 accept · Size: 16.5 MB · Lines: 342.4 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Countermodel certificate for an equational-theories implication, closed by
decide. A magma on Fin 9 with the operation table encoded as a String
satisfies x ◇ y = (((z ◇ w) ◇ y) ◇ x) ◇ y but not
x ◇ y = ((z ◇ (z ◇ y)) ◇ x) ◇ y. Checking the certificate evaluates the
decidable instance over all 9^4 ≈ 6.5k four-tuples, decoding each table
entry out of the string on every lookup. The heaviest of the string-table
tests.
From a corpus of certificates generated for the SAIR math distillation
challenge (equational theories track). magma-string-n4 is the same
workload at a smaller scale.
Test result: 👍 accepted · exit code 0 · wall time: 18.9 s · instructions: 269.4 G · max rss memory: 944.2 MB
stderr:
[decl #100] def instAddNat [decl #200] def Nat.div.go [decl #300] theorem UInt8.decEq._proof_2 [decl #400] theorem Nat.bitwise_rec_lemma [decl #500] theorem WellFounded.Nat.fix_eq [decl #600] theorem Nat.mul_assoc [decl #700] theorem Iff.of_eq [decl #800] theorem String.ofList._proof_1 [decl #900] def Lean.Omega.UpperBound [decl #1000] theorem Int.negSucc.injEq [decl #1100] def Nat.gcd._unary [decl #1200] def _private.Init.Data.Nat.Dvd.0.Nat.dvd_add_iff_right.match_1_1 [decl #1300] theorem Int.eq_ofNat_of_zero_le [decl #1400] theorem Lean.Omega.Constraint.neg_sat [decl #1500] def Lean.Omega.LinearCombo.instAdd [decl #1600] theorem Eq.mpr_not [decl #1700] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.extractLsb'_append_extractLsb'_eq_extractLsb'._simp_1_2 [decl #1800] theorem _private.Init.Data.Nat.Lemmas.0.Nat.succ_mod_succ_eq_zero_iff._simp_1_2 [decl #1900] def UInt8.neg [decl #2000] theorem Char.utf8Size._proof_3 [decl #2100] def Nat.decidable_dvd [decl #2200] theorem Array.extract_loop_succ [decl #2300] theorem List.toByteArray.loop.eq_def [decl #2400] theorem UInt8.toUInt8_toUInt32 [decl #2500] def _private.Init.Data.ByteArray.Bootstrap.0.List.toByteArray_append'.ext.match_1 [decl #2600] def _private.Init.Data.Nat.Lemmas.0.Nat.one_lt_two_pow.match_1_1 [decl #2700] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.cons_append._proof_1 [decl #2800] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.parseFirstByte_utf8EncodeChar_eq_threeMore [decl #2900] theorem ByteArray.extract_eq_empty_iff._simp_1 [decl #3000] theorem Classical.not_not
Test "perf/refute-cheap-first"
Expected: ✋ reject · Size: 20.7 KB · Lines: 439 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The declaration to check claims
(false, count #n) = (true, count #(n+1))
and must be rejected. Both sides are constructor applications, so comparing
components is the only route, and either component refutes on its own:
false against true for Θ(1), the numerals for Θ(n²) (count #k
evaluates to #k in Θ(k²) reductions). The test asks in which order a
checker visits the components. refute-cheap-last.lean swaps them, and the
ratio between the two files is what that order costs.
N=200 in the Lean source. From Courant and Leroy, POPL 2026, §10, where the two orders cost Rocq 4 × 10⁻⁶ s and 0.61 s.
Test result: ✋ rejected · exit code 1 · wall time: 8 ms · instructions: 7.8 M · max rss memory: 9.1 MB
stderr:
REJECT: [kernel_refute_cheap_first] theorem 57: value type does not match declared type
Test "perf/refute-cheap-last"
Expected: ✋ reject · Size: 20.5 KB · Lines: 439 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The declaration to check claims
(count #n, false) = (count #(n+1), true)
and must be rejected: refute-cheap-first.lean with the components swapped,
so the cheap refutation sits behind the expensive one for a checker that
visits components left to right.
N=200 in the Lean source. From Courant and Leroy, POPL 2026, §10.
Test result: ✋ rejected · exit code 1 · wall time: 11 ms · instructions: 56.0 M · max rss memory: 11.3 MB
stderr:
REJECT: [kernel_refute_cheap_last] theorem 57: value type does not match declared type
Test "perf/repeated-subproblem"
Expected: 👍 accept · Size: 11.4 KB · Lines: 214 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The declaration to check compares
perfect #n leaf and perfect #(n-1) (node leaf leaf)
where perfect #k t builds the perfect binary tree of depth k with leaves
t, in k steps that each duplicate the tree so far into both arguments of
Tr.node.
Both sides reduce to the perfect tree of depth n. Descending them meets
Tr.node u u against Tr.node v v at every level, where both argument
positions pose the same subproblem, so the recursion reaches 2^n pairs of
nodes of which n are distinct. The test asks whether a checker records the
pairs it has proved convertible: Θ(n) if it does, Θ(2ⁿ) if not.
N=20 in the Lean source, stepped up by one rather than doubled. From Courant and Leroy, POPL 2026, §10.
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 7.0 M · max rss memory: 9.2 MB
Test "perf/shared-subterm"
Expected: 👍 accept · Size: 50.1 KB · Lines: 1.3 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The declaration to check compares
ldepth (perfect #n leaf) and ldepth2 (perfect #n leaf)
where perfect #n leaf builds the perfect binary tree of depth n in n steps
that each duplicate the tree so far, and ldepth and ldepth2 both return
the length of the leftmost path.
The head constants differ, so both sides are evaluated, and neither traversal
looks beyond the leftmost path: ldepth walks n nodes for Θ(n), ldepth2
folds n additions over growing numerals for Θ(n²). The test asks whether a
checker consumes the tree through its representation, for Θ(n²), or
expands it into the 2ⁿ nodes of its normal form.
N=1000 in the Lean source. From Courant and Leroy, POPL 2026, §10.
Test result: 👍 accepted · exit code 0 · wall time: 23 ms · instructions: 116.3 M · max rss memory: 20.3 MB
Test "perf/shift-cascade"
Expected: 👍 accept · Size: 256.3 KB · Lines: 5.1 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Stress test for cascading substitution overhead in kernel let processing.
N nested let bindings inside a lambda, where each value references the
outer lambda parameter and the previous binding:
fun (a : Nat → Nat) => let f₁ := fun x => a x let f₂ := fun x => a (f₁ x) ... let fₙ := fun x => a (fₙ₋₁ x) fₙ 0
The kernel processes each let by substituting the value into the body.
Each value has a free bvar (references a), so substitution under inner
binders creates shifted copies. In a de Bruijn kernel with deferred shifts,
these Shift(val, offset) wrappers accumulate: step k must traverse
through O(k) wrappers from previous steps, giving O(N²) total work.
A locally-nameless kernel substitutes fvars that need no shifting, giving O(N) total.
N=1000 in the Lean source. Increase to stress further.
Test result: 👍 accepted · exit code 0 · wall time: 1.8 s · instructions: 21.1 G · max rss memory: 384.6 MB
Test "perf/unroll-versus-evaluate"
Expected: 👍 accept · Size: 44.6 KB · Lines: 1.2 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The declaration to check compares
count #(n+1) and N.add (count #n) #1
where #k is the numeral with k successors, and count #k evaluates to #k
in Θ(k²) reductions.
The head constants differ. Unrolling count once turns the left side into the
right side, leaving a traversal of the shared numeral #n, for Θ(n);
evaluating both sides costs Θ(n²). The test asks which of two differing
head constants a checker chooses to unfold.
N=1000 in the Lean source. From Courant and Leroy, POPL 2026, §2.
Test result: 👍 accepted · exit code 0 · wall time: 11 ms · instructions: 47.7 M · max rss memory: 18.4 MB
Test "std"
Expected: 👍 accept · Size: 526.1 MB · Lines: 10.0 M · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: ⌛ timeout · exit code -9 · wall time: 19.6 m · max rss memory: 0 B
stderr:
Killed after exceeding the test's timeout of 9.8 m. [decl #100] def WellFounded.Nat.fix [decl #200] theorem eq_true [decl #300] def Nat.testBit [decl #400] theorem Nat.div_add_mod [decl #500] theorem Nat.zero_lt_succ._simp_1 [decl #600] def Nat.Linear.Expr.toPoly.go [decl #700] theorem Nat.testBit_bitwise [decl #800] def Int.casesOn [decl #900] theorem _private.Init.Data.Int.Lemmas.0.Int.add_assoc.aux2 [decl #1000] theorem Int.max_comm [decl #1100] def Nat.toDigits [decl #1200] theorem Lean.Omega.IntList.mul_neg_left [decl #1300] def Lean.Omega.tidy?.match_1 [decl #1400] def _private.Init.Data.Nat.Basic.0.Nat.sub_le_sub_left.match_1_1 [decl #1500] def _private.Init.Data.Nat.Dvd.0.Nat.dvd_antisymm.match_1_1 [decl #1600] theorem Int.neg_neg_of_pos [decl #1700] def Pure.pure [decl #1800] def LawfulMonad.mk'._auto_5 [decl #1900] def Std.HashMap.Raw.getKey [decl #2000] theorem List.getElem_drop._proof_1 [decl #2100] def _private.Init.PropLemmas.0.exists_or.match_1_1 [decl #2200] theorem Std.Internal.List.keys_eq_map INTERN_CALLS 100000000 nodes=3455330 [decl #2300] theorem Std.DHashMap.Internal.AssocList.foldl_eq [decl #2400] def Option.get.match_1 INTERN_CALLS 200000000 nodes=3854676 [decl #2500] theorem List.exists_of_eraseP [decl #2600] theorem List.foldl_cons INTERN_CALLS 300000000 nodes=1969679 [decl #2700] theorem Std.Internal.List.mem_eraseKey_of_key_ne INTERN_CALLS 400000000 nodes=786016 INTERN_CALLS 500000000 nodes=4165491 [decl #2800] theorem _private.Std.Data.Internal.List.Associative.0.Std.Internal.List.Const.length_alterKey._simp_1_4 INTERN_CALLS 600000000 nodes=2913820 [decl #2900] def Std.DTreeMap.Internal.Impl.size [decl #3000] theorem Std.DTreeMap.Internal.Impl.balanceL.match_5.congr_eq_2 [decl #3100] theorem _private.Std.Data.DTreeMap.Internal.Balancing.0.Std.DTreeMap.Internal.Impl.balance!_eq_balanceₘ._simp_1_8 [decl #3200] def Lean.Data.AC.EvalInformation.evalVar [decl #3300] theorem _private.Std.Data.DTreeMap.Internal.Balancing.0.Std.DTreeMap.Internal.Impl.balanced_rotateR._proof_1_3 [decl #3400] theorem _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.link._proof_5 [decl #3500] def Std.DTreeMap.Internal.Impl.glue [decl #3600] def Std.DTreeMap.Internal.Impl.Const.alter.match_1 [decl #3700] theorem Std.DTreeMap.Internal.Impl.link2._unary._proof_2 [decl #3800] theorem Std.DTreeMap.Internal.Impl.Const.mergeWith._proof_1 [decl #3900] def _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.insertMin.match_3.splitter [decl #4000] def List.min [decl #4100] def Std.Tactic.BVDecide.BVBit.noConfusionType [decl #4200] theorem Std.Tactic.BVDecide.BVExpr.const.injEq [decl #4300] theorem Std.Tactic.BVDecide.instDecidableEqBVUnOp.decEq._proof_31 [decl #4400] theorem Std.Tactic.BVDecide.BVExpr.decEq._proof_149 INTERN_CALLS 700000000 nodes=1525178 [decl #4500] def Std.DTreeMap.Internal.Impl.minKey [decl #4600] theorem _private.Init.Data.List.Find.0.List.find?_eq_some_iff_append._simp_1_3 [decl #4700] theorem _private.Init.Data.List.Lemmas.0.List.filter_eq_nil_iff._simp_1_2 [decl #4800] theorem _private.Std.Data.DTreeMap.Internal.Model.0.Std.DTreeMap.Internal.Impl.updateCell._proof_48 [decl #4900] theorem forall_eq'._simp_1 [decl #5000] theorem Std.Internal.List.isSome_minEntry?_eq_not_isEmpty [decl #5100] def _private.Init.PropLemmas.0.Exists.imp.match_1_1 [decl #5200] def Std.Do.ExceptConds.entails.match_1 [decl #5300] theorem Std.DTreeMap.Internal.Impl.minKeyD.induct_unfolding [decl #5400] theorem Std.DTreeMap.Internal.Impl.getKey!_eq_getKey!ₘ [decl #5500] def Lean.Grind.CommRing.Var [decl #5600] theorem forall_self_imp [decl #5700] def String.Slice.startInclusive [decl #5800] theorem List.reverse_reverse [decl #5900] def UInt32.ofNatLT [decl #6000] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.parseFirstByte_eq_done_iff_toBitVec._simp_1_1 [decl #6100] theorem Nat.lt_or_eq_of_le [decl #6200] def UInt32.land [decl #6300] theorem _private.Init.Data.String.Decode.0.parseFirstByte_eq_done_of_utf8DecodeChar?_eq_some._proof_1_5 [decl #6400] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.extractLsb'_append_eq_ite._proof_1_5 [decl #6500] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.toBitVec_eq_of_parseFirstByte_eq_oneMore [decl #6600] theorem BitVec.cons._proof_1 [decl #6700] theorem _private.Init.Data.ByteArray.Lemmas.0.ByteArray.extract_add_four._proof_1_1 [decl #6800] theorem ByteArray.utf8Decode?.go._unary.eq_def [decl #6900] theorem List.utf8Encode_eq_empty._simp_1 [decl #7000] def _private.Init.Data.String.Decode.0.UInt8.isUTF8FirstByte_getElem_utf8EncodeChar.match_1_2 INTERN_CALLS 800000000 nodes=2848359 [decl #7100] theorem Std.DHashMap.Internal.AssocList.get!_eq INTERN_CALLS 900000000 nodes=2445787 INTERN_CALLS 1000000000 nodes=902287 [decl #7200] theorem Std.Sat.AIG.instLawfulOperatorBinaryInputMkGateCached [decl #7300] def Std.Sat.Literal.negate [decl #7400] theorem Std.DHashMap.distinct_keys [decl #7500] theorem Lean.Grind.eq_congr [decl #7600] def Int.sign.match_1 [decl #7700] def Std.Tactic.BVDecide.BVExpr.bitblast.blastArithShiftRightConst.go._unary [decl #7800] theorem Lean.Grind.Ring.intCast_natCast_add_one [decl #7900] def Std.DTreeMap.Internal.Impl.insertIfNew! [decl #8000] theorem Std.Internal.List.insertEntryIfNew_of_perm [decl #8100] theorem Array.mapFinIdx_induction [decl #8200] theorem _private.Std.Sat.AIG.RefVecOperator.Zip.0.PSigma.casesOn._arg_pusher [decl #8300] def Std.Tactic.BVDecide.BoolExpr.eval [decl #8400] def Int.recOn [decl #8500] def DecidableLE [decl #8600] def Std.Iter.step [decl #8700] theorem Std.IterStep.yield.inj [decl #8800] def Int8.instNeg [decl #8900] theorem BitVec.le_total [decl #9000] theorem BitVec.add_neg_eq_sub [decl #9100] def _private.Init.Data.Int.DivMod.Lemmas.0.Int.emod_lt.match_1_1 [decl #9200] theorem _private.Init.Data.Range.Polymorphic.SInt.0.HasModel.toNat_toInt_add_one_sub_toInt [decl #9300] theorem Int8.eq_iff_toBitVec_eq INTERN_CALLS 1100000000 nodes=1760590 [decl #9400] theorem Std.DHashMap.Internal.Raw₀.interSmallerFn_eq_interSmallerFnₘ INTERN_CALLS 1200000000 nodes=1666095 [decl #9500] def Std.DTreeMap.Internal.Cell.Const.get?.match_1 [decl #9600] theorem Array.forIn'.loop._proof_2 INTERN_CALLS 1300000000 nodes=3834653 [decl #9700] theorem Fin.mul_comm [decl #9800] theorem _private.Init.Data.List.ToArray.0.List.findFinIdx?_loop_toArray._proof_1_2 [decl #9900] theorem _private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.getEntryGT?_eq_find?._simp_1_1 [decl #10000] def Std.ExtHashSet.inner INTERN_CALLS 1400000000 nodes=1981884 INTERN_CALLS 1500000000 nodes=246733 [decl #10100] def Std.Rxc.instIteratorIteratorIdOfUpwardEnumerableOfDecidableLE [decl #10200] theorem USize.decEq._proof_1 [decl #10300] def Std.Iterators.Types.FilterMap.instIterator [decl #10400] def Std.DTreeMap.Internal.Impl.entryAtIdx?.match_1 [decl #10500] theorem Std.DTreeMap.Internal.Impl.WF.filterMap INTERN_CALLS 1600000000 nodes=4046184 [decl #10600] theorem Std.Internal.Small.of_surjective [decl #10700] theorem Std.Iterators.Types.ListIterator.instIterator._proof_1 [decl #10800] theorem _private.Init.Data.String.PosRaw.0.String.Pos.Raw.offsetBy_zero_left._simp_1_1 [decl #10900] theorem Nat.gcd_mul_left [decl #11000] theorem _private.Std.Time.DateTime.PlainDateTime.0.Std.Time.PlainDateTime.ofTimestampAssumingUTC._proof_11 [decl #11100] def Std.Time.TimeZone.Offset.second [decl #11200] theorem Int.ediv_one [decl #11300] theorem Nat.mul_right_comm [decl #11400] theorem String.Slice.Pos.isUTF8FirstByte_byte [decl #11500] theorem _private.Init.Data.String.Defs.0.String.utf8ByteSize_eq_zero_iff._simp_1_2 [decl #11600] theorem Std.DHashMap.Internal.Raw₀.Const.toArray_toList_eq_toArray INTERN_CALLS 1700000000 nodes=4484140 [decl #11700] theorem List.getElem_mapFinIdx_go._proof_4 [decl #11800] theorem _private.Init.Data.Rat.Lemmas.0.Rat.nonneg_antisymm._proof_1_3 [decl #11900] def Std.Iterators.ULiftT [decl #12000] def BitVec.sdiv_eq.match_1 [decl #12100] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.neg_eq_not_add._proof_1_1 [decl #12200] theorem BitVec.getMsbD_zero [decl #12300] theorem Std.Internal.List.getValue_insertListConst_of_mem [decl #12400] def Std.Time.Millisecond.Offset [decl #12500] def _private.Std.Time.Date.Unit.Month.0.Std.Time.Month.Ordinal.cumulativeDays.match_1 [decl #12600] def String.join [decl #12700] theorem _private.Init.Data.Array.Lemmas.0.Array.getElem_ofFn_go._proof_1_5 [decl #12800] theorem Std.DTreeMap.mem_union_of_left [decl #12900] theorem Std.Sat.AIG.mkGate._proof_3 [decl #13000] theorem _private.Init.Data.String.Lemmas.FindPos.0.String.Slice.posGT_eq_next._simp_1 [decl #13100] theorem Std.LinearOrderPackage.ofLE._proof_2 [decl #13200] def WellFounded.extrinsicFix₃ [decl #13300] def Lean.Grind.CommRing.Expr.mul.elim INTERN_CALLS 1800000000 nodes=4787968 [decl #13400] theorem List.getElem?_reverse' [decl #13500] theorem _private.Std.Data.DHashMap.Internal.RawLemmas.0.Std.DHashMap.Internal.Raw₀.insert_equiv_congr._simp_1_1 INTERN_CALLS 1900000000 nodes=3991435 [decl #13600] def instAddISize [decl #13700] def Std.Slice.Internal.ByteSliceData.casesOn [decl #13800] theorem Vector.replicate_eq_mk_replicate [decl #13900] theorem _private.Init.Data.Range.Polymorphic.Lemmas.0.Std.Rcc.length_toList._simp_1_5 INTERN_CALLS 2000000000 nodes=3538718 [decl #14000] theorem UInt16.ofBitVec_uInt32ToBitVec INTERN_CALLS 2100000000 nodes=2588596 [decl #14100] def List.minOn [decl #14200] theorem Std.Internal.List.getKeyD_insertList_of_contains_eq_false_right [decl #14300] theorem Std.DTreeMap.mem_congr [decl #14400] def Std.Internal.Parsec.instMonad [decl #14500] def Std.Internal.Parsec.Input.next' [decl #14600] theorem Int8.toInt_toInt64 INTERN_CALLS 2200000000 nodes=2545403 [decl #14700] theorem Std.DHashMap.Const.get?_filterMap [decl #14800] def Lean.Grind.CommRing.toRing [decl #14900] def Std.Internal.IO.Process.ResourceUsageStats.mk.noConfusion INTERN_CALLS 2300000000 nodes=1109425 [decl #15000] def Std.Time.instHAddOffsetOffset_9 [decl #15100] def Std.DTreeMap.Internal.Impl.link2!._unary [decl #15200] theorem WeaklyLawfulMonadAttach.map_attach INTERN_CALLS 2400000000 nodes=1634352 [decl #15300] theorem Vector.range'_one [decl #15400] def instOrOpInt16 [decl #15500] theorem Nat.toList_rco_eq_cons_iff._simp_1 INTERN_CALLS 2500000000 nodes=1247024 [decl #15600] def Lean.Grind.CommRing.Poly.denote'.go [decl #15700] theorem Lean.Grind.CommRing.Mon.revlexWF.match_1.congr_eq_1 [decl #15800] def Lean.PrettyPrinter.Unexpander [decl #15900] theorem Std.DTreeMap.mem_of_mem_insert [decl #16000] def Std.DTreeMap.Const.unitOfList._auto_1 [decl #16100] def XorOp.noConfusionType [decl #16200] theorem minOn_eq_right [decl #16300] def Std.ExtTreeMap.getKeyD [decl #16400] theorem List.not_of_lt_findIdx [decl #16500] theorem _private.Init.Data.Nat.Fold.0.Nat.any_eq_anyTR._proof_1_2 [decl #16600] theorem Std.Internal.List.Const.maxKeyD_alterKey_eq_self [decl #16700] theorem List.zipWith_toArray [decl #16800] theorem _private.Std.Data.DHashMap.Internal.RawLemmas.0.Std.DHashMap.Internal.Raw₀.perm_keys_congr_left INTERN_CALLS 2600000000 nodes=1862756 [decl #16900] theorem _private.Std.Data.TreeMap.Lemmas.0.Std.TreeMap.equiv_iff_equiv [decl #17000] theorem Std.Rxi.Iterator.Monadic.isPlausibleOutput_iff [decl #17100] theorem Array.foldlM.loop.congr_simp [decl #17200] def Std.DHashMap.Raw.filterMap [decl #17300] theorem Std.Do.Spec.forIn'_rcc [decl #17400] theorem Option.merge.eq_3 [decl #17500] theorem Std.Iterators.Types.ArrayIterator.instIterator._proof_1 [decl #17600] theorem _private.Std.Data.Iterators.Lemmas.Producers.Monadic.Array.0.Std.Iterators.Types.ArrayIterator.stepAsHetT_iterFromIdxM._simp_1_7 INTERN_CALLS 2700000000 nodes=2426113 [decl #17700] theorem Lean.Grind.Linarith.instBEqPoly.beq_spec_2 [decl #17800] theorem ISize.not_lt [decl #17900] theorem List.append_left_eq_self INTERN_CALLS 2800000000 nodes=1994752 [decl #18000] theorem Std.Tactic.BVDecide.BVExpr.bitblast.instLawfulVecOperatorBVBitBVVarBlastVar [decl #18100] theorem _private.Std.Sat.AIG.If.0.Std.Sat.AIG.RefVec.ite._proof_3 [decl #18200] theorem Std.Sat.AIG.RefVec.fold_decl_eq [decl #18300] def Std.Tactic.BVDecide.BVExpr.bitblast.mkOverflowBit.go [decl #18400] theorem Std.Tactic.BVDecide.BVExpr.bitblast.instLawfulVecOperatorShiftTargetBlastRotateRight [decl #18500] def Std.Tactic.BVDecide.BVExpr.bitblast.blastShiftLeft.go INTERN_CALLS 2900000000 nodes=2336245 [decl #18600] theorem Std.DHashMap.mem_insert_self [decl #18700] theorem _private.Std.Tactic.BVDecide.Bitblast.BVExpr.Circuit.Lemmas.Var.0.Std.Tactic.BVDecide.BVExpr.bitblast.blastVar.go_denote_eq._proof_1_3 INTERN_CALLS 3000000000 nodes=2343180 [decl #18800] theorem BitVec.setWidth_ofNat_one_eq_ofNat_one_of_lt [decl #18900] theorem _private.Std.Tactic.BVDecide.Bitblast.BVExpr.Circuit.Lemmas.Operations.ShiftLeft.0.Std.Tactic.BVDecide.BVExpr.bitblast.blastShiftLeftConst.go_get_aux._simp_1_1 [decl #19000] theorem _private.Init.Data.BitVec.Bitblast.0.BitVec.DivModState.toNat_shiftRight_sub_one_eq._proof_1_4 [decl #19100] theorem Std.Tactic.BVDecide.BVExpr.bitblast.blastZeroExtend.go_get_aux._unary [decl #19200] theorem BitVec.getElem_rotateLeft [decl #19300] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.getMsbD_setWidth'._simp_1_1 [decl #19400] def Std.Tactic.BVDecide.BVExpr.bitblast.ExtractTarget.w [decl #19500] theorem _private.Std.Tactic.BVDecide.Bitblast.BVExpr.Circuit.Lemmas.Operations.ShiftRight.0.Std.Tactic.BVDecide.BVExpr.bitblast.denote_blastShiftRightConst._proof_1_1 INTERN_CALLS 3100000000 nodes=4534806 [decl #19600] theorem Std.TreeMap.Raw.getKey!_insertManyIfNewUnit_list_of_mem [decl #19700] theorem _private.Init.Data.Iterators.Lemmas.Combinators.Monadic.FilterMap.0.Std.Internal.pbind_eq_pbind_if_isSome [decl #19800] theorem Std.DHashMap.Internal.Raw.Const.ofList_eq [decl #19900] theorem Std.Iter.findM?_eq_findSomeM? [decl #20000] theorem List.finIdxOf?.eq_1 INTERN_CALLS 3200000000 nodes=3098234 [decl #20100] theorem Std.DTreeMap.getKey!_inter_of_mem_right [decl #20200] theorem Fin.val_eq_zero_iff [decl #20300] def AndOp.noConfusion [decl #20400] def Std.ExtHashMap.getKey? INTERN_CALLS 3300000000 nodes=3765598 [decl #20500] theorem _private.Init.Data.Range.Polymorphic.Lemmas.0.Std.Rio.mem_toList_iff_mem._simp_1_7 [decl #20600] def Std.Time.Timestamp.ofPlainDateTimeAssumingUTC [decl #20700] theorem Std.DHashMap.Internal.Raw₀.any_eq_true [decl #20800] def Float.le [decl #20900] theorem Std.DHashMap.Internal.Raw.Const.getD_eq [decl #21000] theorem _private.Init.Data.Range.Polymorphic.UInt.0.UInt8.instLawfulUpwardEnumerableLE._simp_1 [decl #21100] def UInt32.xor [decl #21200] theorem Std.DHashMap.Internal.Raw₀.size_filterMap_le_size [decl #21300] theorem Std.TreeMap.getD_diff_of_mem_right INTERN_CALLS 3400000000 nodes=3988805 [decl #21400] def instLEInt16 [decl #21500] def IO.Error.permissionDenied.elim [decl #21600] theorem USize.toNat_toUInt32 [decl #21700] theorem Vector.mk_toArray [decl #21800] theorem Std.ExtTreeMap.getKey_union_of_not_mem_left INTERN_CALLS 3500000000 nodes=2678607 [decl #21900] theorem Int.getElem_toArray_rco [decl #22000] def Std.Rco.HasRcoIntersection.intersection [decl #22100] theorem _private.Init.Data.ByteArray.Lemmas.0.ByteArray.extract_eq_extract_iff_getElem._proof_1_4 [decl #22200] theorem _private.Init.Data.String.Pattern.String.0.String.Slice.Pattern.ForwardSliceSearcher.buildTable._proof_4 [decl #22300] theorem _private.Init.Data.String.Pattern.String.0.String.Slice.Pattern.ForwardSliceSearcher.buildTable.go._unary.eq_def [decl #22400] theorem String.Slice.Pos.str_le_endExclusive [decl #22500] def _private.Init.Data.String.Lemmas.Pattern.String.ForwardSearcher.0.String.Slice.Pattern.Model.ForwardSliceSearcher.prefixFunction [decl #22600] theorem _private.Init.Data.String.Lemmas.Pattern.String.ForwardSearcher.0.String.Slice.Pattern.Model.ForwardSliceSearcher.partialMatch_add_one_add_one_iff._proof_1_15 INTERN_CALLS 3600000000 nodes=1920796 [decl #22700] def instComplementInt8 [decl #22800] theorem Std.Internal.List.minKey?_insertEntry_le_minKey? [decl #22900] def Sum.getLeft.match_1 [decl #23000] theorem _private.Init.Data.Array.Lex.Lemmas.0.Array.cons_lex_cons._simp_1_2 [decl #23100] theorem List.foldr_wfParam [decl #23200] theorem Nat.dvd_lcm_right INTERN_CALLS 3700000000 nodes=2579597 [decl #23300] theorem Int.neg_emod [decl #23400] def String.Slice.instBEq [decl #23500] theorem _private.Init.Data.String.Basic.0.String.Slice.Pos.next_le_of_lt._simp_1_4 [decl #23600] def Prod.swap [decl #23700] theorem UInt16.toUInt64._proof_2 [decl #23800] theorem UInt16.le_iff_toBitVec_le [decl #23900] theorem Int.sub_mul_emod_self_left [decl #24000] theorem Std.DHashMap.Const.getKeyD_ofList_of_mem INTERN_CALLS 3800000000 nodes=3098673 [decl #24100] theorem Std.ExtDTreeMap.maxKey_insertIfNew INTERN_CALLS 3900000000 nodes=2338615 [decl #24200] theorem Std.ExtHashMap.size_union_of_not_mem [decl #24300] theorem Std.DHashMap.Internal.Raw₀.contains_insertIfNew_self [decl #24400] def String.Slice.Pos._sizeOf_1 [decl #24500] theorem _private.Init.Data.List.Nat.Erase.0.List.eraseIdx_set_eq._proof_1_1 [decl #24600] def instOrdOption.match_1 [decl #24700] def instDecidableEqUInt16 INTERN_CALLS 4000000000 nodes=1750119 [decl #24800] def Std.DTreeMap.Raw.minKey? [decl #24900] theorem _private.Init.Data.Slice.List.Lemmas.0.List.toList_mkSlice_rco._proof_1_3 INTERN_CALLS 4100000000 nodes=512513 [decl #25000] theorem Std.Internal.List.getKey?_filter_not_contains [decl #25100] theorem Sum.liftRel_inl_inl [decl #25200] theorem _private.Init.Data.Dyadic.Basic.0.Dyadic.ofIntWithPrec_shiftLeft_add._simp_1_2 [decl #25300] theorem _private.Init.Data.Dyadic.Basic.0.Dyadic.blt_iff_toRat._simp_1_9 INTERN_CALLS 4200000000 nodes=4220698 [decl #25400] theorem _private.Init.Data.Array.Subarray.Split.0.Subarray.take._proof_3 [decl #25500] def Std.Internal.IsStrictCut.recOn INTERN_CALLS 4300000000 nodes=2824304 [decl #25600] theorem Std.DHashMap.Internal.Raw₀.forM_eq_forM_toArray [decl #25700] def Std.ExtDTreeMap.diff [decl #25800] theorem Std.DTreeMap.Internal.Impl.entryAtIdx.match_1.congr INTERN_CALLS 4400000000 nodes=1579005 [decl #25900] theorem Nat.compare_eq_ite_le DECLINE: [_private.Init.Data.Range.Polymorphic.SInt.0.Int16.instRxcHasSize_eq] WHNF depth limit
Test "tutorial/001_basicDef"
Expected: 👍 accept · Size: 367 B · Lines: 6 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Basic definition
Test result: 👍 accepted · exit code 0 · wall time: 32 ms · instructions: 4.2 M · max rss memory: 6.9 MB
Test "tutorial/002_badDef"
Expected: ✋ reject · Size: 365 B · Lines: 6 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Mismatched types
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.2 M · max rss memory: 6.9 MB
stderr:
REJECT: [badDef] def 1: value type does not match declared type
Test "tutorial/003_arrowType"
Expected: 👍 accept · Size: 622 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Arrow type (function type)
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.2 M · max rss memory: 7.0 MB
Test "tutorial/004_dependentType"
Expected: 👍 accept · Size: 460 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Dependent type (forall)
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.2 M · max rss memory: 6.8 MB
Test "tutorial/005_constType"
Expected: 👍 accept · Size: 897 B · Lines: 17 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Lambda expression
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.3 M · max rss memory: 6.8 MB
Test "tutorial/006_betaReduction"
Expected: 👍 accept · Size: 1.3 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Lambda reduction
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.4 M · max rss memory: 6.8 MB
Test "tutorial/007_betaReduction2"
Expected: 👍 accept · Size: 1.4 KB · Lines: 28 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Lambda reduction under binder
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.4 M · max rss memory: 7.1 MB
Test "tutorial/008_forallSortWhnf"
Expected: 👍 accept · Size: 1.2 KB · Lines: 25 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The binding domain of a forall may need to be reduce before it is a sort
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.3 M · max rss memory: 7.0 MB
Test "tutorial/009_forallSortBad"
Expected: ✋ reject · Size: 1.2 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The binding domain of a forall has to be a sort
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.4 M · max rss memory: 7.1 MB
stderr:
REJECT: [forallSortBad] expected a sort
Test "tutorial/010_nonTypeType"
Expected: ✋ reject · Size: 1.1 KB · Lines: 21 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The type of a declaration has to be a type, not some other expression
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.3 M · max rss memory: 6.9 MB
stderr:
REJECT: [nonTypeType] expected a sort
Test "tutorial/011_nonTypeAxiom"
Expected: ✋ reject · Size: 1.0 KB · Lines: 20 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
This applies to axioms as well, which are easy to overlook because they have no value to check the type against. Letting one through is not merely untidy: an axiom whose type is an arbitrary term inhabits whatever that term is later found definitionally equal to, and the eta and proof irrelevance rules are happy to equate a term like this with a great many things.
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.3 M · max rss memory: 6.9 MB
stderr:
REJECT: [nonTypeAxiom] expected a sort
Test "tutorial/012_nonPropThm"
Expected: ✋ reject · Size: 424 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The type of a theorem has to be a proposition
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.2 M · max rss memory: 6.9 MB
stderr:
REJECT: [nonPropThm] theorem 1: theorem type is not a Prop
Test "tutorial/013_thmProof"
Expected: 👍 accept · Size: 1.3 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A theorem can refer to another theorem
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.4 M · max rss memory: 7.0 MB
Test "tutorial/014_selfProof"
Expected: ✋ reject · Size: 459 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A theorem cannot refer to itself
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.2 M · max rss memory: 7.0 MB
stderr:
REJECT: [selfProof] `selfProof` refers to itself; it is not in the environment until it is checked
Test "tutorial/015_levelComp1"
Expected: 👍 accept · Size: 391 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Some level computation
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.2 M · max rss memory: 6.8 MB
Test "tutorial/016_levelComp2"
Expected: 👍 accept · Size: 409 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Some level computation
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.2 M · max rss memory: 6.9 MB
Test "tutorial/017_levelComp3"
Expected: 👍 accept · Size: 427 B · Lines: 9 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Some level computation
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.2 M · max rss memory: 6.8 MB
Test "tutorial/018_levelParams"
Expected: 👍 accept · Size: 1.4 KB · Lines: 29 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Level parameters
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.4 M · max rss memory: 7.1 MB
Test "tutorial/019_tut06_bad01"
Expected: ✋ reject · Size: 427 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Duplicate universe parameters
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.2 M · max rss memory: 6.8 MB
stderr:
REJECT: [tut06_bad01] def 1: duplicate universe parameter
Test "tutorial/020_levelComp4"
Expected: 👍 accept · Size: 424 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Some level computation
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.2 M · max rss memory: 6.7 MB
Test "tutorial/021_levelComp5"
Expected: 👍 accept · Size: 424 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Some level computation
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.2 M · max rss memory: 7.0 MB
Test "tutorial/022_imax1"
Expected: 👍 accept · Size: 809 B · Lines: 16 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Type inference for forall using imax
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.2 M · max rss memory: 6.9 MB
Test "tutorial/023_imax2"
Expected: 👍 accept · Size: 828 B · Lines: 17 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Type inference for forall using imax
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.2 M · max rss memory: 6.9 MB
Test "tutorial/024_levelMaxComm"
Expected: 👍 accept · Size: 524 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Level equality: max is commutative (max u v ≈ max v u).
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.2 M · max rss memory: 6.9 MB
Test "tutorial/025_levelMaxAssoc"
Expected: 👍 accept · Size: 623 B · Lines: 16 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Level equality: max is associative (max (max u v) w ≈ max u (max v w)).
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.2 M · max rss memory: 7.0 MB
Test "tutorial/026_levelMaxIdem"
Expected: 👍 accept · Size: 447 B · Lines: 9 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Level equality: max is idempotent (max u u ≈ u).
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.2 M · max rss memory: 7.0 MB
Test "tutorial/027_levelMaxAbsorb"
Expected: 👍 accept · Size: 526 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Level equality: max absorption (max u (max u v) ≈ max u v).
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.2 M · max rss memory: 6.7 MB
Test "tutorial/028_inferVar"
Expected: 👍 accept · Size: 713 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Type inference of local variables
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.2 M · max rss memory: 6.8 MB
Test "tutorial/029_defEqLambda"
Expected: 👍 accept · Size: 1.4 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Definitional equality between lambdas
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.3 M · max rss memory: 6.8 MB
Test "tutorial/030_peano1"
Expected: 👍 accept · Size: 3.6 KB · Lines: 73 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Peano arithmetic: 2 = 2
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.9 M · max rss memory: 6.9 MB
Test "tutorial/031_peano2"
Expected: 👍 accept · Size: 4.5 KB · Lines: 90 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Peano arithmetic: 1 + 1 = 2
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.4 M · max rss memory: 7.0 MB
Test "tutorial/032_peano3"
Expected: 👍 accept · Size: 4.9 KB · Lines: 98 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Peano arithmetic: 2 * 2 = 4
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 5.6 M · max rss memory: 9.0 MB
Test "tutorial/033_letType"
Expected: 👍 accept · Size: 489 B · Lines: 9 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Type checking a non-dependent let
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.2 M · max rss memory: 6.9 MB
Test "tutorial/034_letTypeDep"
Expected: 👍 accept · Size: 1.2 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Type checking a dependent let
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.4 M · max rss memory: 7.0 MB
Test "tutorial/035_letRed"
Expected: 👍 accept · Size: 627 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Reducing a let
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.3 M · max rss memory: 6.8 MB
Test "tutorial/036_empty"
Expected: 👍 accept · Size: 1.2 KB · Lines: 20 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A simple empty inductive type
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.3 M · max rss memory: 6.9 MB
Test "tutorial/037_boolType"
Expected: 👍 accept · Size: 2.3 KB · Lines: 37 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A simple enumeration inductive type
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.4 M · max rss memory: 6.8 MB
Test "tutorial/038_twoBool"
Expected: 👍 accept · Size: 4.2 KB · Lines: 65 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A simple product type
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.6 M · max rss memory: 6.9 MB
Test "tutorial/039_andType"
Expected: 👍 accept · Size: 3.2 KB · Lines: 57 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A parametrized product type (no level parameters)
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.6 M · max rss memory: 6.9 MB
Test "tutorial/040_prodType"
Expected: 👍 accept · Size: 3.8 KB · Lines: 76 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A parametrized product type (with level parameters)
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.6 M · max rss memory: 7.1 MB
Test "tutorial/041_pprodType"
Expected: 👍 accept · Size: 3.8 KB · Lines: 75 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A parametrized product type (with more general level parameters)
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.6 M · max rss memory: 7.1 MB
Test "tutorial/042_pUnitType"
Expected: 👍 accept · Size: 1.8 KB · Lines: 31 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Level-polymorphic unit type
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.4 M · max rss memory: 7.0 MB
Test "tutorial/043_eqType"
Expected: 👍 accept · Size: 3.2 KB · Lines: 62 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Equality, as an important indexed non-recursive data type
Test result: 👍 accepted · exit code 0 · wall time: 21 ms · instructions: 4.6 M · max rss memory: 6.7 MB
Test "tutorial/044_natDef"
Expected: 👍 accept · Size: 3.3 KB · Lines: 61 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A recursive inductive data type
Test result: 👍 accepted · exit code 0 · wall time: 20 ms · instructions: 4.6 M · max rss memory: 6.9 MB
Test "tutorial/045_rbTreeDef"
Expected: 👍 accept · Size: 15.7 KB · Lines: 296 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A recursive indexed data type
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 6.1 M · max rss memory: 9.2 MB
Test "tutorial/046_inductBadNonSort"
Expected: ✋ reject · Size: 1.2 KB · Lines: 20 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
An inductive type with a non-sort type
Test result: ✋ rejected · exit code 1 · wall time: 7 ms · instructions: 4.3 M · max rss memory: 6.8 MB
stderr:
REJECT: inductive `inductBadNonSort` is missing a recursor
Test "tutorial/047_inductBadNonSort2"
Expected: ✋ reject · Size: 598 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Another inductive type with a non-sort type
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.2 M · max rss memory: 6.7 MB
stderr:
REJECT: inductive `inductBadNonSort2` is missing a recursor
Test "tutorial/048_inductLevelParam"
Expected: ✋ reject · Size: 515 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
An inductive with duplicate level params
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.2 M · max rss memory: 6.8 MB
stderr:
REJECT: inductive `inductLevelParam` is missing a recursor
Test "tutorial/049_inductTooFewParams"
Expected: ✋ reject · Size: 548 B · Lines: 6 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
An inductive with too few parameters in the type
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.2 M · max rss memory: 6.8 MB
stderr:
REJECT: inductive `inductTooFewParams` is missing a recursor
Test "tutorial/050_inductWrongCtorParams"
Expected: ✋ reject · Size: 1.2 KB · Lines: 16 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
An inductive with a constructor with wrong parameters
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.3 M · max rss memory: 6.7 MB
stderr:
REJECT: recursor `inductWrongCtorParams.rec` type telescope length 0 != 1
Test "tutorial/051_inductWrongCtorResParams"
Expected: ✋ reject · Size: 1.3 KB · Lines: 19 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
An inductive with a constructor with wrong parameters in result (they are swapped)
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.3 M · max rss memory: 6.9 MB
stderr:
REJECT: recursor `inductWrongCtorResParams.rec` type telescope length 0 != 1
Test "tutorial/052_inductWrongCtorResLevel"
Expected: ✋ reject · Size: 1.4 KB · Lines: 23 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
An inductive with a constructor with wrong level parameters in result (they are swapped)
Test result: ✋ rejected · exit code 1 · wall time: 8 ms · instructions: 4.3 M · max rss memory: 6.8 MB
stderr:
REJECT: recursor `inductWrongCtorResLevel.rec` type telescope length 0 != 1
Test "tutorial/053_inductInIndex"
Expected: ✋ reject · Size: 1.1 KB · Lines: 14 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A constructor with an unexpected occurrence of the type in index position of a return type.
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.3 M · max rss memory: 6.9 MB
stderr:
REJECT: recursor `inductInIndex.rec` type telescope length 0 != 1
Test "tutorial/054_indNeg"
Expected: ✋ reject · Size: 996 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The classic example of an inductive with negative recursive occurrence
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.2 M · max rss memory: 6.9 MB
stderr:
REJECT: recursor `indNeg.rec` type telescope length 0 != 1
Test "tutorial/055_reduceCtorParam.mk"
Expected: 👍 accept · Size: 4.1 KB · Lines: 80 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
When checking inductives, we expect the kernel to reduce the types of constructor arguments.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 7.0 MB
Test "tutorial/056_reduceCtorType.mk"
Expected: ✋ reject · Size: 1.5 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.3 M · max rss memory: 6.9 MB
stderr:
REJECT: recursor `reduceCtorType.rec` type telescope length 0 != 1
Test "tutorial/057_indNegReducible"
Expected: ✋ reject · Size: 1.9 KB · Lines: 31 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.4 M · max rss memory: 6.9 MB
stderr:
REJECT: recursor `indNegReducible.rec` type telescope length 0 != 1
Test "tutorial/058_predWithTypeField"
Expected: 👍 accept · Size: 2.0 KB · Lines: 32 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
An inductive proposition can have constructors with fields of arbitrary level.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.4 M · max rss memory: 7.0 MB
Test "tutorial/059_typeWithTypeField"
Expected: 👍 accept · Size: 2.1 KB · Lines: 36 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
An inductive type can have fields of level up to that of the inductive.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.4 M · max rss memory: 6.8 MB
Test "tutorial/060_typeWithTypeFieldPoly"
Expected: 👍 accept · Size: 2.1 KB · Lines: 38 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
An inductive type can have fields of level up to that of the inductive (polymorphic variant).
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.4 M · max rss memory: 7.0 MB
Test "tutorial/061_typeWithTooHighTypeField.mk"
Expected: ✋ reject · Size: 943 B · Lines: 11 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
An inductive type can have fields of from higher universes.
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.2 M · max rss memory: 6.6 MB
stderr:
REJECT: recursor `typeWithTooHighTypeField.rec` type telescope length 0 != 1
Test "tutorial/062_emptyRec"
Expected: 👍 accept · Size: 1.2 KB · Lines: 21 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.3 M · max rss memory: 7.0 MB
Test "tutorial/063_boolRec"
Expected: 👍 accept · Size: 3.0 KB · Lines: 53 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.6 M · max rss memory: 7.0 MB
Test "tutorial/064_twoBoolRec"
Expected: 👍 accept · Size: 4.8 KB · Lines: 78 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.8 M · max rss memory: 7.0 MB
Test "tutorial/065_andRec"
Expected: 👍 accept · Size: 3.2 KB · Lines: 58 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.7 M · max rss memory: 6.9 MB
Test "tutorial/066_prodRec"
Expected: 👍 accept · Size: 4.0 KB · Lines: 79 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.8 M · max rss memory: 6.9 MB
Test "tutorial/067_pprodRec"
Expected: 👍 accept · Size: 4.0 KB · Lines: 78 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.8 M · max rss memory: 6.8 MB
Test "tutorial/068_punitRec"
Expected: 👍 accept · Size: 2.2 KB · Lines: 39 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.5 M · max rss memory: 6.9 MB
Test "tutorial/069_eqRec"
Expected: 👍 accept · Size: 3.3 KB · Lines: 63 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 6.8 MB
Test "tutorial/070_nRec"
Expected: 👍 accept · Size: 3.3 KB · Lines: 61 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.6 M · max rss memory: 6.8 MB
Test "tutorial/071_rbTreeRef"
Expected: 👍 accept · Size: 16.2 KB · Lines: 303 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 6.7 M · max rss memory: 9.1 MB
Test "tutorial/072_boolPropRec"
Expected: 👍 accept · Size: 2.3 KB · Lines: 34 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Inductive predicates eliminate into Prop if they have more than one constructor.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.4 M · max rss memory: 6.9 MB
Test "tutorial/073_BogusRecursor"
Expected: ✋ reject · Size: 1.8 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A kernel must not blindly trust the recursors it is handed. If we write
inductive BogusRecursor : Type where
| mk : BogusRecursor
then the recursor BogusRecursor.rec will be correctly derived with type
{motive : BogusRecursor → Sort u} → motive .mk → (t : BogusRecursor) → motive t.
This test instead claims that the recursor is a constant of type False, and
then uses it to prove bogusRecursorFalse : False. A kernel that validates
the recursors it is handed rejects the bogus recursor itself; a kernel that
ignores them and derives the recursors anew rejects the proof of False
(the derived recursor neither has type False nor zero universe parameters).
Either way, this test must be rejected.
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.3 M · max rss memory: 6.8 MB
stderr:
REJECT: recursor `BogusRecursor.rec` type telescope length 0 != 1
Test "tutorial/074_existsRec"
Expected: 👍 accept · Size: 3.6 KB · Lines: 66 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Inductive predicates eliminate into Prop if they have one constructors and it carries data.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.7 M · max rss memory: 7.0 MB
Test "tutorial/075_typeSingletonRecReduction"
Expected: 👍 accept · Size: 7.9 KB · Lines: 138 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Because NewSingleton is a singleton, NewSingleton.rec true x reduces to
true even though x is a variable.
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.3 M · max rss memory: 7.1 MB
Test "tutorial/076_sortElimPropRec"
Expected: 👍 accept · Size: 5.6 KB · Lines: 97 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 5.0 M · max rss memory: 6.8 MB
Test "tutorial/077_sortElimProp2Rec"
Expected: 👍 accept · Size: 6.6 KB · Lines: 114 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 5.2 M · max rss memory: 7.2 MB
Test "tutorial/078_boolRecEqns"
Expected: 👍 accept · Size: 10.8 KB · Lines: 199 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Reduction behavior of Bool.rec
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.8 M · max rss memory: 9.1 MB
Test "tutorial/079_prodRecEqns"
Expected: 👍 accept · Size: 10.1 KB · Lines: 205 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Reduction behavior of Prod.rec
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.9 M · max rss memory: 9.0 MB
Test "tutorial/080_nRecReduction"
Expected: 👍 accept · Size: 12.7 KB · Lines: 238 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A proof relying on the reduction behavior of N.rec
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 6.3 M · max rss memory: 9.1 MB
Test "tutorial/081_listRecReduction"
Expected: 👍 accept · Size: 17.5 KB · Lines: 335 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Reduction behavior of List.rec
Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 8.1 M · max rss memory: 9.2 MB
Test "tutorial/082_RBTree.id_spec"
Expected: 👍 accept · Size: 47.9 KB · Lines: 1.0 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Reduction behavior of RBTree.rec
Test result: 👍 accepted · exit code 0 · wall time: 8 ms · instructions: 19.7 M · max rss memory: 13.0 MB
Test "tutorial/083_And.right"
Expected: 👍 accept · Size: 4.3 KB · Lines: 74 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Type-checking simple projection functions
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.8 M · max rss memory: 7.0 MB
Test "tutorial/084_Prod.snd"
Expected: 👍 accept · Size: 4.5 KB · Lines: 83 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Type-checking projection functions with parameters
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.9 M · max rss memory: 7.1 MB
Test "tutorial/085_PProd.snd"
Expected: 👍 accept · Size: 4.5 KB · Lines: 83 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Type-checking projection functions
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 4.9 M · max rss memory: 7.1 MB
Test "tutorial/086_PSigma.snd"
Expected: 👍 accept · Size: 5.1 KB · Lines: 96 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Type-checking dependent projection functions
Test result: 👍 accepted · exit code 0 · wall time: 8 ms · instructions: 5.1 M · max rss memory: 7.2 MB
Test "tutorial/087_projOutOfRange"
Expected: ✋ reject · Size: 3.8 KB · Lines: 67 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Out of range projection
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.6 M · max rss memory: 7.1 MB
stderr:
REJECT: [projOutOfRange] projection index out of range
Test "tutorial/088_projNotStruct"
Expected: ✋ reject · Size: 3.5 KB · Lines: 64 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Projection out something that is not a structure
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.6 M · max rss memory: 7.0 MB
stderr:
REJECT: [projNotStruct] projection: not a single-constructor inductive
Test "tutorial/089_projProp1"
Expected: 👍 accept · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Projecting out of a proposition
The lean kernel allows projections out of propositions if they precede all dependent data fields.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 5.2 M · max rss memory: 7.0 MB
Test "tutorial/090_projProp2"
Expected: ✋ reject · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Projecting out of a proposition
The lean kernel disallows data projections out of propositional structures.
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 5.2 M · max rss memory: 7.1 MB
stderr:
REJECT: [projProp2] cannot project a Type field from a Prop structure
Test "tutorial/091_projProp3"
Expected: 👍 accept · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 5.2 M · max rss memory: 6.8 MB
Test "tutorial/092_projProp4"
Expected: ✋ reject · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Projecting out of a proposition
The lean kernel disallows data projections out of propositional structures.
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 5.2 M · max rss memory: 7.2 MB
stderr:
REJECT: [projProp4] cannot project a Type field from a Prop structure
Test "tutorial/093_projProp5"
Expected: ✋ reject · Size: 8.4 KB · Lines: 148 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Projecting out of a proposition
The lean kernel disallows proof projections out of propositional structures that depend on data.
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 5.3 M · max rss memory: 6.9 MB
stderr:
REJECT: [projProp5] cannot project a Type field from a Prop structure
Test "tutorial/094_projProp6"
Expected: ✋ reject · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 5.2 M · max rss memory: 6.9 MB
stderr:
REJECT: [projProp6] cannot project a Prop field that comes after a dependent data field
Test "tutorial/095_projDataIndexRec"
Expected: 👍 accept · Size: 6.8 KB · Lines: 111 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The recursor for ProjDataIndex allows elimination into sort.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 5.0 M · max rss memory: 6.9 MB
Test "tutorial/096_projIndexData"
Expected: ✋ reject · Size: 6.8 KB · Lines: 111 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Projecting out data is not allowed, even if this data appears as an index and the recursor would allow it.
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 5.0 M · max rss memory: 6.9 MB
stderr:
REJECT: [projIndexData] projection struct name mismatch
Test "tutorial/097_projIndexData2"
Expected: ✋ reject · Size: 6.8 KB · Lines: 111 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 5.0 M · max rss memory: 7.0 MB
stderr:
REJECT: [projIndexData2] projection struct name mismatch
Test "tutorial/098_projRed"
Expected: 👍 accept · Size: 9.9 KB · Lines: 177 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Projection reductions
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.7 M · max rss memory: 7.0 MB
Test "tutorial/099_ruleK"
Expected: 👍 accept · Size: 6.5 KB · Lines: 121 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 5.2 M · max rss memory: 7.0 MB
Test "tutorial/100_ruleKbad"
Expected: ✋ reject · Size: 6.5 KB · Lines: 121 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 5.4 M · max rss memory: 7.1 MB
stderr:
REJECT: [ruleKbad] theorem 21: value type does not match declared type
Test "tutorial/101_ruleKAcc"
Expected: ✋ reject · Size: 12.8 KB · Lines: 238 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Rule k should not fire for Acc.
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 6.7 M · max rss memory: 9.1 MB
stderr:
REJECT: [ruleKAcc] theorem 30: value type does not match declared type
Test "tutorial/102_aNatLit"
Expected: 👍 accept · Size: 3.0 KB · Lines: 54 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Type checking Nat literals
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.5 M · max rss memory: 6.8 MB
Test "tutorial/103_natLitEq"
Expected: 👍 accept · Size: 6.1 KB · Lines: 114 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Reducing Nat literals
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 5.0 M · max rss memory: 7.0 MB
Test "tutorial/104_proofIrrelevance"
Expected: 👍 accept · Size: 5.0 KB · Lines: 100 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Proof irrelevance: every Prop is a subsingleton, if p : Prop then all elements of p
are definitionally equal.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.9 M · max rss memory: 7.2 MB
Test "tutorial/105_proofIrrelevanceBad"
Expected: ✋ reject · Size: 4.7 KB · Lines: 93 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Proof irrelevance is limited to Prop: if p : Type, then all elements of p are not
definitionally equal.
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 5.1 M · max rss memory: 7.0 MB
stderr:
REJECT: [proofIrrelevanceBad] def 16: value type does not match declared type
Test "tutorial/106_proofIrrelevanceWhnf"
Expected: 👍 accept · Size: 5.6 KB · Lines: 112 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Proof irrelevance: if p : A and A is definitionally equal to Prop, then all elements of p
are still definitionally equal. Just applying proof irrelevance at Sort 0 isn't sufficient.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 5.1 M · max rss memory: 7.0 MB
Test "tutorial/107_proofIrrelevanceUnderBinder"
Expected: 👍 accept · Size: 1.9 KB · Lines: 39 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Proof irrelevance applies to any two terms of a proposition, not just to variables.
Checking this definition needs aPropFamily (h anElem) ≡ aPropFamily (h anotherElem),
i.e. h anElem ≡ h anotherElem. Both are proofs of aProp, since h : aType → aProp,
so they are definitionally equal even though their arguments are not. A checker that
compares the two applications structurally, without first noticing that they are
proofs, wrongly rejects this.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.6 M · max rss memory: 7.1 MB
Test "tutorial/108_unitEta1"
Expected: 👍 accept · Size: 6.2 KB · Lines: 116 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Unit eta
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.1 M · max rss memory: 7.0 MB
Test "tutorial/109_unitEta2"
Expected: 👍 accept · Size: 5.9 KB · Lines: 109 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Unit eta
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.1 M · max rss memory: 7.0 MB
Test "tutorial/110_unitEta3"
Expected: 👍 accept · Size: 6.0 KB · Lines: 111 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Unit eta
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 5.0 M · max rss memory: 7.0 MB
Test "tutorial/111_indexedUnitEta"
Expected: ✋ reject · Size: 7.2 KB · Lines: 121 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The unit-like rule, which makes any two elements of a single-constructor type with
no fields definitionally equal, is also restricted to non-recursive structures
without indices (is_def_eq_unit_like goes through is_non_rec_structure), so it
does not fire for IndexedUnit.
Test result: ✋ rejected · exit code 1 · wall time: 7 ms · instructions: 5.3 M · max rss memory: 7.0 MB
stderr:
REJECT: [indexedUnitEta] def 25: value type does not match declared type
Test "tutorial/112_structEta"
Expected: 👍 accept · Size: 12.5 KB · Lines: 230 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Structure eta
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 6.4 M · max rss memory: 9.0 MB
Test "tutorial/113_indexedStructEta"
Expected: ✋ reject · Size: 8.5 KB · Lines: 138 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Structure eta applies only to non-recursive structures without indices: the
official kernel's is_non_rec_structure requires nindices == 0, so it does not
fire for IndexedSingleton even though that has a single constructor.
Every field of IndexedSingleton.mk is a proof, so a kernel that checks only
"has a single constructor" and then compares the fields against projections
would have proof irrelevance discharge the remaining goals, and would wrongly
accept this.
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 5.4 M · max rss memory: 7.2 MB
stderr:
REJECT: [indexedStructEta] def 29: value type does not match declared type
Test "tutorial/114_funEta"
Expected: 👍 accept · Size: 5.2 KB · Lines: 104 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Function eta for non-dependent functions.
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.0 M · max rss memory: 6.9 MB
Test "tutorial/115_funEtaDep"
Expected: 👍 accept · Size: 5.3 KB · Lines: 106 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Function eta for dependent functions (pi types).
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 5.0 M · max rss memory: 7.0 MB
Test "tutorial/116_funEtaBad"
Expected: ✋ reject · Size: 4.9 KB · Lines: 97 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Eta should not identify functions with different bodies.
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 5.2 M · max rss memory: 6.9 MB
stderr:
REJECT: [funEtaBad] theorem 15: value type does not match declared type
Test "tutorial/117_reflOccLeft"
Expected: ✋ reject · Size: 3.7 KB · Lines: 61 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.6 M · max rss memory: 7.0 MB
stderr:
REJECT: recursor `reflOccLeft.rec` type telescope length 0 != 1
Test "tutorial/118_reflOccInIndex"
Expected: ✋ reject · Size: 3.9 KB · Lines: 66 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 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: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.6 M · max rss memory: 6.9 MB
stderr:
REJECT: recursor `reflOccInIndex.rec` type telescope length 0 != 1
Test "tutorial/119_reduceCtorParamRefl.mk"
Expected: 👍 accept · Size: 4.5 KB · Lines: 88 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
When checking inductives, we expect the kernel to reduce the types of constructor arguments in all positive positions.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.8 M · max rss memory: 7.1 MB
Test "tutorial/120_reduceCtorParamRefl2.mk"
Expected: 👍 accept · Size: 4.5 KB · Lines: 88 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
When checking inductives, we expect the kernel to reduce the types of constructor arguments in all positive positions.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.8 M · max rss memory: 7.1 MB
Test "tutorial/121_rTreeRec"
Expected: 👍 accept · Size: 5.5 KB · Lines: 91 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 4.9 M · max rss memory: 6.8 MB
Test "tutorial/122_rtreeRecReduction"
Expected: 👍 accept · Size: 10.8 KB · Lines: 193 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Reduction behavior of RTree.rec on RTree.mk.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 5.9 M · max rss memory: 9.0 MB
Test "tutorial/123_accRecType"
Expected: 👍 accept · Size: 7.5 KB · Lines: 151 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of Acc.rec.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 5.4 M · max rss memory: 7.2 MB
Test "tutorial/124_accRecReduction"
Expected: 👍 accept · Size: 13.4 KB · Lines: 252 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Acc.rec reduces on Acc.intro.
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 6.5 M · max rss memory: 9.1 MB
Test "tutorial/125_accRecNoEta"
Expected: ✋ reject · Size: 13.0 KB · Lines: 244 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Acc.rec does not have structure eta.
Test result: ✋ rejected · exit code 1 · wall time: 7 ms · instructions: 6.7 M · max rss memory: 9.1 MB
stderr:
REJECT: [accRecNoEta] theorem 30: value type does not match declared type
Test "tutorial/126_quotMkType"
Expected: 👍 accept · Size: 6.3 KB · Lines: 123 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of Quot.mk.
Test result: 👍 accepted · exit code 0 · wall time: 5 ms · instructions: 5.0 M · max rss memory: 6.9 MB
Test "tutorial/127_quotIndType"
Expected: 👍 accept · Size: 6.3 KB · Lines: 124 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of Quot.ind.
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.0 M · max rss memory: 7.0 MB
Test "tutorial/128_quotLiftType"
Expected: 👍 accept · Size: 6.3 KB · Lines: 124 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of Quot.lift.
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.0 M · max rss memory: 7.0 MB
Test "tutorial/129_quotSoundType"
Expected: 👍 accept · Size: 7.2 KB · Lines: 141 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Asserting the type of Quot.sound.
Test result: 👍 accepted · exit code 0 · wall time: 30 ms · instructions: 5.3 M · max rss memory: 7.0 MB
Test "tutorial/130_quotLiftReduction"
Expected: 👍 accept · Size: 7.8 KB · Lines: 153 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Reduction behavior of Quot.lift on Quot.mk.
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 5.4 M · max rss memory: 6.9 MB
Test "tutorial/131_quotIndReduction"
Expected: 👍 accept · Size: 7.6 KB · Lines: 151 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Reduction behavior of Quot.ind on Quot.mk.
Test result: 👍 accepted · exit code 0 · wall time: 18 ms · instructions: 5.4 M · max rss memory: 7.0 MB
Test "tutorial/132_dup_defs"
Expected: ✋ reject · Size: 475 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Two definitions with the same name
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.2 M · max rss memory: 6.7 MB
stderr:
REJECT: duplicate declaration of dup_defs
Test "tutorial/133_dup_ind_def"
Expected: ✋ reject · Size: 1.7 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A definition and a constructor with the same name
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.3 M · max rss memory: 6.7 MB
stderr:
REJECT: duplicate declaration of dup_ind_def
Test "tutorial/134_dup_ctor_def"
Expected: ✋ reject · Size: 1.7 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A definition and a constructor with the same name
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.3 M · max rss memory: 7.0 MB
stderr:
REJECT: duplicate declaration of dup_ctor_def.mk
Test "tutorial/135_dup_rec_def"
Expected: ✋ reject · Size: 1.7 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A definition and a recursor with the same name
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.3 M · max rss memory: 6.8 MB
stderr:
REJECT: duplicate declaration of dup_rec_def.rec
Test "tutorial/136_misnamed_rec_user"
Expected: ✋ reject · Size: 2.0 KB · Lines: 33 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
The name of the recursor for misnamed_rec must be misnamed_rec.rec:
another name (like misnamed_rec.not_rec) should be rejected.
dupRecUser is included so that checkers that recreate the recursor (as misnamed_rec.rec)
rather than validating it still fail, because misnamed_rec_user references misnamed_rec.not_rec.
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.3 M · max rss memory: 6.6 MB
stderr:
REJECT: recursor `misnamed_rec.not_rec` is not named `I.rec` for an inductive in this group
Test "tutorial/137_dup_rec_def2"
Expected: ✋ reject · Size: 1.7 KB · Lines: 28 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Even if a kernel doesn't catch a recursor for dup_rec_def2 that is misnamed
as dup_rec_def2.not_rec, it should catch some other constant being given
the name dup_rec_def2.rec that is reserved for the recursor.
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.3 M · max rss memory: 6.9 MB
stderr:
REJECT: recursor `dup_rec_def2.not_rec` is not named `I.rec` for an inductive in this group
Test "tutorial/138_dup_ctor_rec"
Expected: ✋ reject · Size: 1.5 KB · Lines: 24 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
A constructor and a recursor with the same name
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.3 M · max rss memory: 6.9 MB
stderr:
REJECT: duplicate declaration of dup_ctor_rec.rec
Test "tutorial/139_DupConCon"
Expected: ✋ reject · Size: 2.2 KB · Lines: 34 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
An inductive with two constructors with the same name
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.4 M · max rss memory: 6.8 MB
stderr:
REJECT: duplicate declaration of dup_ind_con_con.mk
Test "tutorial/140_falseFromUnsafe"
Expected: ✋ reject · Size: 1.3 KB · Lines: 22 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Unsafe definitions cannot be used in theorems
Test result: ✋ rejected · exit code 1 · wall time: 5 ms · instructions: 4.3 M · max rss memory: 6.9 MB
stderr:
REJECT: unsafe definition
Test "tutorial/141_falseFromPartial"
Expected: ✋ reject · Size: 1.3 KB · Lines: 22 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Partial definitions cannot be used in theorems
Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 4.3 M · max rss memory: 6.7 MB
stderr:
REJECT: partial definition