lean4-htt/tests/elab/bvarcrash.lean
Garmelon 08eb78a5b2
chore: switch to new test/bench suite (#12590)
This PR sets up the new integrated test/bench suite. It then migrates
all benchmarks and some related tests to the new suite. There's also
some documentation and some linting.

For now, a lot of the old tests are left alone so this PR doesn't become
even larger than it already is. Eventually, all tests should be migrated
to the new suite though so there isn't a confusing mix of two systems.
2026-02-25 13:51:53 +00:00

644 lines
31 KiB
Text

import Lean
def decodeNatLit (l : List Nat) : Nat := l.foldl (init := 0) (fun sofar d => 256 * sofar + d)
def name_0 : Lean.Name := .anonymous
def level_0 : Lean.Level := .zero
def name_1 : Lean.Name := .str name_0 "term_+_"
def level_1 : Lean.Level := .param name_1
def level_2 : Lean.Level := .succ level_1
def expr_0 : Lean.Expr := .sort level_2
def expr_1 : Lean.Expr := .bvar 0
def name_2 : Lean.Name := .str name_0 "_sizeOf_1"
def expr_2 : Lean.Expr := .const name_2 [level_1]
def expr_3 : Lean.Expr := .bvar 1
def expr_4 : Lean.Expr := .app expr_2 expr_3
def name_3 : Lean.Name := .str name_0 "term_+_"
def name_4 : Lean.Name := .str name_0 "term_+_"
def name_5 : Lean.Name := .str name_1 "term_+_"
def name_6 : Lean.Name := .str name_0 "term_+_"
def name_7 : Lean.Name := .str name_2 "term_+_"
def name_8 : Lean.Name := .str name_0 "term_+_"
def expr_5 : Lean.Expr := .forallE name_6 expr_1 expr_4 .default
def name_9 : Lean.Name := .str name_6 "term_+_"
def expr_6 : Lean.Expr := .forallE name_6 expr_0 expr_5 .default
def name_10 : Lean.Name := .str name_6 "term_+_"
def constructor_0 : Lean.Constructor where
name := name_10
type := expr_6
def name_11 : Lean.Name := .str name_5 "term_+_"
def expr_7 : Lean.Expr := .forallE name_0 expr_5 expr_4 .default
def expr_8 : Lean.Expr := .forallE name_0 expr_0 expr_7 .default
def name_12 : Lean.Name := .str name_0 "ε'"
def constructor_1 : Lean.Constructor where
name := name_12
type := expr_8
def expr_9 : Lean.Expr := .forallE name_12 expr_0 expr_0 .default
def inductive_0 : Lean.InductiveType where
name := name_2
type := expr_9
ctors := [constructor_0, constructor_1]
def decl_0 : Lean.Declaration :=
.inductDecl [name_4] 1 [inductive_0] false
def name_13 : Lean.Name := .str name_2 "rec"
def expr_10 : Lean.Expr := .app expr_2 expr_1
def name_14 : Lean.Name := .str name_2 "term_+_"
def level_3 : Lean.Level := .param name_14
def expr_11 : Lean.Expr := .sort level_3
def name_15 : Lean.Name := .str name_6 "term_+_"
def expr_12 : Lean.Expr := .forallE name_0 expr_10 expr_11 .default
def expr_13 : Lean.Expr := .bvar 2
def expr_14 : Lean.Expr := .const name_10 [level_1]
def expr_15 : Lean.Expr := .bvar 3
def expr_16 : Lean.Expr := .app expr_14 expr_15
def expr_17 : Lean.Expr := .app expr_16 expr_1
def expr_18 : Lean.Expr := .app expr_13 expr_17
def expr_19 : Lean.Expr := .forallE name_0 expr_13 expr_18 .default
def expr_20 : Lean.Expr := .bvar 4
def expr_21 : Lean.Expr := .app expr_2 expr_20
def name_16 : Lean.Name := .str name_0 "term_+_"
def expr_22 : Lean.Expr := .forallE name_11 expr_15 expr_21 .default
def expr_23 : Lean.Expr := .const name_12 [level_1]
def expr_24 : Lean.Expr := .app expr_23 expr_20
def expr_25 : Lean.Expr := .app expr_24 expr_1
def expr_26 : Lean.Expr := .app expr_15 expr_25
def expr_27 : Lean.Expr := .forallE name_11 expr_22 expr_26 .default
def expr_28 : Lean.Expr := .app expr_15 expr_13
def name_17 : Lean.Name := .str name_11 "term_+_"
def expr_29 : Lean.Expr := .forallE name_6 expr_27 expr_28 .default
def name_18 : Lean.Name := .str name_6 "term_+_"
def expr_30 : Lean.Expr := .forallE name_5 expr_19 expr_29 .default
def expr_31 : Lean.Expr := .forallE name_5 expr_4 expr_30 .default
def name_19 : Lean.Name := .str name_5 "term_+_"
def expr_32 : Lean.Expr := .forallE name_16 expr_12 expr_31 .default
def expr_33 : Lean.Expr := .forallE name_16 expr_0 expr_32 .default
def expr_34 : Lean.Expr := .const name_13 [level_3, level_1]
def expr_35 : Lean.Expr := .app expr_34 expr_20
def expr_36 : Lean.Expr := .app expr_35 expr_15
def expr_37 : Lean.Expr := .app expr_13 expr_1
def expr_38 : Lean.Expr := .lam name_16 expr_20 expr_37 .default
def expr_39 : Lean.Expr := .app expr_36 expr_38
def expr_40 : Lean.Expr := .bvar 5
def expr_41 : Lean.Expr := .app expr_2 expr_40
def expr_42 : Lean.Expr := .forallE name_16 expr_20 expr_41 .default
def expr_43 : Lean.Expr := .app expr_3 expr_1
def expr_44 : Lean.Expr := .app expr_40 expr_43
def expr_45 : Lean.Expr := .forallE name_16 expr_40 expr_44 .default
def expr_46 : Lean.Expr := .app expr_13 expr_3
def name_20 : Lean.Name := .str name_16 "term_+_"
def name_21 : Lean.Name := .str name_9 "term_+_"
def name_22 : Lean.Name := .str name_16 "term_+_"
def name_23 : Lean.Name := .str name_8 "term_+_"
def name_24 : Lean.Name := .str name_0 "term_+_"
def name_25 : Lean.Name := .str name_11 "term_+_"
def expr_47 : Lean.Expr := .lam name_12 expr_45 expr_46 .default
def expr_48 : Lean.Expr := .lam name_12 expr_42 expr_47 .default
def expr_49 : Lean.Expr := .app expr_39 expr_48
def expr_50 : Lean.Expr := .app expr_49 expr_13
def expr_51 : Lean.Expr := .lam name_12 expr_27 expr_50 .default
def expr_52 : Lean.Expr := .lam name_12 expr_19 expr_51 .default
def expr_53 : Lean.Expr := .lam name_12 expr_4 expr_52 .default
def expr_54 : Lean.Expr := .lam name_12 expr_12 expr_53 .default
def expr_55 : Lean.Expr := .lam name_12 expr_0 expr_54 .default
def name_26 : Lean.Name := .str name_12 "term_+_"
def decl_1 : Lean.Declaration :=
.defnDecl {
name := name_26
levelParams := [name_14, name_24]
type := expr_33
value := expr_55
hints := .opaque
safety := .safe
all := [name_26]
}
def expr_56 : Lean.Expr := .app expr_2 expr_13
def name_27 : Lean.Name := .str name_24 "term_+_"
def expr_57 : Lean.Expr := .forallE name_16 expr_56 expr_11 .default
def name_28 : Lean.Name := .str name_16 "term_+_"
def expr_58 : Lean.Expr := .forallE name_11 expr_4 expr_57 .default
def name_29 : Lean.Name := .str name_11 "term_+_"
def expr_59 : Lean.Expr := .forallE name_6 expr_11 expr_58 .default
def expr_60 : Lean.Expr := .forallE name_6 expr_0 expr_59 .default
def level_4 : Lean.Level := .succ level_3
def expr_61 : Lean.Expr := .const name_26 [level_4, level_1]
def expr_62 : Lean.Expr := .app expr_61 expr_15
def expr_63 : Lean.Expr := .app expr_2 expr_15
def expr_64 : Lean.Expr := .lam name_6 expr_63 expr_11 .default
def expr_65 : Lean.Expr := .app expr_62 expr_64
def expr_66 : Lean.Expr := .app expr_65 expr_3
def expr_67 : Lean.Expr := .app expr_61 expr_20
def expr_68 : Lean.Expr := .lam name_6 expr_21 expr_11 .default
def expr_69 : Lean.Expr := .app expr_67 expr_68
def expr_70 : Lean.Expr := .app expr_69 expr_3
def name_30 : Lean.Name := .str name_0 "Eq"
def expr_71 : Lean.Expr := .const name_30 [level_2]
def expr_72 : Lean.Expr := .app expr_71 expr_40
def expr_73 : Lean.Expr := .app expr_72 expr_3
def expr_74 : Lean.Expr := .app expr_73 expr_1
def name_31 : Lean.Name := .str name_29 "term_+_"
def name_32 : Lean.Name := .str name_16 "term_+_"
def name_33 : Lean.Name := .str name_27 "term_+_"
def name_34 : Lean.Name := .str name_28 "term_+_"
def name_35 : Lean.Name := .str name_16 "term_+_"
def name_36 : Lean.Name := .str name_24 "term_+_"
def expr_75 : Lean.Expr := .forallE name_15 expr_74 expr_40 .default
def expr_76 : Lean.Expr := .forallE name_15 expr_75 expr_40 .default
def expr_77 : Lean.Expr := .lam name_15 expr_20 expr_76 .default
def expr_78 : Lean.Expr := .app expr_70 expr_77
def expr_79 : Lean.Expr := .lam name_15 expr_42 expr_20 .default
def expr_80 : Lean.Expr := .app expr_78 expr_79
def expr_81 : Lean.Expr := .lam name_15 expr_15 expr_80 .default
def expr_82 : Lean.Expr := .app expr_66 expr_81
def expr_83 : Lean.Expr := .lam name_15 expr_20 expr_20 .default
def expr_84 : Lean.Expr := .app expr_70 expr_83
def expr_85 : Lean.Expr := .bvar 6
def expr_86 : Lean.Expr := .app expr_2 expr_85
def expr_87 : Lean.Expr := .forallE name_15 expr_40 expr_86 .default
def expr_88 : Lean.Expr := .app expr_71 expr_87
def expr_89 : Lean.Expr := .app expr_88 expr_3
def expr_90 : Lean.Expr := .app expr_89 expr_1
def name_37 : Lean.Name := .str name_15 "term_+_"
def expr_91 : Lean.Expr := .forallE name_24 expr_90 expr_40 .default
def expr_92 : Lean.Expr := .forallE name_24 expr_91 expr_40 .default
def expr_93 : Lean.Expr := .lam name_24 expr_42 expr_92 .default
def expr_94 : Lean.Expr := .app expr_84 expr_93
def expr_95 : Lean.Expr := .lam name_24 expr_22 expr_94 .default
def expr_96 : Lean.Expr := .app expr_82 expr_95
def expr_97 : Lean.Expr := .lam name_24 expr_56 expr_96 .default
def expr_98 : Lean.Expr := .lam name_24 expr_4 expr_97 .default
def expr_99 : Lean.Expr := .lam name_24 expr_11 expr_98 .default
def expr_100 : Lean.Expr := .lam name_24 expr_0 expr_99 .default
def name_38 : Lean.Name := .str name_24 "inj"
def decl_2 : Lean.Declaration :=
.defnDecl {
name := name_38
levelParams := [name_14, name_4]
type := expr_60
value := expr_100
hints := .opaque
safety := .safe
all := [name_38]
}
def expr_101 : Lean.Expr := .sort level_4
def expr_102 : Lean.Expr := .const name_2 [level_3]
def expr_103 : Lean.Expr := .app expr_102 expr_1
def name_39 : Lean.Name := .str name_12 "term_+_"
def level_5 : Lean.Level := .succ level_3
def expr_104 : Lean.Expr := .sort level_5
def name_40 : Lean.Name := .str name_16 "term_+_"
def name_41 : Lean.Name := .str name_36 "term_+_"
def name_42 : Lean.Name := .str name_30 "term_+_"
def name_43 : Lean.Name := .str name_38 "term_+_"
def name_44 : Lean.Name := .str name_16 "term_+_"
def name_45 : Lean.Name := .str name_6 "term_+_"
def name_46 : Lean.Name := .str name_8 "term_+_"
def expr_105 : Lean.Expr := .forallE name_22 expr_103 expr_104 .default
def expr_106 : Lean.Expr := .app expr_102 expr_3
def expr_107 : Lean.Expr := .const name_10 [level_3]
def expr_108 : Lean.Expr := .app expr_107 expr_15
def expr_109 : Lean.Expr := .app expr_108 expr_1
def expr_110 : Lean.Expr := .app expr_13 expr_109
def name_47 : Lean.Name := .str name_22 "term_+_"
def expr_111 : Lean.Expr := .forallE name_0 expr_13 expr_110 .default
def expr_112 : Lean.Expr := .app expr_102 expr_20
def expr_113 : Lean.Expr := .forallE name_0 expr_15 expr_112 .default
def expr_114 : Lean.Expr := .const name_12 [level_3]
def expr_115 : Lean.Expr := .app expr_114 expr_20
def expr_116 : Lean.Expr := .app expr_115 expr_1
def expr_117 : Lean.Expr := .app expr_15 expr_116
def name_48 : Lean.Name := .str name_0 "term_+_"
def expr_118 : Lean.Expr := .forallE name_37 expr_113 expr_117 .default
def name_49 : Lean.Name := .str name_37 "term_+_"
def expr_119 : Lean.Expr := .forallE name_36 expr_118 expr_28 .default
def name_50 : Lean.Name := .str name_36 "term_+_"
def expr_120 : Lean.Expr := .forallE name_45 expr_111 expr_119 .default
def expr_121 : Lean.Expr := .forallE name_45 expr_106 expr_120 .default
def expr_122 : Lean.Expr := .forallE name_45 expr_105 expr_121 .default
def expr_123 : Lean.Expr := .forallE name_45 expr_101 expr_122 .default
def expr_124 : Lean.Expr := .const name_26 [level_5, level_3]
def expr_125 : Lean.Expr := .app expr_124 expr_20
def expr_126 : Lean.Expr := .app expr_20 expr_1
def expr_127 : Lean.Expr := .lam name_45 expr_112 expr_126 .default
def expr_128 : Lean.Expr := .app expr_125 expr_127
def expr_129 : Lean.Expr := .app expr_128 expr_13
def expr_130 : Lean.Expr := .app expr_129 expr_38
def expr_131 : Lean.Expr := .app expr_102 expr_40
def expr_132 : Lean.Expr := .forallE name_45 expr_20 expr_131 .default
def name_51 : Lean.Name := .str name_45 "term_+_"
def expr_133 : Lean.Expr := .lam name_12 expr_132 expr_43 .default
def expr_134 : Lean.Expr := .app expr_130 expr_133
def expr_135 : Lean.Expr := .lam name_12 expr_118 expr_134 .default
def expr_136 : Lean.Expr := .lam name_12 expr_111 expr_135 .default
def expr_137 : Lean.Expr := .lam name_12 expr_106 expr_136 .default
def expr_138 : Lean.Expr := .lam name_12 expr_105 expr_137 .default
def expr_139 : Lean.Expr := .lam name_12 expr_101 expr_138 .default
def name_52 : Lean.Name := .str name_12 "term_+_"
def name_53 : Lean.Name := .str name_40 "term_+_"
def decl_3 : Lean.Declaration :=
.defnDecl {
name := name_29
levelParams := [name_14, name_24]
type := expr_123
value := expr_139
hints := .opaque
safety := .safe
all := [name_29]
}
def expr_140 : Lean.Expr := .app expr_71 expr_63
def expr_141 : Lean.Expr := .app expr_140 expr_3
def expr_142 : Lean.Expr := .app expr_141 expr_1
def expr_143 : Lean.Expr := .const name_38 [level_3, level_1]
def expr_144 : Lean.Expr := .app expr_143 expr_20
def expr_145 : Lean.Expr := .app expr_144 expr_15
def expr_146 : Lean.Expr := .app expr_145 expr_13
def expr_147 : Lean.Expr := .app expr_146 expr_3
def name_54 : Lean.Name := .str name_24 "term_+_"
def expr_148 : Lean.Expr := .forallE name_16 expr_142 expr_147 .default
def expr_149 : Lean.Expr := .forallE name_16 expr_56 expr_148 .default
def expr_150 : Lean.Expr := .forallE name_16 expr_4 expr_149 .default
def expr_151 : Lean.Expr := .forallE name_16 expr_11 expr_150 .default
def expr_152 : Lean.Expr := .forallE name_16 expr_0 expr_151 .default
def name_55 : Lean.Name := .str name_30 "ndrec"
def expr_153 : Lean.Expr := .const name_55 [level_3, level_2]
def expr_154 : Lean.Expr := .app expr_153 expr_21
def expr_155 : Lean.Expr := .app expr_154 expr_13
def expr_156 : Lean.Expr := .app expr_71 expr_41
def expr_157 : Lean.Expr := .app expr_156 expr_15
def expr_158 : Lean.Expr := .app expr_157 expr_1
def expr_159 : Lean.Expr := .app expr_143 expr_85
def expr_160 : Lean.Expr := .app expr_159 expr_40
def expr_161 : Lean.Expr := .app expr_160 expr_20
def expr_162 : Lean.Expr := .app expr_161 expr_3
def name_56 : Lean.Name := .str name_16 "term_+_"
def expr_163 : Lean.Expr := .forallE name_24 expr_158 expr_162 .default
def expr_164 : Lean.Expr := .lam name_24 expr_21 expr_163 .default
def expr_165 : Lean.Expr := .app expr_155 expr_164
def expr_166 : Lean.Expr := .app expr_71 expr_21
def expr_167 : Lean.Expr := .app expr_166 expr_13
def expr_168 : Lean.Expr := .app expr_167 expr_13
def expr_169 : Lean.Expr := .const name_26 [level_3, level_1]
def expr_170 : Lean.Expr := .app expr_169 expr_40
def expr_171 : Lean.Expr := .app expr_160 expr_1
def expr_172 : Lean.Expr := .app expr_171 expr_1
def expr_173 : Lean.Expr := .lam name_24 expr_41 expr_172 .default
def expr_174 : Lean.Expr := .app expr_170 expr_173
def expr_175 : Lean.Expr := .app expr_174 expr_15
def expr_176 : Lean.Expr := .app expr_71 expr_85
def expr_177 : Lean.Expr := .app expr_176 expr_1
def expr_178 : Lean.Expr := .app expr_177 expr_1
def expr_179 : Lean.Expr := .forallE name_24 expr_178 expr_85 .default
def name_57 : Lean.Name := .str name_30 "refl"
def expr_180 : Lean.Expr := .const name_57 [level_2]
def expr_181 : Lean.Expr := .bvar 7
def expr_182 : Lean.Expr := .app expr_180 expr_181
def expr_183 : Lean.Expr := .app expr_182 expr_3
def expr_184 : Lean.Expr := .app expr_1 expr_183
def expr_185 : Lean.Expr := .lam name_40 expr_179 expr_184 .default
def expr_186 : Lean.Expr := .lam name_40 expr_40 expr_185 .default
def expr_187 : Lean.Expr := .app expr_175 expr_186
def expr_188 : Lean.Expr := .app expr_2 expr_181
def expr_189 : Lean.Expr := .forallE name_40 expr_85 expr_188 .default
def expr_190 : Lean.Expr := .app expr_71 expr_189
def expr_191 : Lean.Expr := .app expr_190 expr_1
def expr_192 : Lean.Expr := .app expr_191 expr_1
def expr_193 : Lean.Expr := .forallE name_40 expr_192 expr_85 .default
def expr_194 : Lean.Expr := .bvar 8
def expr_195 : Lean.Expr := .app expr_2 expr_194
def expr_196 : Lean.Expr := .forallE name_40 expr_181 expr_195 .default
def expr_197 : Lean.Expr := .app expr_180 expr_196
def expr_198 : Lean.Expr := .app expr_197 expr_3
def expr_199 : Lean.Expr := .app expr_1 expr_198
def expr_200 : Lean.Expr := .lam name_40 expr_193 expr_199 .default
def expr_201 : Lean.Expr := .lam name_40 expr_87 expr_200 .default
def expr_202 : Lean.Expr := .app expr_187 expr_201
def name_58 : Lean.Name := .str name_40 "term_+_"
def expr_203 : Lean.Expr := .lam name_5 expr_168 expr_202 .default
def expr_204 : Lean.Expr := .app expr_165 expr_203
def expr_205 : Lean.Expr := .app expr_204 expr_3
def expr_206 : Lean.Expr := .app expr_205 expr_1
def expr_207 : Lean.Expr := .app expr_206 expr_1
def expr_208 : Lean.Expr := .lam name_5 expr_142 expr_207 .default
def expr_209 : Lean.Expr := .lam name_5 expr_56 expr_208 .default
def expr_210 : Lean.Expr := .lam name_5 expr_4 expr_209 .default
def expr_211 : Lean.Expr := .lam name_5 expr_11 expr_210 .default
def expr_212 : Lean.Expr := .lam name_5 expr_0 expr_211 .default
def name_59 : Lean.Name := .str name_5 "term_+_"
def decl_4 : Lean.Declaration :=
.defnDecl {
name := name_47
levelParams := [name_14, name_48]
type := expr_152
value := expr_212
hints := .opaque
safety := .safe
all := [name_47]
}
def expr_213 : Lean.Expr := .forallE name_36 expr_10 expr_101 .default
def level_6 : Lean.Level := .max level_4 level_2
def expr_214 : Lean.Expr := .sort level_6
def expr_215 : Lean.Expr := .forallE name_36 expr_4 expr_214 .default
def expr_216 : Lean.Expr := .forallE name_36 expr_213 expr_215 .default
def expr_217 : Lean.Expr := .forallE name_36 expr_0 expr_216 .default
def level_7 : Lean.Level := .succ level_6
def expr_218 : Lean.Expr := .const name_13 [level_7, level_1]
def expr_219 : Lean.Expr := .app expr_218 expr_13
def expr_220 : Lean.Expr := .lam name_36 expr_56 expr_214 .default
def expr_221 : Lean.Expr := .app expr_219 expr_220
def name_60 : Lean.Name := .str name_0 "PUnit"
def expr_222 : Lean.Expr := .const name_60 [level_6]
def expr_223 : Lean.Expr := .lam name_14 expr_13 expr_222 .default
def expr_224 : Lean.Expr := .app expr_221 expr_223
def expr_225 : Lean.Expr := .forallE name_14 expr_13 expr_63 .default
def expr_226 : Lean.Expr := .forallE name_14 expr_15 expr_214 .default
def name_61 : Lean.Name := .str name_0 "PProd"
def level_8 : Lean.Level := .max level_2 level_4
def expr_227 : Lean.Expr := .const name_61 [level_8, level_8]
def expr_228 : Lean.Expr := .app expr_20 expr_37
def expr_229 : Lean.Expr := .forallE name_60 expr_20 expr_228 .default
def expr_230 : Lean.Expr := .app expr_227 expr_229
def expr_231 : Lean.Expr := .forallE name_60 expr_20 expr_43 .default
def expr_232 : Lean.Expr := .app expr_230 expr_231
def expr_233 : Lean.Expr := .lam name_60 expr_226 expr_232 .default
def expr_234 : Lean.Expr := .lam name_60 expr_225 expr_233 .default
def expr_235 : Lean.Expr := .app expr_224 expr_234
def expr_236 : Lean.Expr := .app expr_235 expr_1
def expr_237 : Lean.Expr := .lam name_60 expr_4 expr_236 .default
def expr_238 : Lean.Expr := .lam name_60 expr_213 expr_237 .default
def expr_239 : Lean.Expr := .lam name_60 expr_0 expr_238 .default
def name_62 : Lean.Name := .str name_60 "below"
def decl_5 : Lean.Declaration :=
.defnDecl {
name := name_62
levelParams := [name_14, name_4]
type := expr_217
value := expr_239
hints := .opaque
safety := .safe
all := [name_62]
}
def expr_240 : Lean.Expr := .sort level_0
def expr_241 : Lean.Expr := .forallE name_51 expr_10 expr_240 .default
def expr_242 : Lean.Expr := .forallE name_51 expr_4 expr_240 .default
def expr_243 : Lean.Expr := .forallE name_51 expr_241 expr_242 .default
def expr_244 : Lean.Expr := .forallE name_51 expr_0 expr_243 .default
def level_9 : Lean.Level := .succ level_0
def expr_245 : Lean.Expr := .const name_13 [level_9, level_1]
def expr_246 : Lean.Expr := .app expr_245 expr_13
def expr_247 : Lean.Expr := .lam name_51 expr_56 expr_240 .default
def expr_248 : Lean.Expr := .app expr_246 expr_247
def name_63 : Lean.Name := .str name_0 "True"
def expr_249 : Lean.Expr := .const name_63 []
def expr_250 : Lean.Expr := .lam name_48 expr_13 expr_249 .default
def expr_251 : Lean.Expr := .app expr_248 expr_250
def expr_252 : Lean.Expr := .forallE name_48 expr_15 expr_240 .default
def name_64 : Lean.Name := .str name_0 "And"
def expr_253 : Lean.Expr := .const name_64 []
def expr_254 : Lean.Expr := .app expr_253 expr_229
def expr_255 : Lean.Expr := .app expr_254 expr_231
def expr_256 : Lean.Expr := .lam name_51 expr_252 expr_255 .default
def expr_257 : Lean.Expr := .lam name_51 expr_225 expr_256 .default
def expr_258 : Lean.Expr := .app expr_251 expr_257
def expr_259 : Lean.Expr := .app expr_258 expr_1
def expr_260 : Lean.Expr := .lam name_51 expr_4 expr_259 .default
def expr_261 : Lean.Expr := .lam name_51 expr_241 expr_260 .default
def expr_262 : Lean.Expr := .lam name_51 expr_0 expr_261 .default
def name_65 : Lean.Name := .str name_51 "casesOn"
def decl_6 : Lean.Declaration :=
.defnDecl {
name := name_65
levelParams := [name_48]
type := expr_244
value := expr_262
hints := .opaque
safety := .safe
all := [name_65]
}
def expr_263 : Lean.Expr := .const name_65 [level_1]
def expr_264 : Lean.Expr := .app expr_263 expr_15
def expr_265 : Lean.Expr := .app expr_264 expr_13
def expr_266 : Lean.Expr := .app expr_265 expr_1
def expr_267 : Lean.Expr := .app expr_15 expr_3
def expr_268 : Lean.Expr := .forallE name_60 expr_266 expr_267 .default
def expr_269 : Lean.Expr := .forallE name_60 expr_56 expr_268 .default
def name_66 : Lean.Name := .str name_60 "term_+_"
def expr_270 : Lean.Expr := .forallE name_8 expr_269 expr_46 .default
def expr_271 : Lean.Expr := .forallE name_8 expr_4 expr_270 .default
def expr_272 : Lean.Expr := .forallE name_8 expr_241 expr_271 .default
def expr_273 : Lean.Expr := .forallE name_8 expr_0 expr_272 .default
def expr_274 : Lean.Expr := .const name_13 [level_0, level_1]
def expr_275 : Lean.Expr := .app expr_274 expr_15
def expr_276 : Lean.Expr := .app expr_15 expr_1
def expr_277 : Lean.Expr := .app expr_253 expr_276
def expr_278 : Lean.Expr := .app expr_263 expr_20
def expr_279 : Lean.Expr := .app expr_278 expr_15
def expr_280 : Lean.Expr := .app expr_279 expr_1
def expr_281 : Lean.Expr := .app expr_277 expr_280
def expr_282 : Lean.Expr := .lam name_8 expr_63 expr_281 .default
def expr_283 : Lean.Expr := .app expr_275 expr_282
def name_67 : Lean.Name := .str name_64 "intro"
def expr_284 : Lean.Expr := .const name_67 []
def expr_285 : Lean.Expr := .app expr_14 expr_20
def expr_286 : Lean.Expr := .app expr_285 expr_1
def expr_287 : Lean.Expr := .app expr_15 expr_286
def expr_288 : Lean.Expr := .app expr_284 expr_287
def expr_289 : Lean.Expr := .app expr_288 expr_249
def expr_290 : Lean.Expr := .app expr_3 expr_286
def name_68 : Lean.Name := .str name_63 "intro"
def expr_291 : Lean.Expr := .const name_68 []
def expr_292 : Lean.Expr := .app expr_290 expr_291
def expr_293 : Lean.Expr := .app expr_289 expr_292
def expr_294 : Lean.Expr := .app expr_293 expr_291
def expr_295 : Lean.Expr := .lam name_54 expr_15 expr_294 .default
def expr_296 : Lean.Expr := .app expr_283 expr_295
def expr_297 : Lean.Expr := .app expr_20 expr_43
def expr_298 : Lean.Expr := .app expr_253 expr_297
def expr_299 : Lean.Expr := .app expr_263 expr_40
def expr_300 : Lean.Expr := .app expr_299 expr_20
def expr_301 : Lean.Expr := .app expr_300 expr_43
def expr_302 : Lean.Expr := .app expr_298 expr_301
def expr_303 : Lean.Expr := .forallE name_54 expr_20 expr_302 .default
def expr_304 : Lean.Expr := .app expr_23 expr_40
def expr_305 : Lean.Expr := .app expr_304 expr_3
def expr_306 : Lean.Expr := .app expr_20 expr_305
def expr_307 : Lean.Expr := .app expr_284 expr_306
def expr_308 : Lean.Expr := .app expr_40 expr_37
def expr_309 : Lean.Expr := .forallE name_54 expr_40 expr_308 .default
def expr_310 : Lean.Expr := .app expr_253 expr_309
def expr_311 : Lean.Expr := .app expr_263 expr_85
def expr_312 : Lean.Expr := .app expr_311 expr_40
def expr_313 : Lean.Expr := .app expr_312 expr_37
def expr_314 : Lean.Expr := .forallE name_54 expr_40 expr_313 .default
def expr_315 : Lean.Expr := .app expr_310 expr_314
def expr_316 : Lean.Expr := .app expr_307 expr_315
def expr_317 : Lean.Expr := .app expr_13 expr_305
def expr_318 : Lean.Expr := .app expr_284 expr_309
def expr_319 : Lean.Expr := .app expr_318 expr_314
def expr_320 : Lean.Expr := .proj name_64 0 expr_43
def expr_321 : Lean.Expr := .lam name_54 expr_40 expr_320 .default
def expr_322 : Lean.Expr := .app expr_319 expr_321
def expr_323 : Lean.Expr := .proj name_64 1 expr_43
def expr_324 : Lean.Expr := .lam name_54 expr_40 expr_323 .default
def expr_325 : Lean.Expr := .app expr_322 expr_324
def expr_326 : Lean.Expr := .app expr_317 expr_325
def expr_327 : Lean.Expr := .app expr_316 expr_326
def expr_328 : Lean.Expr := .app expr_327 expr_325
def expr_329 : Lean.Expr := .lam name_54 expr_303 expr_328 .default
def expr_330 : Lean.Expr := .lam name_54 expr_22 expr_329 .default
def expr_331 : Lean.Expr := .app expr_296 expr_330
def expr_332 : Lean.Expr := .app expr_331 expr_3
def expr_333 : Lean.Expr := .proj name_64 0 expr_332
def expr_334 : Lean.Expr := .lam name_54 expr_269 expr_333 .default
def expr_335 : Lean.Expr := .lam name_54 expr_4 expr_334 .default
def expr_336 : Lean.Expr := .lam name_54 expr_241 expr_335 .default
def expr_337 : Lean.Expr := .lam name_54 expr_0 expr_336 .default
def name_69 : Lean.Name := .str name_54 "mp"
def decl_7 : Lean.Declaration :=
.defnDecl {
name := name_69
levelParams := [name_16]
type := expr_273
value := expr_337
hints := .opaque
safety := .safe
all := [name_69]
}
def expr_338 : Lean.Expr := .const name_62 [level_3, level_1]
def expr_339 : Lean.Expr := .app expr_338 expr_15
def expr_340 : Lean.Expr := .app expr_339 expr_13
def expr_341 : Lean.Expr := .app expr_340 expr_1
def expr_342 : Lean.Expr := .forallE name_16 expr_341 expr_267 .default
def expr_343 : Lean.Expr := .forallE name_16 expr_56 expr_342 .default
def expr_344 : Lean.Expr := .forallE name_16 expr_343 expr_46 .default
def expr_345 : Lean.Expr := .forallE name_16 expr_4 expr_344 .default
def expr_346 : Lean.Expr := .forallE name_16 expr_213 expr_345 .default
def expr_347 : Lean.Expr := .forallE name_16 expr_0 expr_346 .default
def expr_348 : Lean.Expr := .const name_13 [level_6, level_1]
def expr_349 : Lean.Expr := .app expr_348 expr_15
def expr_350 : Lean.Expr := .const name_61 [level_4, level_6]
def expr_351 : Lean.Expr := .app expr_350 expr_276
def expr_352 : Lean.Expr := .app expr_338 expr_20
def expr_353 : Lean.Expr := .app expr_352 expr_15
def expr_354 : Lean.Expr := .app expr_353 expr_1
def expr_355 : Lean.Expr := .app expr_351 expr_354
def expr_356 : Lean.Expr := .lam name_16 expr_63 expr_355 .default
def expr_357 : Lean.Expr := .app expr_349 expr_356
def name_70 : Lean.Name := .str name_61 "mk"
def expr_358 : Lean.Expr := .const name_70 [level_4, level_6]
def expr_359 : Lean.Expr := .app expr_358 expr_287
def expr_360 : Lean.Expr := .app expr_359 expr_222
def name_71 : Lean.Name := .str name_60 "unit"
def expr_361 : Lean.Expr := .const name_71 [level_6]
def expr_362 : Lean.Expr := .app expr_290 expr_361
def expr_363 : Lean.Expr := .app expr_360 expr_362
def expr_364 : Lean.Expr := .app expr_363 expr_361
def expr_365 : Lean.Expr := .lam name_24 expr_15 expr_364 .default
def expr_366 : Lean.Expr := .app expr_357 expr_365
def expr_367 : Lean.Expr := .app expr_350 expr_297
def expr_368 : Lean.Expr := .app expr_338 expr_40
def expr_369 : Lean.Expr := .app expr_368 expr_20
def expr_370 : Lean.Expr := .app expr_369 expr_43
def expr_371 : Lean.Expr := .app expr_367 expr_370
def expr_372 : Lean.Expr := .forallE name_24 expr_20 expr_371 .default
def level_10 : Lean.Level := .max level_6 level_6
def expr_373 : Lean.Expr := .const name_70 [level_5, level_10]
def expr_374 : Lean.Expr := .app expr_373 expr_306
def expr_375 : Lean.Expr := .app expr_227 expr_309
def expr_376 : Lean.Expr := .app expr_338 expr_85
def expr_377 : Lean.Expr := .app expr_376 expr_40
def expr_378 : Lean.Expr := .app expr_377 expr_37
def expr_379 : Lean.Expr := .forallE name_24 expr_40 expr_378 .default
def expr_380 : Lean.Expr := .app expr_375 expr_379
def expr_381 : Lean.Expr := .app expr_374 expr_380
def expr_382 : Lean.Expr := .const name_70 [level_8, level_8]
def expr_383 : Lean.Expr := .app expr_382 expr_309
def expr_384 : Lean.Expr := .app expr_383 expr_379
def expr_385 : Lean.Expr := .proj name_61 0 expr_43
def expr_386 : Lean.Expr := .lam name_24 expr_40 expr_385 .default
def expr_387 : Lean.Expr := .app expr_384 expr_386
def expr_388 : Lean.Expr := .proj name_61 1 expr_43
def expr_389 : Lean.Expr := .lam name_24 expr_40 expr_388 .default
def expr_390 : Lean.Expr := .app expr_387 expr_389
def expr_391 : Lean.Expr := .app expr_317 expr_390
def expr_392 : Lean.Expr := .app expr_381 expr_391
def expr_393 : Lean.Expr := .app expr_392 expr_390
def expr_394 : Lean.Expr := .lam name_24 expr_372 expr_393 .default
def expr_395 : Lean.Expr := .lam name_24 expr_22 expr_394 .default
def expr_396 : Lean.Expr := .app expr_366 expr_395
def expr_397 : Lean.Expr := .app expr_396 expr_3
def expr_398 : Lean.Expr := .proj name_61 0 expr_397
def expr_399 : Lean.Expr := .lam name_24 expr_343 expr_398 .default
def expr_400 : Lean.Expr := .lam name_24 expr_4 expr_399 .default
def expr_401 : Lean.Expr := .lam name_24 expr_213 expr_400 .default
def expr_402 : Lean.Expr := .lam name_24 expr_0 expr_401 .default
def level_11 : Lean.Level := .succ level_5
def decl_8 : Lean.Declaration :=
.defnDecl {
name := `foo42
levelParams := [name_14, name_24]
type := expr_347
value := expr_402
hints := .opaque
safety := .safe
all := [`foo42]
}
def expr_403 : Lean.Expr := .app expr_246 expr_246
def expr_404 : Lean.Expr := .lit (.natVal (decodeNatLit [0]))
def expr_405 : Lean.Expr := .lit (.natVal (decodeNatLit [0]))
def expr_406 : Lean.Expr := .const `foo42 [level_0, level_0]
def expr_407 : Lean.Expr := .app expr_406 expr_126
def expr_408 : Lean.Expr := .lam name_24 expr_96 expr_15 .default
def expr_409 : Lean.Expr := .app expr_407 expr_408
def expr_410 : Lean.Expr := .app expr_409 expr_36
def expr_411 : Lean.Expr := .const name_24 [level_0]
def expr_412 : Lean.Expr := .app expr_388 expr_388
def expr_413 : Lean.Expr := .lam name_24 expr_359 expr_359 .default
def expr_414 : Lean.Expr := .lit (.natVal (decodeNatLit [0]))
def expr_415 : Lean.Expr := .proj name_24 12336 expr_301
def expr_416 : Lean.Expr := .bvar 12336
def expr_417 : Lean.Expr := .app expr_243 expr_243
def expr_418 : Lean.Expr := .app expr_214 expr_214
def expr_419 : Lean.Expr := .lam name_24 expr_185 expr_185 .default
def expr_420 : Lean.Expr := .lit (.natVal (decodeNatLit [0]))
def expr_421 : Lean.Expr := .app expr_127 expr_127
def expr_422 : Lean.Expr := .forallE name_24 expr_98 expr_98 .default
def expr_423 : Lean.Expr := .lam name_24 expr_69 expr_69 .default
def expr_424 : Lean.Expr := .lit (.natVal (decodeNatLit [0]))
def expr_425 : Lean.Expr := .app expr_11 expr_11
def expr_426 : Lean.Expr := .app expr_408 expr_408
def expr_427 : Lean.Expr := .bvar 12336
def expr_428 : Lean.Expr := .lit (.natVal (decodeNatLit [0]))
def expr_429 : Lean.Expr := .lit (.natVal (decodeNatLit [0]))
def level_12 : Lean.Level := .succ level_0
def expr_430 : Lean.Expr := .lam name_24 expr_296 expr_296 .default
def expr_431 : Lean.Expr := .lit (.natVal (decodeNatLit [0]))
def expr_432 : Lean.Expr := .app expr_240 expr_240
def expr_433 : Lean.Expr := .lit (.natVal (decodeNatLit [0]))
def expr_434 : Lean.Expr := .lit (.natVal (decodeNatLit [0]))
def expr_435 : Lean.Expr := .app expr_156 expr_156
def expr_436 : Lean.Expr := .lam name_24 expr_128 expr_128 .default
def expr_437 : Lean.Expr := .lam name_24 expr_100 expr_100 .default
def expr_438 : Lean.Expr := .app expr_72 expr_72
def expr_439 : Lean.Expr := .app expr_44 expr_44
def expr_440 : Lean.Expr := .lit (.natVal (decodeNatLit [0]))
def expr_441 : Lean.Expr := .lam name_24 expr_429 expr_429 .default
def expr_442 : Lean.Expr := .app expr_410 expr_402
def expr_443 : Lean.Expr := .lam name_24 expr_375 expr_442 .default
def expr_444 : Lean.Expr := .lit (.natVal (decodeNatLit []))
def decl_9 : Lean.Declaration :=
.thmDecl {
name := name_24
levelParams := []
type := expr_443
value := expr_0
}
open Lean
-- We avoid `Lean.addDecl` as it may be doing additional checks that hide the expected error.
run_meta do
for decl in [decl_0, decl_1, decl_2, decl_3, decl_4, decl_5, decl_6, decl_7, decl_8] do
setEnv (← ofExceptKernelException <| (← getEnv).addDeclCore 0 decl none)
/--
error: (kernel) type checker does not support loose bound variables, replace them with free variables before invoking it
-/
#guard_msgs in
run_meta
setEnv (← ofExceptKernelException <| (← getEnv).addDeclCore 0 decl_9 none)