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).
72 ✅ 0 ❌ 0 🚫
127 ✅ 1 ❌ 7 🚫
24 ✅ 2 🚫
| Test | Expected | Result | ⏱️ | 🧠 | |||
|---|---|---|---|---|---|---|---|
| cedar | 👍 | ⌛ | 0 ms | 0 B | |||
| con-leche | 👍 | 🚫 | 45.5 s | 866.0 MB | |||
| cslib | 👍 | 🚫 | 0 ms | 0 B | |||
| init | 👍 | 🚫 | 2.5 m | 1.1 GB | |||
| init-prelude | 👍 | 👍 | 199 ms | (-45%) | 61.4 MB | (-17%) | |
| mathlib | 👍 | ✋ | 39.8 m | 8.7 GB | |||
| navier-stokes-euler | 👍 | ⌛ | 0 ms | 0 B | |||
| std | 👍 | ⌛ | 0 ms | 0 B | |||
| 19 | 62 ms | 19.5 MB | |||||
| constlevels | ✋ | ✋ | 1 ms | 9.3 MB | |||
| ctor-num-fields | ✋ | ✋ | 1 ms | 9.4 MB | |||
| eta-ctor-alias | ✋ | ✋ | 1 ms | 7.4 MB | |||
| k-rec-conv | ✋ | ✋ | 1 ms | 9.5 MB | |||
| large-elim-param | ✋ | ✋ | 1 ms | 7.2 MB | |||
| large-elim-prop-bool | ✋ | ✋ | 1 ms | 9.4 MB | |||
| level-imax-leq | ✋ | ✋ | 1 ms | 7.2 MB | |||
| level-imax-normalization | ✋ | ✋ | 1 ms | 7.2 MB | |||
| nat-rec-k-lie | ✋ | ✋ | 1 ms | 7.3 MB | |||
| nat-rec-rules | ✋ | ✋ | 1 ms | 7.3 MB | |||
| nested-unused-param | ✋ | ✋ | 3 ms | 11.3 MB | |||
| orphan-rec | ✋ | ✋ | 1 ms | 7.0 MB | |||
| proj-non-structure | ✋ | ✋ | 1 ms | 7.1 MB | |||
| proj-of-imax-prop | ✋ | ✋ | 1 ms | 9.4 MB | |||
| proj-of-stuck-prop | ✋ | ✋ | 13 ms | 19.5 MB | |||
| proj-of-subst-prop | ✋ | ✋ | 12 ms | 17.4 MB | |||
| rec-k-lie | ✋ | ✋ | 1 ms | 7.3 MB | |||
| rec-missing-ih | ✋ | ✋ | 13 ms | 19.3 MB | |||
| rec-of-subst-prop | ✋ | ✋ | 12 ms | 17.4 MB | |||
| 1 | 29 ms | 11.4 MB | |||||
| alg-conv-trans-acc | 🤷 | ✋ | 3 ms | 11.4 MB | |||
| alg-conv-trans-acc-left | 🤷 | 👍 | 3 ms | 11.4 MB | |||
| alg-conv-trans-acc-right | 🤷 | 👍 | 3 ms | 11.2 MB | |||
| alg-conv-trans-quot | 🤷 | ✋ | 1 ms | 7.1 MB | |||
| alg-conv-trans-quot-left | 🤷 | 👍 | 1 ms | 9.3 MB | |||
| alg-conv-trans-quot-left-def | 🤷 | 👍 | 1 ms | 9.4 MB | |||
| alg-conv-trans-quot-right | 🤷 | 👍 | 1 ms | 9.4 MB | |||
| eta-ctor | 🤷 | ✋ | 1 ms | 7.4 MB | |||
| eta-rec-struct | 🤷 | ✋ | 1 ms | 7.4 MB | |||
| eta-rule-k | 🤷 | ✋ | 1 ms | 7.1 MB | |||
| eta-struct-major-and | 🤷 | ✋ | 1 ms | 7.3 MB | |||
| eta-struct-major-and-no-whnf | 🤷 | ⌛ | 0 ms | 0 B | |||
| eta-struct-major-no-whnf | 🤷 | ⌛ | 0 ms | 0 B | |||
| eta-unit-like-nested | 🤷 | ✋ | 1 ms | 9.4 MB | |||
| eta-unit-like-pi | 🤷 | ✋ | 1 ms | 7.4 MB | |||
| eta-unit-like-proof-field | 🤷 | ✋ | 1 ms | 7.2 MB | |||
| eta-unit-like-struct | 🤷 | ✋ | 1 ms | 7.2 MB | |||
| imax-right-successor | 🤷 | 👍 | 1 ms | 7.2 MB | |||
| let-value-type-mismatch | 🤷 | ✋ | 1 ms | 7.2 MB | |||
| nested-nonuniform-param | 🤷 | 👍 | 1 ms | 7.3 MB | |||
| positivity-whnf | 🤷 | ✋ | 1 ms | 7.2 MB | |||
| proj-maybe-prop | 🤷 | 👍 | 1 ms | 7.3 MB | |||
| proj-maybe-prop-past | 🤷 | 👍 | 1 ms | 7.4 MB | |||
| proof-param-ok | 👍 | 👍 | 1 ms | 7.1 MB | |||
| proof-param-swap | 🤷 | 👍 | 1 ms | 7.2 MB | |||
| subject-reduction-redex | 🤷 | 👍 | 3 ms | 11.4 MB | |||
| subject-reduction-reduct | 🤷 | ✋ | 3 ms | 11.3 MB | |||
| 9 | 8 ms | 9.4 MB | |||||
| extra-rec | ✋ | ✋ | 1 ms | 6.9 MB | |||
| level-index-out-of-order | 👍 | 👍 | 1 ms | 7.0 MB | |||
| nat-lit-add | 👍 | 👍 | 1 ms | 9.2 MB | |||
| nat-lit-add-bad | ✋ | ✋ | 1 ms | 9.4 MB | |||
| nat-lit-ble | 👍 | 👍 | 1 ms | 9.4 MB | |||
| nat-lit-sub | 👍 | 👍 | 2 ms | 9.2 MB | |||
| orphan-ctor | ✋ | ✋ | 1 ms | 7.0 MB | |||
| proj-of-prop | ✋ | ✋ | 1 ms | 7.2 MB | |||
| sparse-name-index | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 28 | 2.5 m | (+86%) | 6.9 GB | ||||
| app-lam | 👍 | 👍 | 160 ms | (÷30) | 261.7 MB | (÷5.5) | |
| args-before-unfold | 👍 | 👍 | 6 ms | (÷5.9) | 16.5 MB | (÷4.0) | |
| beta-ladder | 👍 | 👍 | 582 ms | (÷2.9) | 538.5 MB | (+8%) | |
| church-numerals | 👍 | 👍 | 5 ms | (÷9.2) | 15.5 MB | (÷5.0) | |
| discarded-argument | 👍 | 👍 | 5 ms | (÷32) | 11.5 MB | (÷5.7) | |
| discarded-argument-match | 👍 | 👍 | 27 ms | (÷5.3) | 23.8 MB | (÷2.9) | |
| folded-constant-first | 👍 | 👍 | 8 ms | (÷5.1) | 18.7 MB | (÷3.7) | |
| folded-constant-last | 👍 | 👍 | 8 ms | (÷5.1) | 18.6 MB | (÷3.7) | |
| fueled-chain | 👍 | 👍 | 142 ms | (+12%) | 45.4 MB | (-40%) | |
| grind-ring-5 | 👍 | 👍 | 4.3 s | (+98%) | 341.6 MB | (+50%) | |
| identical-nesting | 👍 | 👍 | 1 ms | (÷38) | 7.1 MB | (÷9.3) | |
| irrelevance-before-evaluation | 👍 | 👍 | 1 ms | (÷29) | 9.1 MB | (÷7.3) | |
| let-fold | 👍 | 👍 | 6.3 s | (×108) | 173.4 MB | (×2.6) | |
| let-ladder | 👍 | 👍 | 588 ms | (-42%) | 530.6 MB | (+66%) | |
| magma-list-deep-n21 | 👍 | 👍 | 2.1 s | (-20%) | 317.9 MB | (÷2.1) | |
| magma-list-deep-n36 | 👍 | 👍 | 28.8 s | (-19%) | 3.7 GB | (÷2.1) | |
| magma-list-pair-n21 | 👍 | 👍 | 16.4 s | (-11%) | 6.9 GB | (+74%) | |
| magma-list-pair-n7 | 👍 | 👍 | 1.5 s | (-11%) | 585.6 MB | (+38%) | |
| magma-string-n4 | 👍 | 👍 | 39.8 s | (×11) | 287.5 MB | (×2.4) | |
| magma-string-pair-n9 | 👍 | 👍 | 46.3 s | (×5.6) | 969.8 MB | (-3%) | |
| proj-cheap-struct | 👍 | 👍 | 4 ms | (÷9.7) | 13.5 MB | (÷4.9) | |
| proj-lazy-struct | 👍 | 🚫 | 1.5 s | 618.6 MB | |||
| proj-stuck-struct | 👍 | 👍 | 2 ms | (÷14) | 9.1 MB | (÷7.2) | |
| refute-cheap-first | ✋ | ✋ | 1 ms | (÷37) | 9.3 MB | (÷7.4) | |
| refute-cheap-last | ✋ | ✋ | 9 ms | (÷20) | 11.5 MB | (÷6.0) | |
| repeated-subproblem | 👍 | 👍 | 1 ms | (÷29) | 9.1 MB | (÷7.3) | |
| shared-subterm | 👍 | 👍 | 19 ms | (÷3.0) | 20.6 MB | (÷3.6) | |
| shift-cascade | 👍 | 👍 | 3.5 s | (×76) | 384.9 MB | (×5.6) | |
| unroll-versus-evaluate | 👍 | 👍 | 8 ms | (÷4.0) | 18.5 MB | (÷3.6) | |
| 141 | 90 ms | 13.4 MB | |||||
| 001_basicDef | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 002_badDef | ✋ | ✋ | 1 ms | 7.1 MB | |||
| 003_arrowType | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 004_dependentType | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 005_constType | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 006_betaReduction | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 007_betaReduction2 | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 008_forallSortWhnf | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 009_forallSortBad | ✋ | ✋ | 1 ms | 7.1 MB | |||
| 010_nonTypeType | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 011_nonTypeAxiom | ✋ | ✋ | 1 ms | 7.1 MB | |||
| 012_nonPropThm | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 013_thmProof | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 014_selfProof | ✋ | ✋ | 1 ms | 7.1 MB | |||
| 015_levelComp1 | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 016_levelComp2 | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 017_levelComp3 | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 018_levelParams | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 019_tut06_bad01 | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 020_levelComp4 | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 021_levelComp5 | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 022_imax1 | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 023_imax2 | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 024_levelMaxComm | 👍 | 👍 | 1 ms | 7.3 MB | |||
| 025_levelMaxAssoc | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 026_levelMaxIdem | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 027_levelMaxAbsorb | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 028_inferVar | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 029_defEqLambda | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 030_peano1 | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 031_peano2 | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 032_peano3 | 👍 | 👍 | 1 ms | 9.2 MB | |||
| 033_letType | 👍 | 👍 | 1 ms | 7.3 MB | |||
| 034_letTypeDep | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 035_letRed | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 036_empty | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 037_boolType | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 038_twoBool | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 039_andType | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 040_prodType | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 041_pprodType | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 042_pUnitType | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 043_eqType | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 044_natDef | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 045_rbTreeDef | 👍 | 👍 | 1 ms | 9.4 MB | |||
| 046_inductBadNonSort | ✋ | ✋ | 1 ms | 7.1 MB | |||
| 047_inductBadNonSort2 | ✋ | ✋ | 1 ms | 7.1 MB | |||
| 048_inductLevelParam | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 049_inductTooFewParams | ✋ | ✋ | 1 ms | 6.8 MB | |||
| 050_inductWrongCtorParams | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 051_inductWrongCtorResParams | ✋ | ✋ | 1 ms | 6.8 MB | |||
| 052_inductWrongCtorResLevel | ✋ | ✋ | 1 ms | 6.8 MB | |||
| 053_inductInIndex | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 054_indNeg | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 055_reduceCtorParam.mk | 👍 | 👍 | 1 ms | 7.3 MB | |||
| 056_reduceCtorType.mk | ✋ | ✋ | 1 ms | 7.1 MB | |||
| 057_indNegReducible | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 058_predWithTypeField | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 059_typeWithTypeField | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 060_typeWithTypeFieldPoly | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 061_typeWithTooHighTypeField.mk | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 062_emptyRec | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 063_boolRec | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 064_twoBoolRec | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 065_andRec | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 066_prodRec | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 067_pprodRec | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 068_punitRec | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 069_eqRec | 👍 | 👍 | 1 ms | 7.3 MB | |||
| 070_nRec | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 071_rbTreeRef | 👍 | 👍 | 1 ms | 9.1 MB | |||
| 072_boolPropRec | 👍 | 👍 | 1 ms | 7.3 MB | |||
| 073_BogusRecursor | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 074_existsRec | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 075_typeSingletonRecReduction | 👍 | 👍 | 1 ms | 7.3 MB | |||
| 076_sortElimPropRec | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 077_sortElimProp2Rec | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 078_boolRecEqns | 👍 | 👍 | 1 ms | 9.3 MB | |||
| 079_prodRecEqns | 👍 | 👍 | 1 ms | 9.2 MB | |||
| 080_nRecReduction | 👍 | 👍 | 1 ms | 9.1 MB | |||
| 081_listRecReduction | 👍 | 👍 | 1 ms | 9.3 MB | |||
| 082_RBTree.id_spec | 👍 | 👍 | 3 ms | 13.4 MB | |||
| 083_And.right | 👍 | 👍 | 1 ms | 7.3 MB | |||
| 084_Prod.snd | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 085_PProd.snd | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 086_PSigma.snd | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 087_projOutOfRange | ✋ | ✋ | 1 ms | 7.3 MB | |||
| 088_projNotStruct | ✋ | ✋ | 1 ms | 7.2 MB | |||
| 089_projProp1 | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 090_projProp2 | ✋ | ✋ | 1 ms | 7.4 MB | |||
| 091_projProp3 | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 092_projProp4 | ✋ | ✋ | 1 ms | 7.1 MB | |||
| 093_projProp5 | ✋ | ✋ | 1 ms | 7.3 MB | |||
| 094_projProp6 | ✋ | ✋ | 1 ms | 7.4 MB | |||
| 095_projDataIndexRec | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 096_projIndexData | ✋ | ✋ | 1 ms | 9.3 MB | |||
| 097_projIndexData2 | ✋ | ✋ | 1 ms | 9.4 MB | |||
| 098_projRed | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 099_ruleK | 👍 | 👍 | 1 ms | 7.3 MB | |||
| 100_ruleKbad | ✋ | ✋ | 1 ms | 7.2 MB | |||
| 101_ruleKAcc | ✋ | ✋ | 1 ms | 9.3 MB | |||
| 102_aNatLit | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 103_natLitEq | 👍 | 👍 | 1 ms | 6.9 MB | |||
| 104_proofIrrelevance | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 105_proofIrrelevanceBad | ✋ | ✋ | 1 ms | 7.3 MB | |||
| 106_proofIrrelevanceWhnf | 👍 | 👍 | 1 ms | 7.4 MB | |||
| 107_proofIrrelevanceUnderBinder | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 108_unitEta1 | 👍 | 👍 | 1 ms | 7.0 MB | |||
| 109_unitEta2 | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 110_unitEta3 | 👍 | 👍 | 1 ms | 7.3 MB | |||
| 111_indexedUnitEta | ✋ | ✋ | 1 ms | 7.2 MB | |||
| 112_structEta | 👍 | 👍 | 1 ms | 9.2 MB | |||
| 113_indexedStructEta | ✋ | ✋ | 1 ms | 7.1 MB | |||
| 114_funEta | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 115_funEtaDep | 👍 | 👍 | 1 ms | 7.3 MB | |||
| 116_funEtaBad | ✋ | ✋ | 1 ms | 7.2 MB | |||
| 117_reflOccLeft | ✋ | ✋ | 1 ms | 7.1 MB | |||
| 118_reflOccInIndex | ✋ | ✋ | 1 ms | 7.1 MB | |||
| 119_reduceCtorParamRefl.mk | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 120_reduceCtorParamRefl2.mk | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 121_rTreeRec | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 122_rtreeRecReduction | 👍 | 👍 | 1 ms | 9.1 MB | |||
| 123_accRecType | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 124_accRecReduction | 👍 | 👍 | 1 ms | 9.2 MB | |||
| 125_accRecNoEta | ✋ | ✋ | 1 ms | 9.1 MB | |||
| 126_quotMkType | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 127_quotIndType | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 128_quotLiftType | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 129_quotSoundType | 👍 | 👍 | 1 ms | 7.1 MB | |||
| 130_quotLiftReduction | 👍 | 👍 | 1 ms | 7.3 MB | |||
| 131_quotIndReduction | 👍 | 👍 | 1 ms | 7.2 MB | |||
| 132_dup_defs | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 133_dup_ind_def | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 134_dup_ctor_def | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 135_dup_rec_def | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 136_misnamed_rec_user | ✋ | ✋ | 1 ms | 6.8 MB | |||
| 137_dup_rec_def2 | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 138_dup_ctor_rec | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 139_DupConCon | ✋ | ✋ | 1 ms | 7.0 MB | |||
| 140_falseFromUnsafe | ✋ | ✋ | 1 ms | 6.9 MB | |||
| 141_falseFromPartial | ✋ | ✋ | 1 ms | 7.1 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: 30 ms · instructions: 5.9 M · max rss memory: 9.3 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.34.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: 12 ms · instructions: 5.3 M · max rss memory: 9.4 MB
stderr:
REJECT: [_private.Test.0.S.f] projection index out of range
Test "bugs/eta-ctor-alias"
Expected: ✋ reject · Size: 7.2 KB · Lines: 122 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Bogus proof that f = Box.mk for every f : BoxFn, where BoxFn is a
reducible alias for Bool → Box.
A checker that eta-expands a partially applied constructor (see
corner-cases/eta-ctor) has to take the missing arguments from the type of
the constructor application. Taking them from the type of the other side
without unfolding it, here BoxFn, finds no arguments to add, then compares
the (zero) given fields only, and accepts.
This bug was found by phiferd in a draft of https://github.com/leanprover/lean4/pull/15373 to the official kernel, and fixed before it was merged.
Test result: ✋ rejected · exit code 1 · wall time: 12 ms · instructions: 4.2 M · max rss memory: 7.4 MB
stderr:
REJECT: [etaCtorAlias] theorem 27: value type does not match declared type
Test "bugs/k-rec-conv"
Expected: ✋ reject · Size: 12.6 KB · Lines: 232 · lean4export: 3.1.0 · Lean: 4.34.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: 5 ms · instructions: 5.7 M · max rss memory: 9.5 MB
stderr:
REJECT: [bad] theorem 60: 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: 11 ms · instructions: 3.7 M · max rss memory: 7.2 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.34.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: 7 ms · instructions: 6.4 M · max rss memory: 9.4 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: 8 ms · instructions: 3.7 M · max rss memory: 7.2 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: 3.7 M · max rss memory: 7.2 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: 11 ms · instructions: 4.1 M · max rss memory: 7.3 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: 6 ms · instructions: 4.4 M · max rss memory: 7.3 MB
stderr:
REJECT: [proof_of_false] application argument type mismatch
Test "bugs/nested-unused-param"
Expected: ✋ reject · Size: 61.1 KB · Lines: 1.1 k · lean4export: 3.1.0 · Lean: 4.34.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: 6 ms · instructions: 16.4 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: 5 ms · instructions: 3.2 M · max rss memory: 7.0 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.34.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: 9 ms · instructions: 3.7 M · max rss memory: 7.1 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.34.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: 9 ms · instructions: 5.5 M · max rss memory: 9.4 MB
stderr:
REJECT: [imaxProjBool] cannot project a Type field from a Prop structure
Test "bugs/proj-of-stuck-prop"
Expected: ✋ reject · Size: 275.7 KB · Lines: 5.3 k · lean4export: 3.1.0 · Lean: 4.34.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: 21 ms · instructions: 75.1 M · max rss memory: 19.5 MB
stderr:
REJECT: [Native64ResultSortOwner] expected a sort
Test "bugs/proj-of-subst-prop"
Expected: ✋ reject · Size: 254.9 KB · Lines: 4.8 k · lean4export: 3.1.0 · Lean: 4.34.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: 22 ms · instructions: 73.1 M · max rss memory: 17.4 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.34.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: 3.9 M · max rss memory: 7.3 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: 76.1 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: 269.2 KB · Lines: 5.1 k · lean4export: 3.1.0 · Lean: 4.34.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: 46 ms · instructions: 70.1 M · max rss memory: 17.4 MB
stderr:
REJECT: [Issue.Owner] expected a sort
Test "cedar"
Expected: 👍 accept · Size: 832.0 MB · Lines: 15.3 M · lean4export: 3.1.0 · Lean: 4.34.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: ⌛ timeout · exit code -9 · wall time: 15.7 m · max rss memory: 0 B
stderr:
Killed after exceeding the timeout of 15.7 m. [decl #100] theorem Nat.le_refl [decl #200] theorem dite_eq_right [decl #300] theorem Nat.lt_of_succ_le [decl #400] theorem Nat.mod_two_eq_zero_or_one [decl #500] theorem Nat.exists_testBit_of_ne_zero [decl #600] def Nat.Internal.Linear.Poly [decl #700] theorem Nat.Internal.Linear.Poly.denote_append [decl #800] theorem Nat.bitwise_lt_two_pow [decl #900] def Lean.Omega.IntList.sum [decl #1000] theorem Int.lt_iff_le_and_ne [decl #1100] def Lean.Omega.IntList.set.match_1 [decl #1200] def Lean.Name.mkStr1 [decl #1300] def Lean.Omega.IntList.smul [decl #1400] def Lean.Omega.tidyConstraint [decl #1500] theorem Int.mul_ediv_assoc [decl #1600] theorem Int.neg_le_neg_iff._simp_1 [decl #1700] def Array.getInternal [decl #1800] theorem _private.Init.Data.Nat.Power2.Lemmas.0.Nat.nextPowerOfTwo_eq_iff._simp_1_10 [decl #1900] def Array.mapM [decl #2000] theorem _private.Std.Data.DHashMap.Internal.Defs.0.Std.DHashMap.Internal.Raw₀.modify._proof_1 [decl #2100] def Std.Internal.List.getValue?._f [decl #2200] def List.getElem?_eq_some_iff._f [decl #2300] theorem Std.DHashMap.Internal.List.HashesTo.hash_self [decl #2400] theorem Std.Internal.List.DistinctKeys.perm [decl #2500] theorem Std.DHashMap.Internal.Raw₀.reinsertAux_eq [decl #2600] theorem _private.Std.Data.Internal.List.Associative.0.Std.Internal.List.getEntry?_of_perm._simp_1_1 INTERN_CALLS 100000000 nodes=3359280 [decl #2700] theorem List.eraseP_cons_of_neg INTERN_CALLS 200000000 nodes=3966833 [decl #2800] theorem _private.Std.Data.DHashMap.Internal.WF.0.Std.DHashMap.Internal.toListModel.eq_1 INTERN_CALLS 300000000 nodes=3075628 [decl #2900] theorem Std.Internal.List.mem_replaceEntry_of_beq_eq_false INTERN_CALLS 400000000 nodes=854006 INTERN_CALLS 500000000 nodes=4301066 [decl #3000] theorem Std.DHashMap.Internal.Raw₀.Const.wfImp_alter INTERN_CALLS 600000000 nodes=2922479 [decl #3100] def Std.TransOrd [decl #3200] def Std.DTreeMap.Internal.Impl.balanceL!.match_1 [decl #3300] theorem Std.DTreeMap.Internal.Impl.rotateL.eq_2 [decl #3400] def Lean.Data.AC.instEvalInformationContext [decl #3500] theorem _private.Std.Data.DTreeMap.Internal.Balancing.0.Std.DTreeMap.Internal.Impl.balanced_doubleR._proof_1_1 [decl #3600] def Std.DTreeMap.Internal.Impl.contains [decl #3700] theorem Std.DTreeMap.Internal.Impl.glue._proof_18 [decl #3800] theorem _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.Const.alter._proof_15 [decl #3900] theorem Nat.add_lt_add_iff_right [decl #4000] theorem _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.filter._proof_5 [decl #4100] def _private.Std.Data.DTreeMap.Internal.Model.0.Std.DTreeMap.Internal.Impl.maxView.match_1.splitter [decl #4200] theorem UInt8.decEq._proof_2 [decl #4300] def BitVec._sizeOf_1 [decl #4400] def instHShiftLeftOfShiftLeft [decl #4500] theorem BitVec.getLsbD_eq_getElem [decl #4600] def UInt32.instOfNat [decl #4700] def Array.extract.loop._f [decl #4800] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.le_val_assemble₃ [decl #4900] theorem List.push_append_toArray [decl #5000] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.extractLsb'_append_eq_of_le._proof_1_1 [decl #5100] theorem BitVec.or_zero [decl #5200] theorem List.eq_getElem_of_length_eq_three._proof_3 [decl #5300] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.assemble₃_eq_some_iff_utf8EncodeChar_eq._simp_1_10 [decl #5400] theorem ByteArray.utf8DecodeChar?.assemble₁.congr_simp [decl #5500] theorem _private.Init.Data.ByteArray.Lemmas.0.ByteArray.append_right_inj._simp_1_1 [decl #5600] def _private.Cedar.Spec.Ext.IPAddr.0.Cedar.Spec.Ext.IPAddr.IPNet.lt.match_1 [decl #5700] def Cedar.Spec.Value.ctorIdx [decl #5800] def Cedar.Spec.Ext.Datetime.Duration.noConfusionType [decl #5900] def Cedar.Data.Map.find?.match_1 [decl #6000] def Cedar.SymCC.TermPrim.decLt [decl #6100] def Cedar.SymCC.TermType.prim.elim [decl #6200] def Cedar.SymCC.Op.set.member.elim [decl #6300] theorem _private.Cedar.SymCC.Term.0.Cedar.SymCC.instDecidableEqTermPrim.decEq._proof_28 [decl #6400] def Cedar.SymCC.Interpretation.WellFormed.WellFormedUUFInterpretation [decl #6500] def Cedar.SymCC.Factory.eq.match_1 [decl #6600] def Cedar.SymCC.Factory.option.get' [decl #6700] def _private.Cedar.SymCC.Factory.0.Cedar.SymCC.Factory.ext.datetime.val._sparseCasesOn_1 [decl #6800] def _private.Batteries.Data.UInt.0.UInt32.ext.match_1_1 [decl #6900] theorem Cedar.Thm.wf_interpretation_same_domain [decl #7000] theorem _private.Cedar.Thm.Data.List.Canonical.0.List.insertCanonical_equiv._simp_1_4 [decl #7100] theorem _private.Cedar.Thm.Data.LT.0.Cedar.Thm.CIDR.strictLT._proof_2 INTERN_CALLS 700000000 nodes=4062323 [decl #7200] def _private.Cedar.Thm.SymCC.Data.LT.0.Cedar.Thm.TermType.ltListProd_trans._f INTERN_CALLS 800000000 nodes=2354773 [decl #7300] theorem Cedar.SymCC.TermPrim.ext.injEq [decl #7400] def List.all_attach₂_snd.match_3 [decl #7500] theorem Cedar.SymCC.Factory.eq.match_1.congr_eq_1 [decl #7600] def _private.Cedar.Thm.SymCC.Term.WF.0.Cedar.SymCC.Factory.bvnego.match_1.splitter._sparseCasesOn_2 [decl #7700] def _private.Cedar.Thm.SymCC.Term.Interpret.WF.0.Cedar.Thm.interpret_term_app_wf_bvlshr.match_1_2 [decl #7800] theorem _private.Cedar.Thm.SymCC.Term.Interpret.WF.0.Cedar.Thm.interpret_term_app_wf_set_member._simp_1_7 [decl #7900] theorem _private.Cedar.Thm.SymCC.Term.Interpret.WF.0.Cedar.Thm.interpret_term_app_wf_zero_extend [decl #8000] theorem _private.Cedar.Thm.SymCC.Term.WF.0.Cedar.Thm.wf_ext_ipaddr_isV4._simp_1_4 [decl #8100] def _private.Cedar.Thm.SymCC.Term.WF.0.Cedar.SymCC.Factory.ext.datetime.val.match_1.splitter._sparseCasesOn_2 [decl #8200] theorem _private.Cedar.Thm.SymCC.Term.Interpret.WF.0.Cedar.Thm.interpret_term_app_wf_ext_datetime_ofBitVec [decl #8300] def List.min? [decl #8400] theorem _private.Cedar.Validation.Types.0.Cedar.Validation.decCedarType._mutual._proof_14 [decl #8500] def _private.Cedar.Validation.Types.0.Cedar.Validation.decProdAttrQualifiedCedarTypeList.match_1 [decl #8600] def Cedar.SymCC.TermType.isRecordType.match_1 [decl #8700] def Cedar.Spec.Expr._sizeOf_2 [decl #8800] def Std.Iter.toIterM [decl #8900] theorem String.Slice.offset_endPos [decl #9000] theorem Exists.imp [decl #9100] theorem String.Pos.Raw.isValid_iff_isUTF8FirstByte [decl #9200] theorem String.Slice.endPos_copy [decl #9300] def String.Slice.Pattern.ToForwardSearcher.DefaultForwardSearcher.instIteratorIdSearchStepOfForwardPattern.match_3 [decl #9400] def String.Slice.toInt? [decl #9500] def String.isEmpty [decl #9600] theorem Fin.val_lt_of_le [decl #9700] theorem String.Pos.next._proof_2 [decl #9800] theorem Int.eq_nat_or_neg [decl #9900] def _private.Init.Data.Array.MapIdx.0.Array.mapFinIdx_induction.match_1_10 [decl #10000] theorem Vector.get._proof_2 [decl #10100] def _private.Std.Time.Format.Basic.0.Std.Time.GenericFormat.DateBuilder.u [decl #10200] def Std.Time.Internal.Bounded.LE.ediv [decl #10300] def Std.Time.Nanosecond.instDecidableLtOffset [decl #10400] theorem _private.Std.Time.Format.DateFormat.0.Std.Time.DateFormatSymbols.enUS._proof_6 [decl #10500] def Cedar.Spec.Ext.Datetime.duration [decl #10600] def Std.DTreeMap.Internal.Cell.casesOn [decl #10700] theorem List.singleton_sublist [decl #10800] theorem _private.Std.Data.DTreeMap.Internal.Model.0.Std.DTreeMap.Internal.Impl.updateCell._proof_15 [decl #10900] def Std.DTreeMap.Internal.Impl.alterₘ [decl #11000] theorem Std.DTreeMap.Internal.Impl.explore.eq_2 [decl #11100] def _private.Init.Data.Option.Basic.0.Option.map_id.match_1_1 [decl #11200] def Std.Do.SPred.bientails [decl #11300] def USize.noConfusion [decl #11400] def Lean.Level.hash [decl #11500] def Std.TreeMap.get? [decl #11600] theorem Std.ExtDTreeMap.inductionOn [decl #11700] theorem Std.ExtDTreeMap.getKey._proof_1 [decl #11800] def Lean.Grind.CommRing.Mon.mul_nc._f INTERN_CALLS 900000000 nodes=2904462 [decl #11900] theorem Std.DHashMap.Internal.Raw₀.getₘ_eq_getValue [decl #12000] theorem Cedar.Validation.TypedExpr.getAttr.injEq [decl #12100] def Cedar.Validation.TypedExpr.toResidual.match_5 [decl #12200] def ST.pure [decl #12300] def Lean.Name.isInaccessibleUserName._f [decl #12400] def _private.Lean.Environment.0.Lean.Environment.asyncConsts [decl #12500] def String.Slice.Subslice.endExclusive [decl #12600] def Lean.instInhabitedOption.default [decl #12700] def Lean.instEmptyCollectionFVarIdMap [decl #12800] def _private.Lean.Meta.Tactic.Util.0.Lean.Meta.throwTacticEx.match_1 [decl #12900] def _private.Cedar.SymCC.TermType.0.Cedar.SymCC.TermType.ofRecordType.match_1 [decl #13000] theorem Lean.Grind.Ring.intCast_nat_sub [decl #13100] theorem Std.DTreeMap.Internal.Impl.Const.compare_minKey_modify_eq [decl #13200] theorem Std.DTreeMap.Internal.Impl.WF.insertIfNew! [decl #13300] def Lean.Parser.SyntaxNodeKindSet [decl #13400] def List.not_lex_total._f [decl #13500] theorem String.Pos.Raw.instLawfulOrderLT [decl #13600] def Lean.AttributeImplCore.name [decl #13700] theorem Std.DTreeMap.Internal.Impl.some_maxKey_eq_maxKey? [decl #13800] def _private.Init.Data.Range.Polymorphic.RangeIterator.0.Std.Rxc.Iterator.Monadic.step.match_1 [decl #13900] def Std.Rxc.Iterator.toList_eq_match.match_1 [decl #14000] theorem Std.PRange.UpwardEnumerable.not_gt_of_lt [decl #14100] theorem Nat.map_add_toList_rco [decl #14200] theorem _private.Init.Data.Range.Polymorphic.Internal.SignedBitVec.0.BitVec.Signed.sle_iff_rotate_le_rotate._proof_1_20 [decl #14300] theorem _private.Init.Data.Range.Polymorphic.Internal.SignedBitVec.0.BitVec.Signed.intMaxSealed_def [decl #14400] theorem BitVec.toInt_ofNat' [decl #14500] theorem Lean.Grind.CommRing.Mon.denote_mul_nc [decl #14600] def _private.Lean.Data.Position.0.Lean.FileMap.toPosition.match_1 [decl #14700] def List.splitOnPPrepend._f INTERN_CALLS 1000000000 nodes=3969359 [decl #14800] theorem Std.DHashMap.Equiv.inter_congr INTERN_CALLS 1100000000 nodes=3043119 [decl #14900] theorem _private.Std.Data.Internal.List.Associative.0.Std.Internal.List.Const.minKey?_alterKey_eq_self._simp_1_8 INTERN_CALLS 1200000000 nodes=1907567 [decl #15000] def List.IsInfix [decl #15100] theorem BitVec.instCommutativeHMul [decl #15200] def List.drop_drop._f [decl #15300] theorem Std.DTreeMap.Internal.Impl.getEntryGT?.eq_def [decl #15400] theorem Cedar.Spec.Residual.binaryApp.sizeOf_spec [decl #15500] def Int64.div INTERN_CALLS 1300000000 nodes=835588 [decl #15600] theorem Std.DHashMap.Internal.Raw₀.Const.getDₘ_eq_getValueD [decl #15700] theorem Std.DHashMap.Const.insertManyIfNewUnit_cons INTERN_CALLS 1400000000 nodes=3162111 [decl #15800] def _private.Init.Data.Range.Polymorphic.RangeIterator.0.Std.Rxc.Iterator.instFinitenessRelation.match_1 [decl #15900] def Lean.Compiler.LCNF.Alt._auto_13 [decl #16000] theorem USize.instTransOrd [decl #16100] theorem _private.Init.Data.Iterators.Combinators.Monadic.FilterMap.0.Std.Iterators.Types.FilterMap.instFinitenessRelation._proof_1 [decl #16200] theorem Std.TreeMap.Raw.WF.out INTERN_CALLS 1500000000 nodes=3345562 [decl #16300] def Std.DTreeMap.Internal.Impl.Const.get.match_1 [decl #16400] theorem Std.Internal.List.containsKey_insertList_disj_of_containsKey [decl #16500] theorem Std.Iterators.HetT.prun_pure._proof_1 [decl #16600] def _private.Lean.Data.Json.Basic.0.Lean.Json.beq'._sparseCasesOn_8 [decl #16700] def Lean.Name.append [decl #16800] def Float.div [decl #16900] def Lean.formatRawTerm [decl #17000] def Lean.unknownIdentifierMessageTag [decl #17100] def _private.Lean.Syntax.0.Lean.Syntax.antiquotSuffixSplice?.match_1 [decl #17200] theorem _private.Init.Data.String.OrderInstances.0.String.Slice.Pos.instAntisymmLe._proof_1 [decl #17300] def String.posLE [decl #17400] theorem Std.Internal.List.getKey?_eq_none [decl #17500] def mkRat [decl #17600] def _private.Init.Data.String.Substring.0.Substring.Raw.takeWhile.match_1 [decl #17700] theorem Int32.le_antisymm_iff [decl #17800] def Lean.Std.Format.getIndent [decl #17900] opaque _private.Lean.Parser.Basic.0.Lean.Parser.rawStrLitFnAux.initState INTERN_CALLS 1600000000 nodes=3438947 [decl #18000] theorem Std.DHashMap.Internal.Raw₀.Const.toListModel_alter [decl #18100] def Cedar.Thm.InstanceOfExtType._sparseCasesOn_2 [decl #18200] def Cedar.Spec.Expr.var.elim [decl #18300] def Cedar.Spec.decExpr [decl #18400] def Cedar.Validation.typeOfBinaryApp [decl #18500] def Cedar.Spec.satisfiedPolicies [decl #18600] theorem _private.Cedar.Validation.Types.0.Cedar.Validation.QualifiedType.liftBoolTypes._mutual.eq_def [decl #18700] theorem _private.Cedar.Validation.Subtyping.0.Cedar.Validation.lub?._sparseCasesOn_3.else_eq [decl #18800] theorem Cedar.Thm.typechecked_is_well_typed_after_lifting_binary_app._simp_1_23 [decl #18900] theorem Cedar.Thm.typechecked_is_well_typed_after_lifting_record._simp_1_1 [decl #19000] theorem Cedar.Spec.evaluate.eq_7 [decl #19100] theorem exists_eq_right_right' [decl #19200] def Cedar.Thm.wf_type_iff_wf_liftBoolTypes.match_1_3 [decl #19300] theorem Cedar.Spec.Prim.bool.injEq [decl #19400] def Cedar.Thm.type_of_like_is_sound.match_1_7 [decl #19500] def Cedar.Thm.type_of_int_arith_is_sound.match_1_11 [decl #19600] def Cedar.Thm.type_of_mem_is_soundₑ.match_1_31 [decl #19700] theorem _private.Cedar.Spec.Value.0.Cedar.Spec.Values.lt._sparseCasesOn_1.else_eq [decl #19800] def Cedar.Thm.action_type_in_eq_action_inₛ.match_1_3 [decl #19900] def Cedar.Thm.type_of_hasAttr_is_sound.match_1_7 [decl #20000] theorem Cedar.Thm.type_of_getAttr_inversion [decl #20100] theorem do_error [decl #20200] def Cedar.Thm.type_of_call_decimal_comparator_inversion.match_1_16 [decl #20300] theorem Cedar.Thm.type_of_call_duration_converter_is_sound [decl #20400] def Cedar.Thm.type_of_preserves_evaluation_results_call.match_1_33 [decl #20500] def _private.Init.Data.Int.Linear.0.Int.Internal.Linear.Poly.isUnsatEq.match_1.splitter [decl #20600] theorem Nat.ToInt.le_eq [decl #20700] def Lean.Grind.IntModule.zsmul [decl #20800] theorem Lean.Grind.Semiring.mul_zero [decl #20900] theorem _private.Init.Grind.Ordered.Ring.0.Lean.Grind.OrderedRing.le_of_intCast_le_intCast._proof_1_2 [decl #21000] def Lean.Grind.Ring.OfSemiring.natCast INTERN_CALLS 1700000000 nodes=990429 [decl #21100] theorem _private.Batteries.Data.List.Lemmas.0.List.findIdxNth_cons._proof_1_9 [decl #21200] theorem _private.Batteries.Data.List.Lemmas.0.List.countPBefore_succ._proof_1_1 [decl #21300] theorem List.mapIdx_eq_mapFinIdx [decl #21400] theorem Rat.sub._proof_2 [decl #21500] theorem Cedar.Data.Set.empty_wf [decl #21600] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.udiv_def._proof_1_1 [decl #21700] theorem Nat.add_div_left [decl #21800] theorem BitVec.le_toNat_of_msb_true [decl #21900] theorem Nat.forall_lt_succ_right'._proof_2 [decl #22000] theorem ByteArray.isSome_utf8Decode?_eq_validateUTF8 [decl #22100] theorem Vector.finRange_succ_last [decl #22200] theorem Std.DTreeMap.Equiv.union_congr [decl #22300] def _private.Lean.Level.0.Lean.Level.substParams.go.match_3 [decl #22400] def Subarray.copy [decl #22500] def Lean.Parser.FirstTokens.merge [decl #22600] def Lean.Parser.checkNoImmediateColon [decl #22700] def Lean.Parser.Term.attrKind [decl #22800] def Lean.Parser.notFollowedBy [decl #22900] def String.revFind? [decl #23000] theorem Std.DHashMap.getD_insert [decl #23100] theorem List.reverse_toArray [decl #23200] theorem UInt64.toNat_toBitVec INTERN_CALLS 1800000000 nodes=2821119 [decl #23300] def Std.HashMap.inter INTERN_CALLS 1900000000 nodes=1296171 [decl #23400] theorem UInt32.ofNat_eq_iff_mod_eq_toNat [decl #23500] def _private.Init.Data.Array.QSort.Basic.0.Array.qpartition._auto_2 [decl #23600] def _private.Cedar.Thm.SymCC.Compiler.Binary.0.Cedar.SymCC.Term.lt.match_1.splitter._sparseCasesOn_14 [decl #23700] def _private.Lean.Data.Json.Basic.0.Lean.JsonNumber.countDigits [decl #23800] def Cedar.TPE.varₚ.varₒ [decl #23900] def Cedar.TPE.extHasAttr.loop._sparseCasesOn_5 [decl #24000] def Cedar.Validation.QualifiedType.validateWellFormed._mutual [decl #24100] theorem Cedar.Spec.Residual.isTrue._sparseCasesOn_1.else_eq [decl #24200] theorem Cedar.Thm.entitiesIsConsistent_implies_refines._simp_1_3 [decl #24300] theorem Cedar.Thm.instance_of_bool_type_refl [decl #24400] def Cedar.Spec.decResidualList._f [decl #24500] def _private.Cedar.Thm.WellTyped.Residual.Soundness.0.Cedar.Spec.apply₂.match_1.splitter._sparseCasesOn_20 [decl #24600] theorem Cedar.TPE.evaluate.eq_5 [decl #24700] def _private.Cedar.Thm.TPE.PreservesTypeOf.0.Cedar.TPE.extHasAttr.loop.match_3.splitter [decl #24800] theorem Cedar.Thm.partial_eval_well_typed_app₂_values_hasTag [decl #24900] theorem _private.Cedar.Thm.Data.List.Canonical.0.List.insertCanonical_find?_key._simp_1_7 INTERN_CALLS 2000000000 nodes=110283 [decl #25000] def Cedar.Thm.error_free_evaluate_ok.match_1_20 [decl #25100] def _private.Cedar.Thm.TPE.Soundness.Unary.0.Cedar.TPE.tryDecideResidual₁.match_1.splitter._sparseCasesOn_2 [decl #25200] def _private.Cedar.Thm.TPE.Soundness.HasAttr.0.Cedar.TPE.apply₁.match_1.splitter [decl #25300] theorem Cedar.Thm.evaluatePolicies_residuals_equiv [decl #25400] def String.Slice.casesOn [decl #25500] theorem _private.Init.Data.Range.Polymorphic.Lemmas.0.Std.Rxc.Iterator.toList_eq_toList_rxoIterator._simp_1_6 INTERN_CALLS 2100000000 nodes=1075439 [decl #25600] theorem Std.DTreeMap.Internal.Impl.getEntryLE?.eq_1 [decl #25700] theorem List.minOn?_nil [decl #25800] def Lean.Meta.Simp.State.dsimpCache [decl #25900] def Lean.NameMap.instForInProdNameOfMonad [decl #26000] def Lean.mkSepArray [decl #26100] def Lean.Name.getPrefix [decl #26200] def Lean.Meta.MetaM.run [decl #26300] def Lean.trace.profiler.threshold.unitAdjusted [decl #26400] def Lean.PrettyPrinter.OneLine.continuation [decl #26500] def _private.Lean.Meta.Basic.0.Lean.MVarId.isReadOnlyOrSyntheticOpaque._sparseCasesOn_1 [decl #26600] opaque _private.Lean.Meta.DiscrTree.Main.0.Lean.Meta.DiscrTree.getMatchWithExtra.go [decl #26700] opaque Lean.Meta.Simp.MethodsRef.toMethods [decl #26800] def _private.Lean.Meta.SynthInstance.0.Lean.Meta.preprocess.norm [decl #26900] def Lean.BinderInfo.casesOn [decl #27000] def _private.Lean.Meta.Tactic.Simp.Rewrite.0.Lean.Meta.Simp.rewrite?.rewriteUsingIndex?.match_1 [decl #27100] theorem _private.Lean.Meta.LitValues.0.Lean.Meta.getFinValue?._proof_1 [decl #27200] def Lean.QuotKind.ctorIdx [decl #27300] def Lean.addTraceAsMessages [decl #27400] def Lean.Meta.Simp.simpMatchDiscrs? [decl #27500] def _private.Lean.Meta.Tactic.Simp.Rewrite.0.Lean.Meta.Simp.sevalGround._sparseCasesOn_3 [decl #27600] def _private.Lean.HeadIndex.0.Lean.instBEqHeadIndex.beq.match_1 [decl #27700] def _private.Lean.Expr.0.Lean.propEq [decl #27800] def Lean.Meta.Simp.Arith.Int.simpRel? [decl #27900] theorem _private.Init.Data.List.Lemmas.0.List.mem_flatten._simp_1_4 [decl #28000] def Cedar.SymCC.acyclicity [decl #28100] def Std.DTreeMap.Raw.get! [decl #28200] theorem Std.DHashMap.Internal.Raw.foldRev_cons INTERN_CALLS 2200000000 nodes=876091 [decl #28300] theorem List.findSomeM?_toArray INTERN_CALLS 2300000000 nodes=3967404 [decl #28400] theorem List.length_flatten [decl #28500] theorem String.Pos.ofSliceTo_endPos [decl #28600] theorem Int.size_rcc [decl #28700] theorem _private.Cedar.Validation.Typechecker.0.Cedar.Validation.instDecidableEqTypeError.decEq._proof_67 [decl #28800] theorem _private.Init.Data.String.Pattern.String.0.String.Slice.Pattern.ForwardSliceSearcher.buildTable.go._unary._proof_4 [decl #28900] theorem String.Slice.Pattern.ForwardSliceSearcher.instIteratorIdSearchStep._proof_38 [decl #29000] def Cedar.SymCC.Solver.assert [decl #29100] def _private.Cedar.SymCC.Decoder.0.Cedar.SymCC.Decoder.SExpr.decodeLitConstruct._sparseCasesOn_15 [decl #29200] def Cedar.SymCC.SymEntityData.entityUIDs.match_1 [decl #29300] def _private.Lean.Parser.Types.0.Lean.Parser.Error.expectedToString._f [decl #29400] theorem _private.Std.Time.Time.Unit.Basic.0.Std.Time.Millisecond.Offset.ofHours._proof_1 [decl #29500] def Array.mkArray3 [decl #29600] theorem _private.Init.Data.List.TakeDrop.0.List.drop_set._simp_1_1 INTERN_CALLS 2400000000 nodes=3967075 [decl #29700] def Std.DHashMap.get! [decl #29800] def String.Legacy.mkIterator INTERN_CALLS 2500000000 nodes=3295725 [decl #29900] theorem Std.Internal.List.getValue?_insertListIfNewUnit [decl #30000] theorem _private.Init.Data.String.Lemmas.Pattern.Basic.0.String.Slice.Pattern.Model.isLongestMatch_iff_isLongestMatchAt_ofSliceFrom._simp_1_2 [decl #30100] def Lean.Elab.MacroStackElem.after [decl #30200] def List.dropPrefix?.match_1 [decl #30300] def _private.Cedar.Validation.Levels.0.Cedar.Validation.TypedExpr.checkLevel._sparseCasesOn_3 [decl #30400] def Lean.Syntax.StrLit [decl #30500] def _private.Init.Data.List.Lemmas.0.List.head?_eq_some_head.match_1_1 [decl #30600] theorem Int32.toInt_neg [decl #30700] def Lean.Elab.ElabInfo.stx [decl #30800] def Cedar.SymCC.UDF.noConfusion [decl #30900] theorem Cedar.SymCC.compileIf._sparseCasesOn_1.else_eq [decl #31000] def _private.Cedar.Thm.SymCC.Compiler.Invert.0.Cedar.SymCC.compileOr.match_1.splitter._sparseCasesOn_13 [decl #31100] theorem Cedar.SymCC.compileApp₂._sparseCasesOn_5.else_eq [decl #31200] def _private.Cedar.Thm.SymCC.Compiler.WF.0.Cedar.Thm.compileApp₂_wf_types.match_1_37 [decl #31300] theorem _private.Cedar.Thm.SymCC.Compiler.WF.0.Cedar.SymCC.compileExtHasAttrRec.match_1.eq_2 [decl #31400] theorem _private.Cedar.Thm.SymCC.Compiler.WF.0.Cedar.Thm.compile_record_wf._simp_1_8 [decl #31500] theorem Cedar.Thm.compileCall_datetime_toDate_ok_implies [decl #31600] theorem Cedar.Thm.pe_eq_simplify_lit [decl #31700] def _private.Cedar.Thm.SymCC.Term.PE.0.Cedar.Thm.pe_record_get_wfl.match_1_1 [decl #31800] theorem _private.Cedar.Thm.SymCC.Term.Interpret.Factory.0.Cedar.SymCC.Factory.ite.simplify.match_1.eq_4 [decl #31900] def _private.Cedar.Thm.SymCC.Term.Interpret.Factory.0.Cedar.SymCC.Factory.option.get.match_4.splitter [decl #32000] theorem _private.Lean.Server.Rpc.RequestHandling.0.Lean.Server.builtinRpcProcedures._proof_1 [decl #32100] theorem String.Slice.Pos.Splits.copy [decl #32200] def Lean.Elab.CommandInfo._sizeOf_1 [decl #32300] def Lean.Kernel.Environment._sizeOf_1 [decl #32400] def Vector.back? [decl #32500] theorem Vector.mem_singleton INTERN_CALLS 2600000000 nodes=2122750 [decl #32600] theorem _private.Init.Data.List.Monadic.0.List.zipWithM.match_1.eq_2 [decl #32700] def _private.Init.Data.Repr.0.Prod.repr.match_1 [decl #32800] theorem Std.Iterators.Types.Take.mk.congr_simp [decl #32900] theorem Subarray.mkSlice_rci_eq_mkSlice_rco [decl #33000] theorem _private.Init.Data.Array.Sort.Basic.0.Array.MergeSort.Internal.merge.go._unary.induct_unfolding [decl #33100] theorem _private.Init.Data.List.Range.0.List.mem_range'._simp_1_8 [decl #33200] theorem Std.Internal.LawfulMonadLiftFunction.lift_map [decl #33300] def Lean.ConstantInfo.ctorElim [decl #33400] theorem Std.IterM.DefaultConsumers.forIn'.wf._unary._proof_7 INTERN_CALLS 2700000000 nodes=3099590 [decl #33500] theorem _private.Init.Data.Range.Polymorphic.RangeIterator.0.Std.Rxc.Iterator.Monadic.isPlausibleOutput_iff._simp_1_1 [decl #33600] theorem Std.DHashMap.Raw.Const.getThenInsertIfNew?_snd [decl #33700] theorem _private.Std.Do.Triple.Basic.0.Std.Do.Triple.bind._simp_1_1 [decl #33800] theorem Std.ExtDTreeMap.minKey_eq_head_keys [decl #33900] theorem _private.Init.Data.String.Lemmas.Pattern.Memcmp.0.String.Slice.Pattern.Internal.memcmpSlice_eq_true_iff._proof_1_5 [decl #34000] theorem Std.IterM.Equiv.step_eq [decl #34100] opaque _private.Lean.Meta.Transform.0.Lean.Meta.transformWithCache.visit [decl #34200] def Lean.Name.noConfusion [decl #34300] def Lean.Lsp.RpcConnected.mk.noConfusion [decl #34400] theorem Std.ReflCmp.ne_of_cmp_ne_eq [decl #34500] theorem String.Pos.offset_le_rawEndPos [decl #34600] theorem String.splits_endPos_iff [decl #34700] theorem String.Pos.Raw.isValidForSlice_slice INTERN_CALLS 2800000000 nodes=3514299 [decl #34800] def _private.Std.Data.DTreeMap.Internal.Zipper.0.Std.DTreeMap.Internal.Impl.pruneLT._f [decl #34900] def Cedar.Thm.repair_wf.match_1_6 [decl #35000] theorem List.mapUnion₂_eq_mapUnion [decl #35100] def _private.Cedar.Thm.SymCC.Concretizer.Lit.0.Cedar.Thm.wfl_term_isEntityType_implies_entityUID?_some.match_1_5 [decl #35200] def _private.Cedar.Thm.SymCC.Term.Same.0.Cedar.Thm.term_value?_exists.match_1_35 [decl #35300] def _private.Cedar.Thm.SymCC.Concretizer.Lit.0.Cedar.Thm.concretize?_wfl_δ_implies_some.match_1_14 [decl #35400] theorem List.nil_subset [decl #35500] theorem _private.Cedar.Thm.SymCC.Term.Same.0.Cedar.Thm.value?_attrValue?_none_implies_none._simp_1_1 [decl #35600] def _private.Cedar.Thm.SymCC.Concretizer.WFValue.0.Cedar.Spec.Prim.WellFormed.match_1.splitter [decl #35700] theorem _private.Cedar.Thm.SymCC.Concretizer.Same.0.Cedar.Thm.concretize?_some_same_entities._simp_1_2 [decl #35800] def _private.Cedar.Thm.SymCC.Enforcer.Enforce.0.Cedar.Thm.acyclic [decl #35900] theorem _private.Cedar.Thm.SymCC.Enforcer.Acyclicity.0.Cedar.Thm.interpret_acyclicity [decl #36000] theorem Cedar.Thm.interpret_set_subset [decl #36100] def _private.Cedar.Thm.SymCC.Enforcer.Compile.0.Cedar.Thm.compile_and_ok_implies.match_1.splitter [decl #36200] theorem Cedar.Thm.compile_interpret_in_footprint._simp_1_15 [decl #36300] def _private.Cedar.Thm.SymCC.Enforcer.Compile.0.Cedar.Thm.RecordHasAttr.match_1.splitter._sparseCasesOn_2 [decl #36400] theorem _private.Cedar.Thm.SymCC.Compiler.Call.0.Cedar.Thm.interpret_decimal_lessThan [decl #36500] theorem _private.Cedar.Thm.SymCC.Term.Interpret.Factory.0.Cedar.SymCC.Factory.ext.datetime.ofBitVec.match_1.eq_2 [decl #36600] theorem _private.Cedar.Thm.Data.List.Lemmas.0.List.find?_unique_entry._simp_1_3 [decl #36700] def _private.Cedar.Thm.SymCC.Compiler.Control.0.Cedar.Thm.compile_or_ok_implies.match_1.splitter._sparseCasesOn_4 [decl #36800] theorem Cedar.Thm.compileGetAttr_ok_typeOf_eq [decl #36900] def _private.Cedar.Thm.SymCC.Term.Same.0.Cedar.SymCC.SameResults.match_1.splitter._sparseCasesOn_3 [decl #37000] theorem _private.Cedar.Thm.SymCC.Data.BitVec.0.BitVec.neg_toInt_eq_neg_64._proof_1_1 [decl #37100] theorem _private.Cedar.Thm.SymCC.Compiler.WF.0.Cedar.Thm.hasAttrs_ok_is_bool [decl #37200] theorem _private.Cedar.Thm.SymCC.Term.Same.0.Cedar.Thm.record_value?_eq [decl #37300] theorem Cedar.Thm.pe_set_inter [decl #37400] theorem _private.Cedar.Thm.SymCC.Compiler.Binary.0.Cedar.Thm.same_set_contains [decl #37500] theorem _private.Cedar.Thm.SymCC.Compiler.Attr.0.Cedar.Thm.compile_evaluate_hasAttr_record_aux [decl #37600] def _private.Cedar.Thm.SymCC.Compiler.Record.0.Cedar.Thm.compile_evaluate_prods.match_1_4 [decl #37700] def _private.Cedar.Thm.SymCC.Compiler.Call.0.Cedar.Thm.compile_evaluate_call_ipaddr_isMulticast.match_1_5 [decl #37800] theorem Int.mul_le_of_le_ediv [decl #37900] theorem Int.dvd_negSucc [decl #38000] theorem BitVec.neg_le_intMin_of_msb_eq_true INTERN_CALLS 2900000000 nodes=2703464 [decl #38100] theorem _private.Init.Data.SInt.Lemmas.0.Int64.not_le._simp_1_1 INTERN_CALLS 3000000000 nodes=477524 INTERN_CALLS 3100000000 nodes=1093107 INTERN_CALLS 3200000000 nodes=1126653
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: 18.7 s · instructions: 273.3 G · max rss memory: 866.0 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.4 KB · Lines: 1.2 k · lean4export: 3.1.0 · Lean: 4.34.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: 16 ms · instructions: 17.7 M · max rss memory: 11.4 MB
stderr:
REJECT: [trans] theorem 200: value type does not match declared type
Test "corner-cases/alg-conv-trans-acc-left"
Expected: 🤷 either · Size: 67.4 KB · Lines: 1.2 k · lean4export: 3.1.0 · Lean: 4.34.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: 16 ms · instructions: 17.0 M · max rss memory: 11.4 MB
Test "corner-cases/alg-conv-trans-acc-right"
Expected: 🤷 either · Size: 67.6 KB · Lines: 1.2 k · lean4export: 3.1.0 · Lean: 4.34.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: 16 ms · instructions: 17.7 M · max rss memory: 11.2 MB
Test "corner-cases/alg-conv-trans-quot"
Expected: 🤷 either · Size: 8.5 KB · Lines: 169 · lean4export: 3.1.0 · Lean: 4.34.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: 13 ms · instructions: 4.7 M · max rss memory: 7.1 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.34.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: 12 ms · instructions: 4.5 M · max rss memory: 9.3 MB
Test "corner-cases/alg-conv-trans-quot-left-def"
Expected: 🤷 either · Size: 10.5 KB · Lines: 208 · lean4export: 3.1.0 · Lean: 4.34.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: 7 ms · instructions: 4.9 M · max rss memory: 9.4 MB
Test "corner-cases/alg-conv-trans-quot-right"
Expected: 🤷 either · Size: 9.0 KB · Lines: 180 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Quotient computation rule.
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 4.6 M · max rss memory: 9.4 MB
Test "corner-cases/eta-ctor"
Expected: 🤷 either · Size: 9.0 KB · Lines: 148 · lean4export: 3.1.0 · Lean: 4.34.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; the
official kernel may adopt eta-expansion of partially applied constructors,
see https://github.com/leanprover/lean4/pull/15373. For a bug in a draft
of that change, see bugs/eta-ctor-alias.
Test result: ✋ rejected · exit code 1 · wall time: 13 ms · instructions: 4.4 M · max rss memory: 7.4 MB
stderr:
REJECT: [etaCtor] def 33: value type does not match declared type
Test "corner-cases/eta-rec-struct"
Expected: 🤷 either · Size: 9.5 KB · Lines: 174 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Function eta between a recursor of a structure that is missing its major premise and a free variable.
Prod.rec (fun b c => a (b, c)) and a are convertible: eta-expanding
the former gives fun p => Prod.rec (fun b c => a (b, c)) p, whose body
reduces, by structure eta on p, to a (p.1, p.2), and that is convertible
to a p. The official kernel eta-expands only when the other side is a
lambda, so it rejects this, while it accepts the equation of each side with
fun p => a p.
The same issue with a recursor with rule K is corner-cases/eta-rule-k. The
official kernel may adopt eta-expansion of such partial recursor
applications, see https://github.com/leanprover/lean4/pull/15374 and
https://github.com/leanprover/lean4/issues/12520.
Test result: ✋ rejected · exit code 1 · wall time: 11 ms · instructions: 4.7 M · max rss memory: 7.4 MB
stderr:
REJECT: [etaRecStruct] theorem 29: 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.34.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; the
official kernel may adopt eta-expansion of such partial recursor
applications, see https://github.com/leanprover/lean4/pull/15374. The same
issue for a structure recursor is corner-cases/eta-rec-struct.
Test result: ✋ rejected · exit code 1 · wall time: 10 ms · instructions: 4.3 M · max rss memory: 7.1 MB
stderr:
REJECT: [etaRuleK] def 21: value type does not match declared type
Test "corner-cases/eta-struct-major-and"
Expected: 🤷 either · Size: 9.4 KB · Lines: 175 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Structure eta on a recursor's major premise, for a structure in Prop.
And.rec f ⟨x.1, x.2⟩ reduces to f x.1 x.2. And.rec f x, with a
variable x : P ∧ Q, also reduces to that if the major premise is expanded
by structure eta, but the official kernel does not perform structure eta on
majors whose type is a proposition, so it is stuck, and conversion is not
transitive (or congruent) here.
Eta for such majors is fine for structures that eliminate into every sort,
like And, whose fields are all proofs. It must not be done for
propositions that eliminate only into Prop, like Exists, which have no
projections. The official kernel may adopt this, see
https://github.com/leanprover/lean4/pull/15371,
https://github.com/leanprover/lean4/issues/3213 and the overall plan in
https://github.com/leanprover/lean4/issues/14977.
Test result: ✋ rejected · exit code 1 · wall time: 10 ms · instructions: 5.2 M · max rss memory: 7.3 MB
stderr:
REJECT: [andMajorEta] theorem 25: value type does not match declared type
Test "corner-cases/eta-struct-major-and-no-whnf"
Expected: 🤷 either · Size: 24.0 KB · Lines: 421 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
The combination of corner-cases/eta-struct-major-and and
corner-cases/eta-struct-major-no-whnf.
andConst h is And.rec (fun _ _ => 1) h, applied here to a proof of
True ∧ True that has no weak head normal form (built from Coquand's
paradox, via propext). A checker that eta-expands the And major premise
before reducing it accepts the equation with 1 immediately. A checker
that first reduces the major premise does not terminate, and the official
kernel today, which reduces the major and then does not eta-expand
propositions, does not terminate either.
This shows why, once eta applies to majors in Prop, the expansion has to
happen before reduction: proofs need not normalize, and otherwise that
non-termination leaks into the conversion of data. See
https://github.com/leanprover/lean4/pull/15351,
https://github.com/leanprover/lean4/pull/15371 and
https://github.com/leanprover/lean4/issues/14977.
Test result: ⌛ timeout · exit code -9 · wall time: 1.0 m · max rss memory: 0 B
stderr:
Killed after exceeding the timeout of 1.0 m. INTERN_CALLS 100000000 nodes=643 INTERN_CALLS 200000000 nodes=643 INTERN_CALLS 300000000 nodes=643 INTERN_CALLS 400000000 nodes=643 INTERN_CALLS 500000000 nodes=643 INTERN_CALLS 600000000 nodes=643 INTERN_CALLS 700000000 nodes=643 INTERN_CALLS 800000000 nodes=643 INTERN_CALLS 900000000 nodes=643 INTERN_CALLS 1000000000 nodes=643 INTERN_CALLS 1100000000 nodes=643 INTERN_CALLS 1200000000 nodes=643 INTERN_CALLS 1300000000 nodes=643 INTERN_CALLS 1400000000 nodes=643 INTERN_CALLS 1500000000 nodes=643 INTERN_CALLS 1600000000 nodes=643 INTERN_CALLS 1700000000 nodes=643 INTERN_CALLS 1800000000 nodes=643 INTERN_CALLS 1900000000 nodes=643 INTERN_CALLS 2000000000 nodes=643 INTERN_CALLS 2100000000 nodes=643 INTERN_CALLS 2200000000 nodes=643 INTERN_CALLS 2300000000 nodes=643 INTERN_CALLS 2400000000 nodes=643
Test "corner-cases/eta-struct-major-no-whnf"
Expected: 🤷 either · Size: 32.2 KB · Lines: 582 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Structure eta on a recursor's major premise, applied before trying to reduce the major to a constructor.
prodConst loopPair is Prod.rec (fun _ _ => 1) loopPair, and loopPair
is an Acc.rec whose major premise is a proof with no weak head normal form
(built from Coquand's paradox, via propext). A checker that first reduces
the major premise to weak head normal form, as the official kernel does
today, does not terminate here. Expanding the major premise to
(loopPair.1, loopPair.2) first lets the recursor fire without ever looking
at loopPair, and the equation with 1 holds.
The result of the reduction is the same either way (structure eta is part of the theory), so the question is only one of termination of the algorithm. The official kernel may adopt this order, see https://github.com/leanprover/lean4/pull/15351 and the overall plan in https://github.com/leanprover/lean4/issues/14977.
Test result: ⌛ timeout · exit code -9 · wall time: 1.0 m · max rss memory: 0 B
stderr:
Killed after exceeding the timeout of 1.0 m. INTERN_CALLS 100000000 nodes=919 INTERN_CALLS 200000000 nodes=919 INTERN_CALLS 300000000 nodes=919 INTERN_CALLS 400000000 nodes=919 INTERN_CALLS 500000000 nodes=919 INTERN_CALLS 600000000 nodes=919 INTERN_CALLS 700000000 nodes=919 INTERN_CALLS 800000000 nodes=919 INTERN_CALLS 900000000 nodes=919 INTERN_CALLS 1000000000 nodes=919 INTERN_CALLS 1100000000 nodes=919 INTERN_CALLS 1200000000 nodes=919 INTERN_CALLS 1300000000 nodes=919 INTERN_CALLS 1400000000 nodes=919 INTERN_CALLS 1500000000 nodes=919 INTERN_CALLS 1600000000 nodes=919 INTERN_CALLS 1700000000 nodes=919 INTERN_CALLS 1800000000 nodes=919 INTERN_CALLS 1900000000 nodes=919 INTERN_CALLS 2000000000 nodes=919 INTERN_CALLS 2100000000 nodes=919 INTERN_CALLS 2200000000 nodes=919 INTERN_CALLS 2300000000 nodes=919 INTERN_CALLS 2400000000 nodes=919 INTERN_CALLS 2500000000 nodes=919
Test "corner-cases/eta-unit-like-nested"
Expected: 🤷 either · Size: 16.0 KB · Lines: 256 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Unit-like eta for a structure whose fields are proofs, Unit, and (after
instantiating the parameters) a function into a unit-like structure.
The official kernel applies eta for unit-like types (any two inhabitants are
convertible) only to structures without fields. With that criterion,
conversion is not transitive: both p and q are convertible to the
same canonical inhabitant (e.g. fun _ => () or ⟨()⟩), but not to each
other. Extending the criterion to Pi types whose codomain is unit-like and
to structures whose fields are all proofs or unit-like fixes that. The
official kernel may adopt this, see https://github.com/leanprover/lean4/pull/15372,
https://github.com/leanprover/lean4/issues/2258 and the overall plan in
https://github.com/leanprover/lean4/issues/14977.
Test result: ✋ rejected · exit code 1 · wall time: 22 ms · instructions: 5.3 M · max rss memory: 9.4 MB
stderr:
REJECT: [unitLikeNested] theorem 49: value type does not match declared type
Test "corner-cases/eta-unit-like-pi"
Expected: 🤷 either · Size: 5.6 KB · Lines: 101 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Unit-like eta for a function type: any two p q : α → Unit are equal.
The official kernel applies eta for unit-like types (any two inhabitants are
convertible) only to structures without fields. With that criterion,
conversion is not transitive: both p and q are convertible to the
same canonical inhabitant (e.g. fun _ => () or ⟨()⟩), but not to each
other. Extending the criterion to Pi types whose codomain is unit-like and
to structures whose fields are all proofs or unit-like fixes that. The
official kernel may adopt this, see https://github.com/leanprover/lean4/pull/15372,
https://github.com/leanprover/lean4/issues/2258 and the overall plan in
https://github.com/leanprover/lean4/issues/14977.
Test result: ✋ rejected · exit code 1 · wall time: 12 ms · instructions: 4.1 M · max rss memory: 7.4 MB
stderr:
REJECT: [unitLikePi] theorem 20: value type does not match declared type
Test "corner-cases/eta-unit-like-proof-field"
Expected: 🤷 either · Size: 6.5 KB · Lines: 111 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Unit-like eta for a structure in Type whose only field is a proof of True.
The official kernel applies eta for unit-like types (any two inhabitants are
convertible) only to structures without fields. With that criterion,
conversion is not transitive: both p and q are convertible to the
same canonical inhabitant (e.g. fun _ => () or ⟨()⟩), but not to each
other. Extending the criterion to Pi types whose codomain is unit-like and
to structures whose fields are all proofs or unit-like fixes that. The
official kernel may adopt this, see https://github.com/leanprover/lean4/pull/15372,
https://github.com/leanprover/lean4/issues/2258 and the overall plan in
https://github.com/leanprover/lean4/issues/14977.
Test result: ✋ rejected · exit code 1 · wall time: 14 ms · instructions: 4.1 M · max rss memory: 7.2 MB
stderr:
REJECT: [unitLikeProofField] theorem 24: value type does not match declared type
Test "corner-cases/eta-unit-like-struct"
Expected: 🤷 either · Size: 6.7 KB · Lines: 115 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Unit-like eta for a structure whose only field is of type Unit.
The official kernel applies eta for unit-like types (any two inhabitants are
convertible) only to structures without fields. With that criterion,
conversion is not transitive: both p and q are convertible to the
same canonical inhabitant (e.g. fun _ => () or ⟨()⟩), but not to each
other. Extending the criterion to Pi types whose codomain is unit-like and
to structures whose fields are all proofs or unit-like fixes that. The
official kernel may adopt this, see https://github.com/leanprover/lean4/pull/15372,
https://github.com/leanprover/lean4/issues/2258 and the overall plan in
https://github.com/leanprover/lean4/issues/14977.
Test result: ✋ rejected · exit code 1 · wall time: 12 ms · instructions: 4.2 M · max rss memory: 7.2 MB
stderr:
REJECT: [unitLikeStruct] theorem 24: 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.34.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: 17 ms · instructions: 3.2 M · max rss memory: 7.2 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: 12 ms · instructions: 3.1 M · max rss memory: 7.2 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.34.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: 7 ms · instructions: 4.1 M · max rss memory: 7.3 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: 12 ms · instructions: 3.7 M · max rss memory: 7.2 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.34.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: 19 ms · instructions: 4.1 M · max rss memory: 7.3 MB
Test "corner-cases/proj-maybe-prop-past"
Expected: 🤷 either · Size: 8.1 KB · Lines: 131 · lean4export: 3.1.0 · Lean: 4.34.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: 13 ms · instructions: 4.1 M · max rss memory: 7.4 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: 12 ms · instructions: 3.4 M · max rss memory: 7.1 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: 12 ms · instructions: 3.4 M · max rss memory: 7.2 MB
Test "corner-cases/subject-reduction-redex"
Expected: 🤷 either · Size: 66.6 KB · Lines: 1.2 k · lean4export: 3.1.0 · Lean: 4.34.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: 44 ms · instructions: 18.0 M · max rss memory: 11.4 MB
Test "corner-cases/subject-reduction-reduct"
Expected: 🤷 either · Size: 65.5 KB · Lines: 1.2 k · lean4export: 3.1.0 · Lean: 4.34.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: 18 ms · instructions: 17.1 M · max rss memory: 11.3 MB
stderr:
REJECT: [reduct] application argument type mismatch
Test "cslib"
Expected: 👍 accept · Size: 2.3 GB · Lines: 42.7 M · lean4export: 3.1.0 · Lean: 4.34.0 · 📄 Declaration · 🔗 Source
The Lean Computer Science Library (CSLib).
Test result: 🚫 declined · exit code 2 · wall time: 0 ms · max rss memory: 0 B
stderr:
Declined via the `declines` field in the checker configuration; the checker was not run.
Test "init"
Expected: 👍 accept · Size: 331.5 MB · Lines: 6.5 M · lean4export: 3.1.0 · Lean: 4.34.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: 894.2 G · max rss memory: 1.1 GB
stderr:
[decl #100] def _private.Init.Prelude.0.noConfusion_of_Nat.aux.match_1_1 [decl #200] def _private.Init.Prelude.0.Nat.eq_or_lt_of_le.match_1_3 [decl #300] theorem instDecidableIff._proof_3 [decl #400] def Lean.Omega.Constraint.casesOn [decl #500] theorem Nat.add_assoc [decl #600] theorem Int.subNatNat.eq_1 [decl #700] theorem Not.imp [decl #800] def _private.Init.Data.List.Basic.0.List.zipWith.match_1.splitter [decl #900] theorem Nat.mod_zero [decl #1000] def _private.Init.Data.Int.Order.0.Int.add_le_add_left.match_1_1 [decl #1100] def _private.Init.Data.Int.DivMod.Bootstrap.0.Int.ofNat_dvd.match_1_3 [decl #1200] theorem Lean.Omega.combo_sat' [decl #1300] theorem iff_true [decl #1400] theorem Lean.Omega.Int.ofNat_le_of_le [decl #1500] theorem _private.Init.Data.Range.Polymorphic.Lemmas.0.Std.Roc.size_toArray._simp_1_1 [decl #1600] theorem List.foldlM_pure [decl #1700] theorem Std.Rxo.LawfulHasSize.size_eq_one_of_succ?_eq_none [decl #1800] theorem _private.Init.Data.Iterators.Lemmas.Basic.0.Std.Iter.inductSteps._proof_3 [decl #1900] def _private.Init.Data.Option.Lemmas.0.Option.isSome_filter.match_1_1 [decl #2000] theorem forall_eq._simp_1 [decl #2100] theorem Std.le_iff_lt_or_eq [decl #2200] theorem Std.LinearPreorderPackage.le_total [decl #2300] def Nat.instShiftRight [decl #2400] theorem Nat.add_mul_mod_self_left [decl #2500] def Nat.Internal.Linear.Poly.denote_insert._f [decl #2600] theorem _private.Init.Data.BitVec.Bootstrap.0.BitVec.getLsbD_of_ge._proof_1_3 [decl #2700] def Lean.Grind.CommRing.Mon.mul_nc [decl #2800] def List.decidableBEx.match_1 [decl #2900] def BitVec.noConfusion [decl #3000] def BitVec.zero [decl #3100] def String.append [decl #3200] theorem iff_self_or [decl #3300] def Lean.Omega.LinearCombo.instHMulInt [decl #3400] def instNegUInt8 [decl #3500] theorem UInt32.not_le._simp_1 [decl #3600] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.utf8Size_assemble₃ [decl #3700] theorem _private.Init.Data.String.Decode.0.String.utf8EncodeChar_eq_utf8EncodeCharFast._proof_1_6 [decl #3800] def _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.assemble₂_eq_some_iff_utf8EncodeChar_eq.match_1_1 [decl #3900] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.setWidth_setWidth_eq_self._proof_1_1 [decl #4000] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.toBitVec_eq_of_parseFirstByte_eq_twoMore [decl #4100] theorem _private.Init.Data.String.Decode.0.utf8DecodeChar?_eq_assemble₄._proof_1 [decl #4200] theorem _private.Init.Data.Array.Extract.0.Array.extract_append._proof_1_3 [decl #4300] theorem _private.Init.Data.List.Sublist.0.List.cons_prefix_cons._simp_1_2 [decl #4400] theorem String.Pos.Raw.lt_of_lt_of_le [decl #4500] theorem Nat.add_one_mul [decl #4600] def Lean.Grind.Semiring.toAdd [decl #4700] theorem Lean.Grind.AddCommGroup.neg_eq_iff [decl #4800] theorem List.mapFinIdx_append._proof_4 [decl #4900] theorem Array.getElem_mapIdx._proof_1 [decl #5000] theorem String.sliceTo.eq_1 [decl #5100] theorem _private.Init.Data.Range.Polymorphic.NatLemmas.0.Nat.map_add_toList_rco._simp_1_1 [decl #5200] theorem Nat.map_add_toArray_rio' [decl #5300] def _private.Init.PropLemmas.0.exists_prop.match_1_3 [decl #5400] theorem BitVec.add_comm [decl #5500] theorem Int.natAbs.eq_def [decl #5600] theorem _private.Init.Data.Int.Pow.0.Int.pow_lt_pow_of_lt._simp_1_2 [decl #5700] theorem Lean.Grind.Semiring.pow_succ [decl #5800] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.toInt_signExtend_of_le._proof_1_1 [decl #5900] def Rat.maybeNormalize [decl #6000] theorem Nat.mul_ne_zero [decl #6100] theorem _private.Init.Data.String.Basic.0.String.Slice.Pos.offset_str_le_offset_endExclusive._simp_1_1 [decl #6200] theorem String.Pos.get._proof_1 [decl #6300] theorem String.Slice.Pos.next._proof_1 [decl #6400] theorem String.empty_append [decl #6500] theorem _private.Init.Data.String.Lemmas.Pattern.Char.0.String.Slice.Pattern.Model.Char.isLongestMatchAt_iff_isLongestMatchAt_beq._simp_1_2 [decl #6600] theorem _private.Init.Data.String.Lemmas.Pattern.TakeDrop.Basic.0.String.Slice.Pos.skipWhile._unary.eq_def [decl #6700] theorem System.Platform.numBits_eq [decl #6800] theorem BitVec.neg_one_eq_allOnes [decl #6900] theorem String.Slice.startsWith_eq_forwardPatternStartsWith [decl #7000] theorem _private.Init.Data.String.Lemmas.Pattern.String.ForwardPattern.0.String.Slice.Pattern.ForwardSliceSearcher.startsWith_iff [decl #7100] def List.findIdx?.go [decl #7200] def Lean.Grind.Linarith.Expr.var.elim [decl #7300] theorem Std.Rcc.toArray_toList [decl #7400] theorem Nat.mul_dvd_mul [decl #7500] theorem List.pmap._proof_1 [decl #7600] def Std.TransOrd [decl #7700] theorem _private.Init.Data.Array.Lemmas.0.Array.foldlM_start_stop._proof_1_2 [decl #7800] theorem Array.foldl.eq_1 [decl #7900] def Std.IterM.InternalCombinators.filterMap [decl #8000] theorem String.Pos.le_ofToSlice_iff [decl #8100] theorem _private.Init.Data.String.Lemmas.Splits.0.String.Pos.splits_next_right._simp_1_1 [decl #8200] theorem _private.Init.Data.BitVec.Bitblast.0.BitVec.toInt_umod_neg_add._proof_1_4 [decl #8300] def _private.Init.Data.BitVec.Bitblast.0.BitVec.testBit_limit.match_1_1 [decl #8400] theorem BitVec.msb_neg_umod_neg_of_msb_true_of_msb_true [decl #8500] def _private.Init.Data.Nat.Basic.0.Nat.zero_lt_of_lt.match_1_1 [decl #8600] def Lean.Syntax.TSepArray.casesOn [decl #8700] def Ordering.instDecidableForallOfDecidablePred [decl #8800] def Lean.Data.AC.Expr.below [decl #8900] theorem Int.Internal.Linear.eq_of_core [decl #9000] theorem Std.Iterators.Types.Take.Rel.congr_simp [decl #9100] def _private.Init.Data.Int.DivMod.Lemmas.0.Int.neg_tdiv.match_1_1 [decl #9200] def Std.Iterators.ProductivenessRelation.ctorIdx [decl #9300] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.toInt_lt._proof_1_2 [decl #9400] theorem UInt64.sub_eq_add_neg [decl #9500] theorem Int64.le_iff_toInt_le [decl #9600] theorem List.getElem?_append_right [decl #9700] def Std.IterM.DefaultConsumers.forIn'.match_1 [decl #9800] def instInhabitedOption [decl #9900] theorem Array.mul_length_le_sum_of_min?_eq_some_int [decl #10000] def Lean.Macro.Methods.casesOn [decl #10100] theorem _private.Init.Data.Array.Basic.0.Array.isEqv._proof_1 [decl #10200] def Lean.Meta.Omega.OmegaConfig.casesOn [decl #10300] def List.mem_of_elem_eq_true._f [decl #10400] opaque IO.FS.Handle.read [decl #10500] def EStateM.tryCatch [decl #10600] theorem Float.Model.UnpackedFloat.pack.match_1.congr_eq_4 [decl #10700] theorem Int.mul_lt_mul_right [decl #10800] theorem Lean.Grind.AC.Expr.toSeq'.match_1.congr_eq_1 [decl #10900] theorem _private.Init.Data.Array.Find.0.Array.find?_flatten_eq_some_iff._simp_1_4 [decl #11000] def Vector.count [decl #11100] theorem List.count_range_1' [decl #11200] def Float.Model.UnpackedFloat.abs [decl #11300] def List.idxOf? [decl #11400] theorem List.exists_erase_eq [decl #11500] def Lean.Grind.CommRing.Mon.beq' [decl #11600] theorem Std.Iter.isPlausibleIndirectOutput_of_mem_toList [decl #11700] theorem Option.map_pbind [decl #11800] def Lean.Data.AC.EvalInformation.noConfusionType [decl #11900] theorem List.mem_attachWith [decl #12000] theorem Std.Iterators.PostconditionT.mk.inj [decl #12100] theorem String.Slice.skipPrefixWhile_eq_skipWhile_startPos [decl #12200] theorem _private.Init.Data.Vector.Lemmas.0.Vector.mem_iff_getElem?._simp_1_1 [decl #12300] def Lean.Grind.CommRing.Mon.denote' [decl #12400] theorem Lean.Grind.CommRing.Poly.addConst.go.induct_unfolding [decl #12500] theorem List.Pairwise.sublist [decl #12600] theorem Int64.toNatClampNeg_ofInt_of_le [decl #12700] def Lean.Grind.Linarith.Poly.noConfusion [decl #12800] def Lean.Grind.CommRing.instBEqPoly.beq._sparseCasesOn_1 [decl #12900] theorem BitVec.ushiftRight_and_distrib [decl #13000] theorem Lean.Grind.Order.le_eq_true [decl #13100] theorem String.Slice.Pattern.Model.revMatchAt?_cast [decl #13200] theorem _private.Init.Data.List.Nat.Erase.0.List.getElem?_eraseIdx._proof_1_4 [decl #13300] theorem _private.Init.Data.List.ToArray.0.Array.zipWithMAux.eq_1 [decl #13400] theorem _private.Init.Data.Nat.Fold.0.Nat.any.eq_2 [decl #13500] def ISize.ofIntLE [decl #13600] theorem SubarrayIterator.step._proof_6 [decl #13700] theorem _private.Init.Data.Array.Sort.Basic.0.Subarray.mergeSort._unary.eq_def INTERN_CALLS 100000000 nodes=1570660 [decl #13800] theorem List.foldl_push_eq_append' [decl #13900] def _private.Init.Data.Nat.Basic.0.Nat.or_exists_add_one.match_1_1 [decl #14000] theorem String.Slice.Pos.ne_next._simp_1 [decl #14100] def Std.IterM.DefaultConsumers.forIn'.wf [decl #14200] theorem Std.Rxc.Iterator.Monadic.isPlausibleOutput_iff [decl #14300] def instXorOpISize [decl #14400] def Lean.Name.sizeOf [decl #14500] def Lean.Syntax.SepArray.casesOn [decl #14600] theorem String.Slice.Pos.le_ofSliceTo_iff [decl #14700] def SeqLeft.noConfusionType [decl #14800] def _private.Init.Data.Format.Basic.0.Std.Format.instBEqFlattenAllowability.beq._sparseCasesOn_1 [decl #14900] theorem List.getElem_insertIdx_self [decl #15000] theorem List.getElem?_replicate [decl #15100] theorem _private.Init.Data.Nat.Lemmas.0.Nat.lt_sub_iff_add_lt'._proof_1_1 [decl #15200] theorem List.pmap_reverse._proof_1 [decl #15300] theorem Lean.Grind.instCommRingInt64._proof_3 [decl #15400] theorem Lean.Grind.Linarith.Poly.combine._unary._proof_2 [decl #15500] theorem String.Slice.Pattern.Model.Char.isLongestRevMatchAtChain_startPos_endPos_iff_toList [decl #15600] def Min.oppositeMax [decl #15700] theorem List.any_nil [decl #15800] theorem _private.Init.Data.Range.Polymorphic.Lemmas.0.Std.Rio.mem_toArray_iff_mem._simp_1_2 [decl #15900] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.getLsbD_cons._proof_1_6 [decl #16000] theorem _private.Init.Data.List.Nat.TakeDrop.0.List.drop_set_of_lt._proof_1_1 [decl #16100] theorem _private.Init.Data.String.Lemmas.Pattern.Basic.0.String.Slice.Pattern.Model.matchAt?_cast._simp_1_1 [decl #16200] theorem UInt64.and_neg_one [decl #16300] theorem Ordering.isGE_eq_false._simp_1 [decl #16400] theorem _private.Init.Data.Option.Attach.0.Option.instLawfulMonadAttach._simp_2 [decl #16500] theorem Lean.Grind.CommRing.Poly.insert.go.induct_unfolding [decl #16600] theorem Int.natAbs_emod_two [decl #16700] theorem Rat.intCast_neg_iff [decl #16800] theorem Rat.num_inv [decl #16900] theorem LawfulApplicative.seq_pure [decl #17000] theorem Std.Packages.LinearPreorderOfOrdArgs.lt_iff [decl #17100] theorem monadLift_seqLeft [decl #17200] def Lean.Data.AC.Variable.mk.noConfusion [decl #17300] opaque String.Internal.get [decl #17400] theorem String.Slice.skipPrefix?_congr [decl #17500] theorem _private.Init.Data.Range.Polymorphic.RangeIterator.0.Std.Rxc.Iterator.instIteratorLoop.loop.wf.eq_1 [decl #17600] theorem _private.Init.Data.String.Lemmas.Pattern.TakeDrop.Char.0.String.Slice.endsWith_char_iff_exists_append._simp_1_1 [decl #17700] def Int32.instRxcHasSize DECLINE: [_private.Init.Data.Range.Polymorphic.SInt.0.Int32.instRxcHasSize_eq] WHNF depth limit
Test "init-prelude"
Expected: 👍 accept · Size: 3.6 MB · Lines: 64.1 k · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
The Init.Prelude module export.
Test result: 👍 accepted · exit code 0 · wall time: 201 ms · instructions: 1.2 G · max rss memory: 61.4 MB
stderr:
[decl #100] def Nat.ble [decl #200] def Nat.eq_or_lt_of_le._f [decl #300] def Lean.Macro.instInhabitedMethods [decl #400] def OrOp.noConfusion [decl #500] def SMul.noConfusion [decl #600] def _private.Init.Prelude.0.Lean.MacroScopesView.review.match_1 [decl #700] def Lean.Syntax.Preresolved.ctorElimType [decl #800] def MonadFunctorT.mk.noConfusion [decl #900] def HXor.recOn [decl #1000] def Option.ctorElim [decl #1100] def MonadWithReaderOf.mk.noConfusion [decl #1200] def Inhabited.noConfusion [decl #1300] def modifyThe [decl #1400] def Lean.Macro.Context.noConfusionType [decl #1500] def MProd.recOn [decl #1600] def Lean.Syntax.SepArray.elemsAndSeps
Test "mathlib"
Expected: 👍 accept · Size: 5.8 GB · Lines: 109.8 M · lean4export: 3.1.0 · Lean: 4.34.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: 37.3 m · instructions: 14.3 T · max rss memory: 8.7 GB
stderr:
[decl #100] theorem _private.Init.Data.List.Perm.0.List.Perm.mem_iff._simp_1_2 [decl #200] theorem Multiset.Mem._proof_1 [decl #300] def List.filter._f [decl #400] def _private.Init.Prelude.0.Nat.lt_or_ge.match_1_5 [decl #500] def Nat.modCore.go._f [decl #600] def Int.instSub [decl #700] theorem Nat.not_le_of_gt [decl #800] def List.find?._f [decl #900] theorem Int.natAbs_mul [decl #1000] def _private.Init.Data.Int.DivMod.Bootstrap.0.Int.add_mul_ediv_right.match_1_1 [decl #1100] theorem Int.dvd_neg [decl #1200] theorem Lean.Omega.IntList.sum_smul [decl #1300] def List.instGetElemNatLtLength [decl #1400] def String.utf8ByteSize [decl #1500] def List.getLastD.match_1 [decl #1600] def _private.Init.Data.List.Pairwise.0.List.Pairwise.sublist.match_1_7 [decl #1700] def _private.Init.PropLemmas.0.exists_or.match_1_3 [decl #1800] theorem Lean.Grind._simp_1 [decl #1900] theorem Lean.Data.AC.evalList.eq_def [decl #2000] def Int.instMax [decl #2100] theorem _private.Init.Data.Nat.Lemmas.0.Nat.succ_mod_succ_eq_zero_iff._simp_1_4 [decl #2200] def List.reverseAux._f [decl #2300] def Nat.properDivisors [decl #2400] theorem forall_exists_index [decl #2500] theorem Set.nonempty_iff_ne_empty._simp_1 [decl #2600] def AddMonoidWithOne.toNatCast [decl #2700] def SubNegMonoid.zsmul_zero'._autoParam [decl #2800] def Finsupp.instAdd [decl #2900] theorem Pi.addCommSemigroup._proof_1 [decl #3000] theorem List.sublist_cons_self [decl #3100] theorem PSigma.eta [decl #3200] def SeqLeft.seqLeft [decl #3300] theorem Multiset.add_le_add_right [decl #3400] theorem _private.Mathlib.Data.List.Lattice.0.List.bagInter.match_1.eq_2 [decl #3500] def decidable_of_iff' [decl #3600] theorem List.count_eq_length [decl #3700] theorem _private.Mathlib.Data.Finsupp.Single.0.Finsupp.single_eq_pi_single._simp_1_1 [decl #3800] def AddMonoidHom.add [decl #3900] theorem Set.eq_of_mem_singleton [decl #4000] theorem inf_of_le_left [decl #4100] theorem instCommutativeMax_mathlib [decl #4200] def Set.instCompleteAtomicBooleanAlgebra.match_1 [decl #4300] def _private.Mathlib.Data.Finset.Insert.0.Finset.cons_induction.match_1_1 [decl #4400] theorem Nat.cast_one [decl #4500] def RingHom.comp [decl #4600] theorem Finsupp.distribMulAction._proof_3 [decl #4700] theorem Finsupp.lsingle._proof_1 [decl #4800] theorem MvPolynomial.monomial_single_add [decl #4900] theorem Prod.lex._proof_1 [decl #5000] def Lean.Grind.CommRing.denoteInt [decl #5100] theorem Lean.Omega.LinearCombo.coordinate_eval_2 [decl #5200] theorem Lean.Grind.CommRing.Poly.denote.match_1.congr_eq_2 [decl #5300] theorem Lean.Grind.Ring.intCast_pow [decl #5400] def List.pairwise_pwFilter._f [decl #5500] def Multiset.sigma [decl #5600] def _private.Mathlib.Data.Multiset.ZeroCons.0.Multiset.singleton_le.match_1_1 [decl #5700] def Submodule.instInfSet [decl #5800] theorem Function.Injective.subNegMonoid._proof_6 [decl #5900] theorem neg_eq_of_add_eq_zero_right [decl #6000] def TypeVec.prod.map [decl #6100] theorem MultilinearMap.instAddMonoid._proof_6 [decl #6200] theorem _private.Mathlib.Data.Fin.Tuple.Basic.0.Fin.cons_update._simp_1_1 [decl #6300] theorem AddSubmonoid.map._proof_1 [decl #6400] def ConditionallyCompleteLattice.toInfSet [decl #6500] theorem RingCat.instConcreteCategoryRingHomCarrier._proof_1 [decl #6600] theorem CategoryTheory.NatTrans.ext [decl #6700] theorem WithBot.coe_ne_bot [decl #6800] theorem AddAction.zero_vadd [decl #6900] theorem Submodule.addSubgroupClass [decl #7000] theorem AddCon.addMonoid._proof_4 [decl #7100] def HasDistribNeg.toInvolutiveNeg [decl #7200] theorem Ideal.Quotient.ringCon._proof_3 [decl #7300] theorem Ideal.Quotient.ring._proof_11 [decl #7400] theorem Ideal.Quotient.ring._proof_21 [decl #7500] theorem AddCon.ext' [decl #7600] def Function.Injective.nonAssocSemiring [decl #7700] def minDefault [decl #7800] theorem Finset.insert_erase [decl #7900] theorem mul_right_cancel [decl #8000] def MulEquiv.toEquiv [decl #8100] theorem CategoryTheory.Functor.const._proof_3 [decl #8200] theorem CategoryTheory.Limits.coprod.inr_map [decl #8300] def Std.DTreeMap.Internal.Impl.insertMin.match_3 [decl #8400] def _private.Std.Data.DTreeMap.Internal.Balancing.0.Std.DTreeMap.Internal.Impl.balanceL!.match_1.splitter [decl #8500] theorem _private.Std.Data.DTreeMap.Internal.Balancing.0.Std.DTreeMap.Internal.Impl.balance!_eq_balanceₘ._proof_1_39 [decl #8600] theorem Std.DTreeMap.Internal.Impl.balanceR.match_1.congr_eq_2 [decl #8700] def Std.DTreeMap.Internal.Impl.minView.match_1 [decl #8800] def Std.DTreeMap.Internal.Impl.balance [decl #8900] def Std.DTreeMap.Internal.Impl.modify [decl #9000] theorem Std.DTreeMap.Internal.Impl.insertMax._proof_7 [decl #9100] def AndOp.and [decl #9200] def UInt8.lt [decl #9300] theorem Nat.lt_add_of_pos_right [decl #9400] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.helper [decl #9500] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.assemble₃._simp_1 [decl #9600] theorem UInt8.toNat_ofNat' [decl #9700] theorem Array.extract.loop.eq_def [decl #9800] theorem List.getElem_append_left [decl #9900] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.extractLsb'_append_eq_ite._proof_1_8 [decl #10000] theorem BitVec.setWidth_ushiftRight_eq_extractLsb [decl #10100] theorem List.eq_getElem_of_length_eq_three._proof_2 [decl #10200] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.isInvalidContinuationByte_getElem_utf8EncodeChar_two_of_utf8Size_eq_three [decl #10300] theorem ByteArray.getElem_extract [decl #10400] theorem _private.Init.Data.ByteArray.Lemmas.0.ByteArray.append_right_inj._simp_1_1 [decl #10500] def instSubUSize [decl #10600] theorem Nat.isPowerOfTwo_nextPowerOfTwo [decl #10700] def Std.DHashMap.Internal.Raw₀.Const.modify [decl #10800] def Float.Model.Format.numBits [decl #10900] def Lean.Meta.instBEqInfoCacheKey.beq [decl #11000] theorem DivInvOneMonoid.inv_one [decl #11100] theorem isLUB_singleton [decl #11200] theorem WithBot.addMonoidWithOne._proof_2 [decl #11300] def List.findIdx.go._f [decl #11400] theorem Function.Semiconj.id_right [decl #11500] theorem _private.Mathlib.Data.Fintype.Perm.0.fintypePerm._simp_1 [decl #11600] def Fin.fintype [decl #11700] theorem _private.Mathlib.GroupTheory.Perm.Sign.0.Equiv.Perm.signBijAux_surj._simp_1_4 [decl #11800] theorem Nat.strictMono_cast [decl #11900] theorem isConj_iff [decl #12000] theorem Equiv.Perm.sign_swap [decl #12100] theorem Finset.prod_image [decl #12200] theorem Fintype.prod_equiv [decl #12300] theorem Matrix.IsHermitian.eq [decl #12400] theorem _private.Mathlib.LinearAlgebra.Matrix.NonsingularInverse.0.Matrix.isUnit_iff_isUnit_det._simp_1_1 [decl #12500] theorem _private.Mathlib.Data.Fintype.Pi.0.Fintype.mem_piFinset._simp_1_4 [decl #12600] theorem Int.eq_nat_or_neg [decl #12700] theorem MulOpposite.unop_op [decl #12800] def Matrix.instAlgebra [decl #12900] def Rat.instNatCast [decl #13000] theorem lt_of_mul_lt_mul_left [decl #13100] theorem AddCommGroup.toAddCancelCommMonoid._proof_1 [decl #13200] theorem _private.Mathlib.Algebra.GroupWithZero.Defs.0.isCancelMulZero_iff_forall_isRegular._simp_1_1 [decl #13300] theorem Field.isDomain [decl #13400] def CauSeq.instOne [decl #13500] theorem Nat.eq_of_mul_eq_mul_left [decl #13600] theorem _private.Init.Data.Nat.Div.Lemmas.0.Nat.div_mul_self_eq_mod_sub_self._proof_1_1 [decl #13700] def Int.tdiv [decl #13800] theorem Rat.divInt_mul_right [decl #13900] theorem _private.Init.Data.Rat.Lemmas.0.Rat.mul_inv_cancel._simp_1_3 [decl #14000] theorem Rat.add_nonneg [decl #14100] theorem AddUnits.val_neg [decl #14200] theorem Semiring.toGrindSemiring._proof_10 [decl #14300] def Lean.Grind.CommRing.Mon.mul_k [decl #14400] def Lean.Grind.Linarith.Poly._sizeOf_inst [decl #14500] theorem Lean.Grind.OrderedAdd.nsmul_nonneg [decl #14600] def _private.Mathlib.Algebra.Order.CauSeq.Basic.0.CauSeq.not_limZero_of_pos.match_1_3 [decl #14700] theorem CauSeq.inf_eq_right [decl #14800] theorem Filter.comk._proof_2 [decl #14900] theorem instCanLiftIntNatCastLeOfNat [decl #15000] theorem antitone_comp_ofDual_iff [decl #15100] theorem _private.Mathlib.Order.Filter.Basic.0.Filter.instCoframe._simp_5 [decl #15200] theorem Filter.eventuallySubset_iff_inf_principal_le [decl #15300] theorem Set.preimage_univ [decl #15400] theorem interior_eq_nhds' [decl #15500] theorem nhdsWithin_Ioo_eq_nhdsGT [decl #15600] theorem inv_lt_inv₀ [decl #15700] theorem AddMonoidHom.instAddCommMonoid._proof_5 [decl #15800] theorem Equiv.subLeft_apply [decl #15900] theorem instSeparatelyContinuousMulOfContinuousMul [decl #16000] def Quotient.mk' INTERN_CALLS 100000000 nodes=201308 [decl #16100] theorem CauSeq.inv_mul_cancel [decl #16200] def CauSeq.Completion.Cauchy.commRing [decl #16300] theorem Int.ceil_le [decl #16400] theorem CauSeq.mul_pos [decl #16500] theorem IsUnit.dvd._simp_1 [decl #16600] theorem _private.Mathlib.Topology.MetricSpace.Pseudo.Defs.0.dist_nonneg' [decl #16700] theorem isBounded_le_nhds [decl #16800] theorem compl_iSup [decl #16900] theorem uniformity_eq_symm [decl #17000] theorem Nonneg.add._proof_1 [decl #17100] theorem ENNReal.instAddCommMonoidWithOne._proof_5 [decl #17200] theorem WithTop.instSemigroupWithZero._proof_1 [decl #17300] def WithTop.addCommMonoidWithOne [decl #17400] theorem WithTop.semilatticeSup._proof_3 [decl #17500] theorem le_sub_comm [decl #17600] theorem Set.OrdConnected.out' [decl #17700] def ENNReal.instBot [decl #17800] theorem Option.exists [decl #17900] theorem ENNReal.coe_inv_le [decl #18000] def ENNReal.instSub [decl #18100] theorem Prod.pseudoEMetricSpaceMax._proof_2 [decl #18200] def _private.Mathlib.Algebra.Order.Archimedean.Basic.0.instIsDirectedOrder.match_1 [decl #18300] theorem Metric.nhds_basis_closedBall [decl #18400] def nhdsSet [decl #18500] theorem isClosed_of_closure_subset [decl #18600] theorem _private.Mathlib.Data.Bool.Set.0.Bool.range_eq._proof_1_1 [decl #18700] theorem UniformSpace.mem_ball_comp [decl #18800] def _private.Mathlib.Analysis.Asymptotics.Basic.0.Asymptotics.IsBigO.exists_pos.match_1_1 [decl #18900] theorem Complex.addGroupWithOne._proof_9 [decl #19000] theorem Filter.Eventually.filter_mono [decl #19100] theorem Mathlib.Tactic.Push.not_exists._simp_1 [decl #19200] theorem AddGroupSeminorm.map_zero' [decl #19300] def starRingEnd [decl #19400] theorem Real.sqrt_mul_self_eq_abs [decl #19500] theorem Finset.sum_empty [decl #19600] theorem Real.sqrt_div [decl #19700] theorem neg_neg_of_pos [decl #19800] def instCommSemiringNNRat._aux_15 [decl #19900] theorem NNRat.instSemifield._proof_1 [decl #20000] theorem AbsoluteValue.sum_le [decl #20100] theorem _private.Mathlib.Algebra.Order.Ring.WithTop.0.WithTop.mul_left_strictMono._simp_1_3 [decl #20200] theorem abs_sub_sup_add_abs_sub_inf [decl #20300] theorem SetRel.rfl [decl #20400] theorem Complex.instAlgebraOfReal._proof_1 [decl #20500] def Prod.instPreorder [decl #20600] theorem tendsto_iff_dist_tendsto_zero [decl #20700] theorem Nat.instTrivialStar [decl #20800] theorem Monotone.tendsto_atTop_atTop [decl #20900] theorem OrderDual.forall._simp_1 [decl #21000] theorem Subtype.preconnectedSpace [decl #21100] theorem Mathlib.Tactic.FieldSimp.NF.mul_eq_eval₁ [decl #21200] theorem _private.Mathlib.Analysis.Complex.Trigonometric.0.Complex.cos_bound._proof_1_3 [decl #21300] theorem beq_eq_false_iff_ne._simp_1 [decl #21400] theorem _private.Mathlib.Analysis.Complex.Trigonometric.0.Real.abs_sin_le_one._simp_1_2 [decl #21500] theorem Asymptotics.IsBigOWith.eq_zero_imp [decl #21600] theorem IsGLB.mem_closure [decl #21700] theorem Complex.arg_mem_Ioc [decl #21800] theorem Asymptotics.IsBigOWith.of_neg_left [decl #21900] theorem NNReal.coe_mono [decl #22000] theorem div_pow [decl #22100] theorem _private.Mathlib.Order.Interval.Set.OrdConnectedComponent.0.Set.dual_ordConnectedSection._simp_1_6 [decl #22200] theorem Real.tendsto_mul_exp_add_div_pow_atTop [decl #22300] def IsChain [decl #22400] def Cardinal [decl #22500] theorem nonempty_unique [decl #22600] theorem instCommSemiringENat._proof_9 [decl #22700] def instTopENat._aux_1 [decl #22800] def _private.Mathlib.Order.Zorn.0.zorn_le₀.match_1_3 [decl #22900] def _private.Mathlib.Order.WellFounded.0.WellFounded.not_lt_min.match_1_1 [decl #23000] def _private.Init.Data.Option.Lemmas.0.Option.some_ne_none.match_1_1 [decl #23100] def Cardinal.toNat [decl #23200] theorem ContinuousLinearMap.sub._proof_1 [decl #23300] theorem Module.Basis.injective [decl #23400] theorem _private.Mathlib.Data.Finsupp.Basic.0.Finsupp.equivMapDomain_single._simp_1_1 [decl #23500] theorem LinearIndependent.comp [decl #23600] def Finsupp.supported [decl #23700] theorem _private.Mathlib.SetTheory.Cardinal.Cofinality.Basic.0.Order.cof.eq_1 [decl #23800] theorem iff_true_left [decl #23900] theorem instIsWellOrderEmptyRelationOfSubsingleton [decl #24000] theorem noMaxOrder_iff [decl #24100] theorem InitialSeg.exists_sum_relIso [decl #24200] theorem Ordinal.lift_card [decl #24300] def _private.Init.Data.Ord.Basic.0.lt_iff_not_gt_and_ne_of_antisymm_of_total_of_not_le.match_1_2 [decl #24400] def _private.Mathlib.Order.Basic.0.LinearOrder.toPartialOrder_injective.match_1_1 [decl #24500] theorem ULift.down_le [decl #24600] theorem Order.IsNormal.map_iSup [decl #24700] theorem _private.Mathlib.SetTheory.Cardinal.Cofinality.Basic.0.Order.cof_eq_zero_iff._simp_1_2 [decl #24800] def List.Vector.get [decl #24900] theorem LinearEquiv.range [decl #25000] theorem Set.finite_subset_iUnion [decl #25100] theorem Set.disjoint_singleton_left._simp_1 [decl #25200] def LinearEquiv.ofInjective [decl #25300] theorem Finset.biUnion_singleton [decl #25400] def IsNoetherian.casesOn [decl #25500] theorem Finset.sup_mono [decl #25600] theorem Fintype.ofIsEmpty._proof_1 [decl #25700] theorem Ideal.ne_top_iff_one [decl #25800] theorem Submodule.liftQ_mkQ [decl #25900] theorem _private.Mathlib.LinearAlgebra.Prod.0.LinearMap.ker_coprod_of_disjoint_range._simp_1_4 [decl #26000] theorem Finsupp.sumFinsuppLEquivProdFinsupp._proof_2 [decl #26100] theorem _private.Mathlib.Data.Set.Inclusion.0.Set.eq_of_inclusion_surjective._proof_1_2 [decl #26200] def DFinsupp.instDFunLike [decl #26300] theorem Finset.Nonempty.ne_empty [decl #26400] theorem FiniteDimensional.span_singleton [decl #26500] theorem LinearMap.comp_zero [decl #26600] theorem OreLocalization.mul_smul [decl #26700] def IsLocalizedModule.fromLocalizedModule [decl #26800] def Submonoid.instInfSet [decl #26900] theorem CategoryTheory.cancel_epi INTERN_CALLS 200000000 nodes=1146310 [decl #27000] theorem Mathlib.Tactic.Bicategory.evalWhiskerRight_comp [decl #27100] theorem EquivBEq.toPartialEquivBEq [decl #27200] theorem Std.DTreeMap.Internal.Impl.Ordered.right [decl #27300] theorem Std.DTreeMap.Internal.Impl.updateCell._proof_25 [decl #27400] theorem Std.DTreeMap.Internal.Impl.ordered_insert [decl #27500] def _private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.link.match_3.splitter [decl #27600] theorem PartialEquivBEq.trans [decl #27700] theorem DirectLimit.exists_eq_mk₃ [decl #27800] theorem ContinuousMultilinearMap.funLike._proof_1 [decl #27900] theorem FilterBasis.filter._proof_1 [decl #28000] theorem IsGLB.mem_of_isClosed [decl #28100] theorem Finset.piecewise_eq_of_notMem [decl #28200] theorem Filter.pi_eq_bot._simp_1 [decl #28300] theorem Topology.IsOpenEmbedding.image_mem_nhds [decl #28400] def instCompleteLatticeUniformSpace.match_1 [decl #28500] theorem UniformOnFun.gen_eq_preimage_restrict [decl #28600] theorem ContinuousMultilinearMap.seminormedAddCommGroup._proof_1 [decl #28700] theorem le_sup_sdiff [decl #28800] theorem MultilinearMap.constOfIsEmpty._proof_2 [decl #28900] def Std.DHashMap.contains [decl #29000] def Lean.instEmptyCollectionFVarIdMap._aux_1 [decl #29100] def UInt8.IsUTF8FirstByte [decl #29200] theorem _private.Init.Data.String.Basic.0.String.Pos.Raw.isValid_iff_exists_append._simp_1_2 [decl #29300] theorem _private.Init.Data.String.Basic.0.String.Pos.Raw.isValid_copy_iff._proof_1_8 [decl #29400] def String.Slice.Pos.str [decl #29500] theorem String.toList_inj [decl #29600] def _private.Init.Data.String.Substring.0.Substring.Raw.drop.match_1 [decl #29700] def String.Slice.Pattern.ToForwardSearcher.DefaultForwardSearcher.iter [decl #29800] def Lean.EnvExtension.asyncMode [decl #29900] def String.instDecidableLePos_1 [decl #30000] def MonadExcept.throw [decl #30100] def Lean.Core.instAddMessageContextCoreM [decl #30200] def Lean.ScopedEnvExtension.instInhabitedDescr [decl #30300] def _private.Lean.Meta.WHNF.0.Lean.Meta.matchConstAux.match_4 [decl #30400] def Lean.Meta.Context.localInstances [decl #30500] def _private.Lean.Expr.0.Lean.Expr.getAppNumArgsAux._f [decl #30600] def Lean.MonadMCtx.modifyMCtx [decl #30700] def Lean.SimplePersistentEnvExtension.instInhabited._aux_1 [decl #30800] def EStateM [decl #30900] def Lean.MacroScopesView.scopes [decl #31000] theorem IsLocallyConstant.neg [decl #31100] theorem LocallyConstant.coeFnMonoidHom._proof_2 [decl #31200] theorem LocallyConstant.instAddZeroClass._proof_3 [decl #31300] theorem LocallyConstant.comap_injective INTERN_CALLS 300000000 nodes=2203000 [decl #31400] def MonoidAlgebra.coeffAddEquiv [decl #31500] def FreeAddMonoid.ofList [decl #31600] theorem AddCon.addConGen_le [decl #31700] theorem TensorProduct.AlgebraTensorModule.curry._proof_1 [decl #31800] theorem Std.DHashMap.Internal.Raw.contains_eq [decl #31900] theorem Std.DHashMap.Internal.exists_bucket INTERN_CALLS 400000000 nodes=4229030 [decl #32000] theorem Std.Internal.List.containsKey_replaceEntry INTERN_CALLS 500000000 nodes=3326444 INTERN_CALLS 600000000 nodes=3905155 [decl #32100] theorem _private.Std.Data.DHashMap.Internal.WF.0.Std.DHashMap.Internal.computeSize.eq_1 INTERN_CALLS 700000000 nodes=2783720 INTERN_CALLS 800000000 nodes=333241 [decl #32200] theorem Std.Internal.List.DistinctKeys.insertEntry INTERN_CALLS 900000000 nodes=3497314 [decl #32300] theorem Std.Internal.List.getValueCast_cons [decl #32400] theorem Float.Model.UnpackedFloat.unpack._proof_4 [decl #32500] theorem LinearMap.compr₂._proof_1 INTERN_CALLS 1000000000 nodes=3542776 [decl #32600] theorem EuclideanDomain.mod_eq_zero [decl #32700] def AddSubmonoid.subtype [decl #32800] theorem SubringClass.toRing._proof_10 [decl #32900] theorem AddMonoidAlgebra.mapDomain_mul [decl #33000] theorem finSuccEquiv'._proof_4 [decl #33100] theorem Polynomial.sum_X_index [decl #33200] theorem List.mem_range._simp_1 [decl #33300] theorem Lean.Grind.instAddRightCancelNat [decl #33400] theorem GaloisInsertion.liftCompleteLattice._proof_1 [decl #33500] theorem AddSubgroup.instCompleteLattice._proof_5 [decl #33600] theorem SubMulAction.isScalarTower' [decl #33700] theorem _private.Mathlib.SetTheory.Cardinal.Subfield.0.Subfield.rangeOfWType._proof_3 [decl #33800] theorem Lean.Grind.ofNat_FinZero [decl #33900] def Lean.Grind.CommRing.Poly.mulMonC.go [decl #34000] theorem RingHom.op._proof_9 [decl #34100] def MulOpposite.instDivisionRing [decl #34200] theorem Cardinal.cantor' [decl #34300] def Matrix.detp [decl #34400] theorem AddUnits.instAddMonoid._proof_1 [decl #34500] theorem _private.Mathlib.LinearAlgebra.Matrix.SemiringInverse.0.Matrix.isAddUnit_detp_mul_detp._simp_1_5 [decl #34600] theorem ZeroMemClass.coe_eq_zero._simp_1 [decl #34700] def Matrix.toLin' [decl #34800] theorem Module.Projective.of_split INTERN_CALLS 1100000000 nodes=1216502 [decl #34900] def Lean.Lsp.InlayHintTooltip._sizeOf_1 [decl #35000] theorem _private.Mathlib.Order.Lattice.Nat.0.Nat.instConditionallyCompleteLinearOrderBot._simp_2 [decl #35100] theorem Fintype.ofInjective._proof_1 [decl #35200] theorem OrderedFinpartition.extendLeft._proof_2 [decl #35300] theorem OrderedFinpartition.extendMiddle._proof_5 [decl #35400] theorem UniformConvergenceCLM.instAddCommGroup._proof_9 [decl #35500] theorem ContinuousMultilinearMap.curryRight._proof_1 [decl #35600] theorem ContinuousLinearMap.isBigOTVS_comp [decl #35700] theorem Set.mapsTo_snd_prod [decl #35800] theorem _private.Mathlib.Analysis.Normed.Module.Seminorm.Basic.0.Seminorm.ball_smul_closedBall._simp_1_4 [decl #35900] theorem WithSeminorms.toPolynormableSpace [decl #36000] theorem WithTop.mul_lt_mul [decl #36100] theorem le_egauge_ball_one [decl #36200] theorem FormalMultilinearSeries.congr [decl #36300] opaque wrapped._@.Mathlib.Algebra.BigOperators.Finprod.2417567597._hygCtx._hyg.8 [decl #36400] def _private.Mathlib.Data.List.Lex.0.List.Lex.to_ne.match_1_7 [decl #36500] theorem List.splitAt_go [decl #36600] theorem List.get_mem [decl #36700] theorem ContinuousMultilinearMap.currySumEquiv._proof_4 [decl #36800] theorem MultilinearMap.domDomCongrLinearEquiv._proof_4 [decl #36900] def Int.Internal.Linear.Poly.divCoeffs._f [decl #37000] theorem Finset.sum_preimage [decl #37100] theorem hasSum_sum [decl #37200] theorem summable_abs_iff [decl #37300] theorem Finset.coe_Icc [decl #37400] theorem MapClusterPt.of_comp [decl #37500] theorem frontier_ge_subset_eq INTERN_CALLS 1200000000 nodes=2702842 [decl #37600] def Homeomorph.vadd [decl #37700] theorem FormalMultilinearSeries.le_radius_of_summable_nnnorm [decl #37800] theorem FormalMultilinearSeries.changeOriginSeriesTerm.eq_1 [decl #37900] theorem instCanLiftUnitsValIsUnit [decl #38000] theorem _private.Mathlib.Analysis.Calculus.ContDiff.FaaDiBruno.0.OrderedFinpartition.eraseLeft._simp_7 [decl #38100] theorem ContinuousWithinAt.comp [decl #38200] theorem _private.Mathlib.Combinatorics.Enumerative.Composition.0.compositionAsSetEquiv._proof_12 [decl #38300] theorem List.pairwise_iff_get [decl #38400] theorem ContinuousMultilinearMap.compAlongComposition._proof_2 [decl #38500] theorem dist_le_Ico_sum_of_dist_le [decl #38600] def Finset.mapEmbedding [decl #38700] theorem AnalyticAt.comp_analyticWithinAt [decl #38800] theorem _private.Mathlib.Analysis.Normed.Module.Multilinear.Basic.0.ContinuousMultilinearMap.opNNNorm_prod._simp_1_1 [decl #38900] theorem continuousMultilinearCurryLeftEquiv._proof_1 INTERN_CALLS 1300000000 nodes=1113815 [decl #39000] theorem Asymptotics.IsLittleOTVS.smul_left [decl #39100] theorem _private.Mathlib.Topology.Algebra.Module.UniformConvergence.0.UniformFun.continuousSMul_induced_of_range_bounded._simp_1_1 [decl #39200] theorem UniqueDiffOn.inter [decl #39300] theorem UniformSpace.Completion.uniformSpace._proof_2 [decl #39400] theorem SeparationQuotient.instUniformSpace._proof_6 [decl #39500] theorem _private.Mathlib.Topology.UniformSpace.UniformEmbedding.0.IsUniformInducing.cauchy_map_iff._simp_1_1 [decl #39600] theorem UniformSpace.Completion.denseRange_coe₂ [decl #39700] theorem UniformSpace.Completion.isUniformAddGroup [decl #39800] theorem ContinuousLinearMap.comp_smulₛₗ [decl #39900] theorem UniformOnFun.isClosed_setOfPred_continuous [decl #40000] theorem Bornology.isVonNBounded_insert [decl #40100] def Nat.sqrt [decl #40200] theorem _private.Mathlib.Logic.Encodable.Basic.0.Encodable.ofCountable._proof_1 [decl #40300] theorem ContDiffOn.of_le [decl #40400] theorem ContinuousMultilinearMap.prodL._proof_8 [decl #40500] theorem HasFPowerSeriesWithinOnBall.restrictScalars [decl #40600] theorem map_natCast_smul INTERN_CALLS 1400000000 nodes=2660552 [decl #40700] theorem NNRat.instMetricSpace._proof_8 [decl #40800] def OpenPartialHomeomorph.toPartialHomeomorph [decl #40900] theorem FormalMultilinearSeries.leftInv._proof_12 [decl #41000] theorem _private.Mathlib.Topology.ClusterPt.0.Filter.HasBasis.clusterPt_iff_frequently._simp_1_1 [decl #41100] def List.splitWrtCompositionAux.match_3 [decl #41200] theorem FormalMultilinearSeries.id_comp [decl #41300] theorem DifferentiableWithinAt.continuousWithinAt INTERN_CALLS 1500000000 nodes=2558006 [decl #41400] theorem ContinuousLinearMap.semiring._proof_5 [decl #41500] theorem ContinuousLinearMap.toNormedRing._proof_16 [decl #41600] theorem Asymptotics.IsBigO.neg_left [decl #41700] theorem ContinuousLinearMap.lsmul._proof_2 [decl #41800] theorem Real.expPartialHomeomorph._proof_6 [decl #41900] theorem Function.locallyFinsuppWithin.mk.injEq [decl #42000] theorem Finset.iSup_finset_image [decl #42100] theorem Filter.map_top [decl #42200] theorem Pi.instCompleteLattice._proof_4 [decl #42300] def CategoryTheory.Presieve.IsSheafFor.amalgamate [decl #42400] def RCLike.im [decl #42500] theorem Bundle.Trivialization.continuousOn_symm [decl #42600] theorem Rat.isDenseEmbedding_coe_real [decl #42700] def FiberBundle.trivializationAt' [decl #42800] def ChartedSpace.LiftPropAt [decl #42900] theorem hasFDerivAtFilter_fst [decl #43000] theorem DifferentiableWithinAt.mono_of_mem_nhdsWithin [decl #43100] theorem Bundle.Trivialization.mdifferentiableWithinAt_snd_comp_iff₂ [decl #43200] theorem ValuativeRel.veq_mul_right_comm [decl #43300] def AddChar.toMonoidHom [decl #43400] theorem _private.Mathlib.RingTheory.Multiplicity.0.not_pow_dvd_of_emultiplicity_lt._simp_1_2 [decl #43500] def Nat.unique_units [decl #43600] theorem FiniteMultiplicity.pow_dvd_iff_le_multiplicity INTERN_CALLS 1600000000 nodes=362658 [decl #43700] theorem Nat.sub_lt_sub_iff_right [decl #43800] def _private.Mathlib.Order.Interval.Set.Basic.0.Set.instNoMaxOrderElemIoi.match_1 [decl #43900] theorem Nat.sum_div_divisors [decl #44000] def QuotientGroup.leftRel [decl #44100] def IsCyclic.casesOn [decl #44200] theorem MulAction.orbitZPowersEquiv._proof_1 [decl #44300] def AddEquiv.toMultiplicative [decl #44400] theorem rightCoset_mem_rightCoset [decl #44500] theorem Polynomial.monic_of_subsingleton [decl #44600] theorem sub_add_eq_sub_sub [decl #44700] theorem MulOpposite.isLeftCancelMulZero_iff [decl #44800] theorem Polynomial.eq_C_of_natDegree_eq_zero [decl #44900] theorem RingHom.map_one_ne_zero [decl #45000] theorem dvd_of_mul_left_eq [decl #45100] theorem ZMod.cast_zero [decl #45200] theorem _private.Mathlib.NumberTheory.LegendreSymbol.QuadraticChar.Basic.0.quadraticChar_neg_one_iff_not_isSquare._simp_1_3 [decl #45300] def AffineMap.instFunLike.match_1 [decl #45400] theorem AffineBasis.basisOf._proof_2 [decl #45500] theorem _private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.exists_cell_of_updateCell._simp_1_2 [decl #45600] theorem Option.or_self [decl #45700] theorem Std.LawfulOrderInf.of_le [decl #45800] theorem Homeomorph.constVSub._proof_1 [decl #45900] def TopCat.instCategoryPresheaf._aux_3 [decl #46000] theorem CommRingCat.Colimits.instCommRingColimitType._proof_25 [decl #46100] theorem TopologicalSpace.Opens.mk.congr_simp [decl #46200] theorem TopologicalSpace.Opens.opensHom.instFunLike._proof_2 [decl #46300] theorem CategoryTheory.Presieve.isSheafFor_iff_of_nat_equiv [decl #46400] theorem CategoryTheory.Limits.isColimitChangeEmptyCocone._proof_4 [decl #46500] theorem CategoryTheory.Functor.coconeTypesEquiv._proof_2 [decl #46600] theorem CategoryTheory.Subfunctor.toFunctor._proof_2 [decl #46700] theorem CategoryTheory.Equivalence.counitIso_functor_comp [decl #46800] theorem CategoryTheory.Functor.EssSurj.mem_essImage [decl #46900] def CategoryTheory.StructuredArrow.isoMk [decl #47000] theorem CategoryTheory.MorphismProperty.arrow_mk_iso_iff [decl #47100] def CategoryTheory.Limits.WalkingMulticospan.Hom.comp [decl #47200] theorem CategoryTheory.Limits.limit.lift_π [decl #47300] def CategoryTheory.Limits.Types.sectionOfCone [decl #47400] theorem CategoryTheory.Sieve.inter_apply._simp_1 [decl #47500] def CategoryTheory.ObjectProperty.homMk [decl #47600] theorem CategoryTheory.GrothendieckTopology.sheafifyMap_sheafifyLift [decl #47700] def CategoryTheory.GrothendieckTopology.diagramCompIso INTERN_CALLS 1700000000 nodes=3446314 [decl #47800] theorem AlgebraicGeometry.SheafedSpace.IsSheaf [decl #47900] theorem IsOpenMap.functorNhds._proof_3 [decl #48000] theorem TopologicalSpace.ofClosed._proof_1 [decl #48100] def CategoryTheory.Pairwise.cocone [decl #48200] theorem TopCat.Presheaf.whiskerIsoMapGenerateCocone._proof_4 [decl #48300] theorem CategoryTheory.Functor.Initial.conesEquiv._proof_4 [decl #48400] def CategoryTheory.Functor.mapConePostcomposeEquivalenceFunctor [decl #48500] theorem LocalizedModule.instSemiring._proof_10 [decl #48600] def CategoryTheory.liftedLimitMapsToOriginal [decl #48700] def Equiv.addMonoidWithOne [decl #48800] theorem SemiRingCat.limitπRingHom._proof_6 [decl #48900] def AddGrpCat.sectionsAddSubgroup [decl #49000] theorem CommRingCat.limitCommRing._proof_6 [decl #49100] theorem IsLocalization.AtPrime.nontrivial [decl #49200] theorem Con.ext' [decl #49300] theorem Submonoid.map_le_iff_le_comap [decl #49400] def DFinsupp.hasIntScalar INTERN_CALLS 1800000000 nodes=2895156 [decl #49500] theorem AddEquiv.bijective [decl #49600] theorem MonCat.FilteredColimits.M.mk_surjective [decl #49700] def AddGrpCat.FilteredColimits.colimit [decl #49800] theorem MonCat.ext [decl #49900] theorem CommSemiRingCat.hasForgetToSemiRingCat._proof_1 INTERN_CALLS 1900000000 nodes=2616504 INTERN_CALLS 2000000000 nodes=6675752 [decl #50000] theorem _private.Mathlib.RingTheory.Spectrum.Prime.Topology.0.PrimeSpectrum.basicOpen_eq_zeroLocus_compl._simp_1_1 [decl #50100] theorem AddCommGrpCat.instAddCommGroupHom._proof_4 [decl #50200] def LocalizedModule.lift' INTERN_CALLS 2100000000 nodes=1264879 [decl #50300] theorem _private.Mathlib.RingTheory.Spectrum.Prime.Topology.0.PrimeSpectrum.continuous_comap._simp_1_2 [decl #50400] theorem IsUnit.of_mul_eq_one_right [decl #50500] theorem IsLocalization.AtPrime.isUnit_mk'_iff INTERN_CALLS 2200000000 nodes=930605 [decl #50600] def AlgebraicGeometry.Scheme.Cover.mkOfCovers._auto_1 [decl #50700] def IntermediateField.RingHom.adjoinAlgebraMap [decl #50800] theorem Equiv.subtypePreimage._proof_1 [decl #50900] def Subgroup.copy [decl #51000] theorem Submonoid.closure_induction [decl #51100] def SimplexCategory.Truncated.σ._auto_3 [decl #51200] theorem CategoryTheory.MorphismProperty.le_multiplicativeClosure [decl #51300] theorem NonUnitalSubring.instTop._proof_3 [decl #51400] def OfScientific.ofScientific [decl #51500] def Float.Model.instMul [decl #51600] def ExceptT.run [decl #51700] theorem SubarrayIterator.step._proof_4 [decl #51800] def Mathlib.Meta.NormNum.NormNumExt.name [decl #51900] def Lean.crossEmoji [decl #52000] def _private.Lean.Meta.DiscrTree.Main.0.Lean.Meta.DiscrTree.Key.arity.match_1 [decl #52100] theorem _private.Init.Data.Range.Polymorphic.Nat.0.Std.PRange.instLawfulUpwardEnumerableNat._proof_1 [decl #52200] def Lean.Meta.SynthInstance.instInhabitedSynthM [decl #52300] def CategoryTheory.Limits.Fork.ofι [decl #52400] def CategoryTheory.ShortComplex.Hom.comm₂₃._autoParam [decl #52500] theorem CategoryTheory.Limits.parallelPair_map_right [decl #52600] theorem CategoryTheory.Limits.Bicone.category._proof_2 [decl #52700] def CategoryTheory.Abelian.nonPreadditiveAbelian [decl #52800] theorem CategoryTheory.Limits.pullback.condition [decl #52900] theorem CategoryTheory.Limits.isLimitAux._proof_2 [decl #53000] theorem CategoryTheory.Limits.coprod.desc_comp [decl #53100] theorem CategoryTheory.Abelian.coimageImageComparison._proof_2 [decl #53200] theorem ComplexShape.embeddingUpIntGE._proof_2 [decl #53300] def CategoryTheory.Pretriangulated.TriangleMorphism.comm₂._autoParam [decl #53400] def CategoryTheory.MorphismProperty.LeftFraction.Localization.Hom.comp [decl #53500] theorem CategoryTheory.MorphismProperty.LeftFraction.Localization.map_eq_iff [decl #53600] theorem HomologicalComplex.instAddCommGroupHom._proof_4 [decl #53700] def _private.Mathlib.Algebra.Homology.Localization.0.HomologicalComplexUpToQuasiIso.Qh.match_1 [decl #53800] theorem ComplexShape.next.eq_1 [decl #53900] theorem HomologicalComplex.cylinder.inrX_π [decl #54000] theorem Homotopy.map_eq_of_inverts_homotopyEquivalences [decl #54100] def CategoryTheory.ShortComplex.HomologyData.right [decl #54200] theorem CategoryTheory.Functor.CoreMonoidal.μIso_hom_natural_left_assoc [decl #54300] theorem CategoryTheory.shiftFunctorAdd'_zero_add [decl #54400] theorem CochainComplex.instHasShiftInt._proof_6 [decl #54500] theorem CochainComplex.HomComplex.Cochain.ext [decl #54600] theorem _private.Mathlib.Algebra.Homology.HomotopyCategory.MappingCone.0.CochainComplex.mappingCone.inl._proof_1 [decl #54700] theorem _private.Mathlib.Algebra.Homology.HomotopyCategory.MappingCone.0.CochainComplex.mappingCone.inl_snd_assoc._proof_1_1 [decl #54800] theorem inv_zpow INTERN_CALLS 2300000000 nodes=2101920 [decl #54900] theorem _private.Mathlib.Algebra.Homology.HomotopyCategory.Pretriangulated.0.CochainComplex.mappingCone.inl_v_triangle_mor₃_f._proof_1_1 [decl #55000] theorem CategoryTheory.Pretriangulated.Triangle.shiftFunctorAdd'._proof_3 [decl #55100] theorem _private.Mathlib.CategoryTheory.Triangulated.Rotate.0.CategoryTheory.Pretriangulated.invRotate._simp_1 [decl #55200] theorem CochainComplex.shiftShortComplexFunctor'._proof_5 [decl #55300] theorem CategoryTheory.Functor.isoShift._proof_1 [decl #55400] theorem CategoryTheory.ShortComplex.RightHomologyData.wι [decl #55500] theorem CategoryTheory.Limits.HasZeroObject.hasTerminal [decl #55600] theorem CategoryTheory.Functor.shiftMap_comp [decl #55700] theorem CategoryTheory.Pretriangulated.Triangle.π₂._proof_2 [decl #55800] theorem CochainComplex.mappingConeHomOfDegreewiseSplitXIso._proof_9 [decl #55900] theorem CategoryTheory.ShortComplex.isIso_pOpcycles [decl #56000] theorem List.mem_toFinset [decl #56100] theorem CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildIsColimit._proof_2 [decl #56200] theorem HomologicalComplex.instAbelian._proof_1 [decl #56300] theorem CategoryTheory.ShortComplex.exact_iff_exact_up_to_refinements [decl #56400] theorem CategoryTheory.Limits.PullbackCone.isLimitMapConeEquiv._proof_2 [decl #56500] theorem CategoryTheory.ShortComplex.opcyclesMap_comp [decl #56600] def HomologicalComplex.pOpcycles [decl #56700] theorem CategoryTheory.ComposableArrows.sc._proof_4 INTERN_CALLS 2400000000 nodes=2073952 [decl #56800] theorem CategoryTheory.ComposableArrows.exact₂_iff._proof_2 [decl #56900] theorem HomotopyCategory.quasiIso_eq_trW_subcategoryAcyclic [decl #57000] def CategoryTheory.Equivalence.changeFunctor [decl #57100] theorem ComplexShape.strictUniversalPropertyFixedTargetQuotient._proof_3 [decl #57200] theorem CochainComplex.MappingConeCompHomotopyEquiv.hom._proof_5 [decl #57300] def CategoryTheory.Arrow.rightFunc [decl #57400] theorem CategoryTheory.MorphismProperty.instHasLeftCalculusOfFractionsOppositeOpOfHasRightCalculusOfFractions [decl #57500] theorem CategoryTheory.ShortComplex.HomologyData.op._proof_1 [decl #57600] theorem CategoryTheory.Limits.CokernelCofork.isColimitOfIsColimitOfIff'._proof_3 [decl #57700] theorem HomologicalComplex.truncGE'.truncGE'_hasHomology [decl #57800] def ComplexShape.Embedding.homEquiv [decl #57900] theorem _private.Init.Data.Int.DivMod.Lemmas.0.Int.exists_add_of_le._proof_1_1 [decl #58000] def CategoryTheory.ComposableArrows.δlast [decl #58100] def CategoryTheory.Yoneda.fullyFaithful [decl #58200] theorem CategoryTheory.instPreadditiveOpposite._proof_4 [decl #58300] theorem CategoryTheory.Limits.isLimitEmptyConeEquiv._proof_2 [decl #58400] theorem CategoryTheory.Limits.Cocone.functorialityEquivalence._proof_6 [decl #58500] theorem CategoryTheory.Limits.widePullbackShapeOpUnop._proof_2 INTERN_CALLS 2500000000 nodes=2808301 [decl #58600] def DerivedCategory.homologyFunctorFactors [decl #58700] def FreeAlgebra.Pre.brecOn.go [decl #58800] def AlgebraicGeometry.PresheafedSpace.restrictTopIso [decl #58900] theorem CategoryTheory.Limits.hasLimitCompEvaluation [decl #59000] theorem CategoryTheory.Limits.createsLimitsOfShapeFullSubcategoryInclusion._proof_1 [decl #59100] theorem TopCat.homeoOfIso._proof_2 [decl #59200] theorem TopCat.isOpenEmbedding_iff_comp_isIso [decl #59300] theorem PUnit.commRing._proof_1 [decl #59400] theorem _private.Mathlib.Geometry.RingedSpace.LocallyRingedSpace.0.AlgebraicGeometry.LocallyRingedSpace.preimage_basicOpen._simp_1_1 [decl #59500] theorem CategoryTheory.Adjunction.functorialityCounit'._proof_4 [decl #59600] def CategoryTheory.Limits.PullbackCone.flip [decl #59700] theorem TopCat.pullbackIsoProdSubtype_inv_snd_apply INTERN_CALLS 2600000000 nodes=3729706 [decl #59800] theorem CategoryTheory.Limits.limit.isoLimitCone_hom_π [decl #59900] def MonoidHom.snd [decl #60000] theorem CategoryTheory.Limits.PreservesPullback.iso_hom_fst [decl #60100] theorem CategoryTheory.Limits.Multicoequalizer.ι_sigmaπ [decl #60200] theorem AlgebraicGeometry.SheafedSpace.GlueData.isoPresheafedSpace._proof_2 [decl #60300] theorem _private.Mathlib.Geometry.RingedSpace.PresheafedSpace.Gluing.0.AlgebraicGeometry.PresheafedSpace.GlueData.snd_invApp_t_app'._simp_1_1 [decl #60400] theorem AlgebraicGeometry.Scheme.Pullback.t._proof_4 [decl #60500] theorem AlgebraicGeometry.Scheme.Cover.gluedCoverT'_snd_snd [decl #60600] theorem CategoryTheory.IsPullback.toCommSq [decl #60700] theorem AlgebraicGeometry.Scheme.Spec._proof_2 [decl #60800] def TopCat.Sheaf.restrictHomEquivHom [decl #60900] theorem Submodule.sup_toAddSubmonoid [decl #61000] theorem Mathlib.Tactic.Module.NF.eval_smul [decl #61100] theorem _private.Mathlib.LinearAlgebra.Finsupp.LinearCombination.0.Finsupp.mem_span_range_iff_exists_finsupp._simp_1_2 INTERN_CALLS 2700000000 nodes=3171438 [decl #61200] def CategoryTheory.Monad.Algebra.assoc._autoParam [decl #61300] def Algebra.TensorProduct.instMul [decl #61400] theorem AlgebraicGeometry.pullbackSpecIso._proof_4 [decl #61500] def FirstOrder.Language.Formula.not [decl #61600] theorem _private.Mathlib.ModelTheory.Semantics.0.FirstOrder.Language.Sentence.realize_cardGe._simp_1_3 [decl #61700] def FirstOrder.Language.BoundedFormula.castLE.match_1 [decl #61800] theorem FirstOrder.Language.Embedding.map_rel [decl #61900] theorem FirstOrder.Language.Term.encoding._proof_2 [decl #62000] theorem posSumOfEncodable._proof_2 [decl #62100] def LocallyFiniteOrderBot.finsetIic [decl #62200] theorem _private.Mathlib.Logic.Encodable.Lattice.0.Encodable.iUnion_decode₂_disjoint_on._simp_1_1 [decl #62300] def MeasureTheory.OuterMeasure.IsCaratheodory [decl #62400] def MeasureTheory.Measure.ofMeasurable [decl #62500] theorem Pairwise.mono [decl #62600] theorem _private.Mathlib.MeasureTheory.Integral.Lebesgue.Basic.0.MeasureTheory.wrapped._proof_1._@.Mathlib.MeasureTheory.Integral.Lebesgue.Basic.3365958504._hygCtx._hyg.2 [decl #62700] def Module.Basis.indexEquiv [decl #62800] theorem Ideal.piQuotEquiv._proof_4 [decl #62900] theorem instT2SpaceSubtype [decl #63000] theorem QuotientAddGroup.preimage_image_mk [decl #63100] theorem Set.mem_ite_empty_right [decl #63200] theorem Ideal.instNontrivial [decl #63300] theorem ContinuousLinearEquiv.ofFinrankEq._proof_2 [decl #63400] theorem Metric.isCompact_iff_isClosed_bounded [decl #63500] theorem MeasureTheory.union_ae_eq_left_iff_ae_subset [decl #63600] theorem continuous_of_le_add_edist [decl #63700] def MeasurableEquiv.toEquiv [decl #63800] theorem Set.iUnion₂_subset_iUnion [decl #63900] theorem MeasureTheory.Measure.IsAddLeftInvariant.map_add_left_eq_self [decl #64000] theorem OrderDual.denselyOrdered INTERN_CALLS 2800000000 nodes=1372667 [decl #64100] theorem MeasureTheory.Content.mono [decl #64200] theorem HasSeparatingCover.mono [decl #64300] theorem measurable_to_prop [decl #64400] theorem MeasurableEquiv.coe_toEquiv [decl #64500] theorem _private.Mathlib.MeasureTheory.Measure.MeasureSpaceDef.0.MeasureTheory.exists_measurable_superset_forall_eq._simp_1_1 [decl #64600] theorem List.reverse_zipWith [decl #64700] def _private.Mathlib.Data.List.Zip.0.List.forall_zipWith.match_1_1 [decl #64800] theorem eq_of_le_of_not_lt' [decl #64900] theorem Measurable.iInf [decl #65000] theorem MeasureTheory.measure_if [decl #65100] def MeasureTheory.SimpleFunc.instSemilatticeSup [decl #65200] theorem Sigma.encodable._proof_6 [decl #65300] theorem Set.indicator_le [decl #65400] theorem countableInterFilter_inf [decl #65500] def _private.Mathlib.MeasureTheory.Group.Arithmetic.0.Finset.aemeasurable_sum.match_1_1 [decl #65600] theorem MeasureTheory.SimpleFunc.instAddMonoid._proof_5 [decl #65700] theorem MeasureTheory.ae_neBot [decl #65800] theorem MeasureTheory.Measure.restrict_biUnion_congr [decl #65900] theorem Measurable.const_add [decl #66000] theorem WeaklyLocallyCompactSpace.locallyCompactSpace [decl #66100] theorem MeasureTheory.Measure.IsAddHaarMeasure.sigmaFinite [decl #66200] theorem ENNReal.zero_ne_top [decl #66300] theorem starMulEquiv._proof_3 [decl #66400] theorem Mathlib.Tactic.Ring.le_congr [decl #66500] theorem ENNReal.toReal_mul [decl #66600] theorem TwoSidedIdeal.setLike._proof_3 [decl #66700] theorem RCLike.I_im' [decl #66800] theorem PiLp.nnnorm_ofLp [decl #66900] theorem inner_self_eq_norm_mul_norm [decl #67000] theorem _private.Mathlib.Analysis.InnerProductSpace.Projection.Minimal.0.Submodule.norm_eq_iInf_iff_inner_eq_zero._simp_1_2 [decl #67100] theorem _private.Mathlib.MeasureTheory.MeasurableSpace.Pi.0.generateFrom_pi_eq._proof_1_2 [decl #67200] theorem MeasureTheory.Measure.tprod_tprod [decl #67300] theorem _private.Mathlib.MeasureTheory.Measure.Stieltjes.0.StieltjesFunction.outer_Ioc._simp_1_7 [decl #67400] theorem Monotone.tendsto_leftLim [decl #67500] theorem orthonormalBasis_one_dim [decl #67600] theorem _private.Mathlib.LinearAlgebra.Matrix.Transvection.0.Matrix.Pivot.exists_isTwoBlockDiagonal_list_transvec_mul_mul_list_transvec._simp_1_9 [decl #67700] theorem MeasureTheory.SimpleFunc.extend._proof_2 [decl #67800] theorem _private.Mathlib.MeasureTheory.Measure.Lebesgue.EqHaar.0.MeasureTheory.Measure.addHaar_submodule._simp_1_1 [decl #67900] theorem _private.Mathlib.MeasureTheory.Covering.Besicovitch.0.Besicovitch.exists_closedBall_covering_tsum_measure_le._simp_1_1 [decl #68000] theorem Besicovitch.TauPackage.one_lt_tau [decl #68100] theorem _private.Mathlib.MeasureTheory.Covering.Besicovitch.0.Besicovitch.exists_closedBall_covering_tsum_measure_le._simp_1_4 [decl #68200] theorem Besicovitch.SatelliteConfig.hlast [decl #68300] theorem IsCompact.isLindelof [decl #68400] theorem AntilipschitzWith.le_mul_norm [decl #68500] def LinearMap.lsum [decl #68600] theorem MeasureTheory.Measure.add_apply [decl #68700] theorem MeasureTheory.Measure.le_of_add_le_add_left [decl #68800] theorem exists_countable_dense_no_bot_top [decl #68900] theorem WithTop.top_pow [decl #69000] theorem VitaliFamily.measure_limRatioMeas_zero [decl #69100] theorem _private.Mathlib.MeasureTheory.Function.Jacobian.0.ApproximatesLinearOn.norm_fderiv_sub_le._simp_1_1 [decl #69200] theorem isComplete_iff_ultrafilter [decl #69300] theorem PiNat.firstDiff_comm [decl #69400] theorem PiNat.exists_lipschitz_retraction_of_isClosed [decl #69500] theorem Stream'.Seq.map._proof_3 [decl #69600] theorem AffineMap.instZero._proof_1 [decl #69700] theorem lie_add [decl #69800] theorem LinearMap.map_sub₂ INTERN_CALLS 2900000000 nodes=3565044 [decl #69900] theorem LieModuleHom.instModule._proof_5 [decl #70000] def LieSubmodule.instPartialOrder [decl #70100] theorem _private.Mathlib.Topology.Maps.Basic.0.Topology.IsEmbedding.of_comp_iff._simp_1_1 [decl #70200] theorem BitVec.le_total [decl #70300] theorem BitVec.toInt_zero [decl #70400] theorem Int.natCast_pow [decl #70500] theorem _private.Mathlib.Topology.Algebra.Module.ContinuousLinearMap.Idempotent.0.ContinuousLinearMap.isIdempotentElem_toLinearMap_iff._simp_1_2 [decl #70600] theorem Representation.ofMulAction._proof_3 [decl #70700] theorem Representation.IntertwiningMap.instSMul._proof_1 [decl #70800] def CategoryTheory.Limits.isKernelCompMono [decl #70900] theorem CategoryTheory.Limits.equalizer.ι_of_eq [decl #71000] def Action.mkIso._auto_1 [decl #71100] theorem Action.instAddHom._proof_1 [decl #71200] theorem CategoryTheory.Abelian.FunctorCategory.coimageImageComparison_app [decl #71300] theorem Function.Injective.injective_linearMapComp_left INTERN_CALLS 3000000000 nodes=3336187 [decl #71400] theorem TypeCat.endEquiv._proof_2 [decl #71500] theorem CategoryTheory.MonoidalCategory.associator_inv_naturality [decl #71600] theorem CategoryTheory.CartesianMonoidalCategory.ofChosenFiniteProducts._proof_11 [decl #71700] theorem DirectSum.instModule._proof_8 INTERN_CALLS 3100000000 nodes=3559512 [decl #71800] theorem MonoidAlgebra.smulCommClass [decl #71900] theorem classifyingSpaceUniversalCover._proof_4 INTERN_CALLS 3200000000 nodes=2690364 [decl #72000] theorem CategoryTheory.ShortComplex.LeftHomologyMapData.natTransApp._proof_4 [decl #72100] theorem Finsupp.toMultiset._proof_2 [decl #72200] theorem Finsupp.partialorder._proof_1 [decl #72300] theorem Finset.subset_of_eq [decl #72400] def Subalgebra.toSubmodule [decl #72500] def AlgEquiv.toLinearEquiv [decl #72600] theorem Polynomial.natDegree_list_prod_le [decl #72700] theorem Matrix.smul_single [decl #72800] theorem LinearMap.exists_monic_and_aeval_eq_zero [decl #72900] theorem NumberField.instCommRingRingOfIntegers._proof_47 [decl #73000] theorem Subring.instIsDomainSubtypeMem [decl #73100] def AdjoinRoot.instSMulAdjoinRoot._aux_1 [decl #73200] theorem _private.Mathlib.RingTheory.PowerBasis.0.linearIndependent_pow._simp_1_3 [decl #73300] theorem AdjoinRoot.instGroupWithZero._proof_5 INTERN_CALLS 3300000000 nodes=3292570 [decl #73400] theorem AlgHom.comp_apply [decl #73500] theorem Associated.rfl [decl #73600] theorem Polynomial.fact_irreducible_factor [decl #73700] def Ideal.quotientKerAlgEquivOfRightInverse [decl #73800] theorem FreeMonoid.lift_comp_of [decl #73900] theorem OreLocalization.instGroupWithZeroNonZeroDivisors._proof_4 [decl #74000] theorem List.Subperm.countP_le [decl #74100] theorem normalizedGCDMonoidOfGCD._proof_1 [decl #74200] theorem UniqueFactorizationMonoid.factors_zero [decl #74300] theorem Associates.eq_of_factors_eq_factors [decl #74400] theorem Polynomial.instNormalizationMonoid._proof_14 [decl #74500] theorem Finset.gcd_cons [decl #74600] theorem Subalgebra.restrictScalars_top INTERN_CALLS 3400000000 nodes=2788037 [decl #74700] theorem AlgebraicClosure.instField._proof_11 [decl #74800] theorem divisionRingOfFiniteDimensional._proof_6 [decl #74900] def _private.Mathlib.Algebra.Polynomial.Div.0.Polynomial.degree_eq_one_of_irreducible_of_root.match_1_1 [decl #75000] theorem Polynomial.lt_rootMultiplicity_iff_isRoot_iterate_derivative_of_mem_nonZeroDivisors [decl #75100] theorem Polynomial.expand_one [decl #75200] theorem Algebra.norm._proof_2 [decl #75300] theorem _private.Mathlib.FieldTheory.SeparableDegree.0.IntermediateField.finSepDegree_adjoin_simple_dvd_finrank [decl #75400] theorem Polynomial.coeff_pow_mul_natDegree [decl #75500] theorem IntermediateField.Lifts.union._proof_2 [decl #75600] def _private.Mathlib.Algebra.Group.Action.Basic.0.IsUnit.smul_left_cancel.match_1_1 [decl #75700] theorem IsUnit.mul_left_eq_zero INTERN_CALLS 3500000000 nodes=1938298 [decl #75800] def IntermediateField.instModuleSubtypeMem_1 [decl #75900] theorem Polynomial.IsSplittingField.finiteDimensional INTERN_CALLS 3600000000 nodes=5867770 [decl #76000] theorem Polynomial.not_isUnit_of_natDegree_pos [decl #76100] theorem IsPrimitiveRoot.zmodEquivZPowers._proof_2 [decl #76200] def IntermediateField.AlgHom.inhabited [decl #76300] theorem IsLocalRing.instCommRingResidueField._proof_11 [decl #76400] theorem IsLocalRing.ResidueField.map._proof_1 INTERN_CALLS 3700000000 nodes=3307058 [decl #76500] theorem Order.krullDim_nonpos_iff_forall_isMax [decl #76600] theorem Submodule.pointwiseNeg._proof_1 [decl #76700] theorem OrderIso.map_top [decl #76800] def Set.Iic.orderBot [decl #76900] theorem _private.Mathlib.Order.Directed.0.directedOn_image._simp_1_3 [decl #77000] theorem IsSimpleOrder.completeLattice._proof_1 [decl #77100] theorem smul_inv₀' [decl #77200] theorem Equiv.Set.singleton._proof_2 [decl #77300] theorem AlgHom.liftEquiv._proof_6 [decl #77400] theorem _private.Mathlib.RingTheory.Localization.Away.Basic.0.Localization.existsUnique_algebraMap_eq_of_span_eq_top._simp_1_13 [decl #77500] theorem Pi.evalAlgHom._proof_5 [decl #77600] theorem Order.LTSeries.length_le_krullDim [decl #77700] def RelSeries.fromListIsChain [decl #77800] theorem finSuccEquiv'_below [decl #77900] theorem LinearMap.inl_injective INTERN_CALLS 3800000000 nodes=3901565 [decl #78000] theorem Algebra.TensorProduct.piRightHom_mul [decl #78100] theorem TensorProduct.quotientTensorQuotientEquiv._proof_10 [decl #78200] def Submodule.Quotient.restrictScalarsEquiv [decl #78300] theorem Ideal.sum_eq_sup [decl #78400] theorem Module.IsTorsionBySet.semilinearMap._proof_2 [decl #78500] theorem isCoatom_bot INTERN_CALLS 3900000000 nodes=2719801 [decl #78600] theorem Algebra.TensorProduct.cancelBaseChange_tmul [decl #78700] theorem Algebra.TensorProduct.commRight._proof_3 INTERN_CALLS 4000000000 nodes=3003752 [decl #78800] theorem IsLocalization.map_comp INTERN_CALLS 4100000000 nodes=2314857 [decl #78900] def Finsupp.basisSingleOne [decl #79000] theorem AddCon.comap._proof_1 [decl #79100] theorem DirectLimit.instMulActionOfMulActionHomClass._proof_1 [decl #79200] theorem Module.DirectLimit.exists_of [decl #79300] def Module.Baer.ExtensionOf.toLinearPMap [decl #79400] theorem AddCircle.equivAddCircle._proof_2 INTERN_CALLS 4200000000 nodes=172479 [decl #79500] theorem _private.Mathlib.RingTheory.Flat.Tensor.0.Module.Flat.iff_rTensor_injective'._simp_1_3 [decl #79600] theorem DFinsupp.domLCongr._proof_2 [decl #79700] theorem Submodule.sup_eq_sup_smul_of_le_smul_of_le_jacobson [decl #79800] theorem IsLocalizedModule.linearIndependent_lift [decl #79900] theorem MulSemiringAction.monic_charpoly [decl #80000] theorem Set.singletonMonoidHom._proof_2 [decl #80100] def Int.quotientSpanNatEquivZMod [decl #80200] def LinearMap.SeparatingRight [decl #80300] theorem AlgHom.mapMatrix._proof_3 [decl #80400] theorem Algebra.trace._proof_3 INTERN_CALLS 4300000000 nodes=3364167 [decl #80500] theorem Matrix.toBilin'Aux._proof_1 [decl #80600] theorem Field.powerBasisOfFiniteOfSeparable._proof_3 [decl #80700] theorem Polynomial.coeff_reflect [decl #80800] def Matrix.rectVandermonde [decl #80900] def Equiv.Perm.subtypeCongr [decl #81000] theorem AlternatingMap.map_update_update [decl #81100] theorem Finset.prod_comm' [decl #81200] theorem _private.Mathlib.RingTheory.Localization.FractionRing.0.Rat.isFractionRing._simp_1 [decl #81300] theorem Module.Flat.lTensor_preserves_injective_linearMap [decl #81400] theorem Ideal.instAddCommGroupCotangent._proof_9 INTERN_CALLS 4400000000 nodes=1029683 [decl #81500] def Ideal.toCotangent [decl #81600] theorem AlgEquiv.applyMulSemiringAction._proof_3 [decl #81700] theorem algEquivEquivAlgHom._proof_2 [decl #81800] theorem IsInvariantSubring.subtypeHom._proof_6 INTERN_CALLS 4500000000 nodes=3584652 [decl #81900] theorem IsCyclotomicExtension.zeta._proof_1 [decl #82000] theorem _private.Mathlib.Algebra.GroupWithZero.Associated.0.Associated.prime._simp_1_5 [decl #82100] theorem IsLocalization.coeSubmodule_sup [decl #82200] theorem FractionalIdeal.mul_mem_mul [decl #82300] theorem Submodule.mem_span_mul_finite_of_mem_span_mul [decl #82400] theorem Multiset.instIsOrderedCancelAddMonoid [decl #82500] theorem Submodule.cardQuot_eq_one_iff [decl #82600] theorem Module.basisOfFiniteTypeTorsionFree._proof_2 [decl #82700] def Submodule.restrictScalarsEquiv [decl #82800] theorem Ideal.basisSpanSingleton_apply [decl #82900] theorem _private.Mathlib.RingTheory.RootsOfUnity.PrimitiveRoots.0.IsPrimitiveRoot.nthRoots_eq._simp_1_1 INTERN_CALLS 4600000000 nodes=1925501 [decl #83000] theorem _private.Mathlib.Algebra.Polynomial.Eval.Defs.0.Polynomial.isRoot_prod._simp_1_2 [decl #83100] theorem Lean.Grind.AC.eq_erase0 [decl #83200] theorem Int.one_nonneg [decl #83300] theorem IsRelPrime.of_squarefree_mul [decl #83400] theorem IntermediateField.AdjoinSimple.coe_gen [decl #83500] theorem Algebra.Norm.Transitivity.auxMat.eq_1 [decl #83600] theorem _private.Mathlib.Data.Fintype.Card.0.Fintype.card_subtype_compl._simp_1_3 [decl #83700] theorem _private.Mathlib.GroupTheory.OrderOfElement.0.orderOf_neg_one._simp_1_1 [decl #83800] def Nat.recOnPrimePow.match_1 [decl #83900] def _private.Init.Data.Nat.Gcd.0.Nat.dvd_gcd_iff.match_1_1 [decl #84000] theorem RingHom.fst._proof_4 [decl #84100] def _private.Mathlib.NumberTheory.Cyclotomic.Basic.0.IsPrimitiveRoot.adjoin_isCyclotomicExtension.match_1_1 [decl #84200] theorem Associated.neg_left [decl #84300] theorem Ideal.stableFiltration_N [decl #84400] def PolynomialModule.lsingle [decl #84500] theorem Ideal.Filtration.instCompleteLattice._proof_4 [decl #84600] def Multiplicative.orderBot [decl #84700] def IsDiscreteValuationRing.idealOrderIsoENat [decl #84800] theorem Ideal.IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count [decl #84900] theorem instFintypeAlgEquivOfIsDomainOfIsIntegrallyClosedOfFiniteOfIsTorsionFree._proof_3 [decl #85000] theorem multiplicity_pow_self [decl #85100] theorem Sym2.mem_iff [decl #85200] theorem instAddGroupObjOppositeOpensCarrierOfPresheafSmoothSheaf._proof_5 [decl #85300] theorem CategoryTheory.Functor.corepresentableByUliftFunctorEquiv._proof_3 [decl #85400] theorem AddMonCat.HasLimits.hasLimit [decl #85500] theorem Option.elim_map [decl #85600] def WithZero.decidableLE INTERN_CALLS 4700000000 nodes=1737627 [decl #85700] def WithZero.exp [decl #85800] theorem Finset.card_eq_two [decl #85900] theorem List.forIn'_toArray [decl #86000] theorem MeasureTheory.measurePreserving_smul [decl #86100] theorem MulAut.conj._proof_1 [decl #86200] theorem MvPowerSeries.HasEval.tendsto_zero [decl #86300] theorem Set.mulAction._proof_2 [decl #86400] theorem Finset.mem_finsuppAntidiag._simp_1 [decl #86500] theorem Commute.list_sum_right [decl #86600] def _private.Mathlib.CategoryTheory.Comma.Over.Basic.0.CategoryTheory.Over.OverMorphism.ext.match_1_3 [decl #86700] def AlgebraicGeometry.Scheme.Cover.Over.isOver_map._autoParam [decl #86800] theorem _private.Mathlib.Order.Filter.Map.0.Filter.comap_le_iff_le_kernMap._simp_1_3 [decl #86900] theorem MeasurableSpace.CountablySeparated.countably_separated [decl #87000] def _private.Mathlib.Data.List.Iterate.0.List.getElem?_iterate.match_1_1 [decl #87100] theorem _private.Mathlib.GroupTheory.Perm.Support.0.Equiv.Perm.support_eq_empty_iff._simp_1_1 [decl #87200] theorem Fin.reverseInduction_castSucc [decl #87300] theorem Real.rpow_le_rpow_of_exponent_le [decl #87400] def _private.Std.Data.DHashMap.Internal.AssocList.Basic.0.Std.DHashMap.Internal.AssocList.filterMap.go INTERN_CALLS 4800000000 nodes=1462992 [decl #87500] theorem Derivation.map_one_eq_zero' [decl #87600] def Relation.TransGen.casesOn [decl #87700] def Filter.liminf_le_liminf._auto_3 [decl #87800] theorem ValuationSubring.instIsFractionRingSubtypeMem [decl #87900] def Lean.Compiler.LCNF.CtorInfo._sizeOf_inst [decl #88000] theorem IsIrreducible.isConnected [decl #88100] theorem AddMonoidAlgebra.mapRingHom._proof_4 [decl #88200] theorem Std.IterM.toList_map [decl #88300] theorem CartanMatrix.E_eight_eq [decl #88400] theorem strictMono_vecCons [decl #88500] theorem _private.Mathlib.LinearAlgebra.Matrix.Determinant.Bird.Correctness.0.BirdDet.exists_insertNth_mem_S._simp_1_8 [decl #88600] def _private.Mathlib.GroupTheory.FreeGroup.Basic.0.FreeAddGroup.Red.Step.diamond.match_1_1 [decl #88700] theorem CochainComplex.HomComplex.instAddCommGroupCohomologyClass._proof_11 [decl #88800] def SSet.stdSimplex.objMk [decl #88900] theorem SSet.Subcomplex.toSSetFunctor._proof_3 INTERN_CALLS 4900000000 nodes=820059 [decl #89000] def SSet.stdSimplex.finSuccAboveOrderIsoFinset.match_3 [decl #89100] theorem Set.PairwiseDisjoint.subset [decl #89200] def CategoryTheory.Over.isoMk._auto_1 [decl #89300] theorem NonemptyFinLinOrd.instLargeCategory._proof_9 [decl #89400] theorem Preord.instConcreteCategoryOrderHomCarrier._proof_2 [decl #89500] def _private.Init.Prelude.0.Lean.Syntax.isIdent.match_1 [decl #89600] def Lean.Elab.InfoState.enabled [decl #89700] theorem _private.Init.Data.Order.Lemmas.0.Std.not_lt_iff_not_le_or_ge._simp_1_3 [decl #89800] theorem Std.Packages.PreorderOfLEArgs.le_refl [decl #89900] def Lean.Parser.ParserState.recoveredErrors [decl #90000] theorem _private.Init.Data.String.OrderInstances.0.String.Slice.Pos.instTotalLe._proof_1 [decl #90100] opaque String.Internal.length [decl #90200] def _private.Lean.Util.LeanOptions.0.Lean.LeanOptionValue.ofDataValue?._sparseCasesOn_1 [decl #90300] theorem InnerProductSpace.toDualMap._proof_1 [decl #90400] theorem ContinuousLinearMap.toSesqForm._proof_21 [decl #90500] theorem NonUnitalAlgEquivClass.toMulActionSemiHomClass [decl #90600] theorem ContinuousMapZero.instAddCommMonoid._proof_2 [decl #90700] def cfcₙ [decl #90800] theorem Unitization.instRing._proof_9 [decl #90900] theorem Unitization.quasispectrum_eq_spectrum_inr' [decl #91000] theorem NonUnitalAlgHom.comp._proof_8 [decl #91100] theorem QuasispectrumRestricts.continuous_nonUnitalStarAlgHom [decl #91200] def _private.Mathlib.Algebra.Algebra.Spectrum.Quasispectrum.0.quasispectrumRestricts_iff.match_1_1 [decl #91300] theorem Matrix.instNonUnitalRing._proof_1 [decl #91400] theorem SupBotHomClass.toBotHomClass INTERN_CALLS 5000000000 nodes=1151524 [decl #91500] opaque wrapped._@.Mathlib.Analysis.InnerProductSpace.PiL2.3022897883._hygCtx._hyg.2 [decl #91600] theorem Metric.closedEBall_subset_closedEBall [decl #91700] theorem ContinuousLinearMap.rayleigh_smul [decl #91800] theorem IsLocalMinOn.not_nhds_le_map [decl #91900] theorem finrank_euclideanSpace [decl #92000] def LinearMap.IsSymmetric.definition._@.Mathlib.Analysis.InnerProductSpace.Spectrum.2426543671._hygCtx._hyg.14 [decl #92100] theorem iSupIndep_def' [decl #92200] theorem _private.Mathlib.Order.CompleteLattice.Basic.0.biSup_prod._simp_1_1 [decl #92300] theorem NormedRing.inverse_add_norm_diff_first_order [decl #92400] theorem Matrix.l2OpNormedAddCommGroupAux._proof_10 [decl #92500] theorem NonUnitalSubalgebra.smul_mem' [decl #92600] theorem NonUnitalSubsemiring.map._proof_3 [decl #92700] theorem _private.Mathlib.Topology.ContinuousMap.StoneWeierstrass.0.ContinuousMap.ker_evalStarAlgHom_inter_adjoin_id._simp_1_3 [decl #92800] theorem GaloisInsertion.l_sup_u [decl #92900] theorem dist_le_norm_add_norm [decl #93000] def Set.SeparatesPoints [decl #93100] theorem CompactSpace.elim_nhds_subcover INTERN_CALLS 5100000000 nodes=1861010 [decl #93200] theorem Subalgebra.normedRing._proof_1 [decl #93300] theorem nhds_basis_Ioo_pos [decl #93400] theorem LocallyConvexSpace.convex_basis [decl #93500] theorem polynomialFunctions.starClosure_topologicalClosure [decl #93600] theorem CStarRing.norm_star_mul_self [decl #93700] def Filter.Germ.instNeg [decl #93800] theorem LinearEquiv.toContinuousLinearEquivOfBounds._proof_2 [decl #93900] theorem ENNReal.rpow_add_rpow_le [decl #94000] theorem MeasureTheory.lintegral_zero_fun [decl #94100] theorem MeasureTheory.Lp.enorm_def [decl #94200] def Filter.Germ.instAddZeroClass [decl #94300] theorem AddSubgroup.seminormedAddCommGroup._proof_1 [decl #94400] theorem MeasureTheory.SimpleFunc.pair_preimage_singleton [decl #94500] theorem MeasureTheory.eLpNorm_map_measure [decl #94600] theorem ContinuousAt.snd [decl #94700] theorem MeasureTheory.lintegral_enorm_add_left [decl #94800] theorem ENNReal.sub_eq_of_eq_add' INTERN_CALLS 5200000000 nodes=554223 [decl #94900] def _private.Mathlib.Analysis.SpecialFunctions.Trigonometric.Basic.0.Real.sqrtTwoAddSeries_zero_nonneg.match_1_1 [decl #95000] def MeasureTheory.IsFiniteMeasure.casesOn [decl #95100] theorem Measurable.fun_sub [decl #95200] def ClusterPt.limsSup._auto_1 [decl #95300] theorem MeasureTheory.AEEqFun.posPart_mk._proof_1 [decl #95400] theorem _private.Mathlib.MeasureTheory.Integral.SetToL1.Function.0.MeasureTheory.continuous_setToFun._simp_1_2 [decl #95500] def integrableOn_Ici_iff_integrableOn_Ioi._auto_1 [decl #95600] theorem AffineEquiv.toAffineMap_injective [decl #95700] theorem dist_vsub_vsub_le [decl #95800] theorem MeasureTheory.IntegrableOn.restrict_toMeasurable [decl #95900] theorem MeasureTheory.StronglyMeasurable.indicator [decl #96000] theorem MeasureTheory.integral_eq_zero_of_ae [decl #96100] theorem _private.Mathlib.MeasureTheory.Measure.AEMeasurable.0.AEMeasurable.subtype_mk._simp_1_1 INTERN_CALLS 5300000000 nodes=1900662 [decl #96200] theorem MeasureTheory.enorm_integral_le_lintegral_enorm [decl #96300] theorem MeasureTheory.measure_union_null [decl #96400] theorem _private.Mathlib.Topology.Instances.ENNReal.Lemmas.0.ENNReal.continuous_sub_left._simp_1_2 [decl #96500] theorem hasStrictDerivAt_iff_hasStrictFDerivAt [decl #96600] theorem _private.Mathlib.Analysis.Calculus.Deriv.Slope.0.hasDerivAtFilter_iff_tendsto_slope._simp_1_3 [decl #96700] theorem Real.hasStrictFDerivAt_rpow_of_neg [decl #96800] theorem MeasurableEmbedding.map_comap [decl #96900] theorem Measurable.dite [decl #97000] def RightDerivMeasurableAux.D [decl #97100] theorem _private.Mathlib.MeasureTheory.Integral.IntervalIntegral.Basic.0.intervalIntegral.integral_add_adjacent_intervals_cancel._simp_1_2 [decl #97200] theorem _private.Mathlib.MeasureTheory.Integral.Bochner.VitaliCaratheodory.0.MeasureTheory.SimpleFunc.exists_le_lowerSemicontinuous_lintegral_ge._simp_1_4 [decl #97300] def EReal.neg [decl #97400] theorem EReal.coe_le_coe_iff [decl #97500] theorem Real.volume_real_Icc [decl #97600] def StronglyMeasurableAtFilter._auto_1 [decl #97700] theorem _private.Mathlib.Topology.Algebra.Module.LocallyConvex.0.Disjoint.exists_open_convexes._simp_1_1 [decl #97800] theorem ContinuousLinearMap.intervalIntegral_comp_comm [decl #97900] theorem Real.sin_pi_div_two_sub [decl #98000] theorem setIntegral_withDensity_eq_setIntegral_smul₀ [decl #98100] theorem ProbabilityTheory.IsGaussian.toIsProbabilityMeasure [decl #98200] theorem BoundedContinuousFunction.probCharDual._proof_11 [decl #98300] theorem BoundedContinuousFunction.instRing._proof_9 [decl #98400] theorem Filter.TotallyBounded.totallyBounded_setOfPred_clusterPt [decl #98500] def _private.Mathlib.Topology.ContinuousMap.Bounded.Normed.0.BoundedContinuousFunction.coe_npowRec.match_1_1 [decl #98600] theorem HasDerivAt.comp_const_add [decl #98700] theorem ContinuousOn.inv₀ [decl #98800] theorem integral_mulExpNegMulSq_comp_eq [decl #98900] theorem TopologicalSpace.IsTopologicalBasis.prod [decl #99000] def BoxIntegral.Box.lower [decl #99100] def Bool.instLT [decl #99200] theorem BoxIntegral.IntegrationParams.hasBasis_toFilteriUnion_top [decl #99300] theorem BoxIntegral.Prepartition.partialOrder._proof_2 [decl #99400] theorem BoxIntegral.Prepartition.instSemilatticeInf._proof_3 [decl #99500] theorem left_lt_add_div_two [decl #99600] theorem BoxIntegral.TaggedPrepartition.mem_single [decl #99700] theorem BoxIntegral.Integrable.dist_integralSum_sum_integral_le_of_memBaseSet_of_iUnion_eq [decl #99800] theorem _private.Mathlib.Analysis.BoxIntegral.Basic.0.BoxIntegral.integrable_of_bounded_and_ae_continuousWithinAt._simp_1_5 [decl #99900] theorem BoxIntegral.BoxAdditiveMap.volume_apply [decl #100000] theorem Fin.preimage_apply_01_prod INTERN_CALLS 5400000000 nodes=2800269 [decl #100100] def Module.Oriented.positiveOrientation [decl #100200] theorem instMulActionRayVector._proof_1 [decl #100300] theorem fderiv_eq_smul_deriv [decl #100400] theorem Path.extend._proof_2 [decl #100500] theorem Complex.cpow_eq_zero_iff [decl #100600] theorem ProbabilityTheory.complexMGF.eq_1 [decl #100700] theorem hasFDerivAt_const [decl #100800] theorem _private.Mathlib.Probability.Distributions.Gaussian.Real.0.ProbabilityTheory.integrable_gaussianPDFReal._simp_1_1 [decl #100900] theorem fderivWithin_zero_of_not_accPt [decl #101000] theorem ProbabilityTheory.IsPreBrownianReal.hasLaw [decl #101100] theorem LinearMap.continuous_of_locally_bounded [decl #101200] theorem Complex.exp_sum [decl #101300] theorem MeasureTheory.AEStronglyMeasurable.of_trim INTERN_CALLS 5500000000 nodes=1397209 [decl #101400] def CategoryTheory.Core.noConfusion [decl #101500] theorem _private.Mathlib.LinearAlgebra.PiTensorProduct.Basic.0.PiTensorProduct.liftAux._simp_3 [decl #101600] theorem MultilinearMap.dfinsuppFamily._proof_7 [decl #101700] theorem PiTensorProduct.one_mul [decl #101800] theorem PiTensorProduct.constantBaseRingEquiv._proof_3 [decl #101900] theorem _private.Mathlib.RingTheory.MvPowerSeries.Rename.0.MvPowerSeries.renameFunAux'._proof_1_1 [decl #102000] def AddSubgroup.lowerCentralSeries._f [decl #102100] def AddSubgroup.descending_central_series_ge_lower._f [decl #102200] theorem supClosed_empty [decl #102300] theorem AbsoluteValue.toNormedRing._proof_3 [decl #102400] theorem NormedField.induced._proof_9 [decl #102500] theorem UniformSpace.Completion.instNormedRing._proof_6 [decl #102600] theorem NumberField.InfinitePlace.Completion.instNormedField._proof_2 [decl #102700] def CategoryTheory.FreeBicategory.Hom.brecOn.go INTERN_CALLS 5600000000 nodes=733266 [decl #102800] def Lean.Meta.Sym.SymExtensionState [decl #102900] theorem List.argmax_eq_none [decl #103000] theorem HahnSeries.order_of_ne [decl #103100] theorem Std.DHashMap.Internal.Raw.fold_push_apply [decl #103200] def Substring.Raw.trim [decl #103300] def Lean.Parser.ParserState.mkError [decl #103400] def FreeAddMagma.lift [decl #103500] theorem _private.Mathlib.Analysis.InnerProductSpace.ProdL2.0.OrthonormalBasis.prod._simp_2 [decl #103600] theorem _private.Mathlib.SetTheory.ZFC.Basic.0.ZFSet.ext_aux [decl #103700] theorem List.findIdxNth_eq_length_iff [decl #103800] theorem List.getElem_mapFinIdx._proof_1 [decl #103900] theorem IsEvenlyCovered.fiberHomeomorph._proof_16 INTERN_CALLS 5700000000 nodes=2536850 [decl #104000] def QuasiconvexOn [decl #104100] theorem Std.Time.Internal.Bounded.LE.byEmod._proof_1 [decl #104200] theorem _private.Mathlib.Data.Finsupp.Antidiagonal.0.Finsupp.antidiagonal_single._simp_1_4 [decl #104300] def Std.Time.Modifier.D.elim [decl #104400] theorem Height.mulHeight_smul_eq_mulHeight [decl #104500] theorem Finite.le_ciSup [decl #104600] theorem CategoryTheory.Hom.monoid._proof_4 [decl #104700] theorem CategoryTheory.yonedaMon._proof_1 [decl #104800] def toAntisymmetrization INTERN_CALLS 5800000000 nodes=73923 [decl #104900] theorem Polynomial.smul_modByMonic [decl #105000] theorem isNilpotent_sum [decl #105100] theorem Finsupp.comapDomain_single [decl #105200] theorem _private.Mathlib.LinearAlgebra.Charpoly.BaseChange.0.LinearMap.charpoly_baseChange._simp_1_1 [decl #105300] theorem Ideal.map_isPrime_of_surjective [decl #105400] def Std.TreeMap.Raw.contains [decl #105500] theorem SymmetricAlgebra.algHom._proof_1 [decl #105600] theorem CategoryTheory.MonoOver.isThin [decl #105700] def CategoryTheory.Limits.diag [decl #105800] theorem HomotopicalAlgebra.ModelCategory.cm3c [decl #105900] theorem CategoryTheory.HasLiftingProperty.of_comp_left [decl #106000] theorem List.sortedLE_ofFn_iff [decl #106100] theorem CompactlySupportedContinuousMap.instMulActionWithZeroOfContinuousConstSMul._proof_3 [decl #106200] theorem Real.circleAverage_add [decl #106300] theorem Projectivization.map._proof_2 [decl #106400] theorem _private.Mathlib.LinearAlgebra.Matrix.GeneralLinearGroup.FinTwo.0.Matrix.GeneralLinearGroup.IsParabolic.pow._simp_1_5 [decl #106500] theorem Filter.Germ.instMonoid._proof_4 [decl #106600] def Filter.Germ.instDivisionSemiring [decl #106700] theorem ClosureOperator.mk₂._proof_1 [decl #106800] theorem Finset.powersetCard._proof_2 [decl #106900] theorem circleIntegral.integral_smul INTERN_CALLS 5900000000 nodes=3381882 [decl #107000] theorem Complex.exp_eq_exp_iff_exp_sub_eq_one [decl #107100] theorem LT.lt.gt_or_lt [decl #107200] theorem _private.Mathlib.MeasureTheory.Function.SimpleFuncDense.0.MeasureTheory.SimpleFunc.approxOn_range_nonneg._simp_1_3 [decl #107300] theorem Differentiable.exists_eq_const_of_bounded [decl #107400] def Std.DHashMap.Internal.Raw₀.insertMany INTERN_CALLS 6000000000 nodes=853948 [decl #107500] theorem MeasureTheory.setLIntegral_nnnorm_condExpIndSMul_le [decl #107600] theorem MeasureTheory.ExistsSeqTendstoAe.seqTendstoAeSeqAux._proof_1 [decl #107700] theorem Subalgebra.IsAlgebraic.toIntermediateField._proof_1 INTERN_CALLS 6100000000 nodes=3842182 [decl #107800] theorem WeierstrassCurve.Projective.equiv_some_of_Z_ne_zero [decl #107900] theorem CompHausLike.prop [decl #108000] theorem DiscreteQuotient.ofLE_ofLE [decl #108100] theorem FintypeCat.toLightProfinite._proof_2 [decl #108200] theorem CategoryTheory.Adjunction.leftAdjointOfEquiv._proof_3 [decl #108300] theorem T2Quotient.instTopologicalSpace._proof_4 [decl #108400] theorem _private.Mathlib.Topology.Category.CompHausLike.Basic.0.CompHausLike.instCompactSpaceCarrierObjTopCatCompHausLikeToTop._proof_1 [decl #108500] def CategoryTheory.GradedObject.HasMap [decl #108600] theorem Algebra.Extension.Cotangent.module._proof_7 INTERN_CALLS 6200000000 nodes=3023322 [decl #108700] theorem LinearMap.compDer._proof_7 [decl #108800] def Multiset.countAddMonoidHom [decl #108900] def Turing.BlankExtends [decl #109000] theorem FirstOrder.Language.Hom.mem_range._simp_1 [decl #109100] def Std.HashSet.Raw.insertMany INTERN_CALLS 6300000000 nodes=3124575 [decl #109200] theorem isAddCommutative_iff [decl #109300] theorem AddCommGrpCat.instAbelian._proof_5 [decl #109400] theorem _private.Mathlib.RingTheory.Grassmannian.0.Module.Grassmannian.baseChangeMkQ._proof_1 [decl #109500] theorem Std.DTreeMap.Internal.Impl.Equiv.beq_congr [decl #109600] theorem CategoryTheory.Limits.hasStrongEpiImages_of_hasStrongEpiMonoFactorisations INTERN_CALLS 6400000000 nodes=4032246 [decl #109700] theorem Std.ExtDHashMap.getKey!.congr_simp [decl #109800] theorem UInt16.xor_assoc [decl #109900] def Lean.Json.ctorIdx [decl #110000] def SemimoduleCat.Hom.casesOn INTERN_CALLS 6500000000 nodes=437143 [decl #110100] def CommRing.Pic.AsModule [decl #110200] def MvPolynomial.monomialOneHom [decl #110300] def ValuativeRel.instTransVleVeq [decl #110400] def WithZero.lift' [decl #110500] theorem ValuativeRel.ValueGroupWithZero.embed._proof_6 [decl #110600] theorem ValuativeRel.restrict_lt_orderMonoidIso._simp_1 [decl #110700] theorem RingSubgroupsBasis.hasBasis_nhds_zero [decl #110800] def Aesop.Rule.instHashable [decl #110900] def instInhabitedFloat [decl #111000] def EquicontinuousAt [decl #111100] def RingNorm.casesOn [decl #111200] def Std.HashSet.Raw.get? INTERN_CALLS 6600000000 nodes=2045951 [decl #111300] def RegularExpression.brecOn.go [decl #111400] def Std.instStreamIterOfProductiveOfIteratorAccessId [decl #111500] theorem Set.mul_subset_iff [decl #111600] theorem Fin.consCases._proof_1 [decl #111700] theorem mvfderivWithin._proof_1 [decl #111800] def MeasurableEquiv.sumCongr [decl #111900] theorem Cardinal.not_countable_real [decl #112000] def ProbabilityTheory.defaultRatCDF [decl #112100] theorem MeasureTheory.ofReal_measureReal [decl #112200] theorem norm_le_insert' [decl #112300] theorem MeasureTheory.Measure.IicSnd_ac_fst [decl #112400] theorem MeasurableEquiv.prodAssoc._proof_2 [decl #112500] theorem ProbabilityTheory.Kernel.instIsSFiniteKernelBorelMarkovFromReal [decl #112600] theorem LieSubalgebra.top_toSubmodule [decl #112700] theorem HahnSeries.instDistrib._proof_2 [decl #112800] theorem Set.PartiallyWellOrderedOn.minBadSeqOfBadSeq._proof_2 [decl #112900] theorem Filter.coprodᵢ_neBot_iff' INTERN_CALLS 6700000000 nodes=1495594 [decl #113000] theorem StandardEtalePair.lift._proof_2 [decl #113100] theorem CategoryTheory.SingleFunctors.shiftIso_add_hom_app [decl #113200] theorem CategoryTheory.ShortComplex.homologyMapIso._proof_2 [decl #113300] theorem HomologicalComplex.instIsMultiplicativeQuasiIso [decl #113400] theorem HomologicalComplex.opCounitIso._proof_4 [decl #113500] theorem _private.Mathlib.Algebra.Homology.HomotopyCategory.KInjective.0.CochainComplex.isKInjective_of_injective._proof_1_6 [decl #113600] def Lean.Lsp.instFromJsonResolvableCompletionItemData.match_6 [decl #113700] theorem SubringClass.subtype._proof_1 [decl #113800] theorem NumberField.InfinitePlace.mk_eq_iff [decl #113900] theorem CategoryTheory.Sieve.functorPullback_monotone [decl #114000] theorem AlgCat.restrictScalarsEquivalenceOfRingEquiv._proof_3 INTERN_CALLS 6800000000 nodes=2004057 [decl #114100] def CategoryTheory.presheafToSheaf [decl #114200] theorem PresheafOfModules.instAddCommGroupHom._proof_4 [decl #114300] theorem CategoryTheory.isIso_sheafificationAdjunction_counit INTERN_CALLS 6900000000 nodes=3204973 [decl #114400] theorem WeierstrassCurve.Jacobian.Y_ne_zero_of_Z_eq_zero [decl #114500] theorem CategoryTheory.Functor.FullyFaithful.hasShift._proof_6 [decl #114600] def Std.Time.Duration.sub [decl #114700] theorem Ordinal.mul_succ [decl #114800] def CategoryTheory.Pseudofunctor.DescentData.hom_comp._autoParam [decl #114900] def CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom_pullHom._auto_1 [decl #115000] theorem CategoryTheory.GrothendieckTopology.instCompleteLattice._proof_20 [decl #115100] theorem CategoryTheory.Precoverage.instHasIsosComap [decl #115200] theorem CategoryTheory.Sieve.pullback_ofArrows_of_iso INTERN_CALLS 7000000000 nodes=3985133 [decl #115300] theorem CategoryTheory.Pseudofunctor.mapComp'₀₁₃_hom_comp_whiskerLeft_mapComp'_hom_app [decl #115400] theorem _private.Mathlib.CategoryTheory.Sites.Descent.Precoverage.0.CategoryTheory.Pseudofunctor.DescentData.full_pullFunctor.map_hom [decl #115500] theorem PseudoMetricSpace.ofSeminormedSpaceCore._proof_8 [decl #115600] theorem OnePoint.compl_image_coe [decl #115700] theorem toEuclidean._proof_5 [decl #115800] theorem Denumerable.sigma._proof_1 [decl #115900] theorem SimpleGraph.Adj.ne [decl #116000] theorem CategoryTheory.Over.pullback._proof_2 [decl #116100] theorem CategoryTheory.Limits.hasCoproducts_shrink [decl #116200] theorem CategoryTheory.MonoOver.mapId._proof_1 [decl #116300] theorem CategoryTheory.isDetector_detector [decl #116400] theorem CategoryTheory.Comma.fstSndJointlyReflectColimit._proof_4 [decl #116500] theorem CategoryTheory.Limits.hasCoproducts_of_finite_and_filtered [decl #116600] def CategoryTheory.Subobject.isoOfMkEqMk [decl #116700] theorem Unitary.mem_iff INTERN_CALLS 7100000000 nodes=1386998 [decl #116800] theorem Submodule.Quotient.nontrivial_iff._simp_1 [decl #116900] theorem CategoryTheory.Functor.LaxMonoidal.id._proof_6 [decl #117000] theorem AffineSubspace.toAddTorsor._proof_1 [decl #117100] theorem Real.cos_sub_pi_div_two [decl #117200] theorem _private.Mathlib.Topology.DiscreteSubset.0.Topology.IsEmbedding.image_mem_codiscreteWithin._simp_1_3 [decl #117300] theorem tendsto_nhds_iff_meromorphicOrderAt_nonneg INTERN_CALLS 7200000000 nodes=667770 [decl #117400] theorem zero_zpow_eq_one₀ [decl #117500] def Pi.instOfNat [decl #117600] def IntervalIntegrable.comp_sub_right._auto_1 [decl #117700] theorem MeasureTheory.OuterMeasure.isCaratheodory_iff [decl #117800] theorem Finset.empty_mem_powerset [decl #117900] theorem CategoryTheory.GradedObject.ι_descMapObj [decl #118000] theorem CategoryTheory.GradedObject.isColimitCofan₃MapBifunctorBifunctor₂₃MapObj._proof_14 [decl #118100] theorem Nat.le_pow_clog [decl #118200] def Std.Time.Day.Offset [decl #118300] theorem Localization.mk_zero [decl #118400] theorem HomogeneousLocalization.val_awayMap [decl #118500] theorem SchwartzMap.instIsSMulApplyInt [decl #118600] theorem MonoidWithZeroHom.instLinearOrderedCommGroupWithZeroMrange._proof_14 [decl #118700] theorem Additive.preorder._proof_3 [decl #118800] theorem Valuation.Integers.isUnit_of_one [decl #118900] theorem AddSubgroup.addOrderOf_coe [decl #119000] def OrderAddMonoidIso.toMultiplicativeRight [decl #119100] def _private.Mathlib.RingTheory.Valuation.Basic.0.Valuation.isNontrivial_iff_exists_lt_one.match_1_1 [decl #119200] theorem ByteArray.validateUTF8At_eq_isSome_utf8DecodeChar? [decl #119300] def Array.toVector [decl #119400] opaque _private.Lean.Meta.Basic.0.Lean.Meta.setAllDiagRanges [decl #119500] def _private.Lean.Meta.Tactic.Simp.Types.0.Lean.Meta.Simp.mkCongrSimp?.go?.match_1 [decl #119600] def CategoryTheory.Bicone.ctorIdx INTERN_CALLS 7300000000 nodes=236636 [decl #119700] theorem SSet.N.dim_le_of_le [decl #119800] theorem CentroidHom.instSMul._proof_1 [decl #119900] theorem countable_image_gt_image_Ioi [decl #120000] theorem Nat.Coprime.isPrimePow_dvd_mul [decl #120100] def instPartialOrderHomogeneousIdeal [decl #120200] def AddMonoidHom.mulRight₃ [decl #120300] theorem ProjectiveSpectrum.mem_zeroLocus [decl #120400] theorem HomogeneousLocalization.NumDenSameDeg.map._proof_1 [decl #120500] theorem AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier.relevant [decl #120600] theorem ProjectiveSpectrum.isOpen_iff INTERN_CALLS 7400000000 nodes=1766744 [decl #120700] theorem AlgebraicGeometry.Scheme.Hom.opensRange_comp [decl #120800] theorem AlgebraicGeometry.Scheme.Hom.congr_app._proof_1 [decl #120900] theorem Finsupp.Lex.partialOrder._proof_1 [decl #121000] theorem DFinsupp.toLex_monotone [decl #121100] def Lean.Elab.Term.SavedContext.mk.noConfusion [decl #121200] def Hyperreal.instField._aux_15 [decl #121300] def Std.ExtTreeMap.instInterOfTransCmp [decl #121400] theorem Topology.IsGeneratedBy.le_generatedBy [decl #121500] theorem MvPolynomial.degrees_mul_le [decl #121600] theorem Multiset.card_nsmul [decl #121700] theorem Lean.Order.CompleteLattice.sup_spec [decl #121800] def Lean.Elab.Command.Context.currMacroScope [decl #121900] theorem ContDiffMapSupportedIn.instAddCommGroup._proof_10 [decl #122000] theorem fderiv_of_notMem_tsupport [decl #122100] def Std.Http.isKnownStatusCode [decl #122200] theorem Nat.not_odd_iff_even [decl #122300] theorem _private.Mathlib.Topology.EMetricSpace.Diam.0.Metric.ediam_pos_iff._simp_1_2 [decl #122400] theorem CanonicallyOrderedAdd.multiset_prod_pos INTERN_CALLS 7500000000 nodes=3640036 [decl #122500] theorem CategoryTheory.Bicategory.Adjunction.homEquiv₁._proof_2 [decl #122600] theorem CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.Hom.mk.congr_simp [decl #122700] theorem GeneralizedBooleanAlgebra.toNonUnitalCommRing._proof_3 [decl #122800] theorem _private.Mathlib.Algebra.Lie.InvariantForm.0.LieAlgebra.InvariantForm.orthogonal._simp_3 [decl #122900] theorem LieSubmodule.wellFoundedGT_of_noetherian INTERN_CALLS 7600000000 nodes=2810890 [decl #123000] theorem _private.Mathlib.Data.Set.Restrict.0.Set.MapsTo.restrict_surjective_iff._simp_1_3 [decl #123100] theorem LinearMap.flip_separatingLeft [decl #123200] theorem _private.Mathlib.Algebra.Lie.Ideal.0.LieSubalgebra.exists_nested_lieIdeal_coe_eq_iff._simp_1_1 [decl #123300] theorem Submodule.inf_comap_le_comap_add [decl #123400] theorem LieModule.le_max_triv_iff_bracket_eq_bot [decl #123500] theorem _private.Mathlib.Algebra.Lie.Weights.Basic.0.LieModule.comap_genWeightSpace_eq_of_injective._simp_1_1 [decl #123600] theorem LieModuleHom.comp._proof_1 INTERN_CALLS 7700000000 nodes=596546 [decl #123700] theorem Ideal.equivFinTwo._proof_1 [decl #123800] theorem TensorProduct.AlgebraTensorModule.rightComm._proof_27 [decl #123900] theorem _private.Mathlib.FieldTheory.IsAlgClosed.Spectrum.0.spectrum.exists_mem_of_not_isUnit_aeval_prod._simp_1_1 [decl #124000] theorem LieModule.shiftedGenWeightSpace.instLieRingModuleSubtypeMemLieSubmodule._proof_6 INTERN_CALLS 7800000000 nodes=4009621 [decl #124100] theorem _private.Mathlib.Algebra.Lie.Weights.Cartan.0.LieAlgebra.mem_corootSpace._simp_1_3 [decl #124200] def _private.Mathlib.Data.Matrix.Basis.0.Matrix.diag_single_of_ne.match_1_1 INTERN_CALLS 7900000000 nodes=1448448 [decl #124300] theorem Module.End.isNilpotent_restrict_sub_algebraMap [decl #124400] def Sublattice.instLatticeCoe [decl #124500] theorem Polynomial.powAddExpansion._proof_7 [decl #124600] theorem instIsSemisimpleRingForallOfFinite [decl #124700] theorem Submodule.finrank_map_subtype_eq [decl #124800] theorem LinearEquiv.conj_apply_apply [decl #124900] theorem _private.Mathlib.Algebra.Lie.IdealOperations.0.LieIdeal.comap_bracket_eq._simp_1_4 [decl #125000] theorem LinearMap.ne_zero_of_surjective INTERN_CALLS 8000000000 nodes=3892773 [decl #125100] theorem LieModule.chainTop_isNonZero' [decl #125200] theorem CategoryTheory.Limits.lift_comp_kernelIsoOfEq_hom [decl #125300] theorem TotallyBounded.nhds_vietoris_le_nhds_hausdorff [decl #125400] theorem Matroid.Indep.isBasis_self [decl #125500] theorem Matroid.dual_indep_iff_exists [decl #125600] theorem Matroid.IsCircuit.sdiff_singleton_isBasis [decl #125700] theorem throwThe.eq_def [decl #125800] def HOrElse.hOrElse [decl #125900] def AddChar.toAddMonoidHom [decl #126000] def UpperHalfPlane.upperHalfPlaneSet [decl #126100] theorem ModularForm.instAddCommGroup._proof_6 [decl #126200] theorem DifferentiableAt.congr_of_eventuallyEq [decl #126300] def UpperHalfPlane.instAddActionReal [decl #126400] def Lean.PPContext.casesOn [decl #126500] theorem _private.Mathlib.Geometry.RingedSpace.LocallyRingedSpace.ResidueField.0.AlgebraicGeometry.LocallyRingedSpace.basicOpen_eq_bot_iff_forall_evaluation_eq_zero._simp_1_1 [decl #126600] theorem MeasureTheory.prod_withDensity₀ [decl #126700] theorem ContinuousMap.Homotopy.trans._proof_5 [decl #126800] theorem Path.symm_symm [decl #126900] def IsCoveringMapOn [decl #127000] theorem _private.Mathlib.Topology.SeparatedMap.0.isLocallyInjective_iff_isOpen_diagonal._simp_1_1 [decl #127100] theorem Nat.greatestFib_pos [decl #127200] theorem String.Slice.Pos.cast_lt_cast_iff [decl #127300] def WithLp.prodContinuousLinearEquiv [decl #127400] theorem add_add_neg_add_cancel [decl #127500] theorem _private.Mathlib.Analysis.InnerProductSpace.Reproducing.Operations.0.RKHS.Add'.OfKernelAddEquiv._proof_3 INTERN_CALLS 8100000000 nodes=2577584 [decl #127600] def CategoryTheory.Limits.walkingParallelFamilyEquivWalkingParallelPair [decl #127700] def Lean.DelayedMetavarAssignment._sizeOf_1 [decl #127800] def Lean.CompactedRegion._sizeOf_1 [decl #127900] theorem _private.Mathlib.Topology.OpenPartialHomeomorph.IsImage.0.OpenPartialHomeomorph.IsImage.closure._simp_1_2 [decl #128000] theorem Commute.div_sub_div [decl #128100] theorem ContinuousAlternatingMap.addCommMonoid._proof_2 [decl #128200] theorem CategoryTheory.Idempotents.instAddCommGroupHom._proof_8 [decl #128300] def _private.Mathlib.MeasureTheory.VectorMeasure.Decomposition.Hahn.0.MeasureTheory.SignedMeasure.restrictNonposSeq.match_1.splitter [decl #128400] theorem MeasureTheory.SignedMeasure.toJordanDecomposition._proof_1 [decl #128500] def Lean.Elab.Term.Context.isMetaSection [decl #128600] opaque Lean.ResolveName.backward.privateInPublic.warn [decl #128700] def _private.Lean.Elab.InfoTree.Main.0.Lean.Elab.withInfoContext'.match_3 [decl #128800] theorem Std.Internal.List.minKey_insertEntryIfNew_le_minKey [decl #128900] def List.zipWithM'._f [decl #129000] def ListSlice [decl #129100] theorem _private.Init.Data.Slice.Array.Lemmas.0.SubarrayIterator.step_eq._proof_1 [decl #129200] theorem _private.Init.Data.Array.Sort.Lemmas.0.Array.MergeSort.merge.go_eq_listMerge._proof_1_8 [decl #129300] def Stream'.tail [decl #129400] theorem CategoryTheory.PreOneHypercover.instCategory._proof_2 [decl #129500] theorem CategoryTheory.kernelCokernelCompSequence.snakeInput._proof_4 INTERN_CALLS 8200000000 nodes=562741 [decl #129600] theorem Matrix.SpecialLinearGroup.coe_one [decl #129700] def WithTop.toDual [decl #129800] def _private.Mathlib.Analysis.SpecialFunctions.Trigonometric.Basic.0.Real.sqrtTwoAddSeries_succ.match_1_1 [decl #129900] theorem _private.Mathlib.Order.Filter.AtTopBot.Finite.0.Nat.eventually_pow_lt_factorial_sub._simp_1_1 [decl #130000] theorem CategoryTheory.Limits.pullbackLeftPullbackSndIso_inv_fst_snd [decl #130100] theorem CategoryTheory.Lax.LaxTrans.Hom.of.injEq [decl #130200] def CategoryTheory.Pseudofunctor.StrongTrans.mkOfOplax [decl #130300] theorem Filter.isBounded_le_atBot [decl #130400] theorem WeierstrassCurve.Jacobian.addU_of_Z_eq_zero_right [decl #130500] theorem AlgebraicTopology.DoldKan.Γ₀.Obj.map_on_summand [decl #130600] theorem _private.Mathlib.AlgebraicTopology.DoldKan.Faces.0.AlgebraicTopology.DoldKan.HigherFacesVanish.comp_Hσ_eq._proof_1_10 [decl #130700] theorem CategoryTheory.SimplicialObject.Splitting.IndexSet.epiComp._proof_1 [decl #130800] theorem Prod.instNonUnitalNonAssocRing._proof_1 [decl #130900] def _private.Mathlib.Data.List.Sigma.0.List.Perm.kunion_left.match_1_1 [decl #131000] def SkewMonoidAlgebra.support [decl #131100] theorem SimpleGraph.instPartialOrder._proof_2 [decl #131200] theorem Function.Embedding.setValue_eq_iff [decl #131300] def Filter.giPrincipalKer [decl #131400] theorem _private.Mathlib.Order.Heyting.Hom.0.OrderIsoClass.toCoheytingHomClass._simp_1 [decl #131500] def TopCat.Presheaf.pullbackPushforwardAdjunction [decl #131600] theorem _private.Mathlib.Topology.LocallyClosed.0.isLocallyClosed_tfae._simp_1_7 [decl #131700] theorem CategoryTheory.Functor.relativelyRepresentable.snd._proof_1 [decl #131800] theorem List.foldr_toArray' [decl #131900] def Std.Sat.AIG.Cache INTERN_CALLS 8300000000 nodes=1846530 INTERN_CALLS 8400000000 nodes=441983 [decl #132000] theorem Nat.shiftRight_bitwise_distrib INTERN_CALLS 8500000000 nodes=2769769 [decl #132100] theorem Std.Sat.AIG.IsPrefix_push._simp_1 [decl #132200] theorem _private.Init.Data.String.Lemmas.Pattern.Memcmp.0.String.Slice.Pattern.Internal.memcmpStr_eq_true_iff._proof_1_19 [decl #132300] theorem MvPolynomial.map_aeval [decl #132400] theorem _private.Mathlib.Data.Finset.Dedup.0.Multiset.toFinset_subset._simp_1_2 [decl #132500] theorem Finset.exists_equiv_extend_of_card_eq [decl #132600] theorem Orientation.basisRightAngleRotation._proof_3 [decl #132700] theorem Orientation.oangle_zero_right [decl #132800] theorem _private.Mathlib.RingTheory.Polynomial.Basic.0.Ideal.isPrime_map_C_iff_isPrime._simp_1_4 [decl #132900] def Std.TreeMap.values [decl #133000] def CategoryTheory.Limits.biproduct.desc [decl #133100] theorem Matroid.Indep.isBase_of_spanning [decl #133200] theorem Std.DTreeMap.Internal.Impl.mem_congr [decl #133300] def instDecidableEqNum.decEq.match_1 [decl #133400] def _private.Mathlib.Data.Num.ZNum.0.ZNum.add_one.match_1_1 [decl #133500] theorem CategoryTheory.Equivalence.hasInitial_iff [decl #133600] theorem String.Slice.offset_posLE_le._simp_1 [decl #133700] theorem List.append_singleton_inj._simp_1 [decl #133800] theorem String.Slice.Pattern.Model.CharPred.instNoPrefixPatternModelForallCharBool [decl #133900] theorem String.Slice.Model.mem_positionsFrom._simp_1 [decl #134000] theorem WittVector.remainder_vars INTERN_CALLS 8600000000 nodes=1126700 [decl #134100] theorem NNReal.isUniformEmbedding_coe [decl #134200] def Lean.ScopedEnvExtension.ScopedEntries.map [decl #134300] theorem SimpleGraph.not_isDiag_of_mem_edgeSet [decl #134400] theorem LocallyFiniteOrderBot.ofIic'._proof_1 INTERN_CALLS 8700000000 nodes=423644 [decl #134500] theorem _private.Mathlib.Analysis.Calculus.FDeriv.Equiv.0.ContinuousLinearEquiv.comp_right_differentiableWithinAt_iff._simp_1_1 [decl #134600] theorem SchwartzMap.compCLMOfAntilipschitz._proof_5 [decl #134700] theorem MeasureTheory.Measure.addHaar_unitClosedBall_eq_addHaar_unitBall INTERN_CALLS 8800000000 nodes=460538 [decl #134800] theorem Finset.Nonempty.product [decl #134900] theorem _private.Mathlib.MeasureTheory.Integral.IntegralEqImproper.0.MeasureTheory.integral_of_hasDerivAt_of_tendsto._abel_1_1 [decl #135000] theorem Pi.compRightL._proof_1 INTERN_CALLS 8900000000 nodes=1814985 [decl #135100] theorem SchwartzMap.bilinLeftCLM._proof_4 [decl #135200] theorem IsTopologicalGroup.rightUniformSpace._proof_1 [decl #135300] theorem RingHom.iterateFrobenius_comm [decl #135400] theorem MonoidHom.toMulEquiv._proof_1 [decl #135500] def MeasureTheory.FiniteMeasure.instFunLike [decl #135600] def _private.Init.Data.Nat.Basic.0.Nat.exists_eq_add_one_of_ne_zero.match_1_1 [decl #135700] theorem SimpleGraph.Walk.nil_nil._simp_1 [decl #135800] theorem Filter.Tendsto.uniformity_mul_iff_left [decl #135900] def Nat.fermatNumber [decl #136000] theorem Std.DTreeMap.Raw.Const.getKey!_insertManyIfNewUnit_list_of_mem [decl #136100] theorem ZSpan.floor._proof_2 [decl #136200] theorem NumberField.RingOfIntegers.mapRingHom._proof_4 [decl #136300] theorem Multiset.card_sub [decl #136400] theorem NumberField.Units.dirichletUnitTheorem.sum_logEmbedding_component [decl #136500] theorem NumberField.mixedEmbedding.commMap_apply_of_isReal [decl #136600] theorem NNReal.pi._proof_1 [decl #136700] theorem MeasureTheory.Measure.addHaar_smul_of_nonneg [decl #136800] theorem finiteDimensional_iff_finite [decl #136900] theorem AffineEquiv.ext INTERN_CALLS 9000000000 nodes=1839915 [decl #137000] theorem MeasureTheory.MeasurePreserving.measure_preimage [decl #137100] theorem TopologicalSpace.Closeds.instSetLike._proof_1 [decl #137200] theorem MeasureTheory.MeasurePreserving.of_isEmpty [decl #137300] theorem NumberField.Units.dirichletUnitTheorem.seq_ne_zero [decl #137400] theorem QuotientGroup.con_ker_eq_conKer [decl #137500] theorem NumberField.mixedEmbedding.fundamentalCone.preimageOfMemIntegerSet._proof_2 [decl #137600] theorem AddEquiv.ofUnique._proof_1 [decl #137700] theorem String.Slice.toList_positions [decl #137800] theorem Std.Do.SPred.and_symm [decl #137900] theorem List.prefix_iff_exists_append_eq [decl #138000] theorem _private.Init.Data.String.Lemmas.Pattern.TakeDrop.Char.0.String.Slice.startsWith_char_iff_exists_append._simp_1_3 [decl #138100] theorem _private.Mathlib.AlgebraicGeometry.Gluing.0.AlgebraicGeometry.Scheme.IsLocallyDirected.cocone._simp_3 [decl #138200] theorem CategoryTheory.Functor.obj_mem_essImage [decl #138300] theorem CategoryTheory.CommSq.coconeOp._proof_1 [decl #138400] theorem _private.Mathlib.AlgebraicGeometry.Scheme.0.AlgebraicGeometry.Scheme.Hom.isIso_toPshHom._proof_1 [decl #138500] theorem Submonoid.leftInvEquiv._proof_4 [decl #138600] theorem RingHom.toMorphismProperty_respectsIso_iff INTERN_CALLS 9100000000 nodes=1385890 [decl #138700] theorem CategoryTheory.Precoverage.ZeroHypercover.instSmall [decl #138800] theorem AlgebraicGeometry.Scheme.Pullback.carrierEquiv._proof_5 [decl #138900] theorem CategoryTheory.Limits.diagonalObjPullbackFstIso_inv_fst_snd [decl #139000] def _private.Mathlib.AlgebraicGeometry.Sites.SmallAffineZariski.0.AlgebraicGeometry.Scheme.AffineZariskiSite.coequifibered_iff_forall_isLocalizationAway.match_1_5 [decl #139100] theorem TopCat.Sheaf.interUnionPullbackConeLift._proof_3 [decl #139200] theorem AlgebraicGeometry.Scheme.Pullback.openCoverOfBase'._proof_8 [decl #139300] def AlgebraicGeometry.Scheme.Hom.normalizationGlueData INTERN_CALLS 9200000000 nodes=2224336 [decl #139400] theorem AlgebraicGeometry.HasAffineProperty.of_isZariskiLocalAtTarget [decl #139500] def RingHom.LocalizationPreserves [decl #139600] theorem AlgebraicGeometry.Scheme.IsLocallyDirected.ι_jointly_surjective [decl #139700] theorem CategoryTheory.Comonad.ComonadicityInternal.main_pair_coreflexive [decl #139800] def _private.Batteries.CodeAction.Misc.0.Batteries.CodeAction.removeAfterDoneAction.match_3 [decl #139900] theorem String.Slice.isEmpty_sliceTo_eq_false_iff [decl #140000] theorem Finset.map_truncatedInf [decl #140100] def CategoryTheory.Triangulated.Localization.instPretriangulatedLocalization' [decl #140200] def instComplementUInt32 [decl #140300] theorem String.Pos.lt_iff [decl #140400] theorem _private.Mathlib.RingTheory.Polynomial.Resultant.Basic.0.Polynomial.resultant_dvd_leadingCoeff_pow._simp_1_1 [decl #140500] theorem _private.Mathlib.RingTheory.Polynomial.Resultant.Basic.0.Polynomial.resultant_C_mul_right._proof_1_1 [decl #140600] theorem Vector3.eq_nil [decl #140700] theorem CategoryTheory.InjectiveResolution.instIsLECochainComplexOfNatInt INTERN_CALLS 9300000000 nodes=1688140 [decl #140800] def Lean.Meta.Grind.Arith.Cutsat.DvdCnstrProof.coreOfNat.noConfusion [decl #140900] theorem Bundle.Pretrivialization.continuousLinearMapCoordChange_apply [decl #141000] def RBTree.RBNode.insert.match_1 [decl #141100] theorem ProbabilityTheory.Kernel.iIndepFun_zero_right [decl #141200] theorem CategoryTheory.Limits.BinaryBicone.toBiconeIsColimit._proof_2 [decl #141300] def Lean.Meta.Grind.Arith.Linear.EqCnstrProof.ctorIdx [decl #141400] theorem Function.Embedding.optionElim.congr_simp [decl #141500] def Std.Iter.findSomeM?_eq_match_step.match_1 [decl #141600] theorem pow_eq_pow_mod [decl #141700] def IsMulCommutative.instDivisionCommMonoid [decl #141800] theorem List.getElem_modify._proof_1 [decl #141900] theorem CategoryTheory.Pretriangulated.Opposite.instHasShiftOppositeInt._proof_23 INTERN_CALLS 9400000000 nodes=948184 [decl #142000] theorem CategoryTheory.Monoidal.CommMonFunctorCategoryEquivalence.functor._proof_6 [decl #142100] theorem CategoryTheory.Limits.HasEqualizersOfHasPullbacksAndBinaryProducts.equalizerConeIsLimit._proof_2 [decl #142200] theorem Diffeomorph.instEquivLike._proof_1 [decl #142300] theorem HomologicalComplex₂.ι_D₂ INTERN_CALLS 9500000000 nodes=2778710 [decl #142400] theorem Std.DHashMap.Internal.Raw₀.getKey_eq [decl #142500] def _private.Mathlib.Algebra.Group.Action.Pi.0.Pi.faithfulVAdd.match_1 [decl #142600] def ContMDiffMap.commMonoid [decl #142700] theorem Nat.getElem?_toList_rco_eq_some_iff._simp_1 [decl #142800] theorem Std.DTreeMap.size_erase [decl #142900] theorem AdicCompletion.instNatCast._proof_1 [decl #143000] def BitVec.instHashable [decl #143100] def Std.Tactic.BVDecide.instDecidableEqBVUnOp.decEq.match_1 [decl #143200] theorem Std.Tactic.BVDecide.BVExpr.decEq._proof_108 [decl #143300] def Std.Tactic.BVDecide.BVUnOp._sizeOf_inst INTERN_CALLS 9600000000 nodes=927707 [decl #143400] theorem Std.Tactic.BVDecide.BVExpr.bitblast.blastConst._proof_4 [decl #143500] def Std.Sat.AIG.RefVec.IfInput.casesOn [decl #143600] theorem Std.Sat.AIG.RefVec.fold._proof_2 [decl #143700] theorem Std.Sat.AIG.RefVec.map.go_decl_eq INTERN_CALLS 9700000000 nodes=1057200 [decl #143800] theorem _private.Std.Tactic.BVDecide.Bitblast.BVExpr.Circuit.Impl.Operations.RotateRight.0.Std.Tactic.BVDecide.BVExpr.bitblast.blastRotateRight._proof_3 [decl #143900] def Std.Tactic.BVDecide.BVExpr.bitblast.blastExtractAndExtendTarget.casesOn [decl #144000] theorem Std.Tactic.BVDecide.BVExpr.bitblast.blastCpopLayer.go_decl_eq._unary [decl #144100] def Std.Tactic.BVDecide.BVExpr.bitblast.blastShiftRight.twoPowShift [decl #144200] theorem Algebra.instSubtypeMemSubringCenter._proof_8 [decl #144300] theorem Rat.intCast_le_cast [decl #144400] theorem ArchimedeanClass.instLinearOrder._proof_8 [decl #144500] theorem ArchimedeanClass.instCommRingFiniteElement._proof_30 INTERN_CALLS 9800000000 nodes=612138 [decl #144600] def ArchimedeanClass.instFieldFiniteResidueField [decl #144700] theorem CategoryTheory.Limits.IsColimit.ofIsZero._proof_2 [decl #144800] theorem Function.Exact.of_ladder_addEquiv_of_exact' [decl #144900] theorem Nat.leRec.eq_2 [decl #145000] theorem SignType.enumList_getElem?_ctorIdx_eq [decl #145100] theorem PMF.bernoulli._proof_1 [decl #145200] def AlgebraicGeometry.ValuativeCommSq.K [decl #145300] def AffineEquiv.constVAdd [decl #145400] theorem norm_sub_eq_zero_iff [decl #145500] def _private.Mathlib.GroupTheory.MonoidLocalization.Basic.0.Submonoid.LocalizationMap.surj₂.match_1_1 INTERN_CALLS 9900000000 nodes=2519350 [decl #145600] def _private.Mathlib.RingTheory.Spectrum.Prime.Topology.0.Algebra.IsIntegral.comap_surjective.match_1_1 [decl #145700] def RatFunc.definition.match_1._@.Mathlib.FieldTheory.RatFunc.Basic.870781102._hygCtx._hyg.2 [decl #145800] theorem RatFunc.instAlgebraOfPolynomial._proof_4 [decl #145900] theorem Polynomial.residueFieldMapCAlgEquiv._proof_12 [decl #146000] theorem Polynomial.taylor._proof_1 INTERN_CALLS 10000000000 nodes=698128 [decl #146100] theorem Algebra.QuasiFiniteAt.eq_of_le_of_under_eq [decl #146200] theorem _private.Mathlib.RingTheory.ZariskisMainTheorem.0.exists_leadingCoeff_pow_smul_mem_radical_conductor._simp_1_4 [decl #146300] theorem AlgEquiv.ofAlgHom_symm_apply [decl #146400] theorem Std.DHashMap.Internal.Raw₀.contains_diff [decl #146500] theorem AddSubmonoid.LocalizationMap.surj [decl #146600] theorem _private.Mathlib.CategoryTheory.Subfunctor.Image.0.CategoryTheory.Subfunctor.epi_iff_range_eq_top._simp_1_2 [decl #146700] theorem SSet.degenerate_iff_of_mono INTERN_CALLS 10100000000 nodes=2466832 [decl #146800] theorem SSet.relativeCellComplexOfMono.r._proof_1 [decl #146900] theorem SSet.Subcomplex.homOfLE_ι [decl #147000] def Lean.Meta.Grind.AC.DiseqCnstrProof.erase_dup.elim [decl #147100] theorem QuadraticMap.polar_comm [decl #147200] theorem QuadraticMap.associated_isSymm [decl #147300] theorem MeasureTheory.Measure.zero_one [decl #147400] theorem Ordinal.lift_type_eq [decl #147500] theorem CategoryTheory.Limits.CategoricalPullback.Hom.w [decl #147600] def _private.Mathlib.CategoryTheory.Monoidal.Functor.0._auto_46 [decl #147700] theorem StrictMonoOn.domRestrict [decl #147800] theorem CochainComplex.HomComplex.Cochain.leftUnshift_zero [decl #147900] def CompactlySupportedContinuousMap.toNNRealLinear [decl #148000] def AkraBazziRecurrence.min_bi [decl #148100] def CoalgHom.id [decl #148200] theorem Subgroup.subsingleton_iff [decl #148300] theorem RingHom.Flat.respectsIso INTERN_CALLS 10200000000 nodes=1197698 [decl #148400] theorem _private.Mathlib.Topology.Maps.Basic.0.Topology.isQuotientMap_iff_isClosed._simp_1_4 [decl #148500] def HAndThen.hAndThen [decl #148600] theorem ContDiffWithinAt.inner [decl #148700] def Representation.finsuppToCoinvariants [decl #148800] def Turing.TM2.stepAux.match_1 [decl #148900] def GrpCat.limitGroup._aux_3 [decl #149000] theorem _private.Mathlib.MeasureTheory.Constructions.BorelSpace.Real.0.Real.isPiSystem_Iic_rat._simp_1_3 [decl #149100] theorem _private.Mathlib.Algebra.Polynomial.CoeffList.0.Polynomial.coeffList_eraseLead._proof_1_5 [decl #149200] theorem _private.Mathlib.Algebra.Polynomial.RuleOfSigns.0.Polynomial.exists_cons_of_leadingCoeff_pos._proof_1_5 INTERN_CALLS 10300000000 nodes=4546818 [decl #149300] def CategoryTheory.Iso.addMonCatIsoToAddEquiv [decl #149400] theorem _private.Mathlib.Algebra.Homology.HomotopyCategory.Plus.0.HomotopyCategory.plus_quotient_obj_iff._simp_1_2 [decl #149500] theorem _private.Mathlib.CategoryTheory.Monoidal.Cartesian.Basic.0.CategoryTheory.Functor.OplaxMonoidal.δ_fst._simp_1_1 [decl #149600] theorem contDiffOn_succ_iff_deriv_of_isOpen [decl #149700] theorem Filter.Eventually.diag_of_prod [decl #149800] theorem _private.Mathlib.Analysis.Calculus.BumpFunction.FiniteDimension.0.ExistsContDiffBumpBase.w_mul_φ_nonneg._simp_1_2 [decl #149900] theorem _private.Mathlib.Analysis.Calculus.ContDiff.Convolution.0.MeasureTheory.hasFDerivAt_convolution_right_with_param._simp_1_5 [decl #150000] theorem ExistsContDiffBumpBase.instHasContDiffBumpOfFiniteDimensionalReal [decl #150100] def List.next [decl #150200] theorem _private.Mathlib.Data.List.Cycle.0.List.prev_eq_getElem?_idxOf_pred_of_ne_head._proof_1_3 [decl #150300] theorem Irrational.ratCast_mul INTERN_CALLS 10400000000 nodes=1533142 [decl #150400] def CategoryTheory.Functor.whiskeringLeft₃Obj [decl #150500] def CategoryTheory.Localization.Lifting₂.iso [decl #150600] theorem _private.Mathlib.Combinatorics.Matroid.Map.0.Matroid.comap._simp_7 [decl #150700] theorem Subsemigroup.mem_op [decl #150800] theorem _private.Mathlib.FieldTheory.Galois.Infinite.0.InfiniteGalois.restrict_fixedField._simp_1_1 [decl #150900] theorem _private.Mathlib.GroupTheory.Nilpotent.0.Subgroup.comap_upperCentralSeries._simp_1_4 [decl #151000] theorem IsLprojection.instLatticeSubtypeOfFaithfulSMul._proof_1 [decl #151100] theorem _private.Mathlib.RingTheory.Discriminant.0.Algebra.discr_powerBasis_eq_norm._simp_1_4 [decl #151200] theorem Polynomial.mul_comp INTERN_CALLS 10500000000 nodes=1821158 [decl #151300] def ValuationRing.instMulValueGroup [decl #151400] theorem ValuationSubring.unitGroupMulEquiv._proof_6 [decl #151500] theorem _private.Mathlib.NumberTheory.ModularForms.Cusps.0.Subgroup.strictPeriods_eq_zmultiples_one_of_T_mem._simp_1_1 [decl #151600] def Nat.anyLTTR [decl #151700] theorem CategoryTheory.Comon.MonOpOpToComon._proof_2 [decl #151800] theorem List.Subperm.idxInj._proof_3 [decl #151900] theorem instRingPadic._proof_20 [decl #152000] theorem Padic.eq_padicNorm [decl #152100] theorem String.instDecidableEqPos.decEq._proof_1 [decl #152200] theorem Std.Iter.toListRev_eq [decl #152300] def Std.instIteratorα [decl #152400] theorem map_inj_right_of_nonempty [decl #152500] def CommCStarAlgebra.toCStarAlgebra [decl #152600] theorem NonUnitalAlgHom.ext [decl #152700] theorem IsSelfAdjoint.algebraMap [decl #152800] def resolvent [decl #152900] def StarSubalgebra.centralizer [decl #153000] theorem WeakDual.toStrongDual._proof_1 [decl #153100] theorem _private.Mathlib.Topology.Order.Bornology.0.IsOrderBornology.neBot_cobounded_of_noBotOrder._simp_2 [decl #153200] theorem StarAlgebra.elemental.characterSpaceToSpectrum._proof_1 INTERN_CALLS 10600000000 nodes=2150982 [decl #153300] theorem Ideal.IsMaximal.closure_eq [decl #153400] theorem ContinuousMap.normedSpace._proof_4 [decl #153500] theorem Set.compl_neg [decl #153600] theorem WithLp.instCompleteSpace [decl #153700] theorem Unitization.uniformContinuous_fst [decl #153800] theorem IsSelfAdjoint.zero._simp_1 [decl #153900] theorem WithCStarModule.linearEquiv._proof_4 [decl #154000] theorem Set.powerset_empty [decl #154100] theorem Nat.mul_le_mul_right_iff [decl #154200] theorem Graph.IsLink.eq_and_eq_or_eq_and_eq [decl #154300] opaque String.Internal.getUTF8Byte [decl #154400] theorem Submodule.top_ne_set_smul_of_subset_jacobson_annihilator [decl #154500] theorem SchwartzMap.norm_toLp [decl #154600] theorem List.getElem_attachWith INTERN_CALLS 10700000000 nodes=958919 [decl #154700] theorem AddCommGrpCat.coyonedaForget._proof_1 [decl #154800] theorem CategoryTheory.Limits.BinaryCofan.isColimitFlip._proof_3 [decl #154900] theorem _private.Mathlib.CategoryTheory.Sites.PrecoverageToGrothendieck.0.CategoryTheory.Precoverage.isSheaf_toGrothendieck_iff._simp_1_1 [decl #155000] def CategoryTheory.Presieve.isTerminal_of_isSheafFor_empty_presieve [decl #155100] theorem Filter.frequently_false._simp_1 [decl #155200] theorem Lean.Grind.Order.lt_eq_true_k [decl #155300] def HomologicalComplex.pathObject.π₀ [decl #155400] theorem Continuous.tendsto_nhdsSet_nhds [decl #155500] theorem Associates.factors_eq_some_iff_ne_zero [decl #155600] theorem Module.torsion_by_prime_power_decomposition [decl #155700] def _private.Mathlib.GroupTheory.SpecificGroups.Cyclic.Basic.0.IsCyclic.isMulCommutative.match_3 [decl #155800] def Std.DTreeMap.Internal.Impl.insertManyIfNew [decl #155900] def Mathlib.Meta.FunProp.DecompositionResult.ctorElimType [decl #156000] theorem HurwitzZeta.hurwitzEvenFEPair._proof_4 [decl #156100] theorem AddCommGroup.modEq_iff_zsmul [decl #156200] theorem MeasurableSet.const_vadd [decl #156300] theorem BoundedContinuousFunction.toLp._proof_2 INTERN_CALLS 10800000000 nodes=2653091 [decl #156400] theorem NNReal.le_rpow_inv_iff [decl #156500] theorem Finset.sdiff_inter_self_left [decl #156600] theorem fourier_add_half_inv_index [decl #156700] theorem ContinuousLinearMap.toContinuousAddMonoidHom_inj [decl #156800] theorem fourierCoeff_toLp [decl #156900] theorem _private.Mathlib.NumberTheory.ModularForms.JacobiTheta.Bounds.0.HurwitzKernelBounds.isBigO_one_aux._simp_1_1 [decl #157000] theorem Array.all_eq_true [decl #157100] theorem CategoryTheory.AddGrp.instCategory._proof_7 [decl #157200] theorem SheafOfModules.forgetToSheafModuleCat._proof_1 [decl #157300] theorem Int.lt_add_one_of_le [decl #157400] def Std.Time.Internal.Bounded.LE.ofNat' [decl #157500] def Std.Time.TimeZone.Offset.zero [decl #157600] def Std.Time.WallTime.ofNanoseconds [decl #157700] def Std.Internal.Parsec.eof [decl #157800] def _private.Std.Time.Zoned.Database.TzIf.0.Std.Time.TimeZone.TZif.manyN [decl #157900] theorem _private.Mathlib.Order.Minimal.0.not_minimal_iff_exists_lt._simp_1_1 [decl #158000] theorem Convex.add_smul_sub_mem_interior' INTERN_CALLS 10900000000 nodes=2514908 [decl #158100] theorem ContinuousMultilinearMap.iteratedFDeriv_comp_diagonal [decl #158200] theorem intervalIntegral.FTCFilter.le_nhds [decl #158300] theorem MeasureTheory.IsAddFundamentalDomain.setIntegral_eq_tsum' [decl #158400] theorem Finset.SupIndep.insert [decl #158500] theorem _private.Init.Data.String.Basic.0.String.Pos.byteIdx_lt_utf8ByteSize._proof_1_2 [decl #158600] theorem DistribMulAction.toAddAut._proof_2 [decl #158700] theorem _private.Mathlib.RingTheory.Polynomial.Cyclotomic.Eval.0.Polynomial.cyclotomic_neg_one_pos._simp_1_1 [decl #158800] theorem _private.Mathlib.GroupTheory.Perm.Cycle.Basic.0.Finset.product_self_eq_disjiUnion_perm._simp_1_4 [decl #158900] def BialgEquiv.ofBijective [decl #159000] theorem instIsOrderedCancelAddMonoidPrimeMultiset._proof_1 [decl #159100] theorem Std.Internal.List.getKey?_filter_containsKey [decl #159200] def DirectSum.instDFunLike._aux_1 [decl #159300] def Convexity.StdSimplex.weights INTERN_CALLS 11000000000 nodes=1868394 [decl #159400] theorem WeierstrassCurve.map.eq_1 [decl #159500] theorem FreeAlgebra.instIsScalarTower [decl #159600] theorem norm_add_sq_eq_norm_sq_add_norm_sq_real [decl #159700] theorem Subgroup.index.eq_1 [decl #159800] theorem _private.Mathlib.Data.Finset.Insert.0.Finset.singleton_iff_unique_mem._simp_1_1 [decl #159900] theorem OneHom.ENatMap._proof_1 [decl #160000] theorem UniformConvergenceCLM.locallyConvexSpace [decl #160100] theorem PositiveContinuousLinearMap.instContinuousLinearMapClass INTERN_CALLS 11100000000 nodes=3245661 [decl #160200] def ChartedSpace.empty [decl #160300] theorem IsGreatest.nnnorm_cfcₙ_nnreal [decl #160400] theorem _private.Mathlib.NumberTheory.JacobiSum.Basic.0.jacobiSum_eq_sum_sdiff._simp_1_7 [decl #160500] theorem _private.Init.Data.Iterators.Consumers.Monadic.Loop.0.PSigma.casesOn._arg_pusher [decl #160600] theorem Array.lex_toList [decl #160700] def _private.Mathlib.Order.PrimeSeparator.0.DistribLattice.prime_ideal_of_disjoint_filter_ideal.match_1_9 [decl #160800] theorem FirstOrder.Language.DirectLimit.funMap_quotient_mk'_sigma_mk' [decl #160900] theorem UInt8.le_iff_toBitVec_le [decl #161000] theorem Finset.card_le_two [decl #161100] theorem AdicCompletion.liftAlgHom._proof_1 [decl #161200] theorem MvPowerSeries.toAdicCompletion._proof_3 [decl #161300] theorem _private.Mathlib.RingTheory.AdicCompletion.Basic.0.IsHausdorff.map_algebraMap_iff._simp_1_2 [decl #161400] theorem AdicCompletion.module._proof_3 INTERN_CALLS 11200000000 nodes=2436732 [decl #161500] theorem AdicCompletion.ofPowSMul_ofValEqZero [decl #161600] def Std.DTreeMap.Internal.Impl.getEntryGT?.go.match_1 [decl #161700] theorem IsPicardLindelof.exists_eq_forall_mem_Icc_hasDerivWithinAt₀ [decl #161800] theorem _private.Mathlib.NumberTheory.NumberField.InfinitePlace.Ramification.0.NumberField.InfinitePlace.not_isUnramified_iff._simp_1_2 [decl #161900] theorem CategoryTheory.Aut.toEnd._proof_1 [decl #162000] def Turing.TM0to1.Λ'.casesOn [decl #162100] theorem Tactic.ComputeAsymptotics.Seq.instMetricSpaceSeq._proof_5 [decl #162200] theorem tendsto_indicator_const_apply_iff_eventually [decl #162300] theorem Fin.even_of_odd [decl #162400] theorem TrivSqZeroExt.addGroup._proof_1 [decl #162500] theorem PerfectClosure.instCommRing._proof_10 [decl #162600] def Std.Time.Database.TZdb.noConfusion [decl #162700] def GroupNorm.toGroupSeminorm [decl #162800] def Std.DTreeMap.Internal.Impl.Const.IteratedSlowInsertionInto INTERN_CALLS 11300000000 nodes=4613321 [decl #162900] theorem finsum_eq_single [decl #163000] theorem separableClosure.isSepClosure [decl #163100] theorem differentiableWithinAt_zpow [decl #163200] theorem Set.image_mul_right' [decl #163300] theorem Subgroup.IsArithmetic.discreteTopology [decl #163400] theorem QuotientGroup.leftRel_eq_top._simp_2 [decl #163500] theorem SimpleGraph.Reachable.mono [decl #163600] theorem _private.Mathlib.MeasureTheory.Covering.Vitali.0.Vitali.exists_disjoint_subfamily_covering_enlargement._simp_1_2 [decl #163700] theorem CategoryTheory.Limits.pullbackConeEquivBinaryFan._proof_5 [decl #163800] theorem CategoryTheory.FunctorToTypes.binaryProductIso._proof_1 [decl #163900] theorem Monoid.Coprod.mk_eq_mk [decl #164000] opaque Inclusion.inclusionFamiliesRef [decl #164100] def Inclusion.mkUniversalHypBody [decl #164200] theorem Cardinal.mk_subtype_le_of_countable_eventually_mem_aux [decl #164300] theorem AnalyticOnNhd.aeval_polynomial [decl #164400] theorem UniformSpace.Completion.coe_injective [decl #164500] theorem CategoryTheory.Triangulated.TStructure.zero' [decl #164600] def CategoryTheory.Pretriangulated.Triangle.π₃Toπ₁ INTERN_CALLS 11400000000 nodes=2018117 [decl #164700] theorem CategoryTheory.Triangulated.TStructure.isLE_of_iso [decl #164800] theorem CategoryTheory.Triangulated.TStructure.eTruncLT_obj_map_eTruncLTι_app [decl #164900] theorem _private.Mathlib.NumberTheory.Height.Basic.0.Height.max_eq_iSup [decl #165000] theorem Polynomial.iterate_derivative_X_pow_eq_natCast_mul [decl #165100] theorem HahnSeries.embDomain_one [decl #165200] theorem CategoryTheory.OverPresheafAux.YonedaCollection.mk._proof_1 [decl #165300] theorem Real.Angle.sin_antiperiodic [decl #165400] theorem Real.monotoneOn_posLog [decl #165500] def ClassGroup.mk INTERN_CALLS 11500000000 nodes=2565517 [decl #165600] theorem CategoryTheory.MorphismProperty.TransfiniteCompositionOfShape.map_mem [decl #165700] def Lean.Meta.Simp.UsedSimps.casesOn [decl #165800] def Lean.Nat.mkInstHAdd [decl #165900] opaque Lean.Meta.Match.getEquationsFor [decl #166000] def Lean.Meta.instInhabitedSimpTheorems.default [decl #166100] def _private.Lean.Util.SortExprs.0.Lean.sortExprs.match_1 [decl #166200] def Lean.Int.mkInstHAdd [decl #166300] def Nat.Internal.Linear.instBEqExpr [decl #166400] theorem Submodule.mulMap'._proof_1 [decl #166500] theorem TopologicalSpace.NonemptyCompacts.toCompactSpace [decl #166600] theorem Booleanisation.instPartialOrder._proof_1 [decl #166700] theorem IntermediateField.mem_adjoin_simple_iff [decl #166800] theorem DiscreteConvolution.convolution._proof_1 [decl #166900] theorem _private.Mathlib.Data.EReal.Inv.0.EReal.instCommMonoidWithZero._simp_1 [decl #167000] theorem EReal.le_neg [decl #167100] def CategoryTheory.Oplax.OplaxTrans.isoMk [decl #167200] def _private.Mathlib.Order.BooleanSubalgebra.0.BooleanSubalgebra.mem_closure_iff_sup_sdiff.match_1_1 [decl #167300] theorem subgroupOfIdempotent._proof_1 [decl #167400] theorem Std.DHashMap.Internal.Raw₀.wf_map₀ [decl #167500] theorem PowerSeries.order_le [decl #167600] def Std.DTreeMap.Internal.Impl.getKeyLT._f [decl #167700] theorem TestFunction.instSMulOfSMulCommClassRealOfContinuousConstSMul._proof_2 [decl #167800] theorem ContDiffMapSupportedIn.norm_toBoundedContinuousFunction [decl #167900] theorem Std.DHashMap.Internal.Raw₀.size_union_of_not_mem [decl #168000] theorem CategoryTheory.IsFilteredOrEmpty.of_exists_of_isFiltered_of_fullyFaithful INTERN_CALLS 11600000000 nodes=763653 [decl #168100] theorem CategoryTheory.Comma.full_map [decl #168200] theorem CategoryTheory.CostructuredArrow.essentiallySmall [decl #168300] theorem _private.Mathlib.RingTheory.Localization.FractionRing.0.IsFractionRing.fieldEquivOfAlgEquiv._simp_1 [decl #168400] def Std.DTreeMap.entryAtIdx! [decl #168500] def SubAddAction.carrier [decl #168600] def RBTree.RBNode.Path.casesOn [decl #168700] def _private.Batteries.Recycling.RBTree.WF.0.RBTree.RBNode.RedRed.balance1.match_1_2 [decl #168800] def _private.Batteries.Recycling.RBTree.WF.0.RBTree.RBNode.Ordered.append.match_1_6 [decl #168900] theorem RBTree.RBNode.Path.ins.eq_def [decl #169000] def _private.Lean.Parser.Basic.0.Lean.Parser.sepByFnAux [decl #169100] theorem CStarMatrix.instAddGroup._proof_7 [decl #169200] theorem WithCStarModule.instContinuousSMul [decl #169300] theorem CStarMatrix.instNormedAddCommGroup._proof_13 [decl #169400] def _private.Mathlib.ModelTheory.Order.0.FirstOrder.Language.order.forall_relations.match_1_1 [decl #169500] theorem Function.prod_const_const [decl #169600] theorem ONote.repr.eq_1 [decl #169700] theorem _private.Std.Tactic.BVDecide.Bitblast.BVExpr.Circuit.Lemmas.Operations.ZeroExtend.0.Std.Tactic.BVDecide.BVExpr.bitblast.blastZeroExtend.go_denote_eq._proof_1_3 [decl #169800] def QuotientGroup.rightRel [decl #169900] theorem SimpleGraph.coe_cliqueFinset [decl #170000] def Lean.ConstructorVal.isUnsafe [decl #170100] def Lean.Declaration.hasSorry [decl #170200] def Lean.Language.SnapshotTreeTransform.transformInfoTree? [decl #170300] opaque _private.Lean.Meta.DiscrTree.Basic.0.Lean.Meta.DiscrTree.createNodes [decl #170400] def Lean.Syntax.SepArray.ofElems [decl #170500] opaque Lean.Std.Format.format.width [decl #170600] theorem ContinuousLinearMap.toContinuousAddMonoidHom_sub [decl #170700] theorem CategoryTheory.Limits.Cone.extendIso._proof_2 [decl #170800] theorem CategoryTheory.Preadditive.moduleEndRight._proof_1 INTERN_CALLS 11700000000 nodes=2928362 [decl #170900] theorem CategoryTheory.Pretriangulated.triangleOpEquivalence._proof_2 [decl #171000] theorem CategoryTheory.CatCenter.localization_add [decl #171100] theorem DerivedCategory.instLinearSingleFunctor [decl #171200] theorem Nat.Simproc.add_eq_le [decl #171300] theorem RatFunc.polynomialValuationX._proof_1 [decl #171400] theorem HahnSeries.instAddCommGroupWithOne._proof_1 [decl #171500] theorem HahnSeries.SummableFamily.instSMul._proof_2 [decl #171600] theorem HahnSeries.single_injective [decl #171700] theorem IsDiscreteValuationRing.of_ufd_of_unique_irreducible [decl #171800] theorem PowerSeries.eq_divided_by_X_pow_order_Iff_Unit [decl #171900] theorem neg_nonpos_of_nonneg [decl #172000] theorem OrderIso.lt_symm_apply [decl #172100] theorem PowerSeries.coe_sub [decl #172200] def CategoryTheory.Cat.freeMapIdIso [decl #172300] theorem ValuationSubring.instFieldSubtypeMemTop._proof_4 [decl #172400] theorem CategoryTheory.Functor.mapAddMonNatTrans._proof_6 [decl #172500] theorem String.Pos.splits_next_right [decl #172600] theorem Mathlib.Meta.Positivity.log_pos_of_isNat INTERN_CALLS 11800000000 nodes=1345496 [decl #172700] theorem CategoryTheory.MonoidalCategory.MonoidalLeftAction.action_exchange [decl #172800] theorem StarSubsemiring.starRing._proof_2 [decl #172900] theorem OrderRingHom.comp._proof_1 [decl #173000] theorem QuaternionAlgebra.instRing._proof_1 [decl #173100] theorem NumberField.InfinitePlace.Completion.instAlgebra._proof_6 [decl #173200] theorem divMonoidHom._proof_2 [decl #173300] theorem List.perm_permutations'Aux_comm [decl #173400] theorem _private.Mathlib.Data.List.Permutation.0.List.nodup_permutations._simp_1_2 [decl #173500] def Lean.Meta.mkLabeledSorry [decl #173600] theorem FiniteField.frobeniusAlgHom._proof_1 [decl #173700] theorem NumberField.mixedEmbedding.fundamentalCone.expMap_single._proof_3 [decl #173800] def _private.Aesop.Util.UnorderedArraySet.0.Aesop.UnorderedArraySet.rep [decl #173900] theorem MeasureTheory.measure_eq_top_of_subset_compl_sigmaFiniteSetWRT [decl #174000] theorem Sym.erase._proof_1 [decl #174100] theorem CategoryTheory.Dial.Hom.ext [decl #174200] def Nat.Partrec.Code.pair.elim [decl #174300] theorem NonUnitalRingHom.prod._proof_2 [decl #174400] def _private.Aesop.Forward.Substitution.0.Aesop.Substitution.openRuleType.match_1 REJECT: [CategoryTheory.Functor.IsHomLift] recursor `CategoryTheory.Functor.IsHomLift.rec` allows large elimination out of a Prop-valued inductive that is not a subsingleton
Test "navier-stokes-euler"
Expected: 👍 accept · Size: 1.5 GB · Lines: 28.6 M · lean4export: 3.1.0 · Lean: 4.34.0-rc2 · 📄 Declaration · 🔗 Source
OpenAI's Lean formalization of finite-time blowup for the three-dimensional incompressible Navier–Stokes equations with smooth forcing (on Euclidean space and on the periodic torus), and of unforced Euler blowup. See https://github.com/openai/NavierStokesAndEuler/.
This test exports the main results listed in the project's formalization.yaml,
together with their dependencies.
Test result: ⌛ timeout · exit code -9 · wall time: 40.0 m · max rss memory: 0 B
stderr:
Killed after exceeding the timeout of 40.0 m. [decl #100] def Bool.ctorIdx [decl #200] theorem Nat.modCore_lt [decl #300] def Inv.inv [decl #400] def _private.Init.Data.Nat.Basic.0.Nat.mul_le_mul_left.match_1_1 [decl #500] theorem Nat.gcd_succ [decl #600] def LinearOrder.min_def._autoParam [decl #700] theorem LinearOrder.le_total [decl #800] def Ring.toAddGroupWithOne [decl #900] def InvolutiveInv.toInv [decl #1000] theorem ZeroLEOneClass.zero_le_one [decl #1100] def IsAddLeftRegular [decl #1200] def IsAddRightRegular [decl #1300] def AbsoluteValue.casesOn [decl #1400] theorem neg_mul_neg [decl #1500] def List.instGetElem?NatLtLength [decl #1600] theorem _private.Mathlib.Algebra.GroupWithZero.Defs.0.isCancelMulZero_iff_forall_isRegular._simp_1_2 [decl #1700] def _private.Init.Data.List.Lemmas.0.List.append_of_mem.match_1_9 [decl #1800] def _private.Init.Data.List.Lemmas.0.List.getLast_mem.match_1_1 [decl #1900] theorem Nat.instAddCancelCommMonoid._proof_1 [decl #2000] def Units.casesOn [decl #2100] theorem Function.Injective.addGroupWithOne._proof_2 [decl #2200] theorem Pi.mulOneClass._proof_2 [decl #2300] theorem Nat.Coprime.gcd_eq_one [decl #2400] theorem Int.ofNat_inj [decl #2500] theorem Int.natCast_mul [decl #2600] theorem Int.dvd_of_emod_eq_zero [decl #2700] def Lean.Omega.IntList.sum [decl #2800] theorem Int.le_of_sub_nonneg [decl #2900] def _private.Init.Core.0.Bool.of_not_eq_true.match_1_1 [decl #3000] theorem Lean.Omega.Int.mul_congr [decl #3100] theorem _private.Init.Data.Nat.Div.Lemmas.0.Nat.succ_div_of_dvd._simp_1_3 [decl #3200] theorem Rat.divInt_add_divInt [decl #3300] theorem Int.dvd_mul_left [decl #3400] theorem Nat.Coprime.pow_right [decl #3500] theorem Nat.one_ne_zero [decl #3600] theorem Rat.not_lt [decl #3700] theorem Rat.add_le_add_right [decl #3800] def OrderIso.symm [decl #3900] theorem abs_add_le [decl #4000] theorem Ring.toGrindRing._proof_14 [decl #4100] theorem _private.Init.Grind.Ring.Basic.0.Lean.Grind.Ring.intCast_add._proof_1_3 [decl #4200] theorem _private.Init.Grind.Ring.Basic.0.Lean.Grind.IsCharP.intCast_eq_zero_iff._proof_1_9 [decl #4300] def Lean.Grind.CommRing.Power.x [decl #4400] def Bool.dcond.match_1 [decl #4500] theorem Lean.Grind.CommRing.instBEqMon.beq.eq_3 [decl #4600] theorem Lean.Grind.Semiring.ofNat_mul [decl #4700] theorem Lean.Grind.CommRing.Poly.denote_mul [decl #4800] theorem CauSeq.instPreorderAbs._proof_2 [decl #4900] def _private.Mathlib.Algebra.Order.CauSeq.Basic.0.CauSeq.const_limZero.match_1_1 [decl #5000] theorem Function.Surjective.addGroup._proof_2 [decl #5100] theorem mul_le_mul_iff_left₀ [decl #5200] theorem Function.Surjective.commMagma._proof_1 [decl #5300] theorem NNReal.instZero._proof_1 [decl #5400] theorem NNReal.instSemiring._proof_26 [decl #5500] def Equiv.addCommGroup [decl #5600] def Pi.module [decl #5700] theorem List.eq_nil_of_length_eq_zero [decl #5800] theorem _private.Init.Data.List.Perm.0.List.Perm.filterMap._simp_1_2 [decl #5900] theorem Multiset.Nodup.ext [decl #6000] theorem not_false_iff [decl #6100] theorem Finset.fold_op_distrib [decl #6200] theorem List.pairwise_map [decl #6300] theorem List.mem_ofFn._simp_1 [decl #6400] theorem _private.Init.Data.List.Perm.0.List.Perm.pmap._simp_1_2 [decl #6500] theorem Finsupp.coe_smul [decl #6600] theorem Function.Bijective.injective [decl #6700] theorem Pi.preorder._proof_3 [decl #6800] theorem lowerBounds_singleton [decl #6900] theorem DistribLattice.ofInfSupLe._proof_3 [decl #7000] def Lean.Data.AC.Variable.neutral [decl #7100] theorem bot_unique [decl #7200] theorem iInf_subtype [decl #7300] theorem Multiset.Le._proof_1 [decl #7400] theorem _private.Mathlib.Data.Finsupp.Single.0.Finsupp.coe_update._proof_1_1 [decl #7500] theorem Multiset.erase_le_iff_le_cons [decl #7600] def Multiset.union [decl #7700] theorem List.sublist_cons_of_sublist [decl #7800] theorem Int.Internal.Linear.Expr.denote_toPoly'_go [decl #7900] theorem _private.Mathlib.Data.Multiset.FinsetOps.0.Multiset.le_ndinter._simp_1_3 [decl #8000] theorem List.nodup_iff_sublist [decl #8100] theorem Finsupp.lsum._proof_2 [decl #8200] def Finset.attach [decl #8300] def Lean.Grind.Linarith.lt_lt_combine_cert [decl #8400] theorem Lean.Grind.OrderedAdd.zsmul_nonpos [decl #8500] theorem Monotone.comp [decl #8600] def Filter.instPartialOrder [decl #8700] theorem Finite.Set.subset [decl #8800] def _private.Mathlib.Data.Nat.Find.0.Nat.wf_lbp.match_1_3 [decl #8900] def Real.instMonoid [decl #9000] theorem Units.mul_inv_cancel_left [decl #9100] def Rat.addMonoid [decl #9200] def _private.Mathlib.Order.Filter.Bases.Basic.0.Filter.HasBasis.ge_iff.match_1_1 [decl #9300] theorem TopologicalSpace.isOpen_univ [decl #9400] def WithTop.instLE [decl #9500] theorem Subtype.instLinearOrder._proof_2 [decl #9600] theorem WithTop.instNonUnitalNonAssocSemiring._proof_3 [decl #9700] def CompleteLinearOrder.compare_eq_compareOfLessAndEq._autoParam [decl #9800] theorem top_le_iff._simp_2 [decl #9900] theorem Int.floor_le [decl #10000] def _private.Mathlib.Data.Set.Basic.0.Set.univ_nonempty.match_1_1 [decl #10100] theorem Set.mem_Ici [decl #10200] theorem ENNReal.instDivInvMonoid._proof_4 [decl #10300] theorem inv_pos._simp_1 [decl #10400] def WithTop.untop.match_1 [decl #10500] theorem dist_nonneg._simp_1 [decl #10600] theorem Filter.map_map [decl #10700] def Lean.Grind.AC.Expr.brecOn [decl #10800] theorem tsub_pos_iff_lt._simp_1 [decl #10900] theorem Function.injective_id [decl #11000] theorem _private.Mathlib.Data.Finset.Empty.0.Finset.coe_empty._proof_1_1 [decl #11100] theorem WithTopology.image_ofTopology [decl #11200] theorem List.pwFilter_sublist [decl #11300] theorem _private.Mathlib.Topology.NhdsSet.0.mem_nhdsSet_iff_forall._simp_1_2 [decl #11400] def TopologicalSpace.instCompleteLattice [decl #11500] def Equiv.pprodEquivProd [decl #11600] theorem Function.LeftInverse.rightInverse [decl #11700] theorem iSup_range' [decl #11800] theorem NormedAddCommGroup.dist_eq [decl #11900] theorem instPseudoMetricSpaceNNReal._proof_5 [decl #12000] theorem le_of_nhds_le_nhds [decl #12100] theorem uniformity_prod [decl #12200] theorem Finset.mem_product._simp_1 [decl #12300] theorem UniformContinuous.neg [decl #12400] theorem LipschitzWith.lipschitzOnWith [decl #12500] theorem Units.instMonoid._proof_5 [decl #12600] theorem MultilinearMap.instZero._proof_1 [decl #12700] theorem FunLike.addCommGroup._proof_2 [decl #12800] theorem FilterBasis.filter._proof_1 [decl #12900] theorem Homeomorph.comap_nhds_eq [decl #13000] theorem ContinuousMultilinearMap.instPseudoMetricSpace._proof_1 [decl #13100] def _private.Mathlib.Topology.Order.LeftRightNhds.0.TFAE_mem_nhdsGE.match_1_1 [decl #13200] theorem mul_le_of_le_one_left [decl #13300] theorem add_pos_of_nonneg_of_pos [decl #13400] theorem coe_nnreal_ennreal_nndist [decl #13500] theorem Finset.prod_induction [decl #13600] theorem Int.rel_of_forall_rel_succ_of_le [decl #13700] theorem sup_iInf_eq [decl #13800] theorem ContinuousMultilinearMap.instIsSMulApplyForall [decl #13900] theorem Seminorm.preimage_metric_closedBall [decl #14000] theorem instAddMonoidUniformOnFun._proof_2 [decl #14100] def instCompleteLatticeUniformSpace [decl #14200] theorem _private.Mathlib.Analysis.Normed.Module.Multilinear.Basic.0.ContinuousMultilinearMap.uniformity_eq_seminorm._simp_1_5 [decl #14300] theorem norm_le_pi_norm [decl #14400] theorem Nat.Internal.Linear.instBEqPolyCnstr.beq.eq_1 [decl #14500] theorem _private.Mathlib.Data.Multiset.ZeroCons.0.Multiset.rel_flip_aux [decl #14600] theorem Fin.castAdd_injective [decl #14700] theorem Fin.zero_le [decl #14800] theorem Complex.addCommGroup._proof_4 [decl #14900] def IsPreconnected [decl #15000] theorem IsSemitopologicalSemiring.toContinuousAdd [decl #15100] theorem Real.sqrt_inj [decl #15200] theorem Complex.normSq_neg [decl #15300] theorem _private.Init.Data.List.Range.0.List.mem_range'._simp_1_10 [decl #15400] theorem geom_sum₂_with_one [decl #15500] theorem Mathlib.Tactic.Ring.cast_zero [decl #15600] theorem Finset.range_mono [decl #15700] def instLinearOrderNNRat._aux_11 [decl #15800] theorem Nat.choose_succ_succ [decl #15900] theorem Finset.sum_bij' [decl #16000] theorem Complex.ofReal_im [decl #16100] theorem _private.Mathlib.Topology.Separation.Regular.0.exists_mem_nhds_isClosed_subset._proof_1_1 [decl #16200] def Module.compHom [decl #16300] def Prod.instLE_mathlib [decl #16400] theorem _private.Mathlib.Analysis.SpecialFunctions.Exp.0.Complex.locally_lipschitz_exp._abel_1_1 [decl #16500] theorem norm_sub_norm_le [decl #16600] theorem Mathlib.Tactic.Linarith.mul_neg [decl #16700] theorem OrderDual.instSubNegAddMonoid._proof_4 [decl #16800] theorem Mathlib.Tactic.FieldSimp.eq_eq_cancel_eq [decl #16900] theorem Complex.cos_conj [decl #17000] theorem Complex.sinh_conj [decl #17100] theorem Real.sin_two_mul [decl #17200] theorem ENNReal.coe_lt_top [decl #17300] theorem WithTop.add_left_inj [decl #17400] theorem sdiff_sdiff_eq_self [decl #17500] theorem Complex.norm_cos_add_sin_mul_I [decl #17600] def Set.RightInvOn [decl #17700] theorem _private.Mathlib.Order.Filter.Prod.0.Filter.tendsto_prod_iff'._simp_1_2 [decl #17800] theorem Real.rpow_mul [decl #17900] theorem Convex.centerMass_mem [decl #18000] theorem Real.rpow_le_rpow [decl #18100] theorem ENNReal.toReal_mul [decl #18200] theorem PiLp.normedAddCommGroup._proof_2 [decl #18300] theorem RingCon.ext' [decl #18400] theorem TwoSidedIdeal.orderIsoRingCon._proof_3 [decl #18500] theorem instTrivialStarReal [decl #18600] theorem Set.subset_ordConnectedComponent [decl #18700] theorem ContinuousLinearMap.isLeast_opNorm [decl #18800] theorem AddCon.lift._proof_1 [decl #18900] theorem TensorProduct.leftDistribMulAction._proof_4 INTERN_CALLS 100000000 nodes=3047426 [decl #19000] theorem ContinuousLinearMap.instIsSubApply [decl #19100] theorem ULift.down_up [decl #19200] theorem Trunc.bind._proof_1 [decl #19300] def Cardinal.instLE.match_3 [decl #19400] theorem Cardinal.lift_inj [decl #19500] theorem InitialSeg.instFunLike._proof_1 [decl #19600] theorem SuccOrder.succ_le_of_lt [decl #19700] theorem Cardinal.one_le_iff_pos [decl #19800] def Module.finrank [decl #19900] theorem pow_left_inj₀._simp_1 [decl #20000] theorem UnivLE.small [decl #20100] def fintypeOfNotInfinite [decl #20200] def definition._@.Mathlib.LinearAlgebra.Finsupp.LinearCombination.859253174._hygCtx._hyg.2 [decl #20300] def _private.Mathlib.RingTheory.Finiteness.Cardinality.0.Module.Finite.exists_fin'.match_1_1 [decl #20400] theorem Finsupp.mapDomain_comp [decl #20500] theorem Submodule.instMin._proof_3 [decl #20600] theorem AddSubgroup.copy._proof_3 [decl #20700] theorem SubsemiringClass.toSemiring._proof_7 [decl #20800] theorem Subsemiring.toSemiring._proof_11 [decl #20900] theorem AddMonoidAlgebra.semiring._proof_11 [decl #21000] theorem Subring.copy._proof_4 [decl #21100] theorem Finset.fold_image_idem [decl #21200] theorem _private.Mathlib.Order.WithBot.0.WithBot.bot_lt_coe._simp_1_1 [decl #21300] theorem wellFoundedGT_iff_monotone_chain_condition' [decl #21400] theorem AddMonoidAlgebra.ring._proof_1 [decl #21500] theorem MvPolynomial.rename_id [decl #21600] theorem Polynomial.algebraOfAlgebra._proof_2 [decl #21700] theorem Polynomial.eval₂_zero [decl #21800] theorem _private.Mathlib.Algebra.Polynomial.Coeff.0.Polynomial.coeff_C_mul._simp_1_2 [decl #21900] def Fintype.ofSubsingleton [decl #22000] theorem Polynomial.X.eq_1 [decl #22100] def List.filter_congr._f [decl #22200] theorem Lean.Grind.CommRing.Expr.denoteAsRing_eq [decl #22300] theorem algebraMap_mem [decl #22400] theorem _private.Mathlib.Algebra.MvPolynomial.Eval.0.Algebra.adjoin_range_eq_range_aeval._simp_1_3 [decl #22500] theorem AddMonoid.fg_def [decl #22600] def Function.Commute [decl #22700] theorem abs_abs [decl #22800] theorem eqRec_eq_cast [decl #22900] theorem Finsupp.lapply._proof_1 [decl #23000] theorem LinearIndepOn.singleton [decl #23100] theorem _private.Mathlib.Data.Finsupp.Basic.0.Finsupp.domCongr._simp_1 [decl #23200] theorem WellFounded.asymmetric₃ [decl #23300] def WellFounded.recursion [decl #23400] def _private.Mathlib.SetTheory.Ordinal.Basic.0.Ordinal.inductionOn.match_1_1 [decl #23500] theorem Sum.lex_inr_inl._simp_1 [decl #23600] theorem Ordinal.existsAddOfLE [decl #23700] theorem Cardinal.lift_lt_aleph0 [decl #23800] theorem compareOfLessAndEq_eq_swap_of_lt_iff_not_gt_and_ne [decl #23900] def LT.noConfusion [decl #24000] theorem ULift.down_sup [decl #24100] theorem Order.IsNormal.map_iSup [decl #24200] theorem Cardinal.le_one_iff [decl #24300] def List.ext_getElem?._f [decl #24400] theorem Topology.IsEmbedding.subtypeVal [decl #24500] theorem smul_eq_zero_iff_eq [decl #24600] def AddAction.orbitRel [decl #24700] theorem Submodule.Quotient.distribMulAction'._proof_2 [decl #24800] def Submodule.Quotient.addCommGroup._aux_1 [decl #24900] theorem _private.Mathlib.LinearAlgebra.Projection.0.LinearMap.isCompl_of_proj._simp_1_1 [decl #25000] theorem Finsupp.sumFinsuppEquivProdFinsupp._proof_1 [decl #25100] theorem _private.Mathlib.Order.SupIndep.0.sSupIndep_iff._simp_1_3 [decl #25200] theorem Balanced.subset_balancedCore_of_subset [decl #25300] theorem Continuous.quotient_lift [decl #25400] def Set.ZSMul [decl #25500] theorem Equiv.piCongrLeft_apply_apply [decl #25600] theorem Set.mem_ite_empty_right [decl #25700] theorem Module.Free.self [decl #25800] theorem DenseRange.closure_range [decl #25900] def AddMonoid.End.instAddMonoidWithOne [decl #26000] theorem Real.norm_natCast [decl #26100] theorem Filter.totallyBounded_principal_iff [decl #26200] theorem isCompact_iff_totallyBounded_isComplete [decl #26300] def _private.Mathlib.Topology.MetricSpace.Bounded.0.TotallyBounded.isBounded.match_1_1 INTERN_CALLS 200000000 nodes=964891 [decl #26400] theorem _private.Mathlib.Topology.Order.IsLUB.0.ConditionallyCompleteLinearOrder.isCompact_Icc._proof_1_8 [decl #26500] theorem LinearMap.mkContinuousOfExistsBound.congr_simp [decl #26600] theorem Prod.map_comp_map [decl #26700] theorem _private.Mathlib.Topology.Algebra.InfiniteSum.SummationFilter.0.SummationFilter.comap_unconditional._simp_1_5 [decl #26800] theorem _private.Mathlib.Topology.Algebra.InfiniteSum.Defs.0.Summable.hasSum._proof_1_2 [decl #26900] def Encodable.decode [decl #27000] theorem hasSum_le [decl #27100] theorem Nat.shiftLeft_eq [decl #27200] theorem PSigma.exists._simp_1 [decl #27300] theorem Prop.instCompleteLinearOrder._proof_1 [decl #27400] def MeasureTheory.eLpNormEssSup [decl #27500] theorem _private.Mathlib.MeasureTheory.OuterMeasure.Induced.0.MeasureTheory.OuterMeasure.exists_measurable_superset_eq_trim._simp_1_2 [decl #27600] theorem Fin.pos [decl #27700] def Lean.Grind.CommRing.Poly.mulC [decl #27800] theorem MeasureTheory.OuterMeasure.isCaratheodory_iff_le' [decl #27900] theorem TopologicalSpace.Opens.instPartialOrder._proof_2 [decl #28000] theorem ENNReal.toNNReal_add [decl #28100] theorem MeasureTheory.Content.outerMeasure_caratheodory [decl #28200] theorem instR1Space [decl #28300] theorem MeasureTheory.Measure.haar.addIndex_union_le [decl #28400] def _private.Mathlib.Logic.Equiv.List.0.Encodable.decodeList.match_3.splitter [decl #28500] theorem UniformSpace.mem_closure_iff_ball [decl #28600] theorem MeasureTheory.AEEqFun.pair._proof_1 [decl #28700] theorem _private.Mathlib.MeasureTheory.Measure.MeasureSpaceDef.0.MeasureTheory.exists_measurable_superset._simp_1_1 [decl #28800] theorem MeasureTheory.Measure.ext [decl #28900] theorem _private.Mathlib.MeasureTheory.OuterMeasure.Basic.0.MeasureTheory.measure_union_null_iff._simp_1_1 [decl #29000] theorem Filter.IsBasis.filterBasis.eq_1 [decl #29100] theorem Equiv.propEquivBool._proof_2 [decl #29200] theorem Equiv.boolProdEquivSum._proof_2 [decl #29300] theorem ENNReal.exists_nat_pos_mul_gt [decl #29400] theorem _private.Mathlib.MeasureTheory.Measure.Restrict.0.MeasureTheory.Measure.restrictₗ._simp_1 [decl #29500] theorem Set.Iio_insert [decl #29600] theorem _private.Mathlib.Topology.Compactness.Lindelof.0.IsLindelof.elim_countable_subcover._simp_1_3 [decl #29700] theorem iSup_apply [decl #29800] theorem MeasurableEquiv.ext [decl #29900] theorem Measurable.setOf [decl #30000] theorem Complex.measurable_exp [decl #30100] theorem NNReal.rpow_le_self_of_le_one [decl #30200] theorem Decidable.or_iff_not_not_and_not [decl #30300] theorem strictAnti_nat_of_succ_lt [decl #30400] def _private.Init.Data.List.Lemmas.0.List.dropLast_append_of_ne_nil.match_1_1 [decl #30500] theorem List.take_add_one [decl #30600] theorem instBoundedGENhdsClassOrderDual [decl #30700] theorem disjointed_eq_inter_compl [decl #30800] theorem Filter.EventuallyEq.preimage [decl #30900] theorem MeasureTheory.Lp._proof_2 [decl #31000] theorem ENNReal.ofReal_toReal [decl #31100] theorem enorm_ne_top [decl #31200] theorem MeasureTheory.StronglyMeasurable.add [decl #31300] theorem essSup_le_of_ae_le [decl #31400] theorem MeasureTheory.SimpleFunc.map_apply [decl #31500] theorem Pi.divInvMonoid._proof_1 [decl #31600] theorem Set.insert_eq_of_mem [decl #31700] theorem hasFDerivWithinAt_iff_isLittleOTVS [decl #31800] theorem Filter.map₂.eq_1 [decl #31900] theorem Mathlib.Meta.Positivity.nnreal_coe_pos INTERN_CALLS 300000000 nodes=1977920 [decl #32000] theorem IsSemitopologicalRing.toIsTopologicalAddGroup [decl #32100] theorem _private.Mathlib.Analysis.Calculus.TangentCone.Basic.0.tangentConeAt_mono_nhds._simp_1_1 [decl #32200] theorem Asymptotics.IsLittleO_def [decl #32300] theorem _private.Mathlib.Order.Filter.AtTopBot.ModEq.0.Nat.frequently_odd._simp_1_1 [decl #32400] theorem List.flatten_flatten [decl #32500] theorem _private.Mathlib.Data.List.Sublists.0.List.Pairwise.sublists'._simp_1_5 [decl #32600] theorem _private.Mathlib.Combinatorics.Enumerative.Composition.0.compositionAsSetEquiv._simp_5 [decl #32700] theorem _private.Init.Data.List.Sort.Basic.0.List.merge._unary._proof_2 [decl #32800] theorem Lean.Grind.toInt_fin [decl #32900] theorem Nat.le_pred_of_lt [decl #33000] theorem ENNReal.coe_lt_one_iff [decl #33100] theorem AddMonoidHom.map_finsum_plift [decl #33200] theorem hasSum_zero._simp_1 [decl #33300] theorem Finset.insert_Ico_add_one_left_eq_Ico [decl #33400] theorem Int.instConditionallyCompleteLinearOrder._proof_8 [decl #33500] theorem Finset.union_subset [decl #33600] theorem ContinuousMultilinearMap.curryRight._proof_3 [decl #33700] theorem _private.Mathlib.Logic.Function.Basic.0.Function.rec_update._proof_1_2 [decl #33800] theorem Finset.Pi.cons._proof_1 [decl #33900] theorem instTopologicalSpaceSeparationQuotient._proof_5 [decl #34000] def _private.Mathlib.Topology.UniformSpace.Completion.0.CauchyFilter.denseRange_pureCauchy.match_1_9 [decl #34100] def _private.Mathlib.Topology.UniformSpace.Completion.0.UniformSpace.Completion.induction_on₂.match_1_1 [decl #34200] theorem UniformSpace.Completion.extension_coe [decl #34300] theorem Inseparable.vadd [decl #34400] theorem Bornology.isVonNBounded_union._simp_1 [decl #34500] theorem isOpen_singleton_true [decl #34600] theorem Nat.succ_descFactorial_succ [decl #34700] theorem MulOpposite.instRing._proof_4 [decl #34800] theorem Finset.Icc_eq_empty_of_lt [decl #34900] theorem ContinuousMultilinearMap.applyAddHom._proof_1 INTERN_CALLS 400000000 nodes=3894183 [decl #35000] theorem Asymptotics.IsBigOTVS.prodMk [decl #35100] theorem Fintype.ofInjective._proof_1 [decl #35200] theorem Nat.ModEq.dvd [decl #35300] theorem ContinuousLinearEquiv.hasFDerivAt [decl #35400] theorem Fintype.card_pos_iff [decl #35500] theorem _private.Mathlib.Analysis.Calculus.FDeriv.Prod.0.hasFDerivAtFilter_pi'._simp_1_2 [decl #35600] theorem Set.infinite_image_iff [decl #35700] theorem Continuous.eval INTERN_CALLS 500000000 nodes=3858219 [decl #35800] theorem MultilinearMap.pi._proof_2 [decl #35900] theorem ContinuousMultilinearMap.prodL._proof_5 [decl #36000] def ContinuousLinearMap.lsmul [decl #36100] theorem _private.Mathlib.Analysis.Analytic.Constructions.0.hasFPowerSeriesOnBall_inverse_one_sub._simp_1_2 [decl #36200] theorem _private.Mathlib.Topology.Algebra.Module.ContinuousLinearMap.Basic.0.ContinuousLinearMap.toSpanSingleton_apply_map_one._simp_1_1 [decl #36300] theorem hasFDerivWithinAt_iff_hasDerivWithinAt [decl #36400] theorem hasDerivAt_iff_hasFDerivAt [decl #36500] theorem contDiffWithinAt_iff_of_ne_infty INTERN_CALLS 600000000 nodes=4347379 [decl #36600] theorem HasFDerivAt.unique [decl #36700] theorem Asymptotics.isBigO_iff' [decl #36800] theorem analyticWithinAt_iff_exists_analyticAt INTERN_CALLS 700000000 nodes=2326293 [decl #36900] theorem FormalMultilinearSeries.leftInv_coeff_one [decl #37000] theorem FormalMultilinearSeries.rightInv._proof_16 [decl #37100] def List.equivSigmaTuple [decl #37200] theorem Mathlib.Tactic.Ring.Common.pow_nat [decl #37300] theorem ContinuousLinearEquiv.automorphismGroup._proof_9 [decl #37400] theorem SeparationQuotient.isOpenQuotientMap_mk [decl #37500] theorem ContDiffAt.fst [decl #37600] theorem NavierStokes.SpatialCurl.derivativeEntry._proof_1 [decl #37700] theorem hasFDerivAt_const [decl #37800] theorem Mathlib.Meta.NormNum.IsInt.to_isRat [decl #37900] theorem completeLatticeOfSup._proof_6 [decl #38000] theorem MeasureTheory.setToFun_eq [decl #38100] theorem Continuous.codRestrict [decl #38200] theorem _private.Mathlib.MeasureTheory.Measure.AEMeasurable.0.AEMeasurable.sum_measure._simp_1_2 [decl #38300] theorem IsSigmaCompact.isLindelof [decl #38400] theorem MeasurableSpace.DynkinSystem.has_union [decl #38500] theorem _private.Mathlib.Order.Interval.Set.LinearOrder.0.Set.Ioc_sdiff_Ioi._proof_1_1 [decl #38600] theorem _private.Mathlib.MeasureTheory.Measure.Restrict.0.MeasureTheory.Measure.restrict_biUnion_finset_congr._simp_1_2 [decl #38700] theorem antitone_dual_iff [decl #38800] def _private.Mathlib.Logic.Unique.0.unique_iff_subsingleton_and_nonempty.match_1_1 [decl #38900] def Topology.IsEmbedding.comapMetricSpace [decl #39000] def Directed.sequence.match_3 [decl #39100] theorem MeasureTheory.instSFiniteOfNatMeasure [decl #39200] theorem MeasurableVAdd.toMeasurableConstVAdd [decl #39300] theorem MeasureTheory.Measure.sigmaFinite_of_countable [decl #39400] theorem MeasureTheory.Measure.measure_pos_of_nonempty_interior [decl #39500] theorem NNReal.tendsto_rpow_atTop [decl #39600] theorem AEMeasurable.biSup [decl #39700] theorem BoundedContinuousFunction.coe_nsmul [decl #39800] theorem NavierStokes.AxisEvaluation.majorant._proof_1 [decl #39900] theorem Convex.combo_interior_closure_subset_interior [decl #40000] theorem Submodule.mem_mk._simp_1 INTERN_CALLS 800000000 nodes=488329 [decl #40100] theorem gauge_le_of_mem [decl #40200] theorem OrderIso.map_top [decl #40300] theorem directed_of_isDirected_ge [decl #40400] theorem AddGroupFilterBasis.add [decl #40500] theorem MeasureTheory.Measure.le_add_right [decl #40600] theorem MeasureTheory.L1.setToL1_indicatorConstLp [decl #40700] theorem LipschitzWith.norm_compLp_le [decl #40800] theorem MeasureTheory.tendsto_integral_filter_of_dominated_convergence [decl #40900] theorem _private.Mathlib.MeasureTheory.Integral.Bochner.VitaliCaratheodory.0.MeasureTheory.SimpleFunc.exists_le_lowerSemicontinuous_lintegral_ge._simp_1_1 [decl #41000] theorem Filter.Tendsto.sup_nhds' [decl #41100] theorem measurable_of_Iio [decl #41200] theorem top_ne_bot._simp_1 [decl #41300] theorem _private.Mathlib.Topology.Instances.EReal.Lemmas.0.EReal.continuousAt_add_bot_coe._simp_1_1 [decl #41400] theorem MeasureTheory.Lp.simpleFunc.exists_simpleFunc_nonneg_ae_eq [decl #41500] theorem NavierStokes.AxisWeightEstimates.weight_pos [decl #41600] theorem Set.Nontrivial.not_subset_singleton [decl #41700] theorem MeasureTheory.norm_setToFun_le [decl #41800] theorem Filter.mulOneClass._proof_2 [decl #41900] theorem sub_mem_posTangentConeAt_of_openSegment_subset [decl #42000] theorem NavierStokes.AxisOperators.productData._proof_3 [decl #42100] theorem NavierStokes.AxisOperators.multiplyY_row_bound [decl #42200] theorem NavierStokes.AxisContraction.Controlled.bilinear._proof_6 [decl #42300] theorem BoundedContinuousFunction.instMul._proof_2 [decl #42400] def NavierStokes.TransitionRamp.StockReference.radius0 [decl #42500] theorem MeasureTheory.L1.SimpleFunc.setToL1SCLM_congr_left' [decl #42600] theorem Set.preimage_mul_const_Iic₀ INTERN_CALLS 900000000 nodes=185464 [decl #42700] theorem RCLike.copy_of_normedField._proof_18 [decl #42800] theorem ContinuousLinearMap.opNorm_le_of_ball [decl #42900] theorem NavierStokes.ProfileHistories.average_smooth [decl #43000] theorem NavierStokes.ReferencePath.Input.f_smooth [decl #43100] theorem NavierStokes.ReferencePath.Input.refF_eq_logtime [decl #43200] theorem NavierStokes.OutgoingTail.initialLag_gt_h [decl #43300] theorem NavierStokes.OutgoingTail.decayHold_pos [decl #43400] theorem ContinuousMultilinearMap.piLinearEquiv._proof_1 [decl #43500] theorem MeasurableEmbedding.lintegral_map [decl #43600] def Equiv.vaddConst [decl #43700] theorem Filter.Tendsto.midpoint [decl #43800] theorem Function.range_eq_image_or_of_support_subset [decl #43900] theorem _private.Mathlib.Order.Filter.SmallSets.0.Filter.tendsto_image_smallSets._simp_1_2 [decl #44000] def _private.Mathlib.MeasureTheory.Measure.EverywherePos.0.MeasureTheory.Measure.innerRegularWRT_preimage_one_hasCompactSupport_measure_ne_top_of_addGroup.match_1_1 [decl #44100] theorem ContinuousMap.instContinuousMapClass [decl #44200] theorem MeasureTheory.Measure.InnerRegular.map_of_continuous [decl #44300] theorem Equiv.Perm.permGroup._proof_3 [decl #44400] theorem Fin.eta [decl #44500] theorem SetLike.coe_ssubset_coe._simp_1 [decl #44600] theorem Matrix.mul_add [decl #44700] theorem AlgEquivClass.toAlgHomClass INTERN_CALLS 1000000000 nodes=3820325 [decl #44800] def Ideal.Quotient.ring._aux_1 [decl #44900] def Ideal.Quotient.ring._aux_23 [decl #45000] theorem Ideal.Quotient.field._proof_4 [decl #45100] def LinearMap.det [decl #45200] theorem RelEmbedding.total [decl #45300] theorem List.TProd.mk.eq_2 [decl #45400] theorem Multiset.disjSum.eq_1 [decl #45500] theorem AlternatingMap.map_update_smul [decl #45600] theorem MeasureTheory.toOuterMeasure_toMeasure [decl #45700] theorem integrableOn_exp_mul_Iic [decl #45800] theorem norm_cauchyPowerSeries_le [decl #45900] theorem MeasureTheory.AEStronglyMeasurable.smul [decl #46000] theorem DifferentiableWithinAt.congr_of_eventuallyEq [decl #46100] theorem smul_right_inj._simp_1 [decl #46200] theorem _private.Mathlib.Topology.NhdsWithin.0.instNeBotNhdsWithinUnivPi._simp_1 [decl #46300] theorem BoxIntegral.IntegrationParams.equivProd._proof_2 [decl #46400] theorem TopologicalSpace.pseudoMetrizableSpace_pi [decl #46500] theorem _private.Mathlib.Analysis.BoxIntegral.Partition.Basic.0.BoxIntegral.Prepartition.disjUnion._simp_2 [decl #46600] def _private.Mathlib.Analysis.BoxIntegral.Partition.Basic.0.BoxIntegral.Prepartition.biUnion_le.match_1_1 [decl #46700] theorem Set.inter_eq_left._simp_1 [decl #46800] theorem BoxIntegral.Prepartition.biUnionIndex.eq_1 [decl #46900] theorem BoxIntegral.TaggedPrepartition.disjUnion_tag_of_mem_right [decl #47000] def Set.IsWF [decl #47100] theorem Decidable.not_forall_not [decl #47200] theorem BoxIntegral.Integrable.sub [decl #47300] theorem Fin.dist_insertNth_insertNth [decl #47400] theorem ContinuousLinearEquiv.coe_symm_toHomeomorph [decl #47500] theorem IsEmpty.oriented._proof_3 [decl #47600] def Equiv.Perm.swapFactorsAux.match_1 [decl #47700] theorem LinearEquiv.ofIsUnitDet._proof_3 [decl #47800] theorem Units.coe_prod._simp_1 [decl #47900] theorem _private.Mathlib.LinearAlgebra.Matrix.SemiringInverse.0.Matrix.detp_mul._simp_1_5 [decl #48000] theorem _private.Mathlib.LinearAlgebra.Matrix.Defs.0.Matrix.isAddUnit_iff._simp_1_3 [decl #48100] theorem fderiv_eq_smul_deriv [decl #48200] theorem Mathlib.Meta.NormNum.isRat_inv_neg [decl #48300] theorem FDerivMeasurableAux.isOpen_A [decl #48400] theorem Asymptotics.IsBigOWith.inv_rev [decl #48500] theorem ContinuousOn.clog INTERN_CALLS 1100000000 nodes=155176 [decl #48600] theorem NavierStokes.TransitionRamp.StockReference.finalTime._proof_1 [decl #48700] theorem NavierStokes.TerminalCompensation.lower._proof_2 [decl #48800] def NavierStokes.HeatProfileExtension.scaledProfile [decl #48900] theorem _private.Mathlib.MeasureTheory.Function.StronglyMeasurable.Lemmas.0.aestronglyMeasurable_withDensity_iff._simp_1_3 [decl #49000] theorem Units.isRegular [decl #49100] theorem LinearMap.toContinuousLinearMap._proof_5 INTERN_CALLS 1200000000 nodes=3170003 [decl #49200] theorem Filter.Tendsto.edist [decl #49300] theorem cauchySeq_of_dist_le_of_summable [decl #49400] theorem NavierStokes.FiveProfileMoments.correction_moment [decl #49500] def NavierStokes.ProfileHistories.Profiles.axialLag [decl #49600] theorem NavierStokes.ProfileHistories.Profiles.angularLag_smoothAt [decl #49700] theorem ContinuousLinearEquiv.arrowCongrEquiv_apply [decl #49800] theorem NavierStokes.ActivationStocks.profile_massFlux [decl #49900] theorem ContDiffAt.clm_apply [decl #50000] theorem NavierStokes.NominalProfile.Controls.admissibleDomain._proof_1 [decl #50100] theorem NavierStokes.LocalizedMomentRepair.repair_add [decl #50200] def NavierStokes.ExtendedHeatedOutgoing.domain [decl #50300] theorem IsPreconnected.subset_left_of_subset_union [decl #50400] theorem Continuous.IccExtend [decl #50500] theorem summable_congr [decl #50600] theorem HasStrictFDerivAt.fun_mul [decl #50700] theorem Set.Subsingleton.countable [decl #50800] theorem _private.Mathlib.MeasureTheory.Function.LocallyIntegrable.0.MeasureTheory.LocallyIntegrableOn.exists_nat_integrableOn._simp_1_3 [decl #50900] theorem NavierStokes.ExtendedHeatedOutgoing.H_contDiffOn [decl #51000] theorem Metric.cthickening_zero [decl #51100] def Besicovitch.BallPackage.c [decl #51200] theorem _private.Mathlib.MeasureTheory.Covering.Besicovitch.0.Besicovitch.exist_finset_disjoint_balls_large_measure._simp_1_17 [decl #51300] theorem preimage_add_ball [decl #51400] theorem LinearMap.llcomp._proof_1 INTERN_CALLS 1300000000 nodes=3476738 [decl #51500] def MeasureTheory.Measure.singularPart [decl #51600] def VitaliFamily.FineSubfamilyOn [decl #51700] theorem _private.Mathlib.Topology.Bases.0.TopologicalSpace.countable_cover_nhdsWithin._simp_1_2 [decl #51800] theorem _private.Mathlib.Algebra.Order.Ring.WithTop.0.WithTop.pow_lt_top_iff._simp_1_2 [decl #51900] theorem Disjoint.image [decl #52000] theorem _private.Mathlib.Order.Filter.Bases.Basic.0.Filter.HasBasis.sup'._simp_1_2 [decl #52100] theorem _private.Mathlib.Data.Nat.Find.0.Nat.le_find_iff._simp_1_1 [decl #52200] theorem ContinuousOn.mono_dom [decl #52300] theorem NavierStokes.HeatTailEdit.outgoingShape_contDiff [decl #52400] theorem ContinuousLinearEquiv.uniqueDiffOn_image_iff [decl #52500] theorem ULift.instPseudoMetricSpace._proof_9 INTERN_CALLS 1400000000 nodes=460319 [decl #52600] theorem _private.Mathlib.Analysis.SpecialFunctions.Pow.Continuity.0.Complex.continuousAt_cpow_zero_of_re_pos._simp_1_1 [decl #52700] theorem NavierStokes.ExtendedHeatDebts.editBound_nonneg [decl #52800] theorem NavierStokes.ExtendedHeatedOutgoing.Witness.logE_square_integrable._simp_1_1 [decl #52900] theorem NavierStokes.NominalProfile.Controls.extendedE_eq_sqrt_f [decl #53000] theorem analyticAt_inv [decl #53100] theorem NavierStokes.LoopVariance.integrable_exp_cos [decl #53200] def Multiset.powersetCardAux [decl #53300] theorem MeasureTheory.Measure.QuasiMeasurePreserving.ae_map_le [decl #53400] theorem mul_self_pos [decl #53500] theorem _private.Mathlib.Analysis.SpecialFunctions.PolarCoord.0.polarCoord_source_ae_eq_univ._simp_1_2 [decl #53600] theorem Fin.succAbove_zero [decl #53700] theorem Fin.val_add [decl #53800] theorem StrictConvexOn.neg [decl #53900] theorem _private.Mathlib.Analysis.Calculus.BumpFunction.FiniteDimension.0.IsOpen.exists_contDiff_support_eq._simp_1_1 [decl #54000] def MeasureTheory.ConvolutionExistsAt._auto_1 [decl #54100] theorem _private.Mathlib.Analysis.Calculus.ContDiff.Convolution.0.MeasureTheory.hasFDerivAt_convolution_right_with_param._simp_1_5 INTERN_CALLS 1500000000 nodes=1412980 [decl #54200] theorem ContDiffBump.zero_of_le_dist [decl #54300] theorem NavierStokes.SmoothLoop.CircleDensity.periodic [decl #54400] theorem NavierStokes.LoopVariance.solveScale_variance [decl #54500] theorem NavierStokes.TerminalCone.annulusRatio._proof_1 [decl #54600] def NavierStokes.ShapedWaitBounds.axialWaitConstant [decl #54700] theorem NavierStokes.PulseCone.amplitudeDerivativeConstant._proof_1 [decl #54800] def _private.Mathlib.Order.Bounds.Basic.0.lowerBounds_le_upperBounds.match_1_1 [decl #54900] theorem NavierStokes.TailEnergyBounds.postPulseEnergy_nonneg [decl #55000] theorem NavierStokes.OutgoingSchedule.axial_radial_contDiff [decl #55100] def NavierStokes.PulseCone.equilibriumNumerator [decl #55200] theorem NavierStokes.OutgoingEntranceCone.averagedDrop_is_mass_history [decl #55300] theorem NavierStokes.OutgoingHistories.U.eq_1 [decl #55400] theorem NavierStokes.PulseEnergyHistory.logarithmicRate_le_one [decl #55500] theorem NavierStokes.PulseCone.Ns_pulse_expansion [decl #55600] theorem NavierStokes.OutgoingEntranceCone.canonical_Qs_ideal [decl #55700] theorem NavierStokes.OutgoingEntranceCone.angular_square_le_envelope [decl #55800] theorem NavierStokes.OutgoingHistories.dY_smooth [decl #55900] theorem NavierStokes.FuturePressureBounds.corrected_square_integrable [decl #56000] theorem NavierStokes.ReleaseMoments.corrected_eq_release [decl #56100] theorem NavierStokes.TailCone.weighted_square_release_decay [decl #56200] theorem NavierStokes.UniformAngularReset.quadraticCoefficientMap._proof_2 [decl #56300] theorem NavierStokes.UniformAngularReset.normalizedDebt_bounds [decl #56400] theorem NavierStokes.SchedulePressure.complexAxisPressure_analytic [decl #56500] theorem NavierStokes.NaturalAxisData.H_contDiff INTERN_CALLS 1600000000 nodes=2711001 [decl #56600] theorem NavierStokes.ExtendedHeatDebts.weightedDebt_contDiff [decl #56700] theorem NavierStokes.TerminalCompensation.quadraticBilin._proof_3 [decl #56800] def NavierStokes.HeatSwitchCone.familyR [decl #56900] theorem NavierStokes.HeatSwitchCone.logI_parameter_derivative [decl #57000] theorem NavierStokes.RepairConeBounds.familyA.eq_1 [decl #57100] def NavierStokes.FiveProfileMoments.physicalE [decl #57200] theorem NavierStokes.NominalProfile.ResetSolver.norm_bound [decl #57300] theorem NavierStokes.NaturalAxisCoefficients.original_interval_interior [decl #57400] theorem NavierStokes.TransitionRamp.phase_smooth [decl #57500] theorem Metric.tendstoUniformly_iff INTERN_CALLS 1700000000 nodes=2478979 [decl #57600] theorem NavierStokes.AxisReference.coefficient_naturalOperator_zero [decl #57700] theorem Real.iter_deriv_exp [decl #57800] theorem NavierStokes.ShapeTransition.idealPrefixJetSize_bound [decl #57900] theorem NavierStokes.NaturalEntrance.entrance_mem_strip [decl #58000] theorem NavierStokes.NaturalEntrance.reference_phiY_zero [decl #58100] theorem NavierStokes.NaturalAxisBridge.remainder_axis_zero [decl #58200] theorem NavierStokes.NaturalProfile.reconstruct_solution [decl #58300] theorem NavierStokes.ReferenceBounds.endpoint_strict_collar [decl #58400] theorem NavierStokes.ActivationContinuation.stockOneMap._proof_1 [decl #58500] theorem NavierStokes.ActivationStocks.constantPair._proof_1 [decl #58600] theorem Real.sqrt_le_sqrt_iff' INTERN_CALLS 1800000000 nodes=1728094 [decl #58700] def NavierStokes.ActivationBounds.etaLinear [decl #58800] theorem NavierStokes.StressActivation.activation_le_one [decl #58900] theorem NavierStokes.ActivationContinuation.ComparisonScales.error_le_one [decl #59000] def NavierStokes.NaturalAxisCoefficients.regularSet [decl #59100] theorem NavierStokes.ActivationContinuation.RampParameters.initial_fields [decl #59200] theorem NavierStokes.NominalConeAssembly.Witness.prefix_relaxed [decl #59300] theorem NavierStokes.NominalProfile.Controls.heated_density_integrable [decl #59400] theorem NavierStokes.NominalConeAssembly.heated_relaxed_before_patch [decl #59500] theorem NavierStokes.TerminalCone.eta_sq_lt_one [decl #59600] theorem NavierStokes.SimilarityCoordinates.triangularEquiv._proof_3 [decl #59700] theorem NavierStokes.SimilarityCoordinates.tau_coordinate_identity [decl #59800] theorem NavierStokes.OutgoingDilation.powerH_scaling [decl #59900] def NavierStokes.CoordinateAlgebra.xAxial [decl #60000] theorem NavierStokes.TerminalPressure.logX_hasDerivAt_z [decl #60100] theorem NavierStokes.TerminalStress.backwardStress_formula [decl #60200] theorem NavierStokes.TerminalEdgeFactor.scalarFlatDensity_integrable [decl #60300] theorem NavierStokes.TerminalPressure.logScaleDerivative_eq [decl #60400] def NavierStokes.ParametricModulation.CompactCutoff.neighborhood [decl #60500] def NavierStokes.ParametricRephase.inverseMap [decl #60600] theorem ContinuousLinearMap.restrictScalarsL._proof_1 INTERN_CALLS 1900000000 nodes=3869568 [decl #60700] theorem Nat.succ_add_eq_add_succ [decl #60800] theorem ContDiffWithinAt.isSymmSndFDerivWithinAt_of_omega [decl #60900] theorem PiLp.ofLp_single [decl #61000] theorem NavierStokes.ModulatedHistories.smooth_solver_linear_jets [decl #61100] theorem NavierStokes.ModulatedStockBounds.stockMap_small_perturbation._simp_1_1 [decl #61200] theorem NavierStokes.ModulatedProfileAssembly.LoopData.axial_eq [decl #61300] def NavierStokes.PhysicalCoordinateBounds.timeShift [decl #61400] theorem map_continuousAt [decl #61500] theorem NavierStokes.HolomorphicFamily.angleIntegral._proof_3 [decl #61600] theorem NavierStokes.CompactSmoothFamily.flipLinear._proof_20 [decl #61700] theorem Convex.isConnected [decl #61800] def NavierStokes.GlobalSlowProfiles.angularField [decl #61900] theorem SubmoduleClass.module'._proof_5 [decl #62000] theorem ContinuousLinearEquiv.smulLeft._proof_8 [decl #62100] def NavierStokes.PositiveOrderMoments.angularDebt INTERN_CALLS 2000000000 nodes=1544035 [decl #62200] def NavierStokes.SlowExpansionResidual.axialPressureSource [decl #62300] theorem NavierStokes.GlobalSlowProfiles.sequence_succ [decl #62400] theorem NavierStokes.SlowResidualMatching.angularCoefficient_congr_germ [decl #62500] def NavierStokes.ActivationHolomorphic.InitialTube.Pi [decl #62600] theorem NavierStokes.ActivationHolomorphic.segmentIntegral._proof_5 [decl #62700] theorem NavierStokes.GlobalSlowProfiles.BaseData.angular_patch [decl #62800] theorem NavierStokes.NilpotentVolterra.pathInverse._proof_4 [decl #62900] theorem NavierStokes.BoundaryAxisJets.segmentExtend.eq_1 [decl #63000] theorem Filter.inf_neBot_iff [decl #63100] theorem ContinuousMap.coe_natCast [decl #63200] theorem NavierStokes.VolterraRegularity.symmetric_solution_disk_curves_contDiffOn [decl #63300] def NavierStokes.VolterraAnalyticBounds.GoodWord._f [decl #63400] theorem NavierStokes.NilpotentVolterra.liftedField_derivative_continuous [decl #63500] theorem NavierStokes.SlowRecursion.stepComponent._proof_3 [decl #63600] def NavierStokes.SlowRecursion.sequence [decl #63700] theorem NavierStokes.PositiveAxisExistence.realRadialComponent_even [decl #63800] theorem NavierStokes.EntranceAlignedBase.scheme._proof_14 [decl #63900] theorem NavierStokes.SlowDivergence.radialFlux._proof_1 [decl #64000] theorem NavierStokes.DiagonalScale.doublingEnvelope_reciprocal_eventually_small [decl #64100] theorem NavierStokes.SlowStressSupport.de_conv [decl #64200] theorem NavierStokes.GlobalSlowProfiles.cauchy_congr_prefix INTERN_CALLS 2100000000 nodes=3650982 [decl #64300] theorem NavierStokes.PositiveRepresentatives.positiveCell_open [decl #64400] def NavierStokes.SlotColoring.spacing [decl #64500] theorem NavierStokes.SlotColoring.log_level_gap [decl #64600] def NavierStokes.ParametricODE.applyCoefficient [decl #64700] def NavierStokes.PhaseEstimates.directionDerivative [decl #64800] def NavierStokes.PhaseJetBounds.PhaseFamily.frameData [decl #64900] theorem _private.Mathlib.Data.Int.Interval.0.Int.instLocallyFiniteOrder._proof_8 [decl #65000] theorem NavierStokes.AlignedProfileSpectralCone.planeOfPair._proof_11 [decl #65100] theorem NavierStokes.LeadingStressWeights.stress_outside [decl #65200] theorem NavierStokes.ProfileSpectralCone.stress_inner_normal [decl #65300] theorem NavierStokes.AssembledSlowBase.nominalInitial_le_Xi [decl #65400] theorem _private.Mathlib.Algebra.Order.Star.Basic.0.StarOrderedRing.pos_iff._simp_1_4 [decl #65500] theorem NavierStokes.SlowBorelBase.compact_jet_bound [decl #65600] theorem NavierStokes.PhaseJetBounds.PolynomialJets.inv [decl #65700] theorem NavierStokes.PrimaryGeometryAssembly.Prepared.slot_bound [decl #65800] theorem NavierStokes.SmoothCovariance.signed_model_strictCone [decl #65900] def NavierStokes.PulseCovariance.firstGaussianMoment [decl #66000] theorem NavierStokes.PrimaryCovarianceBounds.compact_chart_pair_bounds [decl #66100] theorem NavierStokes.BasePhaseGeometry.FamilyData.slot_abs [decl #66200] theorem abs_real_inner_le_norm [decl #66300] def NavierStokes.PrimaryPulseBounds.PhaseConstruction.viscosity [decl #66400] theorem ContractingWith.one_sub_K_ne_top [decl #66500] def NavierStokes.TangentODE.IntervalSystem.lip [decl #66600] theorem NavierStokes.MovingFrameODE.normal.eq_1 [decl #66700] theorem NavierStokes.PulseCovariance.CutoffBounds.abs_le INTERN_CALLS 2200000000 nodes=135222 [decl #66800] theorem NavierStokes.EdgeWeightJets.jetMass_bound [decl #66900] def NavierStokes.TailGaugePotential.radialNormalize [decl #67000] theorem Complex.cos.eq_1 [decl #67100] def NavierStokes.PhysicalClassBounds.CylindricalPoint [decl #67200] theorem NavierStokes.PrimaryCopyBounds.outerBump._proof_3 [decl #67300] theorem NavierStokes.BaseContextAssembly.reconstruction._proof_1 [decl #67400] def NavierStokes.CommonBaseContext.operators [decl #67500] theorem NavierStokes.CorrectionInitialization.ActualPrimary.standardRegion._proof_2 [decl #67600] theorem MeasurableSpace.injective_mapNatBool [decl #67700] theorem MeasureTheory.AnalyticSet.image_of_continuous [decl #67800] def AddCircle.haarAddCircle [decl #67900] theorem toIocMod_periodic [decl #68000] theorem NavierStokes.PressureStream.meanBump._proof_2 [decl #68100] def NavierStokes.MeanRankUpdate.desiredAxialFamily [decl #68200] def NavierStokes.ActualParticularStageControls.Label [decl #68300] def NavierStokes.HarmonicFields.Coefficients [decl #68400] def NavierStokes.ParticularWaveBounds.complexCopyCoefficients [decl #68500] def NavierStokes.CorrectionStep.SignedParameters.matrix [decl #68600] def NavierStokes.ActualCandidateConstruction.cycle [decl #68700] def NavierStokes.PhysicalSignedWave.requestChart [decl #68800] def NavierStokes.ActualSignedPhysicalData.selectedCarrier [decl #68900] theorem NavierStokes.ActualSignedExterior.bandLabel_actualLabel [decl #69000] def NavierStokes.PhysicalMeanDomain.freezeSlow [decl #69100] def NavierStokes.HarmonicWaveInteraction.amplitude [decl #69200] def NavierStokes.HarmonicFields.period [decl #69300] theorem NavierStokes.HarmonicFields.angularMean_field [decl #69400] theorem AddMonoidAlgebra.coeff_sum [decl #69500] theorem NavierStokes.CorrectionStep.CycleRepresentation.alias_eq_lift [decl #69600] theorem NavierStokes.RadialPullback.pullback_contDiff [decl #69700] theorem NavierStokes.VariableGaugeMean.normalizedCutoffModel_contDiffOn [decl #69800] theorem NavierStokes.FlatKernelBounds.kernel_iteratedDeriv_bound INTERN_CALLS 2300000000 nodes=2980526 [decl #69900] theorem NavierStokes.MeanMomentBounds.eraseAuxY_add_smul [decl #70000] theorem NavierStokes.CorrectionStep.gaugeWaveStage_cumulative INTERN_CALLS 2400000000 nodes=3079924 [decl #70100] theorem NavierStokes.SignedStressPrimitive.density_support [decl #70200] theorem NavierStokes.BaseChartJets.bandPoint_profile [decl #70300] theorem NavierStokes.ErrorHarmonics.conjugatePair.eq_1 [decl #70400] def NavierStokes.ActualPrimaryDynamics.copyPoint [decl #70500] def NavierStokes.ActualPrimaryCoherence.absoluteChart [decl #70600] theorem NavierStokes.ActualPrimaryCoherence.frequencySlow_smoothAt [decl #70700] theorem NavierStokes.WaveEdgeExtension.half_weight_left [decl #70800] theorem NavierStokes.PhaseJetBounds.PolynomialJets.pow [decl #70900] theorem NavierStokes.ViscousPropagator.diagonal._proof_1 INTERN_CALLS 2500000000 nodes=3152058 [decl #71000] theorem NavierStokes.NativeBandExtension.flat_smul_jets [decl #71100] def NavierStokes.ActualSignedControl.PreparedChart.qLower [decl #71200] theorem NavierStokes.PrimaryCopyBounds.NativeJets.sub [decl #71300] theorem NavierStokes.CorrectionInitialization.ActualPrimary.uncutPressure_smooth [decl #71400] theorem NavierStokes.ActualPrimaryCoherence.chartRadiusLinear._proof_1 [decl #71500] def NavierStokes.LinearWaveResidual.spaceDirection [decl #71600] theorem NavierStokes.LocalizedWaveBounds.InputBounds.normal_norm_sq [decl #71700] theorem NavierStokes.SimilarityHomogeneity.chartEta_transition [decl #71800] def NavierStokes.PhaseCalculus.eT [decl #71900] theorem NavierStokes.ActualPrimaryBounds.coefficientScale.eq_1 [decl #72000] def NavierStokes.ActualInitialMean.slowStrip [decl #72100] theorem NavierStokes.SmoothFamilyTorusInverse.parameterCoord._proof_3 [decl #72200] theorem QuotientAddGroup.mk_neg [decl #72300] theorem Equiv.instCanLiftForallCoeBijective [decl #72400] theorem fourierCoeffOn.const_smul [decl #72500] def NavierStokes.SmoothFamilyTorusInverse.weightedSource [decl #72600] theorem Units.ofPow._proof_2 [decl #72700] theorem NavierStokes.SmoothFamilyTorusInverse.norm_jet_sum INTERN_CALLS 2600000000 nodes=449257 [decl #72800] theorem NavierStokes.TransportPrimitive.fixedDeriv_compactIntegral._abel_1_2 [decl #72900] theorem NavierStokes.MeanIncrementBounds.SmoothOn.dz [decl #73000] theorem NavierStokes.TorusInverse.inverseCoeff_zero [decl #73100] theorem ContinuousMap.addEquivBoundedOfCompact._proof_3 [decl #73200] theorem Summable.tsum_le_of_sum_le [decl #73300] theorem Lean.Grind.AC.Seq.unionFuel.eq_def [decl #73400] def ContinuousAddMonoidHom.casesOn [decl #73500] theorem Filter.eventually_atTop_curry [decl #73600] theorem fourier_zero [decl #73700] theorem NNReal.nhds_zero_basis [decl #73800] theorem Submonoid.instCompleteLattice._proof_13 [decl #73900] def _private.Mathlib.Analysis.Normed.Group.Hom.0.NormedAddGroupHom.le_opNorm.match_1_1 [decl #74000] theorem ContinuousMap.semilatticeInf._proof_3 [decl #74100] def Equiv.image [decl #74200] theorem Polynomial.natCast_mul [decl #74300] theorem sub_ne_zero_of_ne [decl #74400] theorem lp.instNormedSpace._proof_2 [decl #74500] theorem NavierStokes.CorrectionInitialization.MovingInitialization.TemporalStateBounds.increment [decl #74600] theorem NavierStokes.MeanRankUpdate.modelVelocity_contDiffOn [decl #74700] theorem NavierStokes.MeanRankUpdate.fiveRows_scaled [decl #74800] theorem NavierStokes.MovingMomentBounds.Support.dz [decl #74900] theorem NavierStokes.BaseResidual.stressForce_smooth INTERN_CALLS 2700000000 nodes=2166039 [decl #75000] theorem NavierStokes.TorusInverse.integral_torusSeries [decl #75100] theorem NavierStokes.ZerothStressIdentity.weightedAxial_continuous [decl #75200] theorem NavierStokes.RenormalizedHeatMoment.squareHalf_derivative [decl #75300] theorem NavierStokes.NominalProfile.Controls.heated_row_transfer [decl #75400] theorem NavierStokes.BaseResidual.terminal_zeta_eq [decl #75500] def NavierStokes.PrimaryFieldAssembly.nativeVector [decl #75600] theorem NavierStokes.SquaredPartition.physicalSlowMask_tsupport_smallBox [decl #75700] def NavierStokes.ActualPrimaryCovariance.physicalLeading [decl #75800] theorem MeasureTheory.CompactSpace.isFiniteMeasure [decl #75900] theorem NavierStokes.ActualPrimaryCovariance.physicalPosition_normalized [decl #76000] theorem NavierStokes.ActualPrimaryCovariance.Q_antitone [decl #76100] theorem NavierStokes.HarmonicMeanInteraction.rotate_apply [decl #76200] theorem RingHom.map_neg [decl #76300] theorem NavierStokes.LocalizedWaveBounds.InputBounds.viscousPart_mem [decl #76400] theorem NavierStokes.HarmonicCalculus.cylindricalVectorLaplacian_vectorMode [decl #76500] def NavierStokes.GaugeMomentBalances.MovingAxialInputs [decl #76600] theorem NavierStokes.PhysicalResidualBridge.PullbackData.angular [decl #76700] theorem NavierStokes.ParticularWaveAssembly.along_finset_sum [decl #76800] def NavierStokes.GaugeAliasDecay.fiberShell [decl #76900] theorem NavierStokes.GaugeAliasDecay.actual_fast_coefficient_bound [decl #77000] theorem NavierStokes.RankStateCoherence.RankOn.coefficient INTERN_CALLS 2800000000 nodes=1232207 [decl #77100] theorem NavierStokes.PhysicalResidualNaturality.StateOn.axialResidual [decl #77200] theorem NavierStokes.ActualInitialCoherence.ranked_band_of_seed [decl #77300] def NavierStokes.SignedMeanGain.Geometry.axial [decl #77400] theorem NavierStokes.LabelSumBounds.SignedFamily.envelope_le_one [decl #77500] def NavierStokes.SignedStressPrimitive.physicalDensity [decl #77600] theorem NavierStokes.StateMomentBalances.AuxiliaryAverage.meanBar_dz [decl #77700] theorem ContinuousLinearMap.hasFDerivAt_of_bilinear [decl #77800] theorem NavierStokes.SignedMeanGain.meanBar_radialDiv_on [decl #77900] theorem NavierStokes.CorrectionAnalyticStep.StaticData.rank_left [decl #78000] theorem NavierStokes.HarmonicWaveInteraction.waveChange_projection_split._abel_1_2 [decl #78100] theorem NavierStokes.CycleMeanEquation.BlockData.phase [decl #78200] theorem NavierStokes.ActualCyclePreservation.staticData._proof_14 [decl #78300] def NavierStokes.ActualCarrierTransportBase.Point [decl #78400] theorem NavierStokes.HarmonicSourceSupport.NonzeroSupported.mul [decl #78500] def NavierStokes.ActualSignedMeanBinding.Point [decl #78600] theorem NavierStokes.LocalizedWaveBounds.common_curl_zero_germ [decl #78700] theorem NavierStokes.SignedCopyBounds.UniformNativeCovariance.lower_pos INTERN_CALLS 2900000000 nodes=169753 [decl #78800] theorem NavierStokes.ActualSignedOutputBounds.primary_local [decl #78900] def NavierStokes.ActualSignedGaussian.globalGaussian [decl #79000] theorem NavierStokes.LocalizedCurlRealization.native_zero_germs [decl #79100] def NavierStokes.ActualWaveRegularityData.zeroAngle [decl #79200] theorem NavierStokes.ClosedNativeWaveIdentities.ExactAt.base_angular [decl #79300] def NavierStokes.CycleStateCoherence.Geometry.rank [decl #79400] theorem NavierStokes.StateReindex.scalarLaplacian_pull [decl #79500] theorem NavierStokes.PhaseJetBounds.FrameJets.betaDot [decl #79600] theorem NavierStokes.IntervalCopyTransport.copySolve_of_compatibleInputs [decl #79700] theorem NavierStokes.IntervalCopyTransport.complexCopyPressure_transport [decl #79800] theorem NavierStokes.PhysicalSignedWave.coefficientScale_square [decl #79900] theorem NavierStokes.ActualWaveCoefficientPeriodicity.nativeSection_deck [decl #80000] theorem NavierStokes.ActualParticularStageControls.signedConstruction._proof_3 [decl #80100] def NavierStokes.PrimaryCopyBounds.affineCopy [decl #80200] def NavierStokes.PrimaryCopyBridge.copyInterior [decl #80300] theorem NavierStokes.ScaledActualParticularControl.scaledControl._proof_11 [decl #80400] def NavierStokes.ActualParticularStageControls.selectedControl [decl #80500] theorem NavierStokes.ParticularPaddedBackground.background_inverse_frequency INTERN_CALLS 3000000000 nodes=1056654 [decl #80600] def NavierStokes.ActualParticularGaussian.lengthLower [decl #80700] theorem NavierStokes.ActualParticularDynamics.wave_smooth [decl #80800] theorem NavierStokes.ParticularWaveAssembly.neg_mem_modes._simp_1_1 [decl #80900] def NavierStokes.PhysicalMeanDomain.normalizedSlowDomain [decl #81000] theorem NavierStokes.ActualMeanStageData.actualAngularData._proof_2 [decl #81100] def NavierStokes.ActualCandidateAssembly.signedPressure [decl #81200] def NavierStokes.AnnularEndpoint.radius [decl #81300] theorem NavierStokes.DiagonalResidual.finiteJetRate_of_jetRate._proof_1_1 [decl #81400] theorem NavierStokes.DiagonalResidual.residual_jetRate_of_stages._abel_1_3 [decl #81500] theorem NavierStokes.SlowBaseEndpoint.potentialNonzeroAxial._proof_1 [decl #81600] theorem NavierStokes.BaseExterior.exterior_velocity_eq_leading [decl #81700] theorem NavierStokes.DirectAngularDiagonal.divergence_congr [decl #81800] theorem NavierStokes.PeriodicLocalization.periodize_locally_eq_sum [decl #81900] theorem Function.Periodic.add_period [decl #82000] theorem NavierStokes.TimeLocalization.activatedVelocity_zero_early [decl #82100] theorem NavierStokes.PeriodicUniqueness.periodic_fderiv [decl #82200] theorem NavierStokes.CandidateConsequences.future_uniqueDiff [decl #82300] theorem NavierStokes.ActualMeanPhysicalData.initialRank_nativeJets [decl #82400] def NavierStokes.ActualValidBandWaves.gluedPotential [decl #82500] theorem NavierStokes.InitialPhysicalData.copyAmplitude_nativeAt [decl #82600] def NavierStokes.InitialNativeRegularity.Point [decl #82700] def NavierStokes.PhysicalWaveSum.PositiveParam [decl #82800] theorem Real.instNormedAddCommGroupAngle._proof_41 [decl #82900] theorem NavierStokes.PhysicalStageBounds.WaveData.vector_smooth [decl #83000] theorem NavierStokes.PhysicalGraphBounds.norm_character_jet [decl #83100] theorem NavierStokes.ActualIterationLedger.mean_physical_gap [decl #83200] theorem NavierStokes.InitializedPhysicalBackground.spatialCurl_smoothOn INTERN_CALLS 3100000000 nodes=1871968 [decl #83300] def NavierStokes.ActualBaseVelocityBounds.leadingVelocity [decl #83400] theorem NavierStokes.CylindricalResidual.dCoord_chart_zero [decl #83500] theorem NavierStokes.PhysicalResidualTZ.realTransport_reindex [decl #83600] theorem NavierStokes.PhysicalResidualBridge.ScaledGraph.pullbackData [decl #83700] def NavierStokes.SlowExpansionResidual.pairTail [decl #83800] theorem NavierStokes.AxisTailRegularity.pressureTerm_eq_regular_on_nonnegative [decl #83900] theorem NavierStokes.AxisymmetricResidual.laplaceWeighted._proof_1 [decl #84000] theorem NavierStokes.LocalAxisymmetricResidual.direction_coord_mul [decl #84100] theorem NavierStokes.ActualInitialExcluded.normalizedBase_prefix [decl #84200] theorem NavierStokes.ActualCycleResidualBounds.Invariant.gaussian_phase [decl #84300] theorem NavierStokes.LocalResidualGrouping.stateFullResidual_reconstructed [decl #84400] theorem NavierStokes.LiftedMeanResidual.stateFlux_11 [decl #84500] def NavierStokes.ActualParticularPotentialCoherence.potential [decl #84600] theorem NavierStokes.ActualCurrentParticularPhysical.polar_angle [decl #84700] theorem Real.one_le_rpow_of_pos_of_le_one_of_nonpos [decl #84800] theorem NavierStokes.GluedStageEstimates.glued_bound_of_local [decl #84900] theorem NavierStokes.PositiveTimeSignedData.identitySourceChart._proof_1 [decl #85000] def NavierStokes.ActualSignedPhysicalData.liftedNativePast [decl #85100] theorem NavierStokes.ActualSignedPhysicalData.NativeLabel.mk.congr_simp [decl #85200] theorem NavierStokes.ActualSignedUnmaskedBounds.ownField_other [decl #85300] theorem NavierStokes.ActualSignedPhysicalBinding.nativeCoefficients.eq_1 [decl #85400] theorem NavierStokes.ActualCandidateAssembly.potentialStages_zero [decl #85500] theorem NavierStokes.ActualMeanPotentialRealization.physicalPoint_forward [decl #85600] def NavierStokes.ActualMeanStageData.cycleStreamData [decl #85700] theorem NavierStokes.InitialPhysicalData.phase_polar INTERN_CALLS 3200000000 nodes=1898003 [decl #85800] theorem NavierStokes.PhysicalCurlCovariance.polarCoordinates_forward [decl #85900] theorem NavierStokes.ActualSignedPhysicalCoherence.finsum_injective_support [decl #86000] theorem PUnit.addCommGroup._proof_6 [decl #86100] theorem NavierStokes.ActualSignedPotentialCoherence.rescaledPotential.eq_1 [decl #86200] theorem NavierStokes.ActualCandidateConstruction.pressureMeanStages_on_chart [decl #86300] def NavierStokes.ActualMeanStageData.initialAngularSupport [decl #86400] theorem NavierStokes.GenericEndpointExtension.actualJet_hasFDerivAt [decl #86500] def NavierStokes.MixedAxisPreservation.PotentialStage.streams [decl #86600] theorem NavierStokesR3.ActualCandidate.activatedVelocity_eventually_zero [decl #86700] theorem integral_bilinear_hasLineDerivAt_right_eq_neg_left_of_integrable_aux2 [decl #86800] theorem NavierStokesR3.LpNormTools.lpNorm_two_eq_sqrt_l2Sq [decl #86900] theorem _private.Mathlib.Analysis.Distribution.SchwartzSpace.Basic.0.SchwartzMap.decay_neg_aux [decl #87000] theorem Seminorm.continuous_finsetSum [decl #87100] theorem _private.Mathlib.MeasureTheory.Integral.Layercake.0.MeasureTheory.lintegral_comp_eq_lintegral_meas_le_mul_of_measurable._simp_1_3 [decl #87200] theorem _private.Mathlib.Analysis.Complex.Circle.0.Circle.instIsScalarTower._proof_1 INTERN_CALLS 3300000000 nodes=4302239 [decl #87300] theorem NavierStokesR3.Comparison.rieszTest._proof_7 [decl #87400] theorem MeasureTheory.Integrable.fintype_prod [decl #87500] theorem tendsto_setIntegral_peak_smul_of_integrableOn_of_tendsto_aux [decl #87600] def MeasureTheory.eLpNormLESNormFDerivOfEqInnerConst [decl #87700] theorem NavierStokesR3.RieszTestOperators.continuous_rieszTest [decl #87800] theorem Set.finite_Ico [decl #87900] def _private.Mathlib.MeasureTheory.Group.Arithmetic.0.Finset.aemeasurable_prod.match_1_1 [decl #88000] theorem MeasureTheory.eLpNorm_lt_top_iff_lintegral_rpow_enorm_lt_top [decl #88100] theorem NavierStokesR3.RieszTestOperators.norm_clm_le_sum_coordinate_norms [decl #88200] theorem Differentiable.mul [decl #88300] theorem NavierStokesR3.PairedKernelBound.section_integrable_and_integral_norm_le [decl #88400] theorem NavierStokesR3.ConservativeDifference.pressureGradient_component [decl #88500] theorem PartialEquiv.forall_mem_target [decl #88600] def ContMDiffWithinAt [decl #88700] theorem LinearEquiv.toSpanNonzeroSingleton._proof_1 [decl #88800] theorem _private.Mathlib.Data.Set.Image.0.Set.forall_subtype_range_iff._proof_1_1 [decl #88900] theorem PartialEquiv.IsImage.iff_symm_preimage_eq [decl #89000] theorem Set.mulIndicator_apply_eq_one._simp_2 [decl #89100] def instTopologicalSpaceModelProd [decl #89200] theorem PartialEquiv.ext [decl #89300] theorem PartialEquiv.prod_trans [decl #89400] theorem OpenPartialHomeomorph.contMDiffAt_extend [decl #89500] theorem ContMDiff.inv₀ [decl #89600] theorem StructureGroupoid.trans' [decl #89700] theorem NavierStokesR3.PressureTestBounds.fourierMomentConstant._proof_2 INTERN_CALLS 3400000000 nodes=3723503 [decl #89800] theorem NavierStokesR3.PressureRecovery.tensorAverage_pairing [decl #89900] theorem Set.nontrivial_of_univ_nontrivial [decl #90000] theorem NavierStokesR3.LocalizedDifferenceEnergy.weightedEnergy_continuousOn [decl #90100] theorem NavierStokesR3.globalSolutionOfComparator._proof_2 [decl #90200] theorem NavierStokesR3.ParabolicScaling.velocity_smooth [decl #90300] theorem NavierStokes.PeriodicPaper.CandidateProperties.force_periodic [decl #90400] def True.casesOn [decl #90500] def EulerStaticEuler.mixedRadius [decl #90600] theorem EulerBaseDatum.uniformAmplitude._proof_3 [decl #90700] def EulerPacketBaseGuardScales.baseRadius [decl #90800] def EulerPacketCorrectionPrimitive.pressurePolynomialEnvelope [decl #90900] theorem EulerMeanHarmonic.harmonicInteriorConstant._proof_1 [decl #91000] theorem EulerPacketLowConstants.gradient_properties [decl #91100] theorem MeasureTheory.Lp.compMeasurePreserving._proof_4 [decl #91200] theorem MeasureTheory.eLpNorm_indicator_sub_indicator [decl #91300] theorem MeasureTheory.absolutelyContinuous_neg [decl #91400] theorem MeasureTheory.TendstoInMeasure.congr [decl #91500] theorem EulerCylinderSobolev.localized_tsupport INTERN_CALLS 3500000000 nodes=3717917 [decl #91600] theorem List.reverse_eq_nil_iff [decl #91700] theorem List.foldl_cons [decl #91800] def _private.Init.Data.Int.Order.0.Int.eq_zero_of_dvd_of_natAbs_lt_natAbs.match_1_1 [decl #91900] theorem Function.iterate_injOn_Iio_minimalPeriod [decl #92000] theorem _private.Mathlib.GroupTheory.Perm.Cycle.Basic.0.Equiv.Perm.sameCycle_subtypePerm._simp_1_1 [decl #92100] theorem MonovaryOn.sum_mul_sum_le_card_mul_sum [decl #92200] theorem ContinuousLinearMap.holder_smul_right [decl #92300] theorem EulerMeanClassicalWordBounds.ordinaryWord_smooth [decl #92400] theorem EulerLpTranslation.compactField_hasFDerivAt [decl #92500] def SmoothTimeField.mapPath INTERN_CALLS 3600000000 nodes=3754293 [decl #92600] theorem SmoothTimeField.bilinearPath._proof_4 [decl #92700] theorem crossProduct._proof_1 [decl #92800] theorem _private.Mathlib.Analysis.InnerProductSpace.Adjoint.0.ContinuousLinearMap.adjointAux._proof_2 [decl #92900] theorem NormedSpace.induced._proof_2 [decl #93000] theorem linearDepOn_iff' [decl #93100] theorem Module.Basis.mkFinConsOfLE._proof_3 INTERN_CALLS 3700000000 nodes=2512384 [decl #93200] def EulerFinitePathTensor.tensorPathMap [decl #93300] def EulerPacketSourceGeometry.ParentFrame.v [decl #93400] def EulerPacketSourceGeometry.ParentFrame.epsilon [decl #93500] theorem EulerPacketMovingFrame.activationDirection._proof_1 [decl #93600] theorem EulerTransversePacketProvider.HistoryData.frameSecond._proof_11 [decl #93700] theorem EulerParentPacketFrames.Parent.second_equation [decl #93800] theorem EulerLpTranslation.SmoothL2Field.toLp_eq_jet_zero INTERN_CALLS 3800000000 nodes=2107913 [decl #93900] theorem EulerCylinderSobolevSpace.sobolevNormedAddCommGroup._proof_4 [decl #94000] def EulerAllOrderCorrectionData.FieldTower.spatialJet [decl #94100] def EulerSmoothL2Series.partialSum.match_1 [decl #94200] theorem EulerLpTranslation.SmoothL2Field.jetLp_addField [decl #94300] theorem EulerPacketPointJets.slowAdvection._proof_7 [decl #94400] theorem EulerTerminalTimePrimitive.terminalPrimitive._proof_2 INTERN_CALLS 3900000000 nodes=1769252 [decl #94500] theorem _private.Euler.MeanCoefficientTime.0.EulerMeanCoefficients.instNormedAddCommGroupContinuousLinearMapRealIdSubtypeAEEqFunSpaceVolumeMemAddSubgroupL2._proof_4 [decl #94600] theorem LinearMap.compLeftInverse._proof_2 [decl #94700] theorem EulerMeanSourceInverse.sourceMeanSolver._proof_3 [decl #94800] theorem MeasureTheory.toReal_eLpNorm [decl #94900] theorem EulerMeanCurlTensor.curlTensor_ae [decl #95000] theorem MeasureTheory.Measure.addHaar_real_closedBall' [decl #95100] theorem SetLike.smul_subset_self [decl #95200] theorem _private.Mathlib.Order.CompactlyGenerated.Basic.0.CompleteLattice.wellFoundedGT_iff_isSupFiniteCompact._proof_1_1 [decl #95300] theorem homeomorphSphereProd._proof_1 [decl #95400] def Nat.doubleFactorial_pos._f [decl #95500] theorem EulerMeanVariationalInverse.meanBoundaryFlux._proof_7 [decl #95600] theorem Set.pairwiseDisjoint_singleton [decl #95700] theorem Set.preimage_add_const_uIcc INTERN_CALLS 4000000000 nodes=2575465 [decl #95800] theorem VitaliFamily.enlarge._proof_1 [decl #95900] theorem _private.Mathlib.MeasureTheory.Integral.IntervalIntegral.Slope.0.MonotoneOn.intervalIntegral_slope_le._proof_1_2 [decl #96000] theorem MeasureTheory.setAverage_eq' [decl #96100] def Lean.Grind.IntInterval.noConfusionType [decl #96200] theorem _private.Mathlib.MeasureTheory.Integral.IntervalIntegral.AbsolutelyContinuousFun.0.AbsolutelyContinuousOnInterval.integral_deriv_eq_sub._proof_1_4 [decl #96300] theorem EulerTransverseGramPath.gramDerivativePath._proof_6 [decl #96400] theorem EulerMeanBoundary.boundaryOperator_solenoidal INTERN_CALLS 4100000000 nodes=940983 [decl #96500] theorem _private.Euler.MeanFixedCoefficientRegularity.0.EulerMeanFixedCoefficientRegularity.instNormedAddCommGroupSubtypeAEEqFunSpaceVolumeMemAddSubgroupL2SubmoduleRealSolenoidalSpace._proof_1 [decl #96600] theorem EulerMeanCoefficients.operatorPathMap._proof_11 [decl #96700] theorem _private.Euler.MeanSourceFixedInverse.0.EulerMeanSourceFixedInverse.instNormedAddCommGroupSubtypeAEEqFunRealSpaceVolumeMemAddSubgroupL2SubmoduleSolenoidalSpaceTimeMeasureTimeLp._proof_1 [decl #96800] theorem EulerMeanSourceFixedInverse.sourceCoordinateSolver._proof_22 [decl #96900] theorem EulerHilbertCoerciveParameter.contDiff_coerciveInverse_variable INTERN_CALLS 4200000000 nodes=2845965 [decl #97000] theorem _private.Euler.MeanCutoffTaylor.0.EulerMeanBoundary.instNormedSpaceRealContinuousLinearMapIdSpace_1._proof_2 [decl #97100] theorem EulerMeanBoundary.homogeneousTranslation_test INTERN_CALLS 4300000000 nodes=1398315 [decl #97200] theorem EulerMeanGramTranslation.meanAcceleration._proof_1 [decl #97300] theorem EulerMeanVariationalInverse.StrongMeanEvolution.pressurePath._proof_4 [decl #97400] def _private.Euler.MeanContinuousAcceleration.0.EulerMeanContinuousAcceleration.instNormedAddCommGroupContinuousLinearMapRealIdSubtypeAEEqFunSpaceVolumeMemAddSubgroupL2 INTERN_CALLS 4400000000 nodes=65020 [decl #97500] theorem EulerContinuousAccelerationForcing.forcing_contDiff [decl #97600] def _private.Euler.ContinuousSpatialFamily.0.EulerContinuousSpatialFamily.instNormedSpaceRealContinuousMap_euler [decl #97700] def EulerCylinderSmoothOrbit.spatialJet._f [decl #97800] theorem EulerTransverseFixedSpaceInverse.fixedFrameSolver._proof_6 INTERN_CALLS 4500000000 nodes=3178643 [decl #97900] theorem EulerLpOperatorField.fullMap._proof_7 INTERN_CALLS 4600000000 nodes=3118797 [decl #98000] theorem EulerCylinderSmoothOrbit.exists_smooth_representative [decl #98100] theorem EulerLpOperatorField.supported_smul INTERN_CALLS 4700000000 nodes=2225672 [decl #98200] theorem EulerLpCylinderTranslation.fieldPathLift._proof_3 [decl #98300] theorem EulerBoundedFieldGramInverse.gramPath._proof_5 INTERN_CALLS 4800000000 nodes=2946360 [decl #98400] theorem EulerPacketExistence.picard_iterate_point_bound INTERN_CALLS 4900000000 nodes=2817522 [decl #98500] theorem EulerTimeLpBoundedMap.timeLift_adjoint INTERN_CALLS 5000000000 nodes=3580371 INTERN_CALLS 5100000000 nodes=910814 INTERN_CALLS 5200000000 nodes=641148 [decl #98600] theorem EulerTransversePacketProvider.HistoryData.terminalInitial._proof_9 INTERN_CALLS 5300000000 nodes=2395693 [decl #98700] theorem EulerLpCylinderRectangular.supported_product_orbit_contDiff INTERN_CALLS 5400000000 nodes=2616304 [decl #98800] theorem _private.Euler.LpCylinderRegularCoefficient.0.EulerLpCylinderCoefficients.instNormedSpaceRealContinuousLinearMapId_euler._proof_1 INTERN_CALLS 5500000000 nodes=2507737 INTERN_CALLS 5600000000 nodes=3056337 INTERN_CALLS 5700000000 nodes=3739242 INTERN_CALLS 5800000000 nodes=7472133 INTERN_CALLS 5900000000 nodes=8971718 INTERN_CALLS 6000000000 nodes=10593859 INTERN_CALLS 6100000000 nodes=11853846 INTERN_CALLS 6200000000 nodes=13146241 INTERN_CALLS 6300000000 nodes=14578012 INTERN_CALLS 6400000000 nodes=15741280 INTERN_CALLS 6500000000 nodes=17020490 INTERN_CALLS 6600000000 nodes=18287546 [decl #98900] def _private.Euler.BoundedFieldForwardGenerator.0.EulerBoundedFieldForwardGenerator.instNormedSpaceRealContinuousMapBoundedContinuousFunctionContinuousLinearMapId_euler_2 INTERN_CALLS 6700000000 nodes=2288059 [decl #99000] def EulerCylinderAnglePrimitive.primitive [decl #99100] theorem EulerSourceCylinderEquation.pressureSource._proof_9 INTERN_CALLS 6800000000 nodes=1199294 [decl #99200] theorem EulerTransversePacketEndpoint.velocityPath._proof_3 [decl #99300] theorem EulerCylinderDirichlet.Coefficients.endpointCorrection._proof_2 INTERN_CALLS 6900000000 nodes=1753357 [decl #99400] theorem EulerTransverseFixedStrong.physicalDerivative._proof_6 INTERN_CALLS 7000000000 nodes=2588343 [decl #99500] def EulerTransverseInitialCoordinates.initialCoordinateDerivative INTERN_CALLS 7100000000 nodes=1860809 [decl #99600] def EulerPacketCylinderField.joinedTerminalPrimary [decl #99700] theorem EulerPacketCylinderField.Field.raw_eq [decl #99800] theorem EulerPacketProfileRecursion.knownJets_congr [decl #99900] theorem EulerMeanSmoothRepresentative.smoothL2Field_jetLp INTERN_CALLS 7200000000 nodes=1906710 [decl #100000] theorem EulerPacketCylinderField.Field.angleMean._proof_3 [decl #100100] def EulerPacketCylinderField.MatrixCoefficient.adjoint [decl #100200] theorem EulerSobolevL2Product.productApprox._proof_2 [decl #100300] theorem ProbabilityTheory.gaussianReal_of_var_ne_zero [decl #100400] theorem EulerGaussianCylinderHeat.lineHeatDerivative_smul INTERN_CALLS 7300000000 nodes=2877211 [decl #100500] theorem BoundedContinuousFunction.toContinuousMapₐ._proof_7 [decl #100600] theorem biInf_const [decl #100700] theorem abs_setIntegral_mulExpNegMulSq_comp_sub_le_mul_measure [decl #100800] theorem Complex.tendsto_mul_log_one_add_of_tendsto [decl #100900] theorem EulerGaussianCylinderHeat.lineOrbit_zero [decl #101000] theorem EulerPacketCylinderField.Field.spatialTransport._proof_2 [decl #101100] theorem EulerCylinderSmoothOrbit.fromCoordinates._proof_4 INTERN_CALLS 7400000000 nodes=2551874 [decl #101200] theorem EulerPacketCylinderField.Field.scalarProduct._proof_2 [decl #101300] theorem EulerMeanPacketProvider.Forcing.toCylinderField._proof_3 [decl #101400] def _private.Euler.CylinderSlowCurl.0.EulerCylinderSlowCurl.instNormedAddCommGroupSubtypeAEEqFunLiftDomainVector3LiftMeasureMemAddSubgroupLiftL2 [decl #101500] def _private.Euler.SourcePotentialCoefficient.0.EulerSourcePotentialCoefficient.instNormedAddCommGroupPotentialField [decl #101600] theorem EulerAngleMeanZeroPrimitive.primitive_hasDerivAt INTERN_CALLS 7500000000 nodes=1706362 INTERN_CALLS 7600000000 nodes=705085 [decl #101700] theorem EulerPacketCylinderField.scalarGradientField._proof_1 INTERN_CALLS 7700000000 nodes=1967076 INTERN_CALLS 7800000000 nodes=2210759 [decl #101800] theorem EulerTransversePacketProvider.Data.inverseDerivative._proof_4 [decl #101900] theorem EulerSourcePotentialCoefficient.timeNormalPath._proof_57 INTERN_CALLS 7900000000 nodes=8067389 INTERN_CALLS 8000000000 nodes=16954532 [decl #102000] theorem EulerTransversePacketJoin.correctorDerivativeField._proof_1 INTERN_CALLS 8100000000 nodes=2492561 INTERN_CALLS 8200000000 nodes=814320 [decl #102100] theorem EulerMeanVariationalInverse.StrongMeanEvolution.coordinateVelocityPath_ae INTERN_CALLS 8300000000 nodes=1508394 [decl #102200] theorem EulerTransversePacketJoin.corrector_zero_outside [decl #102300] theorem EulerSourceCylinderEquation.pressureSource_ae INTERN_CALLS 8400000000 nodes=2105008 INTERN_CALLS 8500000000 nodes=3138378 INTERN_CALLS 8600000000 nodes=906324 [decl #102400] def EulerTransversePacketPrimary.derivativePath [decl #102500] def EulerPacketInitial.Input.meanData [decl #102600] theorem EulerPacketMovingFrame.inverse_adjoint_forward_adjoint [decl #102700] def EulerTransverseActivationTrial.activationTrial INTERN_CALLS 8700000000 nodes=1571441 [decl #102800] theorem InnerProductSpace.norm_rankOne [decl #102900] theorem EulerTransverseEndpointUniqueness.sub_mem_transverse_of_terminal [decl #103000] theorem EulerPacketPrimaryFactorization.uncutVelocity_initial INTERN_CALLS 8800000000 nodes=1536620 [decl #103100] theorem EulerPacketSourceGeometry.Guards.sourceError_bound [decl #103200] theorem EulerCoerciveEndpointBounds.endpointOperator_sub_norm_le INTERN_CALLS 8900000000 nodes=987993 [decl #103300] theorem EulerPacketScaleGeometry.source_scale_exponential_summable [decl #103400] theorem EulerPacketParentPhysicalBudgets.joinedBudget._proof_3 [decl #103500] theorem EulerPacketParentTransverseCosts.curvatureAmplitude._proof_1 [decl #103600] theorem EulerPacketParentJoinedBudget.sourceJoinedBudget._proof_49 [decl #103700] def _private.Euler.MeanCoefficientFrame.0.EulerMeanCoefficients.instNormedAddCommGroupField [decl #103800] theorem EulerTransversePacketJoin.NormalBudget.strain_bound [decl #103900] theorem EulerPacketNormalizedPrimary.rayRate._proof_3 [decl #104000] def EulerPacketRay.velocityFirstRhs [decl #104100] def EulerPacketGrowth.invertedScalar [decl #104200] def EulerPacketMovingFrame.PhysicalGeometryData.E [decl #104300] theorem EulerPacketMovingFrame.physical_cross_ratio INTERN_CALLS 9000000000 nodes=1839166 [decl #104400] theorem EulerPacketSourceGeometry.Guards.source_normal [decl #104500] theorem Polynomial.eval₂_finsetSum [decl #104600] theorem EulerParentPacketFrames.LabelData.geometry_uniform_primitives [decl #104700] def EulerCylinderDirichlet.Coefficients.EndpointBudget.velocityCost [decl #104800] def EulerSpatialSobolevInverse.SmoothCoefficient.coefficient INTERN_CALLS 9100000000 nodes=3973035 [decl #104900] theorem EulerSpatialSobolevInverse.SpatialJet.nonneg [decl #105000] theorem EulerPacketCylinderField.MatrixCoefficient.comp._proof_1 [decl #105100] def _private.Euler.EulerProof.0.EulerSpatialSobolevInverse.CoefficientJet.pressureConstant.match_1.splitter [decl #105200] theorem EulerBoundedFieldCalculus.pathComposition_bound INTERN_CALLS 9200000000 nodes=677931 [decl #105300] theorem EulerPacketRadiusPolynomial.endpointForcing_le [decl #105400] theorem EulerTransversePacketProvider.Data.normalPathMap_norm [decl #105500] def EulerAllOrderCorrectionData.Data.linear INTERN_CALLS 9300000000 nodes=3739862 [decl #105600] theorem EulerPacketFiveCost.five_costs_bound [decl #105700] theorem EulerPacketCylinderField.joinedSource_high_tangent_all._proof_1_3 [decl #105800] theorem EulerParameterWordGevrey.block_nonneg INTERN_CALLS 9400000000 nodes=1608013 [decl #105900] theorem EulerLpCylinderRectangular.product_orbit_block_bound INTERN_CALLS 9500000000 nodes=2884750 [decl #106000] theorem EulerCylinderPotential.derivativePath_weight [decl #106100] theorem EulerPacketCylinderField.instDecidableEqKnownTerm.decEq._proof_16 [decl #106200] def Module.casesOn INTERN_CALLS 9600000000 nodes=3553469 [decl #106300] theorem Convex.curveIntegral_segment_add_eq_of_hasFDerivWithinAt_symmetric [decl #106400] theorem EulerMeanPacketProvider.Forcing.scalar_spatial_smooth [decl #106500] theorem DifferentiableWithinAt.mul_const [decl #106600] theorem EulerTimeLpCoefficientGevrey.timeOperatorGroup._proof_1 INTERN_CALLS 9700000000 nodes=4556927 [decl #106700] theorem EulerParameterWordGevrey.block_sub_le INTERN_CALLS 9800000000 nodes=4200755 [decl #106800] def _private.Euler.MeanCylinderWordBounds.0.EulerMeanPacketProvider.instNormedAddCommGroupContinuousMapElemRealIccOfNatSubtypeAEEqFunSpaceVolumeMemAddSubgroupL2 [decl #106900] theorem EulerPacketTimeProfile.fast_corrector_high_high._proof_1_2 INTERN_CALLS 9900000000 nodes=2311081 INTERN_CALLS 10000000000 nodes=1088598 [decl #107000] theorem EulerTransverseGevreyInverse.fixedCoercivity_inv_le INTERN_CALLS 10100000000 nodes=3767877 INTERN_CALLS 10200000000 nodes=1753867 INTERN_CALLS 10300000000 nodes=1781611 [decl #107100] def _private.Euler.SourceCylinderForwardSobolev.0.EulerSourceCylinderForwardSobolev.instNormedRingBoundedContinuousFunctionSpaceContinuousLinearMapRealId INTERN_CALLS 10400000000 nodes=2569968 [decl #107200] theorem EulerLinearDuhamel.Evolution.frozen_solution._abel_1_1 INTERN_CALLS 10500000000 nodes=2506340 INTERN_CALLS 10600000000 nodes=1537885 INTERN_CALLS 10700000000 nodes=1814171 INTERN_CALLS 10800000000 nodes=1288703 INTERN_CALLS 10900000000 nodes=1719057 INTERN_CALLS 11000000000 nodes=2330525 [decl #107300] theorem EulerTransversePacketProvider.Forcing.source_derivative_normalized_bound INTERN_CALLS 11100000000 nodes=1171921 [decl #107400] theorem EulerCylinderScalarPrimitive.primitive_norm INTERN_CALLS 11200000000 nodes=2476582 INTERN_CALLS 11300000000 nodes=3349637 [decl #107500] theorem EulerTransversePacketPrimary.Budget.corrector_bound [decl #107600] theorem EulerPacketCylinderField.Field.wordBound_evaluateFamily [decl #107700] theorem EulerFiniteGrades.evaluate_truncate [decl #107800] theorem EulerPacketInduction.Stage.nextHorizon._proof_1 [decl #107900] theorem EulerPacketSourceGeometry.ParentFrame.restrictTime._proof_4 [decl #108000] theorem EulerParentPacketFrames.LowBounds.restrictTime._proof_2 [decl #108100] theorem EulerParentPacketFrames.LabelData.geometryGuardsOfStage._proof_15 [decl #108200] theorem EulerPacketInduction.Stage.joinedGuards._proof_5 [decl #108300] theorem EulerParentNeighborCost.formula_mono [decl #108400] theorem EulerPacketInduction.Stage.initialDataLimit._proof_7 [decl #108500] theorem EulerPacketSourceScaleChoice.sourceCostSpec._proof_7 [decl #108600] theorem EulerPacketSourceScaleChoice.SmallSeries.mono [decl #108700] theorem EulerBaseDatum.eventually_firstScaleGuards._proof_1_1 INTERN_CALLS 11400000000 nodes=2862056 [decl #108800] theorem EulerSmoothBanachFlow.displacementCoefficient._proof_3 [decl #108900] theorem EulerGevreyGeneratingComposition.norm_taylorComp_le_coefficient [decl #109000] theorem SmoothTimeField.partitionJet._proof_10 [decl #109100] theorem SmoothTimeField.jointDerivative._proof_2 [decl #109200] theorem Matrix.trace.eq_1 [decl #109300] theorem EulerAllOrderCorrectionData.Data.metricBudget._proof_2 INTERN_CALLS 11500000000 nodes=1821717 [decl #109400] theorem EulerContinuousBoundedTensor.tensorPath._proof_1
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: 18 ms · instructions: 3.2 M · max rss memory: 6.9 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: 12 ms · instructions: 3.1 M · max rss memory: 7.0 MB
Test "other/nat-lit-add"
Expected: 👍 accept · Size: 26.0 KB · Lines: 478 · lean4export: 3.1.0 · Lean: 4.34.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: 13 ms · instructions: 8.1 M · max rss memory: 9.2 MB
Test "other/nat-lit-add-bad"
Expected: ✋ reject · Size: 25.3 KB · Lines: 465 · lean4export: 3.1.0 · Lean: 4.34.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: 14 ms · instructions: 8.1 M · max rss memory: 9.4 MB
stderr:
REJECT: [natAddLitBad] theorem 89: value type does not match declared type
Test "other/nat-lit-ble"
Expected: 👍 accept · Size: 28.8 KB · Lines: 520 · lean4export: 3.1.0 · Lean: 4.34.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: 12 ms · instructions: 8.6 M · max rss memory: 9.4 MB
Test "other/nat-lit-sub"
Expected: 👍 accept · Size: 30.0 KB · Lines: 561 · lean4export: 3.1.0 · Lean: 4.34.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: 11 ms · instructions: 9.1 M · max rss memory: 9.2 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: 16 ms · instructions: 3.2 M · max rss memory: 7.0 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.34.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: 11 ms · instructions: 3.6 M · max rss memory: 7.2 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: 8 ms · instructions: 3.1 M · max rss memory: 7.0 MB
Test "perf/app-lam"
Expected: 👍 accept · Size: 1.2 MB · Lines: 28.6 k · lean4export: 3.1.0 · Lean: 4.34.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: 177 ms · instructions: 957.4 M · max rss memory: 261.7 MB
Test "perf/args-before-unfold"
Expected: 👍 accept · Size: 44.5 KB · Lines: 1.2 k · lean4export: 3.1.0 · Lean: 4.34.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: 46 ms · instructions: 36.5 M · max rss memory: 16.5 MB
Test "perf/beta-ladder"
Expected: 👍 accept · Size: 450.6 KB · Lines: 10.4 k · lean4export: 3.1.0 · Lean: 4.34.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: 827 ms · instructions: 3.5 G · max rss memory: 538.5 MB
Test "perf/church-numerals"
Expected: 👍 accept · Size: 9.6 KB · Lines: 227 · lean4export: 3.1.0 · Lean: 4.34.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: 14 ms · instructions: 30.6 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.34.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: 41 ms · instructions: 30.8 M · max rss memory: 11.5 MB
Test "perf/discarded-argument-match"
Expected: 👍 accept · Size: 29.2 KB · Lines: 606 · lean4export: 3.1.0 · Lean: 4.34.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: 49 ms · instructions: 162.3 M · max rss memory: 23.8 MB
Test "perf/folded-constant-first"
Expected: 👍 accept · Size: 52.0 KB · Lines: 1.3 k · lean4export: 3.1.0 · Lean: 4.34.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: 14 ms · instructions: 47.5 M · max rss memory: 18.7 MB
Test "perf/folded-constant-last"
Expected: 👍 accept · Size: 51.0 KB · Lines: 1.3 k · lean4export: 3.1.0 · Lean: 4.34.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: 16 ms · instructions: 47.5 M · max rss memory: 18.6 MB
Test "perf/fueled-chain"
Expected: 👍 accept · Size: 848.6 KB · Lines: 17.3 k · lean4export: 3.1.0 · Lean: 4.34.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: 96 ms · instructions: 854.1 M · max rss memory: 45.4 MB
stderr:
[decl #100] theorem eq_self
Test "perf/grind-ring-5"
Expected: 👍 accept · Size: 9.8 MB · Lines: 200.3 k · lean4export: 3.1.0 · Lean: 4.34.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.1 s · instructions: 25.5 G · max rss memory: 341.6 MB
stderr:
[decl #100] theorem noConfusion_of_Nat [decl #200] theorem Nat.modCore_lt [decl #300] def Lean.Grind.Semiring.natCast [decl #400] theorem Lean.Grind.NatModule.zero_nsmul [decl #500] theorem _private.Init.Data.Nat.Basic.0.Nat.sub_ne_zero_of_lt._simp_1_3 [decl #600] theorem Int.zero_add [decl #700] theorem Nat.le.intro [decl #800] theorem Int.le_max_right [decl #900] theorem Int.natAbs_eq_natAbs_iff [decl #1000] theorem Nat.div_zero [decl #1100] theorem Int.sub_ediv_of_dvd [decl #1200] theorem Lean.Omega.IntList.dot_smul_left [decl #1300] theorem _private.Init.GetElem.0.List.getElem?_eq_none_iff._simp_1 [decl #1400] theorem _private.Init.Grind.Ring.Basic.0.Lean.Grind.Ring.intCast_nat_sub._proof_1_3 [decl #1500] theorem ite.congr_simp [decl #1600] def _private.Init.Data.Nat.Dvd.0.Nat.mod_eq_zero_of_dvd.match_1_1 [decl #1700] def Nat.Internal.Linear.Poly.cancelAux.match_1 [decl #1800] theorem Nat.Internal.Linear.Poly.denote_le_cancelAux [decl #1900] theorem Lean.Grind.CommRing.Mon.mul.go.induct_unfolding [decl #2000] theorem Nat.le_of_not_gt [decl #2100] theorem Nat.mod_eq_of_lt
Test "perf/identical-nesting"
Expected: 👍 accept · Size: 8.7 KB · Lines: 172 · lean4export: 3.1.0 · Lean: 4.34.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: 11 ms · instructions: 4.4 M · max rss memory: 7.1 MB
Test "perf/irrelevance-before-evaluation"
Expected: 👍 accept · Size: 17.5 KB · Lines: 388 · lean4export: 3.1.0 · Lean: 4.34.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: 12 ms · instructions: 5.9 M · max rss memory: 9.1 MB
Test "perf/let-fold"
Expected: 👍 accept · Size: 316.9 KB · Lines: 6.0 k · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
The declaration to check is
let d := bits #n 0; (rfl : d + 0 = Nat.add d 0)
where bits #n 0 is a closed Nat whose evaluation makes 2^n recursive
calls, and the rfl is wrapped in id so that its type is compared with
d + 0 = Nat.add d 0 inside the body of the let.
The two sides differ only in how the addition is written. Unfolding
HAdd.hAdd turns the left side into the right, for Θ(1). But both sides
are additions of literals to a closed term, so a checker that folds closed
Nat arithmetic (Nat.add on literals via GMP) will try to evaluate d
first, for Θ(2^n). The official kernel only folds terms without free
variables, and it checks the body of a let with d as a free variable
(bound to its value in the local context), so it never evaluates bits. A
checker that substitutes the value for d before checking the body makes
the comparison closed and pays for the evaluation.
Found by con-leche on openai/math (SquareDifference,
OAI.SquareDifference.source_ordered_contraction), where the bound value is
Fintype.card TupleVertex, whose evaluation enumerates permutations and
takes the checker past 6 GB; the official kernel checks that declaration in
16 ms.
N=16 in the Lean source.
Test result: 👍 accepted · exit code 0 · wall time: 1.9 s · instructions: 37.5 G · max rss memory: 173.4 MB
stderr:
[decl #100] theorem Nat.not_succ_le_zero
Test "perf/let-ladder"
Expected: 👍 accept · Size: 457.6 KB · Lines: 10.4 k · lean4export: 3.1.0 · Lean: 4.34.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: 797 ms · instructions: 3.5 G · max rss memory: 530.6 MB
Test "perf/magma-list-deep-n21"
Expected: 👍 accept · Size: 1.1 MB · Lines: 21.8 k · lean4export: 3.1.0 · Lean: 4.34.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.5 s · instructions: 12.9 G · max rss memory: 317.9 MB
stderr:
[decl #100] def Nat.sub [decl #200] theorem Eq.trans [decl #300] def Bool.and [decl #400] def Char.ofNatAux
Test "perf/magma-list-deep-n36"
Expected: 👍 accept · Size: 1.2 MB · Lines: 23.0 k · lean4export: 3.1.0 · Lean: 4.34.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: 54.6 s · instructions: 172.9 G · max rss memory: 3.7 GB
stderr:
[decl #100] def Nat.sub [decl #200] theorem Eq.trans [decl #300] def Bool.and [decl #400] def Char.ofNatAux INTERN_CALLS 100000000 nodes=20678160 INTERN_CALLS 200000000 nodes=38810928
Test "perf/magma-list-pair-n21"
Expected: 👍 accept · Size: 583.1 KB · Lines: 11.0 k · lean4export: 3.1.0 · Lean: 4.34.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: 21.8 s · instructions: 98.4 G · max rss memory: 6.9 GB
stderr:
[decl #100] def Nat.noConfusion [decl #200] def instDecidableEqFin.match_1 INTERN_CALLS 100000000 nodes=63430637
Test "perf/magma-list-pair-n7"
Expected: 👍 accept · Size: 583.6 KB · Lines: 11.0 k · lean4export: 3.1.0 · Lean: 4.34.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.5 s · instructions: 9.0 G · max rss memory: 585.6 MB
stderr:
[decl #100] def Nat.noConfusion [decl #200] def instDecidableEqFin.match_1
Test "perf/magma-string-n4"
Expected: 👍 accept · Size: 16.5 MB · Lines: 344.3 k · lean4export: 3.1.0 · Lean: 4.34.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: 11.7 s · instructions: 238.5 G · max rss memory: 287.5 MB
stderr:
[decl #100] def _private.Init.Prelude.0.Nat.zero_le.match_1_1 [decl #200] theorem Nat.modCoreGo_lt [decl #300] def _private.Init.Prelude.0.Nat.ne_of_beq_eq_false.match_1_1 [decl #400] def _private.Init.Data.Nat.Basic.0.Nat.le_add_right.match_1_1 [decl #500] theorem false_or [decl #600] theorem _private.Init.Data.Nat.Basic.0.Nat.add_sub_add_right._simp_1_1 [decl #700] def HAppend.hAppend [decl #800] theorem Nat.sub_eq_of_eq_add [decl #900] theorem Nat.div_lt_iff_lt_mul [decl #1000] def Lean.Omega.Constraint.upperBound [decl #1100] theorem Not.imp [decl #1200] theorem Lean.Omega.IntList.dot_nil_right [decl #1300] theorem Int.negSucc_eq [decl #1400] def _private.Init.Data.Int.DivMod.Bootstrap.0.Int.emod_emod_of_dvd.match_1_1 [decl #1500] theorem and_assoc [decl #1600] def String.rawEndPos [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 instMinNat [decl #2200] theorem BitVec.getLsbD_setWidth [decl #2300] theorem _private.Init.Data.Nat.MinMax.0.Nat.min_comm._simp_1_3 [decl #2400] theorem Nat.add_lt_of_lt_sub' [decl #2500] theorem BitVec.toNat_inj [decl #2600] theorem _private.Init.Data.ByteArray.Lemmas.0.ByteArray.extract_add_two._simp_1_3 [decl #2700] def _private.Init.Data.Nat.Lemmas.0.Nat.pow_dvd_pow_iff_pow_le_pow.match_1_1 [decl #2800] theorem Nat.shiftLeft_add [decl #2900] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.assemble₄_eq_some_of_toBitVec._simp_1_5 [decl #3000] theorem List.utf8Encode.eq_1 [decl #3100] theorem exists_or_eq_left
Test "perf/magma-string-pair-n9"
Expected: 👍 accept · Size: 16.6 MB · Lines: 344.3 k · lean4export: 3.1.0 · Lean: 4.34.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: 15.3 s · instructions: 277.8 G · max rss memory: 969.8 MB
stderr:
[decl #100] def _private.Init.Prelude.0.Nat.zero_le.match_1_1 [decl #200] theorem Nat.modCoreGo_lt [decl #300] def _private.Init.Prelude.0.Nat.ne_of_beq_eq_false.match_1_1 [decl #400] def _private.Init.Data.Nat.Basic.0.Nat.le_add_right.match_1_1 [decl #500] theorem false_or [decl #600] theorem _private.Init.Data.Nat.Basic.0.Nat.add_sub_add_right._simp_1_1 [decl #700] def HAppend.hAppend [decl #800] theorem Nat.sub_eq_of_eq_add [decl #900] theorem Nat.div_lt_iff_lt_mul [decl #1000] def Lean.Omega.Constraint.upperBound [decl #1100] theorem Not.imp [decl #1200] theorem Lean.Omega.IntList.dot_nil_right [decl #1300] theorem Int.negSucc_eq [decl #1400] def _private.Init.Data.Int.DivMod.Bootstrap.0.Int.emod_emod_of_dvd.match_1_1 [decl #1500] theorem and_assoc [decl #1600] def String.rawEndPos [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 instMinNat [decl #2200] theorem BitVec.getLsbD_setWidth [decl #2300] theorem _private.Init.Data.Nat.MinMax.0.Nat.min_comm._simp_1_3 [decl #2400] theorem Nat.add_lt_of_lt_sub' [decl #2500] theorem BitVec.toNat_inj [decl #2600] theorem _private.Init.Data.ByteArray.Lemmas.0.ByteArray.extract_add_two._simp_1_3 [decl #2700] def _private.Init.Data.Nat.Lemmas.0.Nat.pow_dvd_pow_iff_pow_le_pow.match_1_1 [decl #2800] theorem Nat.shiftLeft_add [decl #2900] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.assemble₄_eq_some_of_toBitVec._simp_1_5 [decl #3000] theorem List.utf8Encode.eq_1 [decl #3100] theorem exists_or_eq_left
Test "perf/proj-cheap-struct"
Expected: 👍 accept · Size: 85.9 KB · Lines: 1.5 k · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
The declaration to check compares
(S u).re and (S ()).re
where u is a definition that unfolds to (), and reducing S _ to a
constructor takes Θ(N) steps (it is a foldr over List.range N, with
N = 2^17).
.re is a projection function, so both sides unfold to a primitive
projection of S u and S (). Official reduces the structure of a
projection during definitional equality only with whnf_core (no delta),
compares the two stuck projections by their structures, and finds those
equal by comparing the arguments of S. That is five unfoldings in all.
A checker that fully reduces the structure of the projection to find a
constructor evaluates S on both sides: Θ(N) steps, which runs into a
step budget smaller than N.
Distilled from a Palomar submission, where the structure is a
Finset.sum over Finset.range (2^17) under Complex.re.
Test result: 👍 accepted · exit code 0 · wall time: 15 ms · instructions: 21.5 M · max rss memory: 13.5 MB
Test "perf/proj-lazy-struct"
Expected: 👍 accept · Size: 44.9 KB · Lines: 808 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
The declaration to check compares
(P (slow 100000)).1 and (Q (slow 100001)).1
where P a and Q a both unfold to (0, a), and slow n takes Θ(n)
steps to evaluate.
Official compares two projections of the same structure by lazily
unfolding their structs, and projects as soon as neither side unfolds
any further: after unfolding P and Q, it compares just the first
fields, 0 and 0. That is four unfoldings in all. A checker that
instead compares the two structs completely (here (0, slow 100000)
and (0, slow 100001)) before projecting also compares the second
fields, which differ, and does so by evaluating slow.
This is the counterpart of proj-cheap-struct, where the structs must
not be evaluated because they are equal by their arguments.
Test result: 🚫 declined · exit code 2 · wall time: 1.5 s · instructions: 9.2 G · max rss memory: 618.6 MB
stderr:
DECLINE: [proj_lazy_struct] WHNF depth limit
Test "perf/proj-stuck-struct"
Expected: 👍 accept · Size: 50.1 KB · Lines: 916 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
A definitional equality under a projection whose structure argument is stuck, distilled from a fuel-bridge lemma of con-leche's own proof library, on which con-leche ran out of memory.
step c n x : Nat × Nat recurses structurally on the fuel n; for a
variable x each level is stuck on match x, and each branch reads .1
of two recursive calls. stepN checks (step (id c) N x).1 =
(step c N x).1 by rfl, the sides differing only in id c vs c.
A checker that leaves a stuck projection's structure argument alone (as
the reference kernel's whnf_core does when reduce_proj fails) compares
step (id c) N x =?= step c N x, tries the arguments first, and is done
at once. A checker that replaces it by its weak head normal form has lost
the step head and unrolls the recursion tree on both sides:
exponential in N (con-leche before the fix: 0.2 s, 2 s, 17 s and
73 MB, 0.4 GB, 2.6 GB for N = 12, 16, 20; official, nanoda, lean4lean:
~0.02 s at every N).
Test result: 👍 accepted · exit code 0 · wall time: 11 ms · instructions: 13.3 M · max rss memory: 9.1 MB
Test "perf/refute-cheap-first"
Expected: ✋ reject · Size: 20.7 KB · Lines: 439 · lean4export: 3.1.0 · Lean: 4.34.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: 13 ms · instructions: 6.7 M · max rss memory: 9.3 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.34.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: 32 ms · instructions: 55.1 M · max rss memory: 11.5 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.34.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: 12 ms · instructions: 5.9 M · max rss memory: 9.1 MB
Test "perf/shared-subterm"
Expected: 👍 accept · Size: 50.1 KB · Lines: 1.3 k · lean4export: 3.1.0 · Lean: 4.34.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: 37 ms · instructions: 115.4 M · max rss memory: 20.6 MB
Test "perf/shift-cascade"
Expected: 👍 accept · Size: 256.3 KB · Lines: 5.1 k · lean4export: 3.1.0 · Lean: 4.34.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.6 s · instructions: 21.1 G · max rss memory: 384.9 MB
Test "perf/unroll-versus-evaluate"
Expected: 👍 accept · Size: 44.6 KB · Lines: 1.2 k · lean4export: 3.1.0 · Lean: 4.34.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: 19 ms · instructions: 46.7 M · max rss memory: 18.5 MB
Test "std"
Expected: 👍 accept · Size: 569.0 MB · Lines: 10.8 M · lean4export: 3.1.0 · Lean: 4.34.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: 9.8 m · max rss memory: 0 B
stderr:
Killed after exceeding the timeout of 9.8 m. [decl #100] theorem Nat.le_refl [decl #200] theorem dite_eq_right [decl #300] theorem Nat.lt_of_succ_le [decl #400] theorem Nat.mod_two_eq_zero_or_one [decl #500] theorem Nat.exists_testBit_of_ne_zero [decl #600] def Nat.Internal.Linear.Poly [decl #700] theorem Nat.Internal.Linear.Poly.denote_append [decl #800] theorem Nat.bitwise_lt_two_pow [decl #900] def Lean.Omega.IntList.sum [decl #1000] theorem Int.lt_iff_le_and_ne [decl #1100] def Lean.Omega.IntList.set.match_1 [decl #1200] def Lean.Name.mkStr1 [decl #1300] def Lean.Omega.IntList.smul [decl #1400] def Lean.Omega.tidyConstraint [decl #1500] theorem Int.mul_ediv_assoc [decl #1600] theorem Int.neg_le_neg_iff._simp_1 [decl #1700] def Array.getInternal [decl #1800] theorem _private.Init.Data.Nat.Power2.Lemmas.0.Nat.nextPowerOfTwo_eq_iff._simp_1_10 [decl #1900] def Array.mapM [decl #2000] theorem _private.Std.Data.DHashMap.Internal.Defs.0.Std.DHashMap.Internal.Raw₀.modify._proof_1 [decl #2100] def Std.Internal.List.getValue?._f [decl #2200] def List.getElem?_eq_some_iff._f [decl #2300] theorem Std.DHashMap.Internal.List.HashesTo.hash_self [decl #2400] theorem Std.Internal.List.DistinctKeys.perm [decl #2500] theorem Std.DHashMap.Internal.Raw₀.reinsertAux_eq [decl #2600] theorem _private.Std.Data.Internal.List.Associative.0.Std.Internal.List.getEntry?_of_perm._simp_1_1 INTERN_CALLS 100000000 nodes=3359280 [decl #2700] theorem List.eraseP_cons_of_neg INTERN_CALLS 200000000 nodes=3966833 [decl #2800] theorem _private.Std.Data.DHashMap.Internal.WF.0.Std.DHashMap.Internal.toListModel.eq_1 INTERN_CALLS 300000000 nodes=3075628 [decl #2900] theorem Std.Internal.List.mem_replaceEntry_of_beq_eq_false INTERN_CALLS 400000000 nodes=854006 INTERN_CALLS 500000000 nodes=4301066 [decl #3000] theorem Std.DHashMap.Internal.Raw₀.Const.wfImp_alter INTERN_CALLS 600000000 nodes=2922479 [decl #3100] def Std.TransOrd [decl #3200] def Std.DTreeMap.Internal.Impl.balanceL!.match_1 [decl #3300] theorem Std.DTreeMap.Internal.Impl.rotateL.eq_2 [decl #3400] def Lean.Data.AC.instEvalInformationContext [decl #3500] theorem _private.Std.Data.DTreeMap.Internal.Balancing.0.Std.DTreeMap.Internal.Impl.balanced_doubleR._proof_1_1 [decl #3600] def Std.DTreeMap.Internal.Impl.contains [decl #3700] theorem Std.DTreeMap.Internal.Impl.glue._proof_18 [decl #3800] theorem _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.Const.alter._proof_15 [decl #3900] theorem Nat.add_lt_add_iff_right [decl #4000] theorem _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.filter._proof_5 [decl #4100] def _private.Std.Data.DTreeMap.Internal.Model.0.Std.DTreeMap.Internal.Impl.maxView.match_1.splitter [decl #4200] def UInt8.decLt._aux_1 [decl #4300] def Std.DTreeMap.isEmpty [decl #4400] def Std.HashMap.instEmptyCollection [decl #4500] theorem Std.Tactic.BVDecide.BVExpr.decEq._proof_47 [decl #4600] theorem Std.Tactic.BVDecide.instDecidableEqBVUnOp.decEq._proof_26 [decl #4700] theorem Std.Tactic.BVDecide.BVExpr.shiftRight.inj INTERN_CALLS 700000000 nodes=1765059 [decl #4800] theorem Std.DHashMap.Internal.Raw₀.wfImp_filterMapₘ [decl #4900] def _private.Std.Data.DTreeMap.Internal.Model.0.Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.splitter [decl #5000] theorem Std.DTreeMap.Internal.Impl.Ordered.compare_left_beq_gt [decl #5100] theorem Std.DTreeMap.Internal.Impl.updateCell._proof_34 [decl #5200] theorem Std.DTreeMap.Internal.Impl.modify.eq_2 [decl #5300] theorem _private.Std.Data.Internal.List.Associative.0.Std.Internal.List.min_eq_left [decl #5400] theorem Option.map_id_fun' [decl #5500] theorem BitVec.toNat_mod_cancel [decl #5600] def _private.Init.Data.List.Perm.0.List.Perm.eq_of_pairwise.match_1_1 [decl #5700] theorem Quot.indepCoherent [decl #5800] theorem _private.Init.Data.Nat.Bitwise.Lemmas.0.Nat.testBit_two_pow_mul._simp_1_2 [decl #5900] def Lean.Grind.CommRing.Mon.mul_nc [decl #6000] theorem BitVec.shiftLeftZeroExtend._proof_1 [decl #6100] theorem String.Pos.Raw.le_iff [decl #6200] theorem List.toByteArray.loop.eq_def [decl #6300] theorem _private.Init.Data.ByteArray.Lemmas.0.ByteArray.data_extract._proof_1_3 [decl #6400] theorem Nat.mod_eq_iff [decl #6500] theorem BitVec.not_le [decl #6600] theorem BitVec.toNat_setWidth_of_le [decl #6700] theorem _private.Init.Data.String.Decode.0.String.utf8EncodeChar_eq_utf8EncodeCharFast._proof_1_15 [decl #6800] theorem _private.Init.Data.Array.Extract.0.Array.extract_append_extract._proof_1_2 [decl #6900] theorem Nat.pow_dvd_pow_iff_pow_le_pow [decl #7000] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.parseFirstByte_eq_twoMore_iff_toBitVec._simp_1_1 [decl #7100] theorem _private.Init.Data.String.Decode.0.ByteArray.utf8DecodeChar?.assemble₄_eq_some_iff_utf8EncodeChar_eq._proof_1_13 [decl #7200] theorem _private.Init.Data.Array.Extract.0.Array.extract_size_left._proof_1_1 [decl #7300] theorem List.take_append_of_le_length [decl #7400] theorem _private.Std.Data.DHashMap.Basic.0.Std.DHashMap.Const.get?._proof_1 INTERN_CALLS 800000000 nodes=2985678 INTERN_CALLS 900000000 nodes=1472693 [decl #7500] theorem _private.Std.Sat.AIG.Cached.0.Std.Sat.AIG.mkGateCached._proof_1 INTERN_CALLS 1000000000 nodes=419266 [decl #7600] theorem List.countP_go_eq_add [decl #7700] theorem _private.Init.Data.Array.Lemmas.0.Array.foldrM_start_stop._proof_1_11 [decl #7800] def Std.Tactic.BVDecide.LRAT.Internal.DefaultClause.empty [decl #7900] def Std.Do.SPred.exists.match_1 [decl #8000] theorem Nat.mod_def [decl #8100] def Zero.ofOfNat0 [decl #8200] theorem List.IsSuffix.trans [decl #8300] theorem List.mem_append_right [decl #8400] theorem Std.Internal.List.contains_of_contains_insertList_of_contains_eq_false_left [decl #8500] def _private.Init.Data.List.MapIdx.0.List.getElem?_mapIdx_go.match_1_1 [decl #8600] def _private.Std.Data.DTreeMap.Internal.Queries.0.Std.DTreeMap.Internal.Impl.maxEntry?.match_1.splitter [decl #8700] def BitVec.rotateRightAux [decl #8800] def Std.IterM.IsPlausibleStep [decl #8900] theorem Nat.sub_add_comm [decl #9000] theorem _private.Init.Data.Iterators.Lemmas.Monadic.Basic.0.Std.IterM.inductSteps._proof_2 [decl #9100] theorem Std.Iter.isPlausibleSuccessorOf_iff_exists [decl #9200] def _private.Init.Data.Range.Polymorphic.SInt.0.Int8.maxValueSealed [decl #9300] theorem _private.Init.Data.Range.Polymorphic.Internal.SignedBitVec.0.BitVec.Signed.sle_iff_rotate_le_rotate._proof_1_11 [decl #9400] theorem Int8.toInt_inj [decl #9500] theorem Fin.ofNat._proof_1 [decl #9600] theorem _private.Init.Data.Range.Polymorphic.Internal.SignedBitVec.0.BitVec.Signed.instRxcLawfulHasSize._simp_17 [decl #9700] theorem Std.DTreeMap.Internal.Impl.getEntry?_eq_getEntry?ₘ [decl #9800] def Std.DHashMap.Internal.Raw₀.interSmallerFnₘ INTERN_CALLS 1100000000 nodes=1949757 INTERN_CALLS 1200000000 nodes=1463460 [decl #9900] theorem Std.DTreeMap.Internal.Impl.maxKey!_eq_get!_maxKey? [decl #10000] theorem _private.Std.Data.DHashMap.Internal.Defs.0.Std.DHashMap.Internal.Raw₀.eraseManyEntries._proof_1 INTERN_CALLS 1300000000 nodes=3570471 [decl #10100] def Std.DTreeMap.Internal.Impl.instDecidableMem [decl #10200] def List.drop_drop._f [decl #10300] theorem Ord.opposite.eq_1 [decl #10400] theorem String.Slice.Pos.ext [decl #10500] theorem _private.Init.Data.String.Basic.0.String.Slice.Pos.offset_str_le_offset_endExclusive._simp_1_1 [decl #10600] def String.Slice.Pos.next [decl #10700] theorem List.getLast._proof_2 [decl #10800] theorem Int.Internal.Linear.Poly.num.inj [decl #10900] theorem Std.DHashMap.Const.get_alter INTERN_CALLS 1400000000 nodes=3023132 [decl #11000] def Lean.Grind.CommRing.Power.noConfusionType [decl #11100] theorem Lean.Grind.CommRing.Mon.revlexWF._unary.induct_unfolding [decl #11200] theorem Lean.Grind.instOrderedRingInt [decl #11300] def Std.Http.Body.close [decl #11400] def Std.Http.Body.Full.recv INTERN_CALLS 1500000000 nodes=2524077 [decl #11500] def Std.DHashMap.Internal.Raw₀.getKeyD INTERN_CALLS 1600000000 nodes=961228 [decl #11600] def Int.gcd [decl #11700] def instComplementUSize [decl #11800] def Std.IterM.filterMapWithPostcondition [decl #11900] theorem _private.Std.Data.DTreeMap.Internal.Zipper.0.Std.DTreeMap.Internal.RxcIterator.toList_rxcIter._unary [decl #12000] def Std.DTreeMap.Internal.Impl.Const.get INTERN_CALLS 1700000000 nodes=1376039 [decl #12100] theorem Lean.Order.CompleteLattice.has_sup [decl #12200] theorem Std.BundledIterM.Equiv._proof_1 [decl #12300] theorem Std.DTreeMap.Equiv.insert [decl #12400] theorem _private.Init.Data.String.Termination.0.String.Slice.Pos.wellFounded_lt._simp_1_1 [decl #12500] def Std.Packages.LinearPreorderOfLEArgs.isLE_compare._autoParam [decl #12600] theorem String.Slice.Pos.prev_lt_iff_le._simp_1 [decl #12700] theorem _private.Init.Data.String.Basic.0.String.empty_append._simp_1_1 [decl #12800] theorem Nat.Coprime.dvd_of_dvd_mul_right [decl #12900] theorem Std.Internal.List.getKey?_eq_none [decl #13000] def mkRat [decl #13100] def String.Slice.Model.positionsFrom INTERN_CALLS 1800000000 nodes=247768 [decl #13200] theorem List.mapFinIdx._proof_2 [decl #13300] def Rat.neg [decl #13400] theorem _private.Init.Data.Rat.Lemmas.0.Rat.mul_inv_cancel._simp_1_2 [decl #13500] theorem Int.emod_emod [decl #13600] def Nat.decidableExistsLT._f [decl #13700] theorem _private.Init.Data.BitVec.Lemmas.0.BitVec.getLsbD_twoPow._proof_1_5 [decl #13800] theorem Int64.ofInt_tdiv [decl #13900] theorem Nat.forall_lt_succ_right'._proof_2 [decl #14000] def _private.Init.Prelude.0.Lean.extractMainModule._f [decl #14100] theorem _private.Init.Data.Array.Lemmas.0.Array.getElem_ofFn_go._proof_1_5 [decl #14200] def Std.ExtDTreeMap.instUnionOfTransCmp [decl #14300] theorem String.find?_prop_eq_find?_decide [decl #14400] theorem String.Slice.Pos.offset_ofSliceTo [decl #14500] def _private.Init.Data.Nat.Dvd.0.Nat.mul_dvd_mul.match_1_1 INTERN_CALLS 1900000000 nodes=1247911 [decl #14600] theorem Array.reverse.loop._proof_2 [decl #14700] theorem UInt64.ofNat_eq_iff_mod_eq_toNat INTERN_CALLS 2000000000 nodes=545667 [decl #14800] theorem Nat.compare_eq_ite_lt [decl #14900] theorem UInt32.ofBitVec_add [decl #15000] def TypeName.noConfusion [decl #15100] theorem Std.DHashMap.Internal.Raw₀.Const.size_insertManyIfNewUnit_emptyWithCapacity_list [decl #15200] def Float.Model.UnpackedFloat.ExtendedMantissa.accuracy.match_1 [decl #15300] theorem Std.Rco.toList_eq_ite_roo INTERN_CALLS 2100000000 nodes=4751
Test "tutorial/001_basicDef"
Expected: 👍 accept · Size: 367 B · Lines: 6 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Basic definition
Test result: 👍 accepted · exit code 0 · wall time: 19 ms · instructions: 3.1 M · max rss memory: 7.2 MB
Test "tutorial/002_badDef"
Expected: ✋ reject · Size: 365 B · Lines: 6 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Mismatched types
Test result: ✋ rejected · exit code 1 · wall time: 12 ms · instructions: 3.1 M · max rss memory: 7.1 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.34.1 · 📄 Declaration · 🔗 Source
Arrow type (function type)
Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 3.1 M · max rss memory: 7.2 MB
Test "tutorial/004_dependentType"
Expected: 👍 accept · Size: 460 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Dependent type (forall)
Test result: 👍 accepted · exit code 0 · wall time: 12 ms · instructions: 3.1 M · max rss memory: 7.0 MB
Test "tutorial/005_constType"
Expected: 👍 accept · Size: 897 B · Lines: 17 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Lambda expression
Test result: 👍 accepted · exit code 0 · wall time: 9 ms · instructions: 3.2 M · max rss memory: 7.0 MB
Test "tutorial/006_betaReduction"
Expected: 👍 accept · Size: 1.3 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Lambda reduction
Test result: 👍 accepted · exit code 0 · wall time: 11 ms · instructions: 3.3 M · max rss memory: 7.1 MB
Test "tutorial/007_betaReduction2"
Expected: 👍 accept · Size: 1.4 KB · Lines: 28 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Lambda reduction under binder
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 3.3 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.34.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: 8 ms · instructions: 3.3 M · max rss memory: 7.1 MB
Test "tutorial/009_forallSortBad"
Expected: ✋ reject · Size: 1.2 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
The binding domain of a forall has to be a sort
Test result: ✋ rejected · exit code 1 · wall time: 8 ms · instructions: 3.3 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.34.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: 3.2 M · max rss memory: 7.0 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.34.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: 8 ms · instructions: 3.2 M · max rss memory: 7.1 MB
stderr:
REJECT: [nonTypeAxiom] expected a sort
Test "tutorial/012_nonPropThm"
Expected: ✋ reject · Size: 424 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
The type of a theorem has to be a proposition
Test result: ✋ rejected · exit code 1 · wall time: 7 ms · instructions: 3.1 M · max rss memory: 7.0 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.34.1 · 📄 Declaration · 🔗 Source
A theorem can refer to another theorem
Test result: 👍 accepted · exit code 0 · wall time: 11 ms · instructions: 3.3 M · max rss memory: 7.0 MB
Test "tutorial/014_selfProof"
Expected: ✋ reject · Size: 459 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
A theorem cannot refer to itself
Test result: ✋ rejected · exit code 1 · wall time: 12 ms · instructions: 3.1 M · max rss memory: 7.1 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.34.1 · 📄 Declaration · 🔗 Source
Some level computation
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 3.1 M · max rss memory: 7.0 MB
Test "tutorial/016_levelComp2"
Expected: 👍 accept · Size: 409 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Some level computation
Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 3.1 M · max rss memory: 7.1 MB
Test "tutorial/017_levelComp3"
Expected: 👍 accept · Size: 427 B · Lines: 9 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Some level computation
Test result: 👍 accepted · exit code 0 · wall time: 25 ms · instructions: 3.1 M · max rss memory: 7.1 MB
Test "tutorial/018_levelParams"
Expected: 👍 accept · Size: 1.4 KB · Lines: 29 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Level parameters
Test result: 👍 accepted · exit code 0 · wall time: 29 ms · instructions: 3.3 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.34.1 · 📄 Declaration · 🔗 Source
Duplicate universe parameters
Test result: ✋ rejected · exit code 1 · wall time: 10 ms · instructions: 3.1 M · max rss memory: 6.9 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.34.1 · 📄 Declaration · 🔗 Source
Some level computation
Test result: 👍 accepted · exit code 0 · wall time: 9 ms · instructions: 3.1 M · max rss memory: 7.0 MB
Test "tutorial/021_levelComp5"
Expected: 👍 accept · Size: 424 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Some level computation
Test result: 👍 accepted · exit code 0 · wall time: 12 ms · instructions: 3.1 M · max rss memory: 7.1 MB
Test "tutorial/022_imax1"
Expected: 👍 accept · Size: 809 B · Lines: 16 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Type inference for forall using imax
Test result: 👍 accepted · exit code 0 · wall time: 9 ms · instructions: 3.2 M · max rss memory: 7.0 MB
Test "tutorial/023_imax2"
Expected: 👍 accept · Size: 828 B · Lines: 17 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Type inference for forall using imax
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 3.2 M · max rss memory: 7.0 MB
Test "tutorial/024_levelMaxComm"
Expected: 👍 accept · Size: 524 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Level equality: max is commutative (max u v ≈ max v u).
Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 3.1 M · max rss memory: 7.3 MB
Test "tutorial/025_levelMaxAssoc"
Expected: 👍 accept · Size: 623 B · Lines: 16 · lean4export: 3.1.0 · Lean: 4.34.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: 10 ms · instructions: 3.1 M · max rss memory: 7.2 MB
Test "tutorial/026_levelMaxIdem"
Expected: 👍 accept · Size: 447 B · Lines: 9 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Level equality: max is idempotent (max u u ≈ u).
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 3.1 M · max rss memory: 7.0 MB
Test "tutorial/027_levelMaxAbsorb"
Expected: 👍 accept · Size: 526 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Level equality: max absorption (max u (max u v) ≈ max u v).
Test result: 👍 accepted · exit code 0 · wall time: 9 ms · instructions: 3.1 M · max rss memory: 6.9 MB
Test "tutorial/028_inferVar"
Expected: 👍 accept · Size: 713 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Type inference of local variables
Test result: 👍 accepted · exit code 0 · wall time: 9 ms · instructions: 3.1 M · max rss memory: 6.9 MB
Test "tutorial/029_defEqLambda"
Expected: 👍 accept · Size: 1.4 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Definitional equality between lambdas
Test result: 👍 accepted · exit code 0 · wall time: 12 ms · instructions: 3.3 M · max rss memory: 7.0 MB
Test "tutorial/030_peano1"
Expected: 👍 accept · Size: 3.6 KB · Lines: 73 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Peano arithmetic: 2 = 2
Test result: 👍 accepted · exit code 0 · wall time: 14 ms · instructions: 3.8 M · max rss memory: 7.1 MB
Test "tutorial/031_peano2"
Expected: 👍 accept · Size: 4.5 KB · Lines: 90 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Peano arithmetic: 1 + 1 = 2
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 4.3 M · max rss memory: 7.2 MB
Test "tutorial/032_peano3"
Expected: 👍 accept · Size: 4.9 KB · Lines: 98 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Peano arithmetic: 2 * 2 = 4
Test result: 👍 accepted · exit code 0 · wall time: 13 ms · instructions: 4.6 M · max rss memory: 9.2 MB
Test "tutorial/033_letType"
Expected: 👍 accept · Size: 489 B · Lines: 9 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Type checking a non-dependent let
Test result: 👍 accepted · exit code 0 · wall time: 8 ms · instructions: 3.1 M · max rss memory: 7.3 MB
Test "tutorial/034_letTypeDep"
Expected: 👍 accept · Size: 1.2 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Type checking a dependent let
Test result: 👍 accepted · exit code 0 · wall time: 11 ms · instructions: 3.3 M · max rss memory: 7.0 MB
Test "tutorial/035_letRed"
Expected: 👍 accept · Size: 627 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Reducing a let
Test result: 👍 accepted · exit code 0 · wall time: 11 ms · instructions: 3.2 M · max rss memory: 7.1 MB
Test "tutorial/036_empty"
Expected: 👍 accept · Size: 1.2 KB · Lines: 20 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
A simple empty inductive type
Test result: 👍 accepted · exit code 0 · wall time: 50 ms · instructions: 3.2 M · max rss memory: 7.0 MB
Test "tutorial/037_boolType"
Expected: 👍 accept · Size: 2.3 KB · Lines: 37 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
A simple enumeration inductive type
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 3.3 M · max rss memory: 7.1 MB
Test "tutorial/038_twoBool"
Expected: 👍 accept · Size: 4.2 KB · Lines: 65 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
A simple product type
Test result: 👍 accepted · exit code 0 · wall time: 14 ms · instructions: 3.6 M · max rss memory: 7.0 MB
Test "tutorial/039_andType"
Expected: 👍 accept · Size: 3.2 KB · Lines: 57 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
A parametrized product type (no level parameters)
Test result: 👍 accepted · exit code 0 · wall time: 12 ms · instructions: 3.5 M · max rss memory: 7.2 MB
Test "tutorial/040_prodType"
Expected: 👍 accept · Size: 3.8 KB · Lines: 76 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
A parametrized product type (with level parameters)
Test result: 👍 accepted · exit code 0 · wall time: 13 ms · instructions: 3.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.34.1 · 📄 Declaration · 🔗 Source
A parametrized product type (with more general level parameters)
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 3.6 M · max rss memory: 7.0 MB
Test "tutorial/042_pUnitType"
Expected: 👍 accept · Size: 1.8 KB · Lines: 31 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Level-polymorphic unit type
Test result: 👍 accepted · exit code 0 · wall time: 13 ms · instructions: 3.3 M · max rss memory: 7.1 MB
Test "tutorial/043_eqType"
Expected: 👍 accept · Size: 3.2 KB · Lines: 62 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Equality, as an important indexed non-recursive data type
Test result: 👍 accepted · exit code 0 · wall time: 13 ms · instructions: 3.5 M · max rss memory: 7.1 MB
Test "tutorial/044_natDef"
Expected: 👍 accept · Size: 3.3 KB · Lines: 61 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
A recursive inductive data type
Test result: 👍 accepted · exit code 0 · wall time: 11 ms · instructions: 3.5 M · max rss memory: 7.2 MB
Test "tutorial/045_rbTreeDef"
Expected: 👍 accept · Size: 15.7 KB · Lines: 296 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
A recursive indexed data type
Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 5.1 M · max rss memory: 9.4 MB
Test "tutorial/046_inductBadNonSort"
Expected: ✋ reject · Size: 1.2 KB · Lines: 20 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
An inductive type with a non-sort type
Test result: ✋ rejected · exit code 1 · wall time: 13 ms · instructions: 3.2 M · max rss memory: 7.1 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.34.1 · 📄 Declaration · 🔗 Source
Another inductive type with a non-sort type
Test result: ✋ rejected · exit code 1 · wall time: 12 ms · instructions: 3.1 M · max rss memory: 7.1 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.34.1 · 📄 Declaration · 🔗 Source
An inductive with duplicate level params
Test result: ✋ rejected · exit code 1 · wall time: 13 ms · instructions: 3.1 M · max rss memory: 7.0 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.34.1 · 📄 Declaration · 🔗 Source
An inductive with too few parameters in the type
Test result: ✋ rejected · exit code 1 · wall time: 9 ms · instructions: 3.1 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.34.1 · 📄 Declaration · 🔗 Source
An inductive with a constructor with wrong parameters
Test result: ✋ rejected · exit code 1 · wall time: 7 ms · instructions: 3.2 M · max rss memory: 7.0 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.34.1 · 📄 Declaration · 🔗 Source
An inductive with a constructor with wrong parameters in result (they are swapped)
Test result: ✋ rejected · exit code 1 · wall time: 12 ms · instructions: 3.2 M · max rss memory: 6.8 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.34.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: 43 ms · instructions: 3.2 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.34.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: 10 ms · instructions: 3.2 M · max rss memory: 7.0 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.34.1 · 📄 Declaration · 🔗 Source
The classic example of an inductive with negative recursive occurrence
Test result: ✋ rejected · exit code 1 · wall time: 7 ms · instructions: 3.1 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.34.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: 7 ms · instructions: 3.7 M · max rss memory: 7.3 MB
Test "tutorial/056_reduceCtorType.mk"
Expected: ✋ reject · Size: 1.5 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.34.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: 12 ms · instructions: 3.3 M · max rss memory: 7.1 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.34.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: 12 ms · instructions: 3.3 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.34.1 · 📄 Declaration · 🔗 Source
An inductive proposition can have constructors with fields of arbitrary level.
Test result: 👍 accepted · exit code 0 · wall time: 13 ms · instructions: 3.3 M · max rss memory: 7.1 MB
Test "tutorial/059_typeWithTypeField"
Expected: 👍 accept · Size: 2.1 KB · Lines: 36 · lean4export: 3.1.0 · Lean: 4.34.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: 10 ms · instructions: 3.3 M · max rss memory: 7.1 MB
Test "tutorial/060_typeWithTypeFieldPoly"
Expected: 👍 accept · Size: 2.1 KB · Lines: 38 · lean4export: 3.1.0 · Lean: 4.34.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: 9 ms · instructions: 3.3 M · max rss memory: 6.9 MB
Test "tutorial/061_typeWithTooHighTypeField.mk"
Expected: ✋ reject · Size: 943 B · Lines: 11 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
An inductive type can have fields of from higher universes.
Test result: ✋ rejected · exit code 1 · wall time: 7 ms · instructions: 3.1 M · max rss memory: 6.9 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.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 12 ms · instructions: 3.2 M · max rss memory: 7.2 MB
Test "tutorial/063_boolRec"
Expected: 👍 accept · Size: 3.0 KB · Lines: 53 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 8 ms · instructions: 3.5 M · max rss memory: 7.1 MB
Test "tutorial/064_twoBoolRec"
Expected: 👍 accept · Size: 4.8 KB · Lines: 78 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 3.7 M · max rss memory: 7.1 MB
Test "tutorial/065_andRec"
Expected: 👍 accept · Size: 3.2 KB · Lines: 58 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 3.6 M · max rss memory: 7.1 MB
Test "tutorial/066_prodRec"
Expected: 👍 accept · Size: 4.0 KB · Lines: 79 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 3.7 M · max rss memory: 7.2 MB
Test "tutorial/067_pprodRec"
Expected: 👍 accept · Size: 4.0 KB · Lines: 78 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 8 ms · instructions: 3.7 M · max rss memory: 7.1 MB
Test "tutorial/068_punitRec"
Expected: 👍 accept · Size: 2.2 KB · Lines: 39 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 12 ms · instructions: 3.4 M · max rss memory: 7.1 MB
Test "tutorial/069_eqRec"
Expected: 👍 accept · Size: 3.3 KB · Lines: 63 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 8 ms · instructions: 3.6 M · max rss memory: 7.3 MB
Test "tutorial/070_nRec"
Expected: 👍 accept · Size: 3.3 KB · Lines: 61 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 3.5 M · max rss memory: 7.0 MB
Test "tutorial/071_rbTreeRef"
Expected: 👍 accept · Size: 16.2 KB · Lines: 303 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor
Test result: 👍 accepted · exit code 0 · wall time: 8 ms · instructions: 5.6 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.34.1 · 📄 Declaration · 🔗 Source
Inductive predicates eliminate into Prop if they have more than one constructor.
Test result: 👍 accepted · exit code 0 · wall time: 11 ms · instructions: 3.4 M · max rss memory: 7.3 MB
Test "tutorial/073_BogusRecursor"
Expected: ✋ reject · Size: 1.8 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.34.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: 51 ms · instructions: 3.2 M · max rss memory: 7.0 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.34.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: 12 ms · instructions: 3.7 M · max rss memory: 7.1 MB
Test "tutorial/075_typeSingletonRecReduction"
Expected: 👍 accept · Size: 7.9 KB · Lines: 138 · lean4export: 3.1.0 · Lean: 4.34.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: 10 ms · instructions: 4.2 M · max rss memory: 7.3 MB
Test "tutorial/076_sortElimPropRec"
Expected: 👍 accept · Size: 5.6 KB · Lines: 97 · lean4export: 3.1.0 · Lean: 4.34.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: 8 ms · instructions: 3.9 M · max rss memory: 7.1 MB
Test "tutorial/077_sortElimProp2Rec"
Expected: 👍 accept · Size: 6.6 KB · Lines: 114 · lean4export: 3.1.0 · Lean: 4.34.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: 7 ms · instructions: 4.1 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.34.1 · 📄 Declaration · 🔗 Source
Reduction behavior of Bool.rec
Test result: 👍 accepted · exit code 0 · wall time: 8 ms · instructions: 4.7 M · max rss memory: 9.3 MB
Test "tutorial/079_prodRecEqns"
Expected: 👍 accept · Size: 10.1 KB · Lines: 205 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Reduction behavior of Prod.rec
Test result: 👍 accepted · exit code 0 · wall time: 12 ms · instructions: 4.8 M · max rss memory: 9.2 MB
Test "tutorial/080_nRecReduction"
Expected: 👍 accept · Size: 12.7 KB · Lines: 238 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
A proof relying on the reduction behavior of N.rec
Test result: 👍 accepted · exit code 0 · wall time: 8 ms · instructions: 5.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.34.1 · 📄 Declaration · 🔗 Source
Reduction behavior of List.rec
Test result: 👍 accepted · exit code 0 · wall time: 8 ms · instructions: 7.0 M · max rss memory: 9.3 MB
Test "tutorial/082_RBTree.id_spec"
Expected: 👍 accept · Size: 47.9 KB · Lines: 1.0 k · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Reduction behavior of RBTree.rec
Test result: 👍 accepted · exit code 0 · wall time: 9 ms · instructions: 18.6 M · max rss memory: 13.4 MB
Test "tutorial/083_And.right"
Expected: 👍 accept · Size: 4.3 KB · Lines: 74 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Type-checking simple projection functions
Test result: 👍 accepted · exit code 0 · wall time: 12 ms · instructions: 3.7 M · max rss memory: 7.3 MB
Test "tutorial/084_Prod.snd"
Expected: 👍 accept · Size: 4.5 KB · Lines: 83 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Type-checking projection functions with parameters
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 3.8 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.34.1 · 📄 Declaration · 🔗 Source
Type-checking projection functions
Test result: 👍 accepted · exit code 0 · wall time: 12 ms · instructions: 3.8 M · max rss memory: 7.2 MB
Test "tutorial/086_PSigma.snd"
Expected: 👍 accept · Size: 5.1 KB · Lines: 96 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Type-checking dependent projection functions
Test result: 👍 accepted · exit code 0 · wall time: 11 ms · instructions: 4.0 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.34.1 · 📄 Declaration · 🔗 Source
Out of range projection
Test result: ✋ rejected · exit code 1 · wall time: 10 ms · instructions: 3.6 M · max rss memory: 7.3 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.34.1 · 📄 Declaration · 🔗 Source
Projection out something that is not a structure
Test result: ✋ rejected · exit code 1 · wall time: 8 ms · instructions: 3.5 M · max rss memory: 7.2 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.34.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: 14 ms · instructions: 4.2 M · max rss memory: 7.1 MB
Test "tutorial/090_projProp2"
Expected: ✋ reject · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.34.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: 12 ms · instructions: 4.1 M · max rss memory: 7.4 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.34.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: 12 ms · instructions: 4.2 M · max rss memory: 7.1 MB
Test "tutorial/092_projProp4"
Expected: ✋ reject · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.34.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: 56 ms · instructions: 4.1 M · max rss memory: 7.1 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.34.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: 7 ms · instructions: 4.2 M · max rss memory: 7.3 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.34.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: 11 ms · instructions: 4.2 M · max rss memory: 7.4 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.34.1 · 📄 Declaration · 🔗 Source
The recursor for ProjDataIndex allows elimination into sort.
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 3.9 M · max rss memory: 7.1 MB
Test "tutorial/096_projIndexData"
Expected: ✋ reject · Size: 14.1 KB · Lines: 226 · lean4export: 3.1.0 · Lean: 4.34.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: 17 ms · instructions: 4.8 M · max rss memory: 9.3 MB
stderr:
REJECT: [projIndexData] projection struct name mismatch
Test "tutorial/097_projIndexData2"
Expected: ✋ reject · Size: 14.1 KB · Lines: 226 · lean4export: 3.1.0 · Lean: 4.34.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: 8 ms · instructions: 4.8 M · max rss memory: 9.4 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.34.1 · 📄 Declaration · 🔗 Source
Projection reductions
Test result: 👍 accepted · exit code 0 · wall time: 11 ms · instructions: 4.6 M · max rss memory: 7.2 MB
Test "tutorial/099_ruleK"
Expected: 👍 accept · Size: 6.5 KB · Lines: 121 · lean4export: 3.1.0 · Lean: 4.34.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: 6 ms · instructions: 4.1 M · max rss memory: 7.3 MB
Test "tutorial/100_ruleKbad"
Expected: ✋ reject · Size: 6.5 KB · Lines: 121 · lean4export: 3.1.0 · Lean: 4.34.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: 9 ms · instructions: 4.3 M · max rss memory: 7.2 MB
stderr:
REJECT: [ruleKbad] theorem 21: value type does not match declared type
Test "tutorial/101_ruleKAcc"
Expected: ✋ reject · Size: 12.5 KB · Lines: 229 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Rule k should not fire for Acc.
Test result: ✋ rejected · exit code 1 · wall time: 9 ms · instructions: 5.5 M · max rss memory: 9.3 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.34.1 · 📄 Declaration · 🔗 Source
Type checking Nat literals
Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 3.4 M · max rss memory: 7.2 MB
Test "tutorial/103_natLitEq"
Expected: 👍 accept · Size: 6.1 KB · Lines: 114 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Reducing Nat literals
Test result: 👍 accepted · exit code 0 · wall time: 11 ms · instructions: 3.9 M · max rss memory: 6.9 MB
Test "tutorial/104_proofIrrelevance"
Expected: 👍 accept · Size: 5.0 KB · Lines: 100 · lean4export: 3.1.0 · Lean: 4.34.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: 12 ms · instructions: 3.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.34.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: 12 ms · instructions: 4.0 M · max rss memory: 7.3 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.34.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: 8 ms · instructions: 4.0 M · max rss memory: 7.4 MB
Test "tutorial/107_proofIrrelevanceUnderBinder"
Expected: 👍 accept · Size: 1.9 KB · Lines: 39 · lean4export: 3.1.0 · Lean: 4.34.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: 7 ms · instructions: 3.5 M · max rss memory: 7.0 MB
Test "tutorial/108_unitEta1"
Expected: 👍 accept · Size: 6.2 KB · Lines: 116 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Unit eta
Test result: 👍 accepted · exit code 0 · wall time: 11 ms · instructions: 4.0 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.34.1 · 📄 Declaration · 🔗 Source
Unit eta
Test result: 👍 accepted · exit code 0 · wall time: 11 ms · instructions: 4.0 M · max rss memory: 7.1 MB
Test "tutorial/110_unitEta3"
Expected: 👍 accept · Size: 6.0 KB · Lines: 111 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Unit eta
Test result: 👍 accepted · exit code 0 · wall time: 40 ms · instructions: 4.0 M · max rss memory: 7.3 MB
Test "tutorial/111_indexedUnitEta"
Expected: ✋ reject · Size: 7.2 KB · Lines: 121 · lean4export: 3.1.0 · Lean: 4.34.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: 13 ms · instructions: 4.2 M · max rss memory: 7.2 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.34.1 · 📄 Declaration · 🔗 Source
Structure eta
Test result: 👍 accepted · exit code 0 · wall time: 14 ms · instructions: 5.3 M · max rss memory: 9.2 MB
Test "tutorial/113_indexedStructEta"
Expected: ✋ reject · Size: 8.5 KB · Lines: 138 · lean4export: 3.1.0 · Lean: 4.34.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: 11 ms · instructions: 4.3 M · max rss memory: 7.1 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.34.1 · 📄 Declaration · 🔗 Source
Function eta for non-dependent functions.
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 3.9 M · max rss memory: 7.2 MB
Test "tutorial/115_funEtaDep"
Expected: 👍 accept · Size: 5.3 KB · Lines: 106 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Function eta for dependent functions (pi types).
Test result: 👍 accepted · exit code 0 · wall time: 12 ms · instructions: 4.0 M · max rss memory: 7.3 MB
Test "tutorial/116_funEtaBad"
Expected: ✋ reject · Size: 4.9 KB · Lines: 97 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Eta should not identify functions with different bodies.
Test result: ✋ rejected · exit code 1 · wall time: 13 ms · instructions: 4.1 M · max rss memory: 7.2 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.34.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: 11 ms · instructions: 3.5 M · max rss memory: 7.1 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.34.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: 8 ms · instructions: 3.5 M · max rss memory: 7.1 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.34.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: 10 ms · instructions: 3.7 M · max rss memory: 7.2 MB
Test "tutorial/120_reduceCtorParamRefl2.mk"
Expected: 👍 accept · Size: 4.5 KB · Lines: 88 · lean4export: 3.1.0 · Lean: 4.34.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: 13 ms · instructions: 3.7 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.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of the generated recursor.
Test result: 👍 accepted · exit code 0 · wall time: 10 ms · instructions: 3.8 M · max rss memory: 7.1 MB
Test "tutorial/122_rtreeRecReduction"
Expected: 👍 accept · Size: 10.7 KB · Lines: 191 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Reduction behavior of RTree.rec on RTree.mk.
Test result: 👍 accepted · exit code 0 · wall time: 13 ms · instructions: 4.8 M · max rss memory: 9.1 MB
Test "tutorial/123_accRecType"
Expected: 👍 accept · Size: 7.5 KB · Lines: 151 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of Acc.rec.
Test result: 👍 accepted · exit code 0 · wall time: 12 ms · instructions: 4.3 M · max rss memory: 7.2 MB
Test "tutorial/124_accRecReduction"
Expected: 👍 accept · Size: 13.0 KB · Lines: 243 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Acc.rec reduces on Acc.intro.
Test result: 👍 accepted · exit code 0 · wall time: 59 ms · instructions: 5.3 M · max rss memory: 9.2 MB
Test "tutorial/125_accRecNoEta"
Expected: ✋ reject · Size: 12.7 KB · Lines: 235 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Acc.rec does not have structure eta.
Test result: ✋ rejected · exit code 1 · wall time: 14 ms · instructions: 5.5 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.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of Quot.mk.
Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 3.9 M · max rss memory: 7.1 MB
Test "tutorial/127_quotIndType"
Expected: 👍 accept · Size: 6.3 KB · Lines: 124 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of Quot.ind.
Test result: 👍 accepted · exit code 0 · wall time: 12 ms · instructions: 3.9 M · max rss memory: 7.1 MB
Test "tutorial/128_quotLiftType"
Expected: 👍 accept · Size: 6.3 KB · Lines: 124 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of Quot.lift.
Test result: 👍 accepted · exit code 0 · wall time: 13 ms · instructions: 4.0 M · max rss memory: 7.2 MB
Test "tutorial/129_quotSoundType"
Expected: 👍 accept · Size: 7.2 KB · Lines: 141 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Asserting the type of Quot.sound.
Test result: 👍 accepted · exit code 0 · wall time: 12 ms · instructions: 4.2 M · max rss memory: 7.1 MB
Test "tutorial/130_quotLiftReduction"
Expected: 👍 accept · Size: 7.8 KB · Lines: 153 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Reduction behavior of Quot.lift on Quot.mk.
Test result: 👍 accepted · exit code 0 · wall time: 12 ms · instructions: 4.3 M · max rss memory: 7.3 MB
Test "tutorial/131_quotIndReduction"
Expected: 👍 accept · Size: 7.6 KB · Lines: 151 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Reduction behavior of Quot.ind on Quot.mk.
Test result: 👍 accepted · exit code 0 · wall time: 14 ms · instructions: 4.3 M · max rss memory: 7.2 MB
Test "tutorial/132_dup_defs"
Expected: ✋ reject · Size: 475 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source
Two definitions with the same name
Test result: ✋ rejected · exit code 1 · wall time: 9 ms · instructions: 3.1 M · max rss memory: 7.0 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.34.1 · 📄 Declaration · 🔗 Source
A definition and a constructor with the same name
Test result: ✋ rejected · exit code 1 · wall time: 11 ms · instructions: 3.3 M · max rss memory: 7.0 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.34.1 · 📄 Declaration · 🔗 Source
A definition and a constructor with the same name
Test result: ✋ rejected · exit code 1 · wall time: 10 ms · instructions: 3.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.34.1 · 📄 Declaration · 🔗 Source
A definition and a recursor with the same name
Test result: ✋ rejected · exit code 1 · wall time: 10 ms · instructions: 3.3 M · max rss memory: 6.9 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.34.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: 3.2 M · max rss memory: 6.8 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.34.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: 8 ms · instructions: 3.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.34.1 · 📄 Declaration · 🔗 Source
A constructor and a recursor with the same name
Test result: ✋ rejected · exit code 1 · wall time: 8 ms · instructions: 3.2 M · max rss memory: 7.0 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.34.1 · 📄 Declaration · 🔗 Source
An inductive with two constructors with the same name
Test result: ✋ rejected · exit code 1 · wall time: 8 ms · instructions: 3.3 M · max rss memory: 7.0 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.34.1 · 📄 Declaration · 🔗 Source
Unsafe definitions cannot be used in theorems
Test result: ✋ rejected · exit code 1 · wall time: 8 ms · instructions: 3.2 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.34.1 · 📄 Declaration · 🔗 Source
Partial definitions cannot be used in theorems
Test result: ✋ rejected · exit code 1 · wall time: 54 ms · instructions: 3.2 M · max rss memory: 7.1 MB
stderr:
REJECT: partial definition