diff --git a/library/init/lean/elaborator/command.lean b/library/init/lean/elaborator/command.lean index 036a010853..c3dce15c51 100644 --- a/library/init/lean/elaborator/command.lean +++ b/library/init/lean/elaborator/command.lean @@ -203,6 +203,13 @@ fun n => do runIO (IO.println pre.dbgToString); pure () +@[builtinCommandElab «elab»] def elabElab : CommandElab := +fun n => do + let s := n.getArg 1; + e ← oldElaborate (s.lift Expr); + runIO (IO.println e.dbgToString); + pure () + /- We just ignore Lean3 notation declaration commands. -/ @[builtinCommandElab «mixfix»] def elabMixfix : CommandElab := fun _ => pure () @[builtinCommandElab «reserve»] def elabReserve : CommandElab := fun _ => pure () diff --git a/library/init/lean/parser/command.lean b/library/init/lean/parser/command.lean index c6c39ddd89..e88f14b36f 100644 --- a/library/init/lean/parser/command.lean +++ b/library/init/lean/parser/command.lean @@ -83,6 +83,7 @@ declModifiers >> («abbrev» <|> «def» <|> «theorem» <|> «constant» <|> « @[builtinCommandParser] def exit := parser! "#exit" @[builtinCommandParser] def «resolve_name» := parser! "#resolve_name " >> ident @[builtinCommandParser] def «preterm» := parser! "#preterm " >> termParser +@[builtinCommandParser] def «elab» := parser! "#elab " >> termParser @[builtinCommandParser] def «init_quot» := parser! "init_quot" @[builtinCommandParser] def «set_option» := parser! "set_option " >> ident >> (symbolOrIdent "true" <|> symbolOrIdent "false" <|> strLit <|> numLit) @[builtinCommandParser] def «attribute» := parser! optional "local " >> "attribute " >> "[" >> sepBy1 attrInstance ", " >> "]" >> many1 ident diff --git a/src/stage0/CMakeLists.txt b/src/stage0/CMakeLists.txt index 681749b1c3..bcff50819c 100644 --- a/src/stage0/CMakeLists.txt +++ b/src/stage0/CMakeLists.txt @@ -1 +1 @@ -add_library (stage0 OBJECT ./init/coe.cpp ./init/control/alternative.cpp ./init/control/applicative.cpp ./init/control/combinators.cpp ./init/control/conditional.cpp ./init/control/default.cpp ./init/control/estate.cpp ./init/control/except.cpp ./init/control/functor.cpp ./init/control/id.cpp ./init/control/lift.cpp ./init/control/monad.cpp ./init/control/monadfail.cpp ./init/control/option.cpp ./init/control/reader.cpp ./init/control/state.cpp ./init/core.cpp ./init/data/array/basic.cpp ./init/data/array/binsearch.cpp ./init/data/array/default.cpp ./init/data/array/qsort.cpp ./init/data/assoclist.cpp ./init/data/basic.cpp ./init/data/binomialheap/basic.cpp ./init/data/binomialheap/default.cpp ./init/data/bytearray/basic.cpp ./init/data/bytearray/default.cpp ./init/data/char/basic.cpp ./init/data/char/default.cpp ./init/data/default.cpp ./init/data/dlist.cpp ./init/data/fin/basic.cpp ./init/data/fin/default.cpp ./init/data/hashable.cpp ./init/data/hashmap/basic.cpp ./init/data/hashmap/default.cpp ./init/data/int/basic.cpp ./init/data/int/default.cpp ./init/data/list/basic.cpp ./init/data/list/default.cpp ./init/data/list/instances.cpp ./init/data/nat/basic.cpp ./init/data/nat/bitwise.cpp ./init/data/nat/default.cpp ./init/data/nat/div.cpp ./init/data/option/basic.cpp ./init/data/option/instances.cpp ./init/data/persistentarray/basic.cpp ./init/data/persistentarray/default.cpp ./init/data/persistenthashmap/basic.cpp ./init/data/persistenthashmap/default.cpp ./init/data/random.cpp ./init/data/rbmap/basic.cpp ./init/data/rbmap/default.cpp ./init/data/rbtree/basic.cpp ./init/data/rbtree/default.cpp ./init/data/repr.cpp ./init/data/string/basic.cpp ./init/data/string/default.cpp ./init/data/tostring.cpp ./init/data/uint.cpp ./init/default.cpp ./init/fix.cpp ./init/lean/attributes.cpp ./init/lean/class.cpp ./init/lean/compiler/closedtermcache.cpp ./init/lean/compiler/constfolding.cpp ./init/lean/compiler/default.cpp ./init/lean/compiler/exportattr.cpp ./init/lean/compiler/externattr.cpp ./init/lean/compiler/implementedbyattr.cpp ./init/lean/compiler/initattr.cpp ./init/lean/compiler/inlineattrs.cpp ./init/lean/compiler/ir/basic.cpp ./init/lean/compiler/ir/borrow.cpp ./init/lean/compiler/ir/boxing.cpp ./init/lean/compiler/ir/checker.cpp ./init/lean/compiler/ir/compilerm.cpp ./init/lean/compiler/ir/default.cpp ./init/lean/compiler/ir/elimdead.cpp ./init/lean/compiler/ir/emitcpp.cpp ./init/lean/compiler/ir/emitutil.cpp ./init/lean/compiler/ir/expandresetreuse.cpp ./init/lean/compiler/ir/format.cpp ./init/lean/compiler/ir/freevars.cpp ./init/lean/compiler/ir/livevars.cpp ./init/lean/compiler/ir/normids.cpp ./init/lean/compiler/ir/pushproj.cpp ./init/lean/compiler/ir/rc.cpp ./init/lean/compiler/ir/resetreuse.cpp ./init/lean/compiler/ir/simpcase.cpp ./init/lean/compiler/namemangling.cpp ./init/lean/compiler/specialize.cpp ./init/lean/compiler/util.cpp ./init/lean/declaration.cpp ./init/lean/default.cpp ./init/lean/elaborator/alias.cpp ./init/lean/elaborator/basic.cpp ./init/lean/elaborator/command.cpp ./init/lean/elaborator/default.cpp ./init/lean/elaborator/elabstrategyattrs.cpp ./init/lean/elaborator/preterm.cpp ./init/lean/elaborator/resolvename.cpp ./init/lean/environment.cpp ./init/lean/eqncompiler/default.cpp ./init/lean/eqncompiler/matchpattern.cpp ./init/lean/expr.cpp ./init/lean/format.cpp ./init/lean/kvmap.cpp ./init/lean/level.cpp ./init/lean/localcontext.cpp ./init/lean/message.cpp ./init/lean/metavarcontext.cpp ./init/lean/modifiers.cpp ./init/lean/name.cpp ./init/lean/namegenerator.cpp ./init/lean/options.cpp ./init/lean/parser/command.cpp ./init/lean/parser/default.cpp ./init/lean/parser/identifier.cpp ./init/lean/parser/level.cpp ./init/lean/parser/module.cpp ./init/lean/parser/parser.cpp ./init/lean/parser/term.cpp ./init/lean/parser/transform.cpp ./init/lean/parser/trie.cpp ./init/lean/path.cpp ./init/lean/position.cpp ./init/lean/projfns.cpp ./init/lean/reducibilityattrs.cpp ./init/lean/runtime.cpp ./init/lean/scopes.cpp ./init/lean/smap.cpp ./init/lean/syntax.cpp ./init/lean/toexpr.cpp ./init/lean/trace.cpp ./init/lean/util.cpp ./init/system/default.cpp ./init/system/filepath.cpp ./init/system/io.cpp ./init/system/platform.cpp ./init/util.cpp ./init/wf.cpp) +add_library (stage0 OBJECT ./init/coe.cpp ./init/control/alternative.cpp ./init/control/applicative.cpp ./init/control/combinators.cpp ./init/control/conditional.cpp ./init/control/default.cpp ./init/control/estate.cpp ./init/control/except.cpp ./init/control/functor.cpp ./init/control/id.cpp ./init/control/lift.cpp ./init/control/monad.cpp ./init/control/monadfail.cpp ./init/control/option.cpp ./init/control/reader.cpp ./init/control/state.cpp ./init/core.cpp ./init/data/array/basic.cpp ./init/data/array/binsearch.cpp ./init/data/array/default.cpp ./init/data/array/qsort.cpp ./init/data/assoclist.cpp ./init/data/basic.cpp ./init/data/binomialheap/basic.cpp ./init/data/binomialheap/default.cpp ./init/data/bytearray/basic.cpp ./init/data/bytearray/default.cpp ./init/data/char/basic.cpp ./init/data/char/default.cpp ./init/data/default.cpp ./init/data/dlist.cpp ./init/data/fin/basic.cpp ./init/data/fin/default.cpp ./init/data/hashable.cpp ./init/data/hashmap/basic.cpp ./init/data/hashmap/default.cpp ./init/data/int/basic.cpp ./init/data/int/default.cpp ./init/data/list/basic.cpp ./init/data/list/default.cpp ./init/data/list/instances.cpp ./init/data/nat/basic.cpp ./init/data/nat/bitwise.cpp ./init/data/nat/default.cpp ./init/data/nat/div.cpp ./init/data/option/basic.cpp ./init/data/option/instances.cpp ./init/data/persistentarray/basic.cpp ./init/data/persistentarray/default.cpp ./init/data/persistenthashmap/basic.cpp ./init/data/persistenthashmap/default.cpp ./init/data/random.cpp ./init/data/rbmap/basic.cpp ./init/data/rbmap/default.cpp ./init/data/rbtree/basic.cpp ./init/data/rbtree/default.cpp ./init/data/repr.cpp ./init/data/string/basic.cpp ./init/data/string/default.cpp ./init/data/tostring.cpp ./init/data/uint.cpp ./init/default.cpp ./init/fix.cpp ./init/lean/attributes.cpp ./init/lean/class.cpp ./init/lean/compiler/closedtermcache.cpp ./init/lean/compiler/constfolding.cpp ./init/lean/compiler/default.cpp ./init/lean/compiler/exportattr.cpp ./init/lean/compiler/externattr.cpp ./init/lean/compiler/implementedbyattr.cpp ./init/lean/compiler/initattr.cpp ./init/lean/compiler/inlineattrs.cpp ./init/lean/compiler/ir/basic.cpp ./init/lean/compiler/ir/borrow.cpp ./init/lean/compiler/ir/boxing.cpp ./init/lean/compiler/ir/checker.cpp ./init/lean/compiler/ir/compilerm.cpp ./init/lean/compiler/ir/default.cpp ./init/lean/compiler/ir/elimdead.cpp ./init/lean/compiler/ir/emitcpp.cpp ./init/lean/compiler/ir/emitutil.cpp ./init/lean/compiler/ir/expandresetreuse.cpp ./init/lean/compiler/ir/format.cpp ./init/lean/compiler/ir/freevars.cpp ./init/lean/compiler/ir/livevars.cpp ./init/lean/compiler/ir/normids.cpp ./init/lean/compiler/ir/pushproj.cpp ./init/lean/compiler/ir/rc.cpp ./init/lean/compiler/ir/resetreuse.cpp ./init/lean/compiler/ir/simpcase.cpp ./init/lean/compiler/namemangling.cpp ./init/lean/compiler/specialize.cpp ./init/lean/compiler/util.cpp ./init/lean/declaration.cpp ./init/lean/default.cpp ./init/lean/elaborator/alias.cpp ./init/lean/elaborator/basic.cpp ./init/lean/elaborator/command.cpp ./init/lean/elaborator/default.cpp ./init/lean/elaborator/elabstrategyattrs.cpp ./init/lean/elaborator/preterm.cpp ./init/lean/elaborator/resolvename.cpp ./init/lean/elaborator/term.cpp ./init/lean/environment.cpp ./init/lean/eqncompiler/default.cpp ./init/lean/eqncompiler/matchpattern.cpp ./init/lean/expr.cpp ./init/lean/format.cpp ./init/lean/kvmap.cpp ./init/lean/level.cpp ./init/lean/localcontext.cpp ./init/lean/message.cpp ./init/lean/metavarcontext.cpp ./init/lean/modifiers.cpp ./init/lean/name.cpp ./init/lean/namegenerator.cpp ./init/lean/options.cpp ./init/lean/parser/command.cpp ./init/lean/parser/default.cpp ./init/lean/parser/identifier.cpp ./init/lean/parser/level.cpp ./init/lean/parser/module.cpp ./init/lean/parser/parser.cpp ./init/lean/parser/term.cpp ./init/lean/parser/transform.cpp ./init/lean/parser/trie.cpp ./init/lean/path.cpp ./init/lean/position.cpp ./init/lean/projfns.cpp ./init/lean/reducibilityattrs.cpp ./init/lean/runtime.cpp ./init/lean/scopes.cpp ./init/lean/smap.cpp ./init/lean/syntax.cpp ./init/lean/toexpr.cpp ./init/lean/trace.cpp ./init/lean/util.cpp ./init/system/default.cpp ./init/system/filepath.cpp ./init/system/io.cpp ./init/system/platform.cpp ./init/util.cpp ./init/wf.cpp) diff --git a/src/stage0/init/lean/elaborator/basic.cpp b/src/stage0/init/lean/elaborator/basic.cpp index 39ed22e8ce..29108ce1ae 100644 --- a/src/stage0/init/lean/elaborator/basic.cpp +++ b/src/stage0/init/lean/elaborator/basic.cpp @@ -1,6 +1,6 @@ // Lean compiler output // Module: init.lean.elaborator.basic -// Imports: init.control.reader init.lean.namegenerator init.lean.scopes init.lean.parser.module +// Imports: init.control.reader init.lean.metavarcontext init.lean.namegenerator init.lean.scopes init.lean.parser.module #include "runtime/object.h" #include "runtime/apply.h" typedef lean::object obj; typedef lean::usize usize; @@ -14,14 +14,15 @@ typedef lean::uint32 uint32; typedef lean::uint64 uint64; #pragma GCC diagnostic ignored "-Wunused-label" #pragma GCC diagnostic ignored "-Wunused-but-set-variable" #endif +obj* l_Lean_Elab_runElab___at_Lean_Elab_elabCommandAtFrontend___spec__1___boxed(obj*, obj*, obj*); obj* l_Lean_checkSyntaxNodeKind___closed__1; -obj* l_Lean_mkMessage(obj*, obj*, obj*, obj*); obj* l_Lean_Elab_getOpenDecls(obj*); obj* l_Lean_SMap_empty___at_Lean_mkBuiltinTermElabTable___spec__1___closed__2; obj* l_Lean_declareBuiltinCommandElab(obj*, obj*, obj*, obj*); obj* l_unsafeCast(obj*, obj*, obj*, obj*); obj* l_Lean_Elab_getNamespace___boxed(obj*); obj* l_Lean_Elab_rootNamespace___closed__2; +obj* l_Lean_Elab_toBaseDir(obj*, obj*); extern obj* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__4; obj* l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(obj*, obj*, obj*); obj* l_Lean_attrParamSyntaxToIdentifier(obj*); @@ -29,48 +30,46 @@ obj* l_Lean_ElabScope_Inhabited; extern "C" uint8 lean_name_dec_eq(obj*, obj*); obj* l_Lean_Elab_runIO___rarg(obj*); extern "C" obj* lean_io_realpath(obj*, obj*); -obj* l_Lean_processCommandsAux___main___boxed(obj*); -obj* l_Lean_SMap_find___at_Lean_elabTerm___spec__1(obj*, obj*); extern obj* l_Array_empty___closed__1; namespace lean { obj* nat_sub(obj*, obj*); } +obj* l_Lean_Elab_elabCommandAtFrontend___boxed(obj*, obj*, obj*); extern obj* l_Lean_registerEnvExtensionUnsafe___rarg___closed__2; obj* l_List_head___at_Lean_Elab_getScope___spec__1___boxed(obj*); obj* l_Lean_mkCommandElabAttribute___closed__1; obj* l_Lean_Elab_Inhabited___boxed(obj*, obj*); obj* l_Lean_Elab_runIOUnsafe(obj*); +obj* l_AssocList_find___main___at_Lean_Elab_elabCommand___spec__3(obj*, obj*); obj* l_Lean_Elab_runIOUnsafe___rarg(obj*, obj*, obj*); +obj* l_Lean_Elab_logErrorUsingCmdPos(obj*, obj*, obj*); obj* l_Lean_mkTermElabAttribute___closed__1; obj* l_Lean_Elab_resolveNamespace___closed__1; extern obj* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; obj* l_Array_mkArray(obj*, obj*, obj*); +obj* l_Lean_Elab_logErrorAndThrow(obj*, obj*); obj* l_Lean_Elab_resolveNamespaceUsingOpenDecls___boxed(obj*, obj*, obj*); +obj* l_Lean_Elab_logErrorAt(obj*, obj*, obj*, obj*); +obj* l_HashMapImp_find___at_Lean_Elab_elabCommand___spec__2___boxed(obj*, obj*); obj* l_Lean_registerBuiltinTermElabAttr___closed__5; -obj* l_Array_miterateAux___main___at_Lean_processHeaderAux___spec__2___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_Array_anyMAux___main___at_Lean_mkCommandElabAttribute___spec__3___boxed(obj*, obj*, obj*); -obj* l_Lean_logUnknownDecl___closed__1; obj* l_Lean_mkElabAttribute___rarg___lambda__1(obj*, obj*, obj*); +obj* l_Lean_Elab_elabCommand___closed__3; obj* l_Lean_declareBuiltinTermElab___closed__2; -obj* l_Lean_logUnknownDecl___boxed(obj*, obj*, obj*, obj*); -obj* l_Lean_updateCmdPos___boxed(obj*); extern obj* l_Lean_EnvExtension_Inhabited___rarg___closed__1; -obj* l_Lean_processCommands(obj*, obj*); extern obj* l_Lean_AttributeImpl_inhabited___closed__5; obj* l_Lean_mkElabAttribute___at_Lean_mkCommandElabAttribute___spec__1(obj*, obj*, obj*, obj*); obj* l_RBNode_find___main___at_Lean_addBuiltinCommandElab___spec__4(obj*, obj*); obj* l_Lean_Elab_resolveNamespaceUsingOpenDecls___main(obj*, obj*, obj*); obj* l_Lean_Elab_runIO(obj*, obj*, obj*); extern obj* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__2; +obj* l_Array_miterateAux___main___at_Lean_Elab_processHeaderAux___spec__2___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); uint8 l_Lean_Parser_isExitCommand(obj*); obj* l_Lean_mkElabAttribute___rarg___lambda__2___boxed(obj*, obj*); -obj* l_Lean_setEnv___boxed(obj*, obj*, obj*); -obj* l_Lean_runElab(obj*); -obj* l_Lean_logElabException___closed__1; +obj* l_Lean_Elab_processCommandsAux___rarg(obj*, obj*); obj* l_Lean_registerBuiltinCommandElabAttr___lambda__1___closed__1; obj* l_Lean_registerBuiltinTermElabAttr___lambda__1(obj*, obj*, obj*, uint8, obj*); extern obj* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; -obj* l_Lean_testFrontend___closed__3; obj* l_List_toString___at_Lean_Environment_displayStats___spec__1(obj*); obj* l_Lean_addBuiltinTermElab___closed__2; obj* l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__1; @@ -81,14 +80,20 @@ extern obj* l_Lean_LocalContext_Inhabited___closed__1; obj* l_Lean_termElabAttribute___closed__3; obj* l_Lean_registerBuiltinTermElabAttr___closed__4; obj* l_Lean_registerAttribute(obj*, obj*); -obj* l_Array_miterateAux___main___at_Lean_processHeaderAux___spec__2(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_Lean_Elab_logUnknownDecl___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_Lean_Elab_Inhabited(obj*, obj*); -obj* l_Lean_logElabException(obj*, obj*, obj*); +obj* l_Lean_Elab_getElabContext___boxed(obj*, obj*); +obj* l_Lean_SMap_find___at_Lean_Elab_elabCommand___spec__1(obj*, obj*); +obj* l_Lean_Elab_logError___rarg(obj*, obj*, obj*, obj*); namespace lean { obj* import_modules_core(obj*, uint32, obj*); } -obj* l_Lean_logError(obj*, obj*, obj*, obj*); +namespace lean { +obj* absolutize_module_name_core(obj*, obj*, obj*, obj*); +} +obj* l_Lean_Elab_logError(obj*); obj* l_List_reverse___rarg(obj*); +obj* l_Lean_Elab_processCommandsAux___main(obj*); uint8 l_AssocList_contains___main___at_Lean_addBuiltinTermElab___spec__3(obj*, obj*); obj* l_Lean_declareBuiltinTermElab___closed__1; obj* l_Lean_mkTermElabAttribute___closed__2; @@ -97,48 +102,47 @@ obj* l_Lean_addBuiltinCommandElab(obj*, obj*, obj*, obj*); namespace lean { obj* get_namespaces_core(obj*); } -obj* l_Lean_processCommandsAux(obj*); obj* l_Lean_Syntax_asNode___rarg(obj*); +extern obj* l_Lean_MetavarContext_mkMetavarContext___closed__1; obj* l_Lean_Elab_removeRoot(obj*); +obj* l_Lean_Elab_elabCommand___closed__1; obj* l_List_head___at_Lean_Elab_getScope___spec__1(obj*); +obj* l_Lean_Elab_logElabException___boxed(obj*, obj*, obj*); obj* l_Array_uget(obj*, obj*, usize, obj*); -obj* l_Lean_processCommandsAux___main___rarg(obj*, obj*); extern obj* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; obj* l_Lean_Name_toStringWithSep___main(obj*, obj*); -obj* l_Lean_processCommandsAux___boxed(obj*); obj* l_Lean_addRel___main(obj*, obj*); extern obj* l_Lean_mkInitAttr___lambda__1___closed__1; -obj* l_AssocList_find___main___at_Lean_elabTerm___spec__3___boxed(obj*, obj*); +obj* l_Lean_Elab_testFrontend___closed__4; obj* l_Lean_registerBuiltinCommandElabAttr___closed__2; obj* l_Lean_checkSyntaxNodeKindAtNamespaces___main(obj*, obj*, obj*); obj* l_Array_uset(obj*, obj*, usize, obj*, obj*); obj* l_Lean_checkSyntaxNodeKindAtNamespaces___boxed(obj*, obj*, obj*); +obj* l_Lean_SMap_find___at_Lean_Elab_elabCommand___spec__1___boxed(obj*, obj*); uint8 l_Array_anyMAux___main___at_Lean_mkTermElabAttribute___spec__3(obj*, obj*, obj*); obj* l_Lean_syntaxNodeKindOfAttrParam___closed__1; obj* l_Lean_Elab_resolveNamespaceUsingScopes(obj*, obj*, obj*); obj* l_Lean_SMap_contains___at_Lean_addBuiltinTermElab___spec__1___boxed(obj*, obj*); obj* l_IO_Prim_Ref_set(obj*, obj*, obj*, obj*); +obj* l_Lean_Elab_runElab___at_Lean_Elab_processCommand___spec__1___boxed(obj*, obj*, obj*); +obj* l_Lean_Elab_updateCmdPos___boxed(obj*); extern obj* l_Lean_Options_empty; -obj* l_HashMapImp_find___at_Lean_elabTerm___spec__2(obj*, obj*); -obj* l_Lean_elabCommand(obj*, obj*, obj*); -obj* l_Lean_processHeader(obj*, obj*, obj*, obj*, uint32, obj*); obj* l_Lean_addBuiltinCommandElab___boxed(obj*, obj*, obj*, obj*); extern obj* l_Lean_Parser_Term_depArrow___elambda__1___closed__4; obj* l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1(obj*, obj*); obj* l_Lean_OpenDecl_Inhabited___closed__1; -obj* l_Lean_setEnv(obj*, obj*, obj*); +obj* l_Lean_Elab_setEnv___boxed(obj*, obj*, obj*); obj* l_AssocList_mfoldl___main___at_Lean_addBuiltinCommandElab___spec__11(obj*, obj*); -obj* l_AssocList_find___main___at_Lean_elabCommand___spec__3___boxed(obj*, obj*); extern "C" obj* lean_io_initializing(obj*); +obj* l_Lean_Elab_getEnv___boxed(obj*); obj* l_Lean_Elab_getScope(obj*); -obj* l_Lean_elabCommand___closed__2; -obj* l_Lean_elabCommand___closed__3; namespace lean { obj* mk_empty_environment_core(uint32, obj*); } obj* l_Lean_termElabAttribute; obj* l_Lean_NameGenerator_next(obj*); extern obj* l_Lean_AttributeImpl_inhabited___closed__4; +obj* l_Lean_Elab_logErrorUsingCmdPos___boxed(obj*, obj*, obj*); obj* l_Lean_SMap_empty___at_Lean_mkBuiltinTermElabTable___spec__1; obj* l_Lean_Elab_resolveNamespace(obj*, obj*, obj*); obj* l_Lean_registerTagAttribute___lambda__5___boxed(obj*, obj*, obj*, obj*, obj*); @@ -146,30 +150,29 @@ obj* l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__4; obj* l_Lean_OpenDecl_HasToString(obj*); extern obj* l_Lean_initAttr; extern obj* l_Lean_Parser_declareBuiltinParser___closed__5; +obj* l_Lean_Elab_setEnv(obj*, obj*, obj*); obj* l_Lean_mkCommandElabAttribute___closed__2; obj* l_Lean_Elab_resolveNamespaceUsingScopes___main___boxed(obj*, obj*, obj*); obj* l_Lean_Elab_resolveNamespaceUsingOpenDecls___main___boxed(obj*, obj*, obj*); obj* l_Lean_SMap_empty___at_Lean_mkBuiltinCommandElabTable___spec__1___closed__2; +obj* l_Lean_Elab_elabCommand(obj*, obj*, obj*); obj* l_RBNode_insert___at_Lean_addBuiltinCommandElab___spec__6(obj*, obj*, obj*); obj* l_Lean_Elab_getNamespace___rarg(obj*); obj* l_AssocList_replace___main___at_Lean_addBuiltinCommandElab___spec__12(obj*, obj*, obj*); obj* l_Lean_Elab_runIO___boxed(obj*, obj*, obj*); obj* l_Lean_commandElabAttribute; -obj* l_Lean_processCommand(obj*, obj*); -obj* l_Lean_elabTerm___closed__2; -obj* l_Lean_processHeader___boxed(obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_HashMapImp_find___at_Lean_Elab_elabCommand___spec__2(obj*, obj*); +obj* l_Lean_Elab_mkMessage___boxed(obj*, obj*, obj*, obj*); obj* l_Lean_mkBuiltinCommandElabTable(obj*); +obj* l_Lean_Elab_updateCmdPos(obj*); extern "C" obj* lean_expr_mk_const(obj*, obj*); extern obj* l_Lean_NameGenerator_Inhabited___closed__3; obj* l_Lean_Elab_getNamespace(obj*); +obj* l_Lean_Elab_logErrorAt___boxed(obj*, obj*, obj*, obj*); extern "C" usize lean_name_hash_usize(obj*); -obj* l_Lean_elabCommandAtFrontend___boxed(obj*, obj*, obj*); extern obj* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -obj* l_Lean_SMap_find___at_Lean_elabCommand___spec__1___boxed(obj*, obj*); obj* l_Lean_PersistentEnvExtension_getState___rarg(obj*, obj*); -obj* l_Lean_runElab___at_Lean_elabCommandAtFrontend___spec__1(obj*, obj*, obj*); obj* l_Lean_registerBuiltinTermElabAttr(obj*); -obj* l_Lean_logErrorAt___boxed(obj*, obj*, obj*, obj*); uint8 l_Lean_Syntax_isNone___rarg(obj*); obj* l_Lean_registerBuiltinCommandElabAttr___closed__6; obj* l_Lean_Syntax_getArg___rarg(obj*, obj*); @@ -177,149 +180,129 @@ namespace lean { obj* string_append(obj*, obj*); } obj* l_HashMapImp_insert___at_Lean_addBuiltinCommandElab___spec__8(obj*, obj*, obj*); -obj* l_Lean_runElab___rarg(obj*, obj*, obj*); obj* l_Lean_Elab_mkFreshName(obj*); obj* l_RBNode_find___main___at_Lean_addBuiltinTermElab___spec__4(obj*, obj*); obj* l_Lean_declareBuiltinElab___closed__3; -obj* l_Lean_processHeaderAux___closed__2; -obj* l_Lean_logError___boxed(obj*, obj*, obj*, obj*); -obj* l_AssocList_find___main___at_Lean_elabTerm___spec__3(obj*, obj*); uint8 l_RBNode_isRed___rarg(obj*); uint8 l_Array_anyMAux___main___at_Lean_mkCommandElabAttribute___spec__3(obj*, obj*, obj*); obj* l_Lean_declareBuiltinCommandElab___closed__1; obj* l_Lean_checkSyntaxNodeKind(obj*, obj*); -obj* l_Lean_runElab___rarg___boxed(obj*, obj*, obj*); +obj* l_Lean_Elab_logErrorAndThrow___rarg___boxed(obj*, obj*, obj*, obj*); namespace lean { uint8 nat_dec_lt(obj*, obj*); } +obj* l_Lean_Elab_runElab___rarg___boxed(obj*, obj*, obj*); obj* l_RBNode_find___main___at_Lean_addBuiltinCommandElab___spec__4___boxed(obj*, obj*); obj* l_Lean_Elab_resolveNamespaceUsingScopes___boxed(obj*, obj*, obj*); -obj* l_Lean_updateCmdPos___rarg(obj*); namespace lean { obj* module_name_of_file_core(obj*, obj*); } extern obj* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__1; obj* l_Lean_Syntax_getArgs___rarg(obj*); +obj* l_Lean_Elab_processHeaderAux___boxed(obj*, obj*, obj*, obj*); +obj* l_Lean_Elab_logUnknownDecl___rarg___closed__1; obj* l_Lean_checkSyntaxNodeKindAtNamespaces___main___boxed(obj*, obj*, obj*); extern obj* l_Char_HasRepr___closed__1; -obj* l_Lean_logErrorAt(obj*, obj*, obj*, obj*); extern obj* l_Lean_Parser_mkTermParserAttribute___closed__4; obj* l_Lean_addBuiltinTermElab___closed__1; obj* l_Lean_Syntax_getId___rarg(obj*); obj* l_Lean_OpenDecl_HasToString___closed__1; obj* l_Lean_addBuiltinTermElab(obj*, obj*, obj*, obj*); -obj* l_Lean_getPosition(obj*, obj*, obj*); obj* l_HashMapImp_insert___at_Lean_addBuiltinTermElab___spec__8(obj*, obj*, obj*); obj* l_Lean_registerBuiltinCommandElabAttr___lambda__1(obj*, obj*, obj*, uint8, obj*); obj* l_System_FilePath_dirName(obj*); -obj* l_Lean_processHeaderAux(obj*, obj*, uint32, obj*); obj* l_Lean_SMap_empty___at_Lean_mkBuiltinCommandElabTable___spec__1; obj* l_Lean_Elab_getUniverses___rarg(obj*); obj* l_Array_fget(obj*, obj*, obj*); -obj* l_Lean_logElabException___boxed(obj*, obj*, obj*); extern "C" obj* lean_name_mk_string(obj*, obj*); obj* l_Lean_Elab_resolveNamespaceUsingScopes___main(obj*, obj*, obj*); +obj* l_Lean_Elab_mkMessage(obj*, obj*, obj*, obj*); obj* l_Lean_nameToExprAux___main(obj*); obj* l_Lean_ElabAttribute_Inhabited(obj*); obj* l_Lean_registerBuiltinTermElabAttr___closed__6; obj* l_Lean_Elab_getUniverses(obj*); uint8 l_Lean_SMap_contains___at_Lean_addBuiltinCommandElab___spec__1(obj*, obj*); obj* l_Lean_registerBuiltinCommandElabAttr___lambda__1___closed__2; +obj* l_Lean_Elab_runElab___rarg(obj*, obj*, obj*); obj* l_Lean_Environment_addAndCompile(obj*, obj*, obj*); -obj* l_Lean_elabTerm___closed__3; namespace lean { obj* nat_add(obj*, obj*); } uint8 l_AssocList_contains___main___at_Lean_addBuiltinCommandElab___spec__3(obj*, obj*); obj* l_List_hasDecEq___main___at_Lean_OpenDecl_HasToString___spec__1___boxed(obj*, obj*); +obj* l_Lean_Elab_logUnknownDecl(obj*); obj* l_Lean_ElabException_Inhabited; -obj* l_Lean_getElabContext___boxed(obj*, obj*); -obj* l_Lean_getEnv___boxed(obj*); extern obj* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__2; +obj* l_Lean_Elab_getPos(obj*); extern obj* l_Lean_AttributeImpl_inhabited___closed__1; -obj* l_Lean_elabTerm(obj*, obj*, obj*); +obj* l_Lean_Elab_processHeader(obj*, obj*, obj*, obj*, uint32, obj*); obj* l_Lean_registerEnvExtensionUnsafe___at_Lean_mkTermElabAttribute___spec__4___closed__2; obj* l_mkHashMap___at_Lean_mkBuiltinCommandElabTable___spec__2(obj*); obj* l_Array_push(obj*, obj*, obj*); obj* l_Lean_Elab_rootNamespace; -obj* l_Lean_logErrorAndThrow(obj*); +obj* l_Lean_Elab_processCommandsAux___boxed(obj*); obj* l_Lean_declareBuiltinCommandElab___closed__2; uint8 l_Lean_SMap_contains___at_Lean_addBuiltinTermElab___spec__1(obj*, obj*); -obj* l_Lean_getElabContext(obj*, obj*); -obj* l_AssocList_find___main___at_Lean_elabCommand___spec__3(obj*, obj*); obj* l_Lean_mkBuiltinTermElabTable(obj*); -obj* l_Lean_logErrorUsingCmdPos(obj*, obj*, obj*); obj* l_Lean_registerBuiltinCommandElabAttr___closed__5; -obj* l_Lean_getEnv___rarg(obj*); +obj* l_Lean_Elab_runElab(obj*); obj* l_Lean_termElabAttribute___closed__2; obj* l_Lean_modNameToFileName___main(obj*); obj* l_Lean_syntaxNodeKindOfAttrParam(obj*, obj*, obj*, obj*); -obj* l_Lean_updateCmdPos(obj*); obj* l_AssocList_contains___main___at_Lean_addBuiltinCommandElab___spec__3___boxed(obj*, obj*); obj* l_Lean_Elab_resolveNamespace___boxed(obj*, obj*, obj*); extern obj* l___private_init_lean_path_1__pathSep___closed__1; obj* l_Lean_ElabException_Inhabited___closed__1; obj* l_mkHashMap___at_Lean_mkBuiltinTermElabTable___spec__2(obj*); extern obj* l_Lean_Parser_mkCommandParserAttribute___closed__4; -obj* l_Lean_elabCommandAtFrontend(obj*, obj*, obj*); +obj* l_Lean_Elab_elabCommand___closed__2; obj* l_Lean_Elab_getOpenDecls___boxed(obj*); obj* l_IO_Prim_mkRef(obj*, obj*, obj*); obj* l_Lean_SMap_insert___at_Lean_addBuiltinCommandElab___spec__5(obj*, obj*, obj*); -obj* l_Lean_runElab___at_Lean_processCommand___spec__1(obj*, obj*, obj*); -obj* l_Array_miterateAux___main___at_Lean_processHeaderAux___spec__1(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_Lean_Elab_logUnknownDecl___rarg(obj*, obj*, obj*, obj*); uint8 l_Lean_isNamespace(obj*, obj*); obj* l_Lean_mkCApp(obj*, obj*); -obj* l_Lean_testFrontend___closed__2; -obj* l_Lean_SMap_find___at_Lean_elabTerm___spec__1___boxed(obj*, obj*); -obj* l_Lean_getEnv(obj*); -namespace lean { -obj* absolutize_module_name_core(obj*, obj*, obj*, obj*); -} +obj* l_Lean_Elab_logElabException___closed__1; +obj* l_Lean_Elab_testFrontend___closed__1; obj* l_Lean_Parser_parseCommand___main(obj*, obj*, obj*, obj*); obj* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkCommandElabAttribute___spec__2(obj*, obj*); -obj* l_Lean_testFrontend(obj*, obj*, obj*); uint8 l_Lean_Parser_isEOI(obj*); obj* l_Lean_mkElabAttribute(obj*); obj* l_HashMapImp_contains___at_Lean_addBuiltinTermElab___spec__2___boxed(obj*, obj*); obj* l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__5; +obj* l_Array_miterateAux___main___at_Lean_Elab_processHeaderAux___spec__2(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_Lean_mkCommandElabAttribute(obj*); obj* l_Lean_syntaxNodeKindOfAttrParam___boxed(obj*, obj*, obj*, obj*); obj* l_HashMapImp_expand___at_Lean_addBuiltinCommandElab___spec__9(obj*, obj*); -obj* l_Lean_absolutizeModuleName___closed__1; obj* l_Lean_registerEnvExtensionUnsafe___at_Lean_mkTermElabAttribute___spec__4(obj*, obj*); obj* l_Lean_Elab_getUniverses___boxed(obj*); obj* l_EState_bind___rarg(obj*, obj*, obj*); -obj* l_Lean_processCommandsAux___main(obj*); obj* l_Lean_Elab_resolveNamespaceUsingOpenDecls(obj*, obj*, obj*); -obj* l_Lean_getPos___boxed(obj*, obj*, obj*); +obj* l_Lean_Elab_processCommandsAux___main___boxed(obj*); uint8 l_HashMapImp_contains___at_Lean_addBuiltinCommandElab___spec__2(obj*, obj*); obj* l_Lean_OpenDecl_Inhabited; obj* l_Lean_mkElabAttribute___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_HashMapImp_expand___at_Lean_addBuiltinTermElab___spec__9(obj*, obj*); obj* l_Lean_registerBuiltinCommandElabAttr___lambda__1___closed__5; obj* l_Lean_SMap_contains___at_Lean_addBuiltinCommandElab___spec__1___boxed(obj*, obj*); +obj* l_Lean_Elab_runElab___at_Lean_Elab_elabCommandAtFrontend___spec__1(obj*, obj*, obj*); obj* l_Lean_registerBuiltinCommandElabAttr___closed__4; obj* l_Lean_declareBuiltinElab___closed__2; -obj* l_Lean_mkMessage___boxed(obj*, obj*, obj*, obj*); obj* l_Lean_Name_replacePrefix___main(obj*, obj*, obj*); obj* l_Lean_NameGenerator_curr(obj*); obj* l_Lean_ElabException_Inhabited___closed__2; extern obj* l_System_FilePath_dirName___closed__1; obj* l_Lean_SMap_insert___at_Lean_addBuiltinTermElab___spec__5(obj*, obj*, obj*); -obj* l_Lean_processHeaderAux___closed__1; -obj* l_Lean_logErrorUsingCmdPos___boxed(obj*, obj*, obj*); obj* l_Lean_checkSyntaxNodeKindAtNamespaces(obj*, obj*, obj*); obj* l_Lean_Parser_mkParserContextCore(obj*, obj*, obj*); obj* l_IO_Prim_Ref_get(obj*, obj*, obj*); obj* l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__2; -obj* l_Lean_elabCommand___closed__1; obj* l_AssocList_mfoldl___main___at_Lean_addBuiltinTermElab___spec__11(obj*, obj*); obj* l_Lean_Elab_runIOUnsafe___rarg___boxed(obj*, obj*, obj*); +obj* l_Lean_Elab_testFrontend___closed__3; uint8 l_Lean_Name_quickLt(obj*, obj*); obj* l_Lean_registerEnvExtensionUnsafe___at_Lean_mkTermElabAttribute___spec__4___closed__1; -obj* l_Lean_elabTerm___closed__1; obj* l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(obj*, obj*, obj*); -obj* l_Lean_runElab___at_Lean_processCommand___spec__1___boxed(obj*, obj*, obj*); namespace lean { usize usize_modn(usize, obj*); } @@ -330,51 +313,56 @@ obj* l_Lean_ConstantInfo_type(obj*); namespace lean { obj* environment_find_core(obj*, obj*); } +obj* l_Lean_Elab_getElabContext(obj*, obj*); obj* l_Lean_registerBuiltinTermElabAttr___closed__2; obj* l_HashMapImp_moveEntries___main___at_Lean_addBuiltinTermElab___spec__10(obj*, obj*, obj*); extern obj* l_Lean_Parser_runBuiltinParserUnsafe___closed__2; obj* l_RBNode_find___main___at_Lean_addBuiltinTermElab___spec__4___boxed(obj*, obj*); -obj* l_HashMapImp_find___at_Lean_elabCommand___spec__2___boxed(obj*, obj*); extern obj* l_Lean_AttributeImpl_inhabited___closed__6; -obj* l_Lean_processCommandsAux___rarg(obj*, obj*); -obj* l_Lean_logErrorAndThrow___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_Lean_addBuiltinCommandElab___closed__1; -obj* l_Lean_logUnknownDecl(obj*, obj*, obj*, obj*); +obj* l_Lean_Elab_logError___rarg___boxed(obj*, obj*, obj*, obj*); +obj* l_Lean_Elab_elabCommandAtFrontend(obj*, obj*, obj*); extern obj* l_HashMap_Inhabited___closed__1; obj* l_Lean_Elab_getOpenDecls___rarg(obj*); obj* l_Lean_registerBuiltinCommandElabAttr___lambda__1___closed__3; uint8 l_List_hasDecEq___main___at_Lean_OpenDecl_HasToString___spec__1(obj*, obj*); -obj* l_Lean_testFrontend___closed__1; +obj* l_Array_miterateAux___main___at_Lean_Elab_processHeaderAux___spec__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_Lean_Elab_getEnv___rarg(obj*); obj* l_Array_size(obj*, obj*); -obj* l_Lean_runElab___at_Lean_elabCommandAtFrontend___spec__1___boxed(obj*, obj*, obj*); obj* l_Lean_registerBuiltinCommandElabAttr___closed__3; +obj* l_Lean_Elab_testFrontend(obj*, obj*, obj*); +obj* l_Lean_Elab_getPosition___boxed(obj*, obj*, obj*); obj* l_Lean_declareBuiltinTermElab(obj*, obj*, obj*, obj*); +obj* l_Lean_Elab_getPos___rarg___boxed(obj*, obj*, obj*); obj* l_Array_fset(obj*, obj*, obj*, obj*); obj* l_Array_get(obj*, obj*, obj*, obj*); obj* l_Lean_str2ElabException(obj*); obj* l_mkHashMapImp___rarg(obj*); obj* l_Lean_Elab_mkFreshName___boxed(obj*); uint8 l_HashMapImp_contains___at_Lean_addBuiltinTermElab___spec__2(obj*, obj*); -obj* l_Lean_getPos(obj*, obj*, obj*); obj* l_Lean_registerBuiltinTermElabAttr___closed__1; obj* l_Lean_SMap_empty___at_Lean_mkBuiltinCommandElabTable___spec__1___closed__1; +obj* l_Lean_Elab_updateCmdPos___rarg(obj*); +obj* l_Lean_Elab_absolutizeModuleName___closed__1; obj* l_Lean_syntaxNodeKindOfAttrParam___closed__2; obj* l_RBNode_setBlack___rarg(obj*); +obj* l_Array_miterateAux___main___at_Lean_Elab_processHeaderAux___spec__1(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_Lean_SMap_empty___at_Lean_mkBuiltinTermElabTable___spec__1___closed__1; obj* l_Lean_mkElabAttribute___rarg___lambda__2(obj*, obj*); +obj* l_Lean_Elab_processCommandsAux___main___rarg(obj*, obj*); obj* l_Lean_addBuiltinTermElab___boxed(obj*, obj*, obj*, obj*); -obj* l_HashMapImp_find___at_Lean_elabTerm___spec__2___boxed(obj*, obj*); obj* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_mkTermElabAttribute___spec__2(obj*, obj*); obj* l_Lean_builtinCommandElabTable; +obj* l_Lean_Elab_getPosition(obj*, obj*, obj*); extern obj* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; extern obj* l_Lean_nameToExprAux___main___closed__4; +obj* l_Lean_Elab_logMessage___boxed(obj*, obj*, obj*); namespace lean { uint8 nat_dec_le(obj*, obj*); } extern obj* l_Array_mfindAux___main___at_Lean_findFile___spec__2___closed__2; obj* l_Lean_ElabAttribute_Inhabited___rarg(obj*); obj* l_Lean_Elab_getScope___boxed(obj*); -obj* l_Lean_toBaseDir(obj*, obj*); obj* l_Lean_Syntax_getPos___rarg(obj*); obj* l_Lean_ElabScope_Inhabited___closed__1; obj* l_Lean_mkElabAttribute___rarg___lambda__1___boxed(obj*, obj*, obj*); @@ -382,47 +370,55 @@ obj* l_Lean_declareBuiltinElab___closed__1; obj* l_Lean_registerBuiltinCommandElabAttr___closed__7; obj* l_Lean_termElabAttribute___closed__1; obj* l_Lean_Elab_getScope___rarg(obj*); -obj* l_Lean_SMap_find___at_Lean_elabCommand___spec__1(obj*, obj*); obj* l_RBNode_insert___at_Lean_addBuiltinTermElab___spec__6(obj*, obj*, obj*); +obj* l_Lean_Elab_logElabException(obj*, obj*, obj*); obj* l_Lean_registerBuiltinCommandElabAttr___lambda__1___closed__4; +obj* l_Lean_Elab_getPos___rarg(obj*, obj*, obj*); obj* l_Lean_mkElabAttribute___rarg___lambda__2___closed__1; obj* l_Lean_FileMap_toPosition(obj*, obj*); obj* l_Lean_registerBuiltinCommandElabAttr___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_registerBuiltinTermElabAttr___closed__3; -obj* l_Lean_processHeaderAux___boxed(obj*, obj*, obj*, obj*); obj* l_Lean_registerBuiltinCommandElabAttr(obj*); obj* l_Lean_registerBuiltinCommandElabAttr___closed__1; obj* l_Lean_declareBuiltinElab(obj*, obj*, obj*, obj*, obj*); +obj* l_Lean_Elab_logErrorAndThrow___rarg(obj*, obj*, obj*, obj*); obj* l_Lean_Elab_Inhabited___rarg(obj*); obj* l_Lean_registerBuiltinTermElabAttr___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Syntax_getNumArgs___rarg(obj*); +obj* l_Lean_Elab_testFrontend___closed__2; obj* l_Array_anyMAux___main___at_Lean_mkTermElabAttribute___spec__3___boxed(obj*, obj*, obj*); obj* l_Lean_registerPersistentEnvExtensionUnsafe___rarg(obj*, obj*, obj*); extern obj* l___private_init_lean_environment_8__persistentEnvExtensionsRef; obj* l_AssocList_replace___main___at_Lean_addBuiltinTermElab___spec__12(obj*, obj*, obj*); -obj* l_HashMapImp_find___at_Lean_elabCommand___spec__2(obj*, obj*); +obj* l_Lean_Elab_processHeader___boxed(obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_Lean_Elab_logMessage(obj*, obj*, obj*); obj* l_HashMapImp_moveEntries___main___at_Lean_addBuiltinCommandElab___spec__10(obj*, obj*, obj*); extern obj* l_Lean_mkInitAttr___closed__2; -obj* l_Lean_getPosition___boxed(obj*, obj*, obj*); +obj* l_Lean_Elab_processCommands(obj*, obj*); +obj* l_Lean_Elab_processHeaderAux(obj*, obj*, uint32, obj*); obj* l_Lean_Name_append___main(obj*, obj*); obj* l_HashMapImp_contains___at_Lean_addBuiltinCommandElab___spec__2___boxed(obj*, obj*); namespace lean { obj* nat_mul(obj*, obj*); } +obj* l_Lean_Elab_processHeaderAux___closed__2; obj* l_Lean_mkElabAttribute___rarg___closed__1; obj* l_AssocList_contains___main___at_Lean_addBuiltinTermElab___spec__3___boxed(obj*, obj*); +obj* l_Lean_Elab_processCommandsAux(obj*); obj* l_Lean_mkTermElabAttribute(obj*); extern obj* l_Lean_registerEnvExtensionUnsafe___rarg___closed__1; +obj* l_Lean_Elab_getEnv(obj*); obj* l_IO_Prim_Ref_reset(obj*, obj*, obj*); obj* l_Lean_Elab_rootNamespace___closed__1; obj* l_Lean_Elab_mkFreshName___rarg(obj*); -obj* l_Lean_testFrontend___closed__4; extern obj* l___private_init_lean_environment_5__envExtensionsRef; -obj* l_Array_miterateAux___main___at_Lean_processHeaderAux___spec__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_Lean_Elab_processHeaderAux___closed__1; +obj* l_Lean_Elab_runElab___at_Lean_Elab_processCommand___spec__1(obj*, obj*, obj*); obj* l_Lean_builtinTermElabTable; +obj* l_AssocList_find___main___at_Lean_Elab_elabCommand___spec__3___boxed(obj*, obj*); obj* l_Lean_Parser_isValidSyntaxNodeKind(obj*, obj*); -obj* l_Lean_logErrorAndThrow___rarg(obj*, obj*, obj*, obj*); obj* l_Lean_registerTagAttribute___lambda__6___boxed(obj*, obj*, obj*, obj*, obj*); +obj* l_Lean_Elab_processCommand(obj*, obj*); extern obj* l_String_splitAux___main___closed__1; obj* l_Lean_Parser_parseHeader(obj*, obj*); obj* l_Lean_registerEnvExtensionUnsafe___at_Lean_mkCommandElabAttribute___spec__4(obj*, obj*); @@ -13134,7 +13130,124 @@ x_5 = lean::box(x_4); return x_5; } } -obj* l_Lean_getPosition(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_logMessage(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +uint8 x_4; +x_4 = !lean::is_exclusive(x_3); +if (x_4 == 0) +{ +obj* x_5; obj* x_6; uint8 x_7; +x_5 = lean::cnstr_get(x_3, 1); +x_6 = lean::cnstr_get(x_3, 0); +lean::dec(x_6); +x_7 = !lean::is_exclusive(x_5); +if (x_7 == 0) +{ +obj* x_8; obj* x_9; obj* x_10; +x_8 = lean::cnstr_get(x_5, 1); +x_9 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_9, 0, x_1); +lean::cnstr_set(x_9, 1, x_8); +lean::cnstr_set(x_5, 1, x_9); +x_10 = lean::box(0); +lean::cnstr_set(x_3, 0, x_10); +return x_3; +} +else +{ +obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; +x_11 = lean::cnstr_get(x_5, 0); +x_12 = lean::cnstr_get(x_5, 1); +x_13 = lean::cnstr_get(x_5, 2); +x_14 = lean::cnstr_get(x_5, 3); +x_15 = lean::cnstr_get(x_5, 4); +x_16 = lean::cnstr_get(x_5, 5); +lean::inc(x_16); +lean::inc(x_15); +lean::inc(x_14); +lean::inc(x_13); +lean::inc(x_12); +lean::inc(x_11); +lean::dec(x_5); +x_17 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_17, 0, x_1); +lean::cnstr_set(x_17, 1, x_12); +x_18 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_18, 0, x_11); +lean::cnstr_set(x_18, 1, x_17); +lean::cnstr_set(x_18, 2, x_13); +lean::cnstr_set(x_18, 3, x_14); +lean::cnstr_set(x_18, 4, x_15); +lean::cnstr_set(x_18, 5, x_16); +x_19 = lean::box(0); +lean::cnstr_set(x_3, 1, x_18); +lean::cnstr_set(x_3, 0, x_19); +return x_3; +} +} +else +{ +obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; +x_20 = lean::cnstr_get(x_3, 1); +lean::inc(x_20); +lean::dec(x_3); +x_21 = lean::cnstr_get(x_20, 0); +lean::inc(x_21); +x_22 = lean::cnstr_get(x_20, 1); +lean::inc(x_22); +x_23 = lean::cnstr_get(x_20, 2); +lean::inc(x_23); +x_24 = lean::cnstr_get(x_20, 3); +lean::inc(x_24); +x_25 = lean::cnstr_get(x_20, 4); +lean::inc(x_25); +x_26 = lean::cnstr_get(x_20, 5); +lean::inc(x_26); +if (lean::is_exclusive(x_20)) { + lean::cnstr_release(x_20, 0); + lean::cnstr_release(x_20, 1); + lean::cnstr_release(x_20, 2); + lean::cnstr_release(x_20, 3); + lean::cnstr_release(x_20, 4); + lean::cnstr_release(x_20, 5); + x_27 = x_20; +} else { + lean::dec_ref(x_20); + x_27 = lean::box(0); +} +x_28 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_28, 0, x_1); +lean::cnstr_set(x_28, 1, x_22); +if (lean::is_scalar(x_27)) { + x_29 = lean::alloc_cnstr(0, 6, 0); +} else { + x_29 = x_27; +} +lean::cnstr_set(x_29, 0, x_21); +lean::cnstr_set(x_29, 1, x_28); +lean::cnstr_set(x_29, 2, x_23); +lean::cnstr_set(x_29, 3, x_24); +lean::cnstr_set(x_29, 4, x_25); +lean::cnstr_set(x_29, 5, x_26); +x_30 = lean::box(0); +x_31 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_31, 0, x_30); +lean::cnstr_set(x_31, 1, x_29); +return x_31; +} +} +} +obj* l_Lean_Elab_logMessage___boxed(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_Lean_Elab_logMessage(x_1, x_2, x_3); +lean::dec(x_2); +return x_4; +} +} +obj* l_Lean_Elab_getPosition(obj* x_1, obj* x_2, obj* x_3) { _start: { if (lean::obj_tag(x_1) == 0) @@ -13204,17 +13317,17 @@ return x_24; } } } -obj* l_Lean_getPosition___boxed(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_getPosition___boxed(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_Lean_getPosition(x_1, x_2, x_3); +x_4 = l_Lean_Elab_getPosition(x_1, x_2, x_3); lean::dec(x_2); lean::dec(x_1); return x_4; } } -obj* l_Lean_mkMessage(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_Lean_Elab_mkMessage(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { uint8 x_5; @@ -13321,23 +13434,23 @@ return x_36; } } } -obj* l_Lean_mkMessage___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_Lean_Elab_mkMessage___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; -x_5 = l_Lean_mkMessage(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Elab_mkMessage(x_1, x_2, x_3, x_4); lean::dec(x_3); lean::dec(x_2); return x_5; } } -obj* l_Lean_logErrorAt(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_Lean_Elab_logErrorAt(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; obj* x_6; x_5 = lean::alloc_cnstr(1, 1, 0); lean::cnstr_set(x_5, 0, x_1); -x_6 = l_Lean_mkMessage(x_2, x_5, x_3, x_4); +x_6 = l_Lean_Elab_mkMessage(x_2, x_5, x_3, x_4); lean::dec(x_5); if (lean::obj_tag(x_6) == 0) { @@ -13345,135 +13458,63 @@ uint8 x_7; x_7 = !lean::is_exclusive(x_6); if (x_7 == 0) { -obj* x_8; uint8 x_9; -x_8 = lean::cnstr_get(x_6, 1); -x_9 = !lean::is_exclusive(x_8); -if (x_9 == 0) +obj* x_8; obj* x_9; obj* x_10; +x_8 = lean::cnstr_get(x_6, 0); +x_9 = lean::box(0); +lean::cnstr_set(x_6, 0, x_9); +x_10 = l_Lean_Elab_logMessage(x_8, x_3, x_6); +return x_10; +} +else { -obj* x_10; obj* x_11; obj* x_12; obj* x_13; -x_10 = lean::cnstr_get(x_6, 0); -x_11 = lean::cnstr_get(x_8, 1); -x_12 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_12, 0, x_10); -lean::cnstr_set(x_12, 1, x_11); -lean::cnstr_set(x_8, 1, x_12); +obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; +x_11 = lean::cnstr_get(x_6, 0); +x_12 = lean::cnstr_get(x_6, 1); +lean::inc(x_12); +lean::inc(x_11); +lean::dec(x_6); x_13 = lean::box(0); -lean::cnstr_set(x_6, 0, x_13); +x_14 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_14, 0, x_13); +lean::cnstr_set(x_14, 1, x_12); +x_15 = l_Lean_Elab_logMessage(x_11, x_3, x_14); +return x_15; +} +} +else +{ +uint8 x_16; +x_16 = !lean::is_exclusive(x_6); +if (x_16 == 0) +{ return x_6; } else { -obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; obj* x_21; obj* x_22; -x_14 = lean::cnstr_get(x_6, 0); -x_15 = lean::cnstr_get(x_8, 0); -x_16 = lean::cnstr_get(x_8, 1); -x_17 = lean::cnstr_get(x_8, 2); -x_18 = lean::cnstr_get(x_8, 3); -x_19 = lean::cnstr_get(x_8, 4); -lean::inc(x_19); +obj* x_17; obj* x_18; obj* x_19; +x_17 = lean::cnstr_get(x_6, 0); +x_18 = lean::cnstr_get(x_6, 1); lean::inc(x_18); lean::inc(x_17); -lean::inc(x_16); -lean::inc(x_15); -lean::dec(x_8); -x_20 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_20, 0, x_14); -lean::cnstr_set(x_20, 1, x_16); -x_21 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_21, 0, x_15); -lean::cnstr_set(x_21, 1, x_20); -lean::cnstr_set(x_21, 2, x_17); -lean::cnstr_set(x_21, 3, x_18); -lean::cnstr_set(x_21, 4, x_19); -x_22 = lean::box(0); -lean::cnstr_set(x_6, 1, x_21); -lean::cnstr_set(x_6, 0, x_22); -return x_6; -} -} -else -{ -obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; -x_23 = lean::cnstr_get(x_6, 1); -x_24 = lean::cnstr_get(x_6, 0); -lean::inc(x_23); -lean::inc(x_24); lean::dec(x_6); -x_25 = lean::cnstr_get(x_23, 0); -lean::inc(x_25); -x_26 = lean::cnstr_get(x_23, 1); -lean::inc(x_26); -x_27 = lean::cnstr_get(x_23, 2); -lean::inc(x_27); -x_28 = lean::cnstr_get(x_23, 3); -lean::inc(x_28); -x_29 = lean::cnstr_get(x_23, 4); -lean::inc(x_29); -if (lean::is_exclusive(x_23)) { - lean::cnstr_release(x_23, 0); - lean::cnstr_release(x_23, 1); - lean::cnstr_release(x_23, 2); - lean::cnstr_release(x_23, 3); - lean::cnstr_release(x_23, 4); - x_30 = x_23; -} else { - lean::dec_ref(x_23); - x_30 = lean::box(0); -} -x_31 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_31, 0, x_24); -lean::cnstr_set(x_31, 1, x_26); -if (lean::is_scalar(x_30)) { - x_32 = lean::alloc_cnstr(0, 5, 0); -} else { - x_32 = x_30; -} -lean::cnstr_set(x_32, 0, x_25); -lean::cnstr_set(x_32, 1, x_31); -lean::cnstr_set(x_32, 2, x_27); -lean::cnstr_set(x_32, 3, x_28); -lean::cnstr_set(x_32, 4, x_29); -x_33 = lean::box(0); -x_34 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_34, 0, x_33); -lean::cnstr_set(x_34, 1, x_32); -return x_34; -} -} -else -{ -uint8 x_35; -x_35 = !lean::is_exclusive(x_6); -if (x_35 == 0) -{ -return x_6; -} -else -{ -obj* x_36; obj* x_37; obj* x_38; -x_36 = lean::cnstr_get(x_6, 0); -x_37 = lean::cnstr_get(x_6, 1); -lean::inc(x_37); -lean::inc(x_36); -lean::dec(x_6); -x_38 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_38, 0, x_36); -lean::cnstr_set(x_38, 1, x_37); -return x_38; +x_19 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_19, 0, x_17); +lean::cnstr_set(x_19, 1, x_18); +return x_19; } } } } -obj* l_Lean_logErrorAt___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_Lean_Elab_logErrorAt___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; -x_5 = l_Lean_logErrorAt(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Elab_logErrorAt(x_1, x_2, x_3, x_4); lean::dec(x_3); return x_5; } } -obj* l_Lean_logErrorUsingCmdPos(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_logErrorUsingCmdPos(obj* x_1, obj* x_2, obj* x_3) { _start: { uint8 x_4; @@ -13490,7 +13531,7 @@ lean::cnstr_set(x_3, 0, x_7); x_8 = lean::cnstr_get(x_5, 2); lean::inc(x_8); lean::dec(x_5); -x_9 = l_Lean_logErrorAt(x_8, x_1, x_2, x_3); +x_9 = l_Lean_Elab_logErrorAt(x_8, x_1, x_2, x_3); return x_9; } else @@ -13507,21 +13548,21 @@ lean::cnstr_set(x_12, 1, x_10); x_13 = lean::cnstr_get(x_10, 2); lean::inc(x_13); lean::dec(x_10); -x_14 = l_Lean_logErrorAt(x_13, x_1, x_2, x_12); +x_14 = l_Lean_Elab_logErrorAt(x_13, x_1, x_2, x_12); return x_14; } } } -obj* l_Lean_logErrorUsingCmdPos___boxed(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_logErrorUsingCmdPos___boxed(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_Lean_logErrorUsingCmdPos(x_1, x_2, x_3); +x_4 = l_Lean_Elab_logErrorUsingCmdPos(x_1, x_2, x_3); lean::dec(x_2); return x_4; } } -obj* l_Lean_getPos(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_getPos___rarg(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; @@ -13584,21 +13625,29 @@ return x_16; } } } -obj* l_Lean_getPos___boxed(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_getPos(obj* x_1) { +_start: +{ +obj* x_2; +x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_Elab_getPos___rarg___boxed), 3, 0); +return x_2; +} +} +obj* l_Lean_Elab_getPos___rarg___boxed(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_Lean_getPos(x_1, x_2, x_3); +x_4 = l_Lean_Elab_getPos___rarg(x_1, x_2, x_3); lean::dec(x_2); lean::dec(x_1); return x_4; } } -obj* l_Lean_logError(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_Lean_Elab_logError___rarg(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; -x_5 = l_Lean_getPos(x_1, x_3, x_4); +x_5 = l_Lean_Elab_getPos___rarg(x_1, x_3, x_4); if (lean::obj_tag(x_5) == 0) { uint8 x_6; @@ -13609,7 +13658,7 @@ obj* x_7; obj* x_8; obj* x_9; x_7 = lean::cnstr_get(x_5, 0); x_8 = lean::box(0); lean::cnstr_set(x_5, 0, x_8); -x_9 = l_Lean_logErrorAt(x_7, x_2, x_3, x_5); +x_9 = l_Lean_Elab_logErrorAt(x_7, x_2, x_3, x_5); return x_9; } else @@ -13624,7 +13673,7 @@ x_12 = lean::box(0); x_13 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_13, 0, x_12); lean::cnstr_set(x_13, 1, x_11); -x_14 = l_Lean_logErrorAt(x_10, x_2, x_3, x_13); +x_14 = l_Lean_Elab_logErrorAt(x_10, x_2, x_3, x_13); return x_14; } } @@ -13653,17 +13702,25 @@ return x_18; } } } -obj* l_Lean_logError___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_Lean_Elab_logError(obj* x_1) { +_start: +{ +obj* x_2; +x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_Elab_logError___rarg___boxed), 4, 0); +return x_2; +} +} +obj* l_Lean_Elab_logError___rarg___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; -x_5 = l_Lean_logError(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Elab_logError___rarg(x_1, x_2, x_3, x_4); lean::dec(x_3); lean::dec(x_1); return x_5; } } -obj* _init_l_Lean_logElabException___closed__1() { +obj* _init_l_Lean_Elab_logElabException___closed__1() { _start: { obj* x_1; @@ -13671,429 +13728,450 @@ x_1 = lean::mk_string("kernel exception"); return x_1; } } -obj* l_Lean_logElabException(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_logElabException(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; switch (lean::obj_tag(x_1)) { case 1: { -uint8 x_41; -x_41 = !lean::is_exclusive(x_3); -if (x_41 == 0) +uint8 x_43; +x_43 = !lean::is_exclusive(x_3); +if (x_43 == 0) { -obj* x_42; obj* x_43; obj* x_44; uint8 x_45; -x_42 = lean::cnstr_get(x_3, 1); -x_43 = lean::cnstr_get(x_3, 0); -lean::dec(x_43); -x_44 = lean::cnstr_get(x_1, 0); -lean::inc(x_44); +obj* x_44; obj* x_45; obj* x_46; uint8 x_47; +x_44 = lean::cnstr_get(x_3, 1); +x_45 = lean::cnstr_get(x_3, 0); +lean::dec(x_45); +x_46 = lean::cnstr_get(x_1, 0); +lean::inc(x_46); lean::dec(x_1); -x_45 = !lean::is_exclusive(x_42); -if (x_45 == 0) +x_47 = !lean::is_exclusive(x_44); +if (x_47 == 0) { -obj* x_46; obj* x_47; obj* x_48; -x_46 = lean::cnstr_get(x_42, 1); -x_47 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_47, 0, x_44); -lean::cnstr_set(x_47, 1, x_46); -lean::cnstr_set(x_42, 1, x_47); -x_48 = lean::box(0); -lean::cnstr_set(x_3, 0, x_48); +obj* x_48; obj* x_49; obj* x_50; +x_48 = lean::cnstr_get(x_44, 1); +x_49 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_49, 0, x_46); +lean::cnstr_set(x_49, 1, x_48); +lean::cnstr_set(x_44, 1, x_49); +x_50 = lean::box(0); +lean::cnstr_set(x_3, 0, x_50); return x_3; } else { -obj* x_49; obj* x_50; obj* x_51; obj* x_52; obj* x_53; obj* x_54; obj* x_55; obj* x_56; -x_49 = lean::cnstr_get(x_42, 0); -x_50 = lean::cnstr_get(x_42, 1); -x_51 = lean::cnstr_get(x_42, 2); -x_52 = lean::cnstr_get(x_42, 3); -x_53 = lean::cnstr_get(x_42, 4); +obj* x_51; obj* x_52; obj* x_53; obj* x_54; obj* x_55; obj* x_56; obj* x_57; obj* x_58; obj* x_59; +x_51 = lean::cnstr_get(x_44, 0); +x_52 = lean::cnstr_get(x_44, 1); +x_53 = lean::cnstr_get(x_44, 2); +x_54 = lean::cnstr_get(x_44, 3); +x_55 = lean::cnstr_get(x_44, 4); +x_56 = lean::cnstr_get(x_44, 5); +lean::inc(x_56); +lean::inc(x_55); +lean::inc(x_54); lean::inc(x_53); lean::inc(x_52); lean::inc(x_51); -lean::inc(x_50); -lean::inc(x_49); -lean::dec(x_42); -x_54 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_54, 0, x_44); -lean::cnstr_set(x_54, 1, x_50); -x_55 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_55, 0, x_49); -lean::cnstr_set(x_55, 1, x_54); -lean::cnstr_set(x_55, 2, x_51); -lean::cnstr_set(x_55, 3, x_52); -lean::cnstr_set(x_55, 4, x_53); -x_56 = lean::box(0); -lean::cnstr_set(x_3, 1, x_55); -lean::cnstr_set(x_3, 0, x_56); +lean::dec(x_44); +x_57 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_57, 0, x_46); +lean::cnstr_set(x_57, 1, x_52); +x_58 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_58, 0, x_51); +lean::cnstr_set(x_58, 1, x_57); +lean::cnstr_set(x_58, 2, x_53); +lean::cnstr_set(x_58, 3, x_54); +lean::cnstr_set(x_58, 4, x_55); +lean::cnstr_set(x_58, 5, x_56); +x_59 = lean::box(0); +lean::cnstr_set(x_3, 1, x_58); +lean::cnstr_set(x_3, 0, x_59); return x_3; } } else { -obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; -x_57 = lean::cnstr_get(x_3, 1); -lean::inc(x_57); -lean::dec(x_3); -x_58 = lean::cnstr_get(x_1, 0); -lean::inc(x_58); -lean::dec(x_1); -x_59 = lean::cnstr_get(x_57, 0); -lean::inc(x_59); -x_60 = lean::cnstr_get(x_57, 1); +obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; +x_60 = lean::cnstr_get(x_3, 1); lean::inc(x_60); -x_61 = lean::cnstr_get(x_57, 2); +lean::dec(x_3); +x_61 = lean::cnstr_get(x_1, 0); lean::inc(x_61); -x_62 = lean::cnstr_get(x_57, 3); +lean::dec(x_1); +x_62 = lean::cnstr_get(x_60, 0); lean::inc(x_62); -x_63 = lean::cnstr_get(x_57, 4); +x_63 = lean::cnstr_get(x_60, 1); lean::inc(x_63); -if (lean::is_exclusive(x_57)) { - lean::cnstr_release(x_57, 0); - lean::cnstr_release(x_57, 1); - lean::cnstr_release(x_57, 2); - lean::cnstr_release(x_57, 3); - lean::cnstr_release(x_57, 4); - x_64 = x_57; +x_64 = lean::cnstr_get(x_60, 2); +lean::inc(x_64); +x_65 = lean::cnstr_get(x_60, 3); +lean::inc(x_65); +x_66 = lean::cnstr_get(x_60, 4); +lean::inc(x_66); +x_67 = lean::cnstr_get(x_60, 5); +lean::inc(x_67); +if (lean::is_exclusive(x_60)) { + lean::cnstr_release(x_60, 0); + lean::cnstr_release(x_60, 1); + lean::cnstr_release(x_60, 2); + lean::cnstr_release(x_60, 3); + lean::cnstr_release(x_60, 4); + lean::cnstr_release(x_60, 5); + x_68 = x_60; } else { - lean::dec_ref(x_57); - x_64 = lean::box(0); + lean::dec_ref(x_60); + x_68 = lean::box(0); } -x_65 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_65, 0, x_58); -lean::cnstr_set(x_65, 1, x_60); -if (lean::is_scalar(x_64)) { - x_66 = lean::alloc_cnstr(0, 5, 0); +x_69 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_69, 0, x_61); +lean::cnstr_set(x_69, 1, x_63); +if (lean::is_scalar(x_68)) { + x_70 = lean::alloc_cnstr(0, 6, 0); } else { - x_66 = x_64; + x_70 = x_68; } -lean::cnstr_set(x_66, 0, x_59); -lean::cnstr_set(x_66, 1, x_65); -lean::cnstr_set(x_66, 2, x_61); -lean::cnstr_set(x_66, 3, x_62); -lean::cnstr_set(x_66, 4, x_63); -x_67 = lean::box(0); -x_68 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_68, 0, x_67); -lean::cnstr_set(x_68, 1, x_66); -return x_68; +lean::cnstr_set(x_70, 0, x_62); +lean::cnstr_set(x_70, 1, x_69); +lean::cnstr_set(x_70, 2, x_64); +lean::cnstr_set(x_70, 3, x_65); +lean::cnstr_set(x_70, 4, x_66); +lean::cnstr_set(x_70, 5, x_67); +x_71 = lean::box(0); +x_72 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_72, 0, x_71); +lean::cnstr_set(x_72, 1, x_70); +return x_72; } } case 2: { -obj* x_69; -x_69 = lean::cnstr_get(x_1, 0); -lean::inc(x_69); +obj* x_73; +x_73 = lean::cnstr_get(x_1, 0); +lean::inc(x_73); lean::dec(x_1); -if (lean::obj_tag(x_69) == 11) +if (lean::obj_tag(x_73) == 11) { -obj* x_70; obj* x_71; obj* x_72; -x_70 = lean::cnstr_get(x_69, 0); -lean::inc(x_70); -lean::dec(x_69); -x_71 = lean::box(0); -x_72 = l_Lean_mkMessage(x_70, x_71, x_2, x_3); -if (lean::obj_tag(x_72) == 0) +obj* x_74; obj* x_75; obj* x_76; +x_74 = lean::cnstr_get(x_73, 0); +lean::inc(x_74); +lean::dec(x_73); +x_75 = lean::box(0); +x_76 = l_Lean_Elab_mkMessage(x_74, x_75, x_2, x_3); +if (lean::obj_tag(x_76) == 0) { -uint8 x_73; -x_73 = !lean::is_exclusive(x_72); -if (x_73 == 0) +uint8 x_77; +x_77 = !lean::is_exclusive(x_76); +if (x_77 == 0) { -obj* x_74; uint8 x_75; -x_74 = lean::cnstr_get(x_72, 1); -x_75 = !lean::is_exclusive(x_74); -if (x_75 == 0) +obj* x_78; uint8 x_79; +x_78 = lean::cnstr_get(x_76, 1); +x_79 = !lean::is_exclusive(x_78); +if (x_79 == 0) { -obj* x_76; obj* x_77; obj* x_78; obj* x_79; -x_76 = lean::cnstr_get(x_72, 0); -x_77 = lean::cnstr_get(x_74, 1); -x_78 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_78, 0, x_76); -lean::cnstr_set(x_78, 1, x_77); -lean::cnstr_set(x_74, 1, x_78); -x_79 = lean::box(0); -lean::cnstr_set(x_72, 0, x_79); -return x_72; +obj* x_80; obj* x_81; obj* x_82; obj* x_83; +x_80 = lean::cnstr_get(x_76, 0); +x_81 = lean::cnstr_get(x_78, 1); +x_82 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_82, 0, x_80); +lean::cnstr_set(x_82, 1, x_81); +lean::cnstr_set(x_78, 1, x_82); +x_83 = lean::box(0); +lean::cnstr_set(x_76, 0, x_83); +return x_76; } else { -obj* x_80; obj* x_81; obj* x_82; obj* x_83; obj* x_84; obj* x_85; obj* x_86; obj* x_87; obj* x_88; -x_80 = lean::cnstr_get(x_72, 0); -x_81 = lean::cnstr_get(x_74, 0); -x_82 = lean::cnstr_get(x_74, 1); -x_83 = lean::cnstr_get(x_74, 2); -x_84 = lean::cnstr_get(x_74, 3); -x_85 = lean::cnstr_get(x_74, 4); -lean::inc(x_85); -lean::inc(x_84); -lean::inc(x_83); -lean::inc(x_82); -lean::inc(x_81); -lean::dec(x_74); -x_86 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_86, 0, x_80); -lean::cnstr_set(x_86, 1, x_82); -x_87 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_87, 0, x_81); -lean::cnstr_set(x_87, 1, x_86); -lean::cnstr_set(x_87, 2, x_83); -lean::cnstr_set(x_87, 3, x_84); -lean::cnstr_set(x_87, 4, x_85); -x_88 = lean::box(0); -lean::cnstr_set(x_72, 1, x_87); -lean::cnstr_set(x_72, 0, x_88); -return x_72; -} -} -else -{ -obj* x_89; obj* x_90; obj* x_91; obj* x_92; obj* x_93; obj* x_94; obj* x_95; obj* x_96; obj* x_97; obj* x_98; obj* x_99; obj* x_100; -x_89 = lean::cnstr_get(x_72, 1); -x_90 = lean::cnstr_get(x_72, 0); -lean::inc(x_89); +obj* x_84; obj* x_85; obj* x_86; obj* x_87; obj* x_88; obj* x_89; obj* x_90; obj* x_91; obj* x_92; obj* x_93; +x_84 = lean::cnstr_get(x_76, 0); +x_85 = lean::cnstr_get(x_78, 0); +x_86 = lean::cnstr_get(x_78, 1); +x_87 = lean::cnstr_get(x_78, 2); +x_88 = lean::cnstr_get(x_78, 3); +x_89 = lean::cnstr_get(x_78, 4); +x_90 = lean::cnstr_get(x_78, 5); lean::inc(x_90); -lean::dec(x_72); -x_91 = lean::cnstr_get(x_89, 0); -lean::inc(x_91); -x_92 = lean::cnstr_get(x_89, 1); -lean::inc(x_92); -x_93 = lean::cnstr_get(x_89, 2); -lean::inc(x_93); -x_94 = lean::cnstr_get(x_89, 3); +lean::inc(x_89); +lean::inc(x_88); +lean::inc(x_87); +lean::inc(x_86); +lean::inc(x_85); +lean::dec(x_78); +x_91 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_91, 0, x_84); +lean::cnstr_set(x_91, 1, x_86); +x_92 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_92, 0, x_85); +lean::cnstr_set(x_92, 1, x_91); +lean::cnstr_set(x_92, 2, x_87); +lean::cnstr_set(x_92, 3, x_88); +lean::cnstr_set(x_92, 4, x_89); +lean::cnstr_set(x_92, 5, x_90); +x_93 = lean::box(0); +lean::cnstr_set(x_76, 1, x_92); +lean::cnstr_set(x_76, 0, x_93); +return x_76; +} +} +else +{ +obj* x_94; obj* x_95; obj* x_96; obj* x_97; obj* x_98; obj* x_99; obj* x_100; obj* x_101; obj* x_102; obj* x_103; obj* x_104; obj* x_105; obj* x_106; +x_94 = lean::cnstr_get(x_76, 1); +x_95 = lean::cnstr_get(x_76, 0); lean::inc(x_94); -x_95 = lean::cnstr_get(x_89, 4); lean::inc(x_95); -if (lean::is_exclusive(x_89)) { - lean::cnstr_release(x_89, 0); - lean::cnstr_release(x_89, 1); - lean::cnstr_release(x_89, 2); - lean::cnstr_release(x_89, 3); - lean::cnstr_release(x_89, 4); - x_96 = x_89; +lean::dec(x_76); +x_96 = lean::cnstr_get(x_94, 0); +lean::inc(x_96); +x_97 = lean::cnstr_get(x_94, 1); +lean::inc(x_97); +x_98 = lean::cnstr_get(x_94, 2); +lean::inc(x_98); +x_99 = lean::cnstr_get(x_94, 3); +lean::inc(x_99); +x_100 = lean::cnstr_get(x_94, 4); +lean::inc(x_100); +x_101 = lean::cnstr_get(x_94, 5); +lean::inc(x_101); +if (lean::is_exclusive(x_94)) { + lean::cnstr_release(x_94, 0); + lean::cnstr_release(x_94, 1); + lean::cnstr_release(x_94, 2); + lean::cnstr_release(x_94, 3); + lean::cnstr_release(x_94, 4); + lean::cnstr_release(x_94, 5); + x_102 = x_94; } else { - lean::dec_ref(x_89); - x_96 = lean::box(0); + lean::dec_ref(x_94); + x_102 = lean::box(0); } -x_97 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_97, 0, x_90); -lean::cnstr_set(x_97, 1, x_92); -if (lean::is_scalar(x_96)) { - x_98 = lean::alloc_cnstr(0, 5, 0); +x_103 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_103, 0, x_95); +lean::cnstr_set(x_103, 1, x_97); +if (lean::is_scalar(x_102)) { + x_104 = lean::alloc_cnstr(0, 6, 0); } else { - x_98 = x_96; + x_104 = x_102; } -lean::cnstr_set(x_98, 0, x_91); -lean::cnstr_set(x_98, 1, x_97); -lean::cnstr_set(x_98, 2, x_93); -lean::cnstr_set(x_98, 3, x_94); -lean::cnstr_set(x_98, 4, x_95); -x_99 = lean::box(0); -x_100 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_100, 0, x_99); -lean::cnstr_set(x_100, 1, x_98); -return x_100; -} -} -else -{ -uint8 x_101; -x_101 = !lean::is_exclusive(x_72); -if (x_101 == 0) -{ -return x_72; -} -else -{ -obj* x_102; obj* x_103; obj* x_104; -x_102 = lean::cnstr_get(x_72, 0); -x_103 = lean::cnstr_get(x_72, 1); -lean::inc(x_103); -lean::inc(x_102); -lean::dec(x_72); -x_104 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_104, 0, x_102); +lean::cnstr_set(x_104, 0, x_96); lean::cnstr_set(x_104, 1, x_103); -return x_104; +lean::cnstr_set(x_104, 2, x_98); +lean::cnstr_set(x_104, 3, x_99); +lean::cnstr_set(x_104, 4, x_100); +lean::cnstr_set(x_104, 5, x_101); +x_105 = lean::box(0); +x_106 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_106, 0, x_105); +lean::cnstr_set(x_106, 1, x_104); +return x_106; +} +} +else +{ +uint8 x_107; +x_107 = !lean::is_exclusive(x_76); +if (x_107 == 0) +{ +return x_76; +} +else +{ +obj* x_108; obj* x_109; obj* x_110; +x_108 = lean::cnstr_get(x_76, 0); +x_109 = lean::cnstr_get(x_76, 1); +lean::inc(x_109); +lean::inc(x_108); +lean::dec(x_76); +x_110 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_110, 0, x_108); +lean::cnstr_set(x_110, 1, x_109); +return x_110; } } } else { -obj* x_105; -lean::dec(x_69); -x_105 = lean::box(0); -x_4 = x_105; -goto block_40; +obj* x_111; +lean::dec(x_73); +x_111 = lean::box(0); +x_4 = x_111; +goto block_42; } } case 4: { -uint8 x_106; -x_106 = !lean::is_exclusive(x_3); -if (x_106 == 0) +uint8 x_112; +x_112 = !lean::is_exclusive(x_3); +if (x_112 == 0) { -obj* x_107; obj* x_108; -x_107 = lean::cnstr_get(x_3, 0); -lean::dec(x_107); -x_108 = lean::box(0); -lean::cnstr_set(x_3, 0, x_108); +obj* x_113; obj* x_114; +x_113 = lean::cnstr_get(x_3, 0); +lean::dec(x_113); +x_114 = lean::box(0); +lean::cnstr_set(x_3, 0, x_114); return x_3; } else { -obj* x_109; obj* x_110; obj* x_111; -x_109 = lean::cnstr_get(x_3, 1); -lean::inc(x_109); +obj* x_115; obj* x_116; obj* x_117; +x_115 = lean::cnstr_get(x_3, 1); +lean::inc(x_115); lean::dec(x_3); -x_110 = lean::box(0); -x_111 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_111, 0, x_110); -lean::cnstr_set(x_111, 1, x_109); -return x_111; +x_116 = lean::box(0); +x_117 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_117, 0, x_116); +lean::cnstr_set(x_117, 1, x_115); +return x_117; } } default: { -obj* x_112; obj* x_113; obj* x_114; -x_112 = lean::cnstr_get(x_1, 0); -lean::inc(x_112); +obj* x_118; obj* x_119; obj* x_120; +x_118 = lean::cnstr_get(x_1, 0); +lean::inc(x_118); lean::dec(x_1); -x_113 = lean::box(0); -x_114 = l_Lean_mkMessage(x_112, x_113, x_2, x_3); -if (lean::obj_tag(x_114) == 0) +x_119 = lean::box(0); +x_120 = l_Lean_Elab_mkMessage(x_118, x_119, x_2, x_3); +if (lean::obj_tag(x_120) == 0) { -uint8 x_115; -x_115 = !lean::is_exclusive(x_114); -if (x_115 == 0) +uint8 x_121; +x_121 = !lean::is_exclusive(x_120); +if (x_121 == 0) { -obj* x_116; uint8 x_117; -x_116 = lean::cnstr_get(x_114, 1); -x_117 = !lean::is_exclusive(x_116); -if (x_117 == 0) +obj* x_122; uint8 x_123; +x_122 = lean::cnstr_get(x_120, 1); +x_123 = !lean::is_exclusive(x_122); +if (x_123 == 0) { -obj* x_118; obj* x_119; obj* x_120; obj* x_121; -x_118 = lean::cnstr_get(x_114, 0); -x_119 = lean::cnstr_get(x_116, 1); -x_120 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_120, 0, x_118); -lean::cnstr_set(x_120, 1, x_119); -lean::cnstr_set(x_116, 1, x_120); -x_121 = lean::box(0); -lean::cnstr_set(x_114, 0, x_121); -return x_114; +obj* x_124; obj* x_125; obj* x_126; obj* x_127; +x_124 = lean::cnstr_get(x_120, 0); +x_125 = lean::cnstr_get(x_122, 1); +x_126 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_126, 0, x_124); +lean::cnstr_set(x_126, 1, x_125); +lean::cnstr_set(x_122, 1, x_126); +x_127 = lean::box(0); +lean::cnstr_set(x_120, 0, x_127); +return x_120; } else { -obj* x_122; obj* x_123; obj* x_124; obj* x_125; obj* x_126; obj* x_127; obj* x_128; obj* x_129; obj* x_130; -x_122 = lean::cnstr_get(x_114, 0); -x_123 = lean::cnstr_get(x_116, 0); -x_124 = lean::cnstr_get(x_116, 1); -x_125 = lean::cnstr_get(x_116, 2); -x_126 = lean::cnstr_get(x_116, 3); -x_127 = lean::cnstr_get(x_116, 4); -lean::inc(x_127); -lean::inc(x_126); -lean::inc(x_125); -lean::inc(x_124); -lean::inc(x_123); -lean::dec(x_116); -x_128 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_128, 0, x_122); -lean::cnstr_set(x_128, 1, x_124); -x_129 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_129, 0, x_123); -lean::cnstr_set(x_129, 1, x_128); -lean::cnstr_set(x_129, 2, x_125); -lean::cnstr_set(x_129, 3, x_126); -lean::cnstr_set(x_129, 4, x_127); -x_130 = lean::box(0); -lean::cnstr_set(x_114, 1, x_129); -lean::cnstr_set(x_114, 0, x_130); -return x_114; -} -} -else -{ -obj* x_131; obj* x_132; obj* x_133; obj* x_134; obj* x_135; obj* x_136; obj* x_137; obj* x_138; obj* x_139; obj* x_140; obj* x_141; obj* x_142; -x_131 = lean::cnstr_get(x_114, 1); -x_132 = lean::cnstr_get(x_114, 0); -lean::inc(x_131); -lean::inc(x_132); -lean::dec(x_114); -x_133 = lean::cnstr_get(x_131, 0); -lean::inc(x_133); -x_134 = lean::cnstr_get(x_131, 1); +obj* x_128; obj* x_129; obj* x_130; obj* x_131; obj* x_132; obj* x_133; obj* x_134; obj* x_135; obj* x_136; obj* x_137; +x_128 = lean::cnstr_get(x_120, 0); +x_129 = lean::cnstr_get(x_122, 0); +x_130 = lean::cnstr_get(x_122, 1); +x_131 = lean::cnstr_get(x_122, 2); +x_132 = lean::cnstr_get(x_122, 3); +x_133 = lean::cnstr_get(x_122, 4); +x_134 = lean::cnstr_get(x_122, 5); lean::inc(x_134); -x_135 = lean::cnstr_get(x_131, 2); -lean::inc(x_135); -x_136 = lean::cnstr_get(x_131, 3); -lean::inc(x_136); -x_137 = lean::cnstr_get(x_131, 4); -lean::inc(x_137); -if (lean::is_exclusive(x_131)) { - lean::cnstr_release(x_131, 0); - lean::cnstr_release(x_131, 1); - lean::cnstr_release(x_131, 2); - lean::cnstr_release(x_131, 3); - lean::cnstr_release(x_131, 4); - x_138 = x_131; -} else { - lean::dec_ref(x_131); - x_138 = lean::box(0); -} -x_139 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_139, 0, x_132); -lean::cnstr_set(x_139, 1, x_134); -if (lean::is_scalar(x_138)) { - x_140 = lean::alloc_cnstr(0, 5, 0); -} else { - x_140 = x_138; -} -lean::cnstr_set(x_140, 0, x_133); -lean::cnstr_set(x_140, 1, x_139); -lean::cnstr_set(x_140, 2, x_135); -lean::cnstr_set(x_140, 3, x_136); -lean::cnstr_set(x_140, 4, x_137); -x_141 = lean::box(0); -x_142 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_142, 0, x_141); -lean::cnstr_set(x_142, 1, x_140); -return x_142; +lean::inc(x_133); +lean::inc(x_132); +lean::inc(x_131); +lean::inc(x_130); +lean::inc(x_129); +lean::dec(x_122); +x_135 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_135, 0, x_128); +lean::cnstr_set(x_135, 1, x_130); +x_136 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_136, 0, x_129); +lean::cnstr_set(x_136, 1, x_135); +lean::cnstr_set(x_136, 2, x_131); +lean::cnstr_set(x_136, 3, x_132); +lean::cnstr_set(x_136, 4, x_133); +lean::cnstr_set(x_136, 5, x_134); +x_137 = lean::box(0); +lean::cnstr_set(x_120, 1, x_136); +lean::cnstr_set(x_120, 0, x_137); +return x_120; } } else { -uint8 x_143; -x_143 = !lean::is_exclusive(x_114); -if (x_143 == 0) -{ -return x_114; -} -else -{ -obj* x_144; obj* x_145; obj* x_146; -x_144 = lean::cnstr_get(x_114, 0); -x_145 = lean::cnstr_get(x_114, 1); -lean::inc(x_145); +obj* x_138; obj* x_139; obj* x_140; obj* x_141; obj* x_142; obj* x_143; obj* x_144; obj* x_145; obj* x_146; obj* x_147; obj* x_148; obj* x_149; obj* x_150; +x_138 = lean::cnstr_get(x_120, 1); +x_139 = lean::cnstr_get(x_120, 0); +lean::inc(x_138); +lean::inc(x_139); +lean::dec(x_120); +x_140 = lean::cnstr_get(x_138, 0); +lean::inc(x_140); +x_141 = lean::cnstr_get(x_138, 1); +lean::inc(x_141); +x_142 = lean::cnstr_get(x_138, 2); +lean::inc(x_142); +x_143 = lean::cnstr_get(x_138, 3); +lean::inc(x_143); +x_144 = lean::cnstr_get(x_138, 4); lean::inc(x_144); -lean::dec(x_114); -x_146 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_146, 0, x_144); -lean::cnstr_set(x_146, 1, x_145); -return x_146; +x_145 = lean::cnstr_get(x_138, 5); +lean::inc(x_145); +if (lean::is_exclusive(x_138)) { + lean::cnstr_release(x_138, 0); + lean::cnstr_release(x_138, 1); + lean::cnstr_release(x_138, 2); + lean::cnstr_release(x_138, 3); + lean::cnstr_release(x_138, 4); + lean::cnstr_release(x_138, 5); + x_146 = x_138; +} else { + lean::dec_ref(x_138); + x_146 = lean::box(0); +} +x_147 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_147, 0, x_139); +lean::cnstr_set(x_147, 1, x_141); +if (lean::is_scalar(x_146)) { + x_148 = lean::alloc_cnstr(0, 6, 0); +} else { + x_148 = x_146; +} +lean::cnstr_set(x_148, 0, x_140); +lean::cnstr_set(x_148, 1, x_147); +lean::cnstr_set(x_148, 2, x_142); +lean::cnstr_set(x_148, 3, x_143); +lean::cnstr_set(x_148, 4, x_144); +lean::cnstr_set(x_148, 5, x_145); +x_149 = lean::box(0); +x_150 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_150, 0, x_149); +lean::cnstr_set(x_150, 1, x_148); +return x_150; +} +} +else +{ +uint8 x_151; +x_151 = !lean::is_exclusive(x_120); +if (x_151 == 0) +{ +return x_120; +} +else +{ +obj* x_152; obj* x_153; obj* x_154; +x_152 = lean::cnstr_get(x_120, 0); +x_153 = lean::cnstr_get(x_120, 1); +lean::inc(x_153); +lean::inc(x_152); +lean::dec(x_120); +x_154 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_154, 0, x_152); +lean::cnstr_set(x_154, 1, x_153); +return x_154; } } } } -block_40: +block_42: { obj* x_5; obj* x_6; obj* x_7; lean::dec(x_4); x_5 = lean::box(0); -x_6 = l_Lean_logElabException___closed__1; -x_7 = l_Lean_mkMessage(x_6, x_5, x_2, x_3); +x_6 = l_Lean_Elab_logElabException___closed__1; +x_7 = l_Lean_Elab_mkMessage(x_6, x_5, x_2, x_3); if (lean::obj_tag(x_7) == 0) { uint8 x_8; @@ -14118,122 +14196,129 @@ return x_7; } else { -obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; obj* x_21; obj* x_22; obj* x_23; +obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; x_15 = lean::cnstr_get(x_7, 0); x_16 = lean::cnstr_get(x_9, 0); x_17 = lean::cnstr_get(x_9, 1); x_18 = lean::cnstr_get(x_9, 2); x_19 = lean::cnstr_get(x_9, 3); x_20 = lean::cnstr_get(x_9, 4); +x_21 = lean::cnstr_get(x_9, 5); +lean::inc(x_21); lean::inc(x_20); lean::inc(x_19); lean::inc(x_18); lean::inc(x_17); lean::inc(x_16); lean::dec(x_9); -x_21 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_21, 0, x_15); -lean::cnstr_set(x_21, 1, x_17); -x_22 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_22, 0, x_16); -lean::cnstr_set(x_22, 1, x_21); -lean::cnstr_set(x_22, 2, x_18); -lean::cnstr_set(x_22, 3, x_19); -lean::cnstr_set(x_22, 4, x_20); -x_23 = lean::box(0); -lean::cnstr_set(x_7, 1, x_22); -lean::cnstr_set(x_7, 0, x_23); +x_22 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_22, 0, x_15); +lean::cnstr_set(x_22, 1, x_17); +x_23 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_23, 0, x_16); +lean::cnstr_set(x_23, 1, x_22); +lean::cnstr_set(x_23, 2, x_18); +lean::cnstr_set(x_23, 3, x_19); +lean::cnstr_set(x_23, 4, x_20); +lean::cnstr_set(x_23, 5, x_21); +x_24 = lean::box(0); +lean::cnstr_set(x_7, 1, x_23); +lean::cnstr_set(x_7, 0, x_24); return x_7; } } else { -obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; -x_24 = lean::cnstr_get(x_7, 1); -x_25 = lean::cnstr_get(x_7, 0); -lean::inc(x_24); +obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; +x_25 = lean::cnstr_get(x_7, 1); +x_26 = lean::cnstr_get(x_7, 0); lean::inc(x_25); -lean::dec(x_7); -x_26 = lean::cnstr_get(x_24, 0); lean::inc(x_26); -x_27 = lean::cnstr_get(x_24, 1); +lean::dec(x_7); +x_27 = lean::cnstr_get(x_25, 0); lean::inc(x_27); -x_28 = lean::cnstr_get(x_24, 2); +x_28 = lean::cnstr_get(x_25, 1); lean::inc(x_28); -x_29 = lean::cnstr_get(x_24, 3); +x_29 = lean::cnstr_get(x_25, 2); lean::inc(x_29); -x_30 = lean::cnstr_get(x_24, 4); +x_30 = lean::cnstr_get(x_25, 3); lean::inc(x_30); -if (lean::is_exclusive(x_24)) { - lean::cnstr_release(x_24, 0); - lean::cnstr_release(x_24, 1); - lean::cnstr_release(x_24, 2); - lean::cnstr_release(x_24, 3); - lean::cnstr_release(x_24, 4); - x_31 = x_24; +x_31 = lean::cnstr_get(x_25, 4); +lean::inc(x_31); +x_32 = lean::cnstr_get(x_25, 5); +lean::inc(x_32); +if (lean::is_exclusive(x_25)) { + lean::cnstr_release(x_25, 0); + lean::cnstr_release(x_25, 1); + lean::cnstr_release(x_25, 2); + lean::cnstr_release(x_25, 3); + lean::cnstr_release(x_25, 4); + lean::cnstr_release(x_25, 5); + x_33 = x_25; } else { - lean::dec_ref(x_24); - x_31 = lean::box(0); + lean::dec_ref(x_25); + x_33 = lean::box(0); } -x_32 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_32, 0, x_25); -lean::cnstr_set(x_32, 1, x_27); -if (lean::is_scalar(x_31)) { - x_33 = lean::alloc_cnstr(0, 5, 0); +x_34 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_34, 0, x_26); +lean::cnstr_set(x_34, 1, x_28); +if (lean::is_scalar(x_33)) { + x_35 = lean::alloc_cnstr(0, 6, 0); } else { - x_33 = x_31; + x_35 = x_33; } -lean::cnstr_set(x_33, 0, x_26); -lean::cnstr_set(x_33, 1, x_32); -lean::cnstr_set(x_33, 2, x_28); -lean::cnstr_set(x_33, 3, x_29); -lean::cnstr_set(x_33, 4, x_30); -x_34 = lean::box(0); -x_35 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_35, 0, x_34); -lean::cnstr_set(x_35, 1, x_33); -return x_35; +lean::cnstr_set(x_35, 0, x_27); +lean::cnstr_set(x_35, 1, x_34); +lean::cnstr_set(x_35, 2, x_29); +lean::cnstr_set(x_35, 3, x_30); +lean::cnstr_set(x_35, 4, x_31); +lean::cnstr_set(x_35, 5, x_32); +x_36 = lean::box(0); +x_37 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_37, 0, x_36); +lean::cnstr_set(x_37, 1, x_35); +return x_37; } } else { -uint8 x_36; -x_36 = !lean::is_exclusive(x_7); -if (x_36 == 0) +uint8 x_38; +x_38 = !lean::is_exclusive(x_7); +if (x_38 == 0) { return x_7; } else { -obj* x_37; obj* x_38; obj* x_39; -x_37 = lean::cnstr_get(x_7, 0); -x_38 = lean::cnstr_get(x_7, 1); -lean::inc(x_38); -lean::inc(x_37); +obj* x_39; obj* x_40; obj* x_41; +x_39 = lean::cnstr_get(x_7, 0); +x_40 = lean::cnstr_get(x_7, 1); +lean::inc(x_40); +lean::inc(x_39); lean::dec(x_7); -x_39 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_39, 0, x_37); -lean::cnstr_set(x_39, 1, x_38); -return x_39; +x_41 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_41, 0, x_39); +lean::cnstr_set(x_41, 1, x_40); +return x_41; } } } } } -obj* l_Lean_logElabException___boxed(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_logElabException___boxed(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_Lean_logElabException(x_1, x_2, x_3); +x_4 = l_Lean_Elab_logElabException(x_1, x_2, x_3); lean::dec(x_2); return x_4; } } -obj* l_Lean_logErrorAndThrow___rarg(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_Lean_Elab_logErrorAndThrow___rarg(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; -x_5 = l_Lean_logError(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Elab_logError___rarg(x_1, x_2, x_3, x_4); if (lean::obj_tag(x_5) == 0) { uint8 x_6; @@ -14285,25 +14370,25 @@ return x_15; } } } -obj* l_Lean_logErrorAndThrow(obj* x_1) { +obj* l_Lean_Elab_logErrorAndThrow(obj* x_1, obj* x_2) { _start: { -obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_logErrorAndThrow___rarg___boxed), 4, 0); -return x_2; +obj* x_3; +x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Elab_logErrorAndThrow___rarg___boxed), 4, 0); +return x_3; } } -obj* l_Lean_logErrorAndThrow___rarg___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_Lean_Elab_logErrorAndThrow___rarg___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; -x_5 = l_Lean_logErrorAndThrow___rarg(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Elab_logErrorAndThrow___rarg(x_1, x_2, x_3, x_4); lean::dec(x_3); lean::dec(x_1); return x_5; } } -obj* _init_l_Lean_logUnknownDecl___closed__1() { +obj* _init_l_Lean_Elab_logUnknownDecl___rarg___closed__1() { _start: { obj* x_1; @@ -14311,32 +14396,40 @@ x_1 = lean::mk_string("unknown declaration '"); return x_1; } } -obj* l_Lean_logUnknownDecl(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_Lean_Elab_logUnknownDecl___rarg(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; obj* x_11; x_5 = l_System_FilePath_dirName___closed__1; x_6 = l_Lean_Name_toStringWithSep___main(x_5, x_2); -x_7 = l_Lean_logUnknownDecl___closed__1; +x_7 = l_Lean_Elab_logUnknownDecl___rarg___closed__1; x_8 = lean::string_append(x_7, x_6); lean::dec(x_6); x_9 = l_Char_HasRepr___closed__1; x_10 = lean::string_append(x_8, x_9); -x_11 = l_Lean_logError(x_1, x_10, x_3, x_4); +x_11 = l_Lean_Elab_logError___rarg(x_1, x_10, x_3, x_4); return x_11; } } -obj* l_Lean_logUnknownDecl___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_Lean_Elab_logUnknownDecl(obj* x_1) { +_start: +{ +obj* x_2; +x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_Elab_logUnknownDecl___rarg___boxed), 4, 0); +return x_2; +} +} +obj* l_Lean_Elab_logUnknownDecl___rarg___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; -x_5 = l_Lean_logUnknownDecl(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Elab_logUnknownDecl___rarg(x_1, x_2, x_3, x_4); lean::dec(x_3); lean::dec(x_1); return x_5; } } -obj* l_Lean_getEnv___rarg(obj* x_1) { +obj* l_Lean_Elab_getEnv___rarg(obj* x_1) { _start: { uint8 x_2; @@ -14367,24 +14460,24 @@ return x_8; } } } -obj* l_Lean_getEnv(obj* x_1) { +obj* l_Lean_Elab_getEnv(obj* x_1) { _start: { obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_getEnv___rarg), 1, 0); +x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_Elab_getEnv___rarg), 1, 0); return x_2; } } -obj* l_Lean_getEnv___boxed(obj* x_1) { +obj* l_Lean_Elab_getEnv___boxed(obj* x_1) { _start: { obj* x_2; -x_2 = l_Lean_getEnv(x_1); +x_2 = l_Lean_Elab_getEnv(x_1); lean::dec(x_1); return x_2; } } -obj* l_Lean_setEnv(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_setEnv(obj* x_1, obj* x_2, obj* x_3) { _start: { uint8 x_4; @@ -14408,81 +14501,88 @@ return x_3; } else { -obj* x_10; obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; +obj* x_10; obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; x_10 = lean::cnstr_get(x_5, 1); x_11 = lean::cnstr_get(x_5, 2); x_12 = lean::cnstr_get(x_5, 3); x_13 = lean::cnstr_get(x_5, 4); +x_14 = lean::cnstr_get(x_5, 5); +lean::inc(x_14); lean::inc(x_13); lean::inc(x_12); lean::inc(x_11); lean::inc(x_10); lean::dec(x_5); -x_14 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_14, 0, x_1); -lean::cnstr_set(x_14, 1, x_10); -lean::cnstr_set(x_14, 2, x_11); -lean::cnstr_set(x_14, 3, x_12); -lean::cnstr_set(x_14, 4, x_13); -x_15 = lean::box(0); -lean::cnstr_set(x_3, 1, x_14); -lean::cnstr_set(x_3, 0, x_15); +x_15 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_15, 0, x_1); +lean::cnstr_set(x_15, 1, x_10); +lean::cnstr_set(x_15, 2, x_11); +lean::cnstr_set(x_15, 3, x_12); +lean::cnstr_set(x_15, 4, x_13); +lean::cnstr_set(x_15, 5, x_14); +x_16 = lean::box(0); +lean::cnstr_set(x_3, 1, x_15); +lean::cnstr_set(x_3, 0, x_16); return x_3; } } else { -obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; -x_16 = lean::cnstr_get(x_3, 1); -lean::inc(x_16); -lean::dec(x_3); -x_17 = lean::cnstr_get(x_16, 1); +obj* x_17; obj* x_18; obj* x_19; obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; +x_17 = lean::cnstr_get(x_3, 1); lean::inc(x_17); -x_18 = lean::cnstr_get(x_16, 2); +lean::dec(x_3); +x_18 = lean::cnstr_get(x_17, 1); lean::inc(x_18); -x_19 = lean::cnstr_get(x_16, 3); +x_19 = lean::cnstr_get(x_17, 2); lean::inc(x_19); -x_20 = lean::cnstr_get(x_16, 4); +x_20 = lean::cnstr_get(x_17, 3); lean::inc(x_20); -if (lean::is_exclusive(x_16)) { - lean::cnstr_release(x_16, 0); - lean::cnstr_release(x_16, 1); - lean::cnstr_release(x_16, 2); - lean::cnstr_release(x_16, 3); - lean::cnstr_release(x_16, 4); - x_21 = x_16; +x_21 = lean::cnstr_get(x_17, 4); +lean::inc(x_21); +x_22 = lean::cnstr_get(x_17, 5); +lean::inc(x_22); +if (lean::is_exclusive(x_17)) { + lean::cnstr_release(x_17, 0); + lean::cnstr_release(x_17, 1); + lean::cnstr_release(x_17, 2); + lean::cnstr_release(x_17, 3); + lean::cnstr_release(x_17, 4); + lean::cnstr_release(x_17, 5); + x_23 = x_17; } else { - lean::dec_ref(x_16); - x_21 = lean::box(0); + lean::dec_ref(x_17); + x_23 = lean::box(0); } -if (lean::is_scalar(x_21)) { - x_22 = lean::alloc_cnstr(0, 5, 0); +if (lean::is_scalar(x_23)) { + x_24 = lean::alloc_cnstr(0, 6, 0); } else { - x_22 = x_21; + x_24 = x_23; } -lean::cnstr_set(x_22, 0, x_1); -lean::cnstr_set(x_22, 1, x_17); -lean::cnstr_set(x_22, 2, x_18); -lean::cnstr_set(x_22, 3, x_19); -lean::cnstr_set(x_22, 4, x_20); -x_23 = lean::box(0); -x_24 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_24, 0, x_23); -lean::cnstr_set(x_24, 1, x_22); -return x_24; +lean::cnstr_set(x_24, 0, x_1); +lean::cnstr_set(x_24, 1, x_18); +lean::cnstr_set(x_24, 2, x_19); +lean::cnstr_set(x_24, 3, x_20); +lean::cnstr_set(x_24, 4, x_21); +lean::cnstr_set(x_24, 5, x_22); +x_25 = lean::box(0); +x_26 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_26, 0, x_25); +lean::cnstr_set(x_26, 1, x_24); +return x_26; } } } -obj* l_Lean_setEnv___boxed(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_setEnv___boxed(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_Lean_setEnv(x_1, x_2, x_3); +x_4 = l_Lean_Elab_setEnv(x_1, x_2, x_3); lean::dec(x_2); return x_4; } } -obj* l_AssocList_find___main___at_Lean_elabTerm___spec__3(obj* x_1, obj* x_2) { +obj* l_AssocList_find___main___at_Lean_Elab_elabCommand___spec__3(obj* x_1, obj* x_2) { _start: { if (lean::obj_tag(x_2) == 0) @@ -14514,7 +14614,7 @@ return x_9; } } } -obj* l_HashMapImp_find___at_Lean_elabTerm___spec__2(obj* x_1, obj* x_2) { +obj* l_HashMapImp_find___at_Lean_Elab_elabCommand___spec__2(obj* x_1, obj* x_2) { _start: { obj* x_3; obj* x_4; usize x_5; usize x_6; obj* x_7; usize x_8; obj* x_9; obj* x_10; @@ -14527,282 +14627,12 @@ x_7 = lean::box_size_t(x_6); x_8 = lean::unbox_size_t(x_7); lean::dec(x_7); x_9 = lean::array_uget(x_3, x_8); -x_10 = l_AssocList_find___main___at_Lean_elabTerm___spec__3(x_2, x_9); +x_10 = l_AssocList_find___main___at_Lean_Elab_elabCommand___spec__3(x_2, x_9); lean::dec(x_9); return x_10; } } -obj* l_Lean_SMap_find___at_Lean_elabTerm___spec__1(obj* x_1, obj* x_2) { -_start: -{ -uint8 x_3; -x_3 = lean::cnstr_get_scalar(x_1, sizeof(void*)*2); -if (x_3 == 0) -{ -obj* x_4; obj* x_5; obj* x_6; -x_4 = lean::cnstr_get(x_1, 0); -x_5 = lean::cnstr_get(x_1, 1); -x_6 = l_RBNode_find___main___at_Lean_addBuiltinTermElab___spec__4(x_5, x_2); -if (lean::obj_tag(x_6) == 0) -{ -obj* x_7; -x_7 = l_HashMapImp_find___at_Lean_elabTerm___spec__2(x_4, x_2); -return x_7; -} -else -{ -return x_6; -} -} -else -{ -obj* x_8; obj* x_9; -x_8 = lean::cnstr_get(x_1, 0); -x_9 = l_HashMapImp_find___at_Lean_elabTerm___spec__2(x_8, x_2); -return x_9; -} -} -} -obj* _init_l_Lean_elabTerm___closed__1() { -_start: -{ -obj* x_1; -x_1 = lean::mk_string("term elaborator failed, unexpected syntax"); -return x_1; -} -} -obj* _init_l_Lean_elabTerm___closed__2() { -_start: -{ -obj* x_1; obj* x_2; -x_1 = l_Lean_elabTerm___closed__1; -x_2 = lean::alloc_cnstr(3, 1, 0); -lean::cnstr_set(x_2, 0, x_1); -return x_2; -} -} -obj* _init_l_Lean_elabTerm___closed__3() { -_start: -{ -obj* x_1; -x_1 = lean::mk_string("term elaborator failed, no support for syntax '"); -return x_1; -} -} -obj* l_Lean_elabTerm(obj* x_1, obj* x_2, obj* x_3) { -_start: -{ -if (lean::obj_tag(x_1) == 1) -{ -obj* x_4; uint8 x_5; -x_4 = lean::cnstr_get(x_1, 0); -lean::inc(x_4); -x_5 = !lean::is_exclusive(x_3); -if (x_5 == 0) -{ -obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; obj* x_11; obj* x_12; obj* x_13; -x_6 = lean::cnstr_get(x_3, 1); -x_7 = lean::cnstr_get(x_3, 0); -lean::dec(x_7); -x_8 = lean::box(0); -lean::inc(x_6); -lean::cnstr_set(x_3, 0, x_8); -x_9 = l_Lean_termElabAttribute; -x_10 = lean::cnstr_get(x_9, 1); -lean::inc(x_10); -x_11 = lean::cnstr_get(x_6, 0); -lean::inc(x_11); -lean::dec(x_6); -x_12 = l_Lean_PersistentEnvExtension_getState___rarg(x_10, x_11); -lean::dec(x_11); -x_13 = l_Lean_SMap_find___at_Lean_elabTerm___spec__1(x_12, x_4); -lean::dec(x_12); -if (lean::obj_tag(x_13) == 0) -{ -obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; -x_14 = l_System_FilePath_dirName___closed__1; -x_15 = l_Lean_Name_toStringWithSep___main(x_14, x_4); -x_16 = l_Lean_elabTerm___closed__3; -x_17 = lean::string_append(x_16, x_15); -lean::dec(x_15); -x_18 = l_Char_HasRepr___closed__1; -x_19 = lean::string_append(x_17, x_18); -x_20 = l_Lean_logErrorAndThrow___rarg(x_1, x_19, x_2, x_3); -lean::dec(x_2); -lean::dec(x_1); -return x_20; -} -else -{ -obj* x_21; obj* x_22; -lean::dec(x_4); -x_21 = lean::cnstr_get(x_13, 0); -lean::inc(x_21); -lean::dec(x_13); -x_22 = lean::apply_3(x_21, x_1, x_2, x_3); -return x_22; -} -} -else -{ -obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; -x_23 = lean::cnstr_get(x_3, 1); -lean::inc(x_23); -lean::dec(x_3); -x_24 = lean::box(0); -lean::inc(x_23); -x_25 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_25, 0, x_24); -lean::cnstr_set(x_25, 1, x_23); -x_26 = l_Lean_termElabAttribute; -x_27 = lean::cnstr_get(x_26, 1); -lean::inc(x_27); -x_28 = lean::cnstr_get(x_23, 0); -lean::inc(x_28); -lean::dec(x_23); -x_29 = l_Lean_PersistentEnvExtension_getState___rarg(x_27, x_28); -lean::dec(x_28); -x_30 = l_Lean_SMap_find___at_Lean_elabTerm___spec__1(x_29, x_4); -lean::dec(x_29); -if (lean::obj_tag(x_30) == 0) -{ -obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; -x_31 = l_System_FilePath_dirName___closed__1; -x_32 = l_Lean_Name_toStringWithSep___main(x_31, x_4); -x_33 = l_Lean_elabTerm___closed__3; -x_34 = lean::string_append(x_33, x_32); -lean::dec(x_32); -x_35 = l_Char_HasRepr___closed__1; -x_36 = lean::string_append(x_34, x_35); -x_37 = l_Lean_logErrorAndThrow___rarg(x_1, x_36, x_2, x_25); -lean::dec(x_2); -lean::dec(x_1); -return x_37; -} -else -{ -obj* x_38; obj* x_39; -lean::dec(x_4); -x_38 = lean::cnstr_get(x_30, 0); -lean::inc(x_38); -lean::dec(x_30); -x_39 = lean::apply_3(x_38, x_1, x_2, x_25); -return x_39; -} -} -} -else -{ -uint8 x_40; -lean::dec(x_2); -lean::dec(x_1); -x_40 = !lean::is_exclusive(x_3); -if (x_40 == 0) -{ -obj* x_41; obj* x_42; -x_41 = lean::cnstr_get(x_3, 0); -lean::dec(x_41); -x_42 = l_Lean_elabTerm___closed__2; -lean::cnstr_set_tag(x_3, 1); -lean::cnstr_set(x_3, 0, x_42); -return x_3; -} -else -{ -obj* x_43; obj* x_44; obj* x_45; -x_43 = lean::cnstr_get(x_3, 1); -lean::inc(x_43); -lean::dec(x_3); -x_44 = l_Lean_elabTerm___closed__2; -x_45 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_45, 0, x_44); -lean::cnstr_set(x_45, 1, x_43); -return x_45; -} -} -} -} -obj* l_AssocList_find___main___at_Lean_elabTerm___spec__3___boxed(obj* x_1, obj* x_2) { -_start: -{ -obj* x_3; -x_3 = l_AssocList_find___main___at_Lean_elabTerm___spec__3(x_1, x_2); -lean::dec(x_2); -lean::dec(x_1); -return x_3; -} -} -obj* l_HashMapImp_find___at_Lean_elabTerm___spec__2___boxed(obj* x_1, obj* x_2) { -_start: -{ -obj* x_3; -x_3 = l_HashMapImp_find___at_Lean_elabTerm___spec__2(x_1, x_2); -lean::dec(x_2); -lean::dec(x_1); -return x_3; -} -} -obj* l_Lean_SMap_find___at_Lean_elabTerm___spec__1___boxed(obj* x_1, obj* x_2) { -_start: -{ -obj* x_3; -x_3 = l_Lean_SMap_find___at_Lean_elabTerm___spec__1(x_1, x_2); -lean::dec(x_2); -lean::dec(x_1); -return x_3; -} -} -obj* l_AssocList_find___main___at_Lean_elabCommand___spec__3(obj* x_1, obj* x_2) { -_start: -{ -if (lean::obj_tag(x_2) == 0) -{ -obj* x_3; -x_3 = lean::box(0); -return x_3; -} -else -{ -obj* x_4; obj* x_5; obj* x_6; uint8 x_7; -x_4 = lean::cnstr_get(x_2, 0); -x_5 = lean::cnstr_get(x_2, 1); -x_6 = lean::cnstr_get(x_2, 2); -x_7 = lean_name_dec_eq(x_4, x_1); -if (x_7 == 0) -{ -x_2 = x_6; -goto _start; -} -else -{ -obj* x_9; -lean::inc(x_5); -x_9 = lean::alloc_cnstr(1, 1, 0); -lean::cnstr_set(x_9, 0, x_5); -return x_9; -} -} -} -} -obj* l_HashMapImp_find___at_Lean_elabCommand___spec__2(obj* x_1, obj* x_2) { -_start: -{ -obj* x_3; obj* x_4; usize x_5; usize x_6; obj* x_7; usize x_8; obj* x_9; obj* x_10; -x_3 = lean::cnstr_get(x_1, 1); -x_4 = lean::array_get_size(x_3); -x_5 = lean_name_hash_usize(x_2); -x_6 = lean::usize_modn(x_5, x_4); -lean::dec(x_4); -x_7 = lean::box_size_t(x_6); -x_8 = lean::unbox_size_t(x_7); -lean::dec(x_7); -x_9 = lean::array_uget(x_3, x_8); -x_10 = l_AssocList_find___main___at_Lean_elabCommand___spec__3(x_2, x_9); -lean::dec(x_9); -return x_10; -} -} -obj* l_Lean_SMap_find___at_Lean_elabCommand___spec__1(obj* x_1, obj* x_2) { +obj* l_Lean_SMap_find___at_Lean_Elab_elabCommand___spec__1(obj* x_1, obj* x_2) { _start: { uint8 x_3; @@ -14816,7 +14646,7 @@ x_6 = l_RBNode_find___main___at_Lean_addBuiltinCommandElab___spec__4(x_5, x_2); if (lean::obj_tag(x_6) == 0) { obj* x_7; -x_7 = l_HashMapImp_find___at_Lean_elabCommand___spec__2(x_4, x_2); +x_7 = l_HashMapImp_find___at_Lean_Elab_elabCommand___spec__2(x_4, x_2); return x_7; } else @@ -14828,12 +14658,12 @@ else { obj* x_8; obj* x_9; x_8 = lean::cnstr_get(x_1, 0); -x_9 = l_HashMapImp_find___at_Lean_elabCommand___spec__2(x_8, x_2); +x_9 = l_HashMapImp_find___at_Lean_Elab_elabCommand___spec__2(x_8, x_2); return x_9; } } } -obj* _init_l_Lean_elabCommand___closed__1() { +obj* _init_l_Lean_Elab_elabCommand___closed__1() { _start: { obj* x_1; @@ -14841,7 +14671,7 @@ x_1 = lean::mk_string("unexpected command"); return x_1; } } -obj* _init_l_Lean_elabCommand___closed__2() { +obj* _init_l_Lean_Elab_elabCommand___closed__2() { _start: { obj* x_1; @@ -14849,7 +14679,7 @@ x_1 = lean::mk_string("command '"); return x_1; } } -obj* _init_l_Lean_elabCommand___closed__3() { +obj* _init_l_Lean_Elab_elabCommand___closed__3() { _start: { obj* x_1; @@ -14857,7 +14687,7 @@ x_1 = lean::mk_string("' has not been implemented"); return x_1; } } -obj* l_Lean_elabCommand(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_elabCommand(obj* x_1, obj* x_2, obj* x_3) { _start: { if (lean::obj_tag(x_1) == 1) @@ -14883,19 +14713,19 @@ lean::inc(x_11); lean::dec(x_6); x_12 = l_Lean_PersistentEnvExtension_getState___rarg(x_10, x_11); lean::dec(x_11); -x_13 = l_Lean_SMap_find___at_Lean_elabCommand___spec__1(x_12, x_4); +x_13 = l_Lean_SMap_find___at_Lean_Elab_elabCommand___spec__1(x_12, x_4); lean::dec(x_12); if (lean::obj_tag(x_13) == 0) { obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; x_14 = l_System_FilePath_dirName___closed__1; x_15 = l_Lean_Name_toStringWithSep___main(x_14, x_4); -x_16 = l_Lean_elabCommand___closed__2; +x_16 = l_Lean_Elab_elabCommand___closed__2; x_17 = lean::string_append(x_16, x_15); lean::dec(x_15); -x_18 = l_Lean_elabCommand___closed__3; +x_18 = l_Lean_Elab_elabCommand___closed__3; x_19 = lean::string_append(x_17, x_18); -x_20 = l_Lean_logError(x_1, x_19, x_2, x_3); +x_20 = l_Lean_Elab_logError___rarg(x_1, x_19, x_2, x_3); lean::dec(x_2); lean::dec(x_1); return x_20; @@ -14930,19 +14760,19 @@ lean::inc(x_28); lean::dec(x_23); x_29 = l_Lean_PersistentEnvExtension_getState___rarg(x_27, x_28); lean::dec(x_28); -x_30 = l_Lean_SMap_find___at_Lean_elabCommand___spec__1(x_29, x_4); +x_30 = l_Lean_SMap_find___at_Lean_Elab_elabCommand___spec__1(x_29, x_4); lean::dec(x_29); if (lean::obj_tag(x_30) == 0) { obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; x_31 = l_System_FilePath_dirName___closed__1; x_32 = l_Lean_Name_toStringWithSep___main(x_31, x_4); -x_33 = l_Lean_elabCommand___closed__2; +x_33 = l_Lean_Elab_elabCommand___closed__2; x_34 = lean::string_append(x_33, x_32); lean::dec(x_32); -x_35 = l_Lean_elabCommand___closed__3; +x_35 = l_Lean_Elab_elabCommand___closed__3; x_36 = lean::string_append(x_34, x_35); -x_37 = l_Lean_logError(x_1, x_36, x_2, x_25); +x_37 = l_Lean_Elab_logError___rarg(x_1, x_36, x_2, x_25); lean::dec(x_2); lean::dec(x_1); return x_37; @@ -14963,44 +14793,44 @@ else { obj* x_40; obj* x_41; lean::dec(x_1); -x_40 = l_Lean_elabCommand___closed__1; -x_41 = l_Lean_logErrorUsingCmdPos(x_40, x_2, x_3); +x_40 = l_Lean_Elab_elabCommand___closed__1; +x_41 = l_Lean_Elab_logErrorUsingCmdPos(x_40, x_2, x_3); lean::dec(x_2); return x_41; } } } -obj* l_AssocList_find___main___at_Lean_elabCommand___spec__3___boxed(obj* x_1, obj* x_2) { +obj* l_AssocList_find___main___at_Lean_Elab_elabCommand___spec__3___boxed(obj* x_1, obj* x_2) { _start: { obj* x_3; -x_3 = l_AssocList_find___main___at_Lean_elabCommand___spec__3(x_1, x_2); +x_3 = l_AssocList_find___main___at_Lean_Elab_elabCommand___spec__3(x_1, x_2); lean::dec(x_2); lean::dec(x_1); return x_3; } } -obj* l_HashMapImp_find___at_Lean_elabCommand___spec__2___boxed(obj* x_1, obj* x_2) { +obj* l_HashMapImp_find___at_Lean_Elab_elabCommand___spec__2___boxed(obj* x_1, obj* x_2) { _start: { obj* x_3; -x_3 = l_HashMapImp_find___at_Lean_elabCommand___spec__2(x_1, x_2); +x_3 = l_HashMapImp_find___at_Lean_Elab_elabCommand___spec__2(x_1, x_2); lean::dec(x_2); lean::dec(x_1); return x_3; } } -obj* l_Lean_SMap_find___at_Lean_elabCommand___spec__1___boxed(obj* x_1, obj* x_2) { +obj* l_Lean_SMap_find___at_Lean_Elab_elabCommand___spec__1___boxed(obj* x_1, obj* x_2) { _start: { obj* x_3; -x_3 = l_Lean_SMap_find___at_Lean_elabCommand___spec__1(x_1, x_2); +x_3 = l_Lean_SMap_find___at_Lean_Elab_elabCommand___spec__1(x_1, x_2); lean::dec(x_2); lean::dec(x_1); return x_3; } } -obj* l_Lean_getElabContext(obj* x_1, obj* x_2) { +obj* l_Lean_Elab_getElabContext(obj* x_1, obj* x_2) { _start: { uint8 x_3; @@ -15040,20 +14870,20 @@ return x_12; } } } -obj* l_Lean_getElabContext___boxed(obj* x_1, obj* x_2) { +obj* l_Lean_Elab_getElabContext___boxed(obj* x_1, obj* x_2) { _start: { obj* x_3; -x_3 = l_Lean_getElabContext(x_1, x_2); +x_3 = l_Lean_Elab_getElabContext(x_1, x_2); lean::dec(x_1); return x_3; } } -obj* l_Lean_runElab___rarg(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_runElab___rarg(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_Lean_getElabContext(x_2, x_3); +x_4 = l_Lean_Elab_getElabContext(x_2, x_3); if (lean::obj_tag(x_4) == 0) { uint8 x_5; @@ -15310,28 +15140,28 @@ return x_58; } } } -obj* l_Lean_runElab(obj* x_1) { +obj* l_Lean_Elab_runElab(obj* x_1) { _start: { obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_runElab___rarg___boxed), 3, 0); +x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_Elab_runElab___rarg___boxed), 3, 0); return x_2; } } -obj* l_Lean_runElab___rarg___boxed(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_runElab___rarg___boxed(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_Lean_runElab___rarg(x_1, x_2, x_3); +x_4 = l_Lean_Elab_runElab___rarg(x_1, x_2, x_3); lean::dec(x_2); return x_4; } } -obj* l_Lean_runElab___at_Lean_elabCommandAtFrontend___spec__1(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_runElab___at_Lean_Elab_elabCommandAtFrontend___spec__1(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_Lean_getElabContext(x_2, x_3); +x_4 = l_Lean_Elab_getElabContext(x_2, x_3); if (lean::obj_tag(x_4) == 0) { uint8 x_5; @@ -15349,7 +15179,7 @@ x_9 = lean::cnstr_get(x_6, 0); x_10 = lean::box(0); lean::cnstr_set(x_4, 1, x_9); lean::cnstr_set(x_4, 0, x_10); -x_11 = l_Lean_elabCommand(x_1, x_8, x_4); +x_11 = l_Lean_Elab_elabCommand(x_1, x_8, x_4); if (lean::obj_tag(x_11) == 0) { uint8 x_12; @@ -15417,7 +15247,7 @@ lean::dec(x_6); x_25 = lean::box(0); lean::cnstr_set(x_4, 1, x_23); lean::cnstr_set(x_4, 0, x_25); -x_26 = l_Lean_elabCommand(x_1, x_22, x_4); +x_26 = l_Lean_Elab_elabCommand(x_1, x_22, x_4); if (lean::obj_tag(x_26) == 0) { obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; @@ -15498,7 +15328,7 @@ x_42 = lean::box(0); x_43 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_43, 0, x_42); lean::cnstr_set(x_43, 1, x_39); -x_44 = l_Lean_elabCommand(x_1, x_38, x_43); +x_44 = l_Lean_Elab_elabCommand(x_1, x_38, x_43); if (lean::obj_tag(x_44) == 0) { obj* x_45; obj* x_46; obj* x_47; obj* x_48; obj* x_49; @@ -15588,33 +15418,33 @@ return x_58; } } } -obj* l_Lean_elabCommandAtFrontend(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_elabCommandAtFrontend(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_Lean_runElab___at_Lean_elabCommandAtFrontend___spec__1(x_1, x_2, x_3); +x_4 = l_Lean_Elab_runElab___at_Lean_Elab_elabCommandAtFrontend___spec__1(x_1, x_2, x_3); return x_4; } } -obj* l_Lean_runElab___at_Lean_elabCommandAtFrontend___spec__1___boxed(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_runElab___at_Lean_Elab_elabCommandAtFrontend___spec__1___boxed(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_Lean_runElab___at_Lean_elabCommandAtFrontend___spec__1(x_1, x_2, x_3); +x_4 = l_Lean_Elab_runElab___at_Lean_Elab_elabCommandAtFrontend___spec__1(x_1, x_2, x_3); lean::dec(x_2); return x_4; } } -obj* l_Lean_elabCommandAtFrontend___boxed(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_elabCommandAtFrontend___boxed(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_Lean_elabCommandAtFrontend(x_1, x_2, x_3); +x_4 = l_Lean_Elab_elabCommandAtFrontend(x_1, x_2, x_3); lean::dec(x_2); return x_4; } } -obj* l_Lean_updateCmdPos___rarg(obj* x_1) { +obj* l_Lean_Elab_updateCmdPos___rarg(obj* x_1) { _start: { uint8 x_2; @@ -15646,165 +15476,176 @@ return x_1; } else { -obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; +obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; x_12 = lean::cnstr_get(x_3, 1); x_13 = lean::cnstr_get(x_6, 0); x_14 = lean::cnstr_get(x_6, 1); x_15 = lean::cnstr_get(x_6, 3); x_16 = lean::cnstr_get(x_6, 4); +x_17 = lean::cnstr_get(x_6, 5); +lean::inc(x_17); lean::inc(x_16); lean::inc(x_15); lean::inc(x_14); lean::inc(x_13); lean::dec(x_6); -x_17 = lean::cnstr_get(x_12, 0); -lean::inc(x_17); -x_18 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_18, 0, x_13); -lean::cnstr_set(x_18, 1, x_14); -lean::cnstr_set(x_18, 2, x_17); -lean::cnstr_set(x_18, 3, x_15); -lean::cnstr_set(x_18, 4, x_16); -lean::cnstr_set(x_3, 0, x_18); -x_19 = lean::box(0); -lean::cnstr_set(x_1, 0, x_19); +x_18 = lean::cnstr_get(x_12, 0); +lean::inc(x_18); +x_19 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_19, 0, x_13); +lean::cnstr_set(x_19, 1, x_14); +lean::cnstr_set(x_19, 2, x_18); +lean::cnstr_set(x_19, 3, x_15); +lean::cnstr_set(x_19, 4, x_16); +lean::cnstr_set(x_19, 5, x_17); +lean::cnstr_set(x_3, 0, x_19); +x_20 = lean::box(0); +lean::cnstr_set(x_1, 0, x_20); return x_1; } } else { -obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; -x_20 = lean::cnstr_get(x_3, 0); -x_21 = lean::cnstr_get(x_3, 1); -lean::inc(x_21); -lean::inc(x_20); -lean::dec(x_3); -x_22 = lean::cnstr_get(x_20, 0); +obj* x_21; obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; +x_21 = lean::cnstr_get(x_3, 0); +x_22 = lean::cnstr_get(x_3, 1); lean::inc(x_22); -x_23 = lean::cnstr_get(x_20, 1); +lean::inc(x_21); +lean::dec(x_3); +x_23 = lean::cnstr_get(x_21, 0); lean::inc(x_23); -x_24 = lean::cnstr_get(x_20, 3); +x_24 = lean::cnstr_get(x_21, 1); lean::inc(x_24); -x_25 = lean::cnstr_get(x_20, 4); +x_25 = lean::cnstr_get(x_21, 3); lean::inc(x_25); -if (lean::is_exclusive(x_20)) { - lean::cnstr_release(x_20, 0); - lean::cnstr_release(x_20, 1); - lean::cnstr_release(x_20, 2); - lean::cnstr_release(x_20, 3); - lean::cnstr_release(x_20, 4); - x_26 = x_20; -} else { - lean::dec_ref(x_20); - x_26 = lean::box(0); -} -x_27 = lean::cnstr_get(x_21, 0); +x_26 = lean::cnstr_get(x_21, 4); +lean::inc(x_26); +x_27 = lean::cnstr_get(x_21, 5); lean::inc(x_27); -if (lean::is_scalar(x_26)) { - x_28 = lean::alloc_cnstr(0, 5, 0); +if (lean::is_exclusive(x_21)) { + lean::cnstr_release(x_21, 0); + lean::cnstr_release(x_21, 1); + lean::cnstr_release(x_21, 2); + lean::cnstr_release(x_21, 3); + lean::cnstr_release(x_21, 4); + lean::cnstr_release(x_21, 5); + x_28 = x_21; } else { - x_28 = x_26; + lean::dec_ref(x_21); + x_28 = lean::box(0); } -lean::cnstr_set(x_28, 0, x_22); -lean::cnstr_set(x_28, 1, x_23); -lean::cnstr_set(x_28, 2, x_27); -lean::cnstr_set(x_28, 3, x_24); -lean::cnstr_set(x_28, 4, x_25); -x_29 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_29, 0, x_28); -lean::cnstr_set(x_29, 1, x_21); -x_30 = lean::box(0); -lean::cnstr_set(x_1, 1, x_29); -lean::cnstr_set(x_1, 0, x_30); +x_29 = lean::cnstr_get(x_22, 0); +lean::inc(x_29); +if (lean::is_scalar(x_28)) { + x_30 = lean::alloc_cnstr(0, 6, 0); +} else { + x_30 = x_28; +} +lean::cnstr_set(x_30, 0, x_23); +lean::cnstr_set(x_30, 1, x_24); +lean::cnstr_set(x_30, 2, x_29); +lean::cnstr_set(x_30, 3, x_25); +lean::cnstr_set(x_30, 4, x_26); +lean::cnstr_set(x_30, 5, x_27); +x_31 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_31, 0, x_30); +lean::cnstr_set(x_31, 1, x_22); +x_32 = lean::box(0); +lean::cnstr_set(x_1, 1, x_31); +lean::cnstr_set(x_1, 0, x_32); return x_1; } } else { -obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; obj* x_39; obj* x_40; obj* x_41; obj* x_42; obj* x_43; obj* x_44; -x_31 = lean::cnstr_get(x_1, 1); -lean::inc(x_31); -lean::dec(x_1); -x_32 = lean::cnstr_get(x_31, 0); -lean::inc(x_32); -x_33 = lean::cnstr_get(x_31, 1); +obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; obj* x_39; obj* x_40; obj* x_41; obj* x_42; obj* x_43; obj* x_44; obj* x_45; obj* x_46; obj* x_47; +x_33 = lean::cnstr_get(x_1, 1); lean::inc(x_33); -if (lean::is_exclusive(x_31)) { - lean::cnstr_release(x_31, 0); - lean::cnstr_release(x_31, 1); - x_34 = x_31; -} else { - lean::dec_ref(x_31); - x_34 = lean::box(0); -} -x_35 = lean::cnstr_get(x_32, 0); +lean::dec(x_1); +x_34 = lean::cnstr_get(x_33, 0); +lean::inc(x_34); +x_35 = lean::cnstr_get(x_33, 1); lean::inc(x_35); -x_36 = lean::cnstr_get(x_32, 1); -lean::inc(x_36); -x_37 = lean::cnstr_get(x_32, 3); +if (lean::is_exclusive(x_33)) { + lean::cnstr_release(x_33, 0); + lean::cnstr_release(x_33, 1); + x_36 = x_33; +} else { + lean::dec_ref(x_33); + x_36 = lean::box(0); +} +x_37 = lean::cnstr_get(x_34, 0); lean::inc(x_37); -x_38 = lean::cnstr_get(x_32, 4); +x_38 = lean::cnstr_get(x_34, 1); lean::inc(x_38); -if (lean::is_exclusive(x_32)) { - lean::cnstr_release(x_32, 0); - lean::cnstr_release(x_32, 1); - lean::cnstr_release(x_32, 2); - lean::cnstr_release(x_32, 3); - lean::cnstr_release(x_32, 4); - x_39 = x_32; -} else { - lean::dec_ref(x_32); - x_39 = lean::box(0); -} -x_40 = lean::cnstr_get(x_33, 0); +x_39 = lean::cnstr_get(x_34, 3); +lean::inc(x_39); +x_40 = lean::cnstr_get(x_34, 4); lean::inc(x_40); -if (lean::is_scalar(x_39)) { - x_41 = lean::alloc_cnstr(0, 5, 0); -} else { - x_41 = x_39; -} -lean::cnstr_set(x_41, 0, x_35); -lean::cnstr_set(x_41, 1, x_36); -lean::cnstr_set(x_41, 2, x_40); -lean::cnstr_set(x_41, 3, x_37); -lean::cnstr_set(x_41, 4, x_38); -if (lean::is_scalar(x_34)) { - x_42 = lean::alloc_cnstr(0, 2, 0); -} else { +x_41 = lean::cnstr_get(x_34, 5); +lean::inc(x_41); +if (lean::is_exclusive(x_34)) { + lean::cnstr_release(x_34, 0); + lean::cnstr_release(x_34, 1); + lean::cnstr_release(x_34, 2); + lean::cnstr_release(x_34, 3); + lean::cnstr_release(x_34, 4); + lean::cnstr_release(x_34, 5); x_42 = x_34; +} else { + lean::dec_ref(x_34); + x_42 = lean::box(0); } -lean::cnstr_set(x_42, 0, x_41); -lean::cnstr_set(x_42, 1, x_33); -x_43 = lean::box(0); -x_44 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_44, 0, x_43); -lean::cnstr_set(x_44, 1, x_42); -return x_44; +x_43 = lean::cnstr_get(x_35, 0); +lean::inc(x_43); +if (lean::is_scalar(x_42)) { + x_44 = lean::alloc_cnstr(0, 6, 0); +} else { + x_44 = x_42; +} +lean::cnstr_set(x_44, 0, x_37); +lean::cnstr_set(x_44, 1, x_38); +lean::cnstr_set(x_44, 2, x_43); +lean::cnstr_set(x_44, 3, x_39); +lean::cnstr_set(x_44, 4, x_40); +lean::cnstr_set(x_44, 5, x_41); +if (lean::is_scalar(x_36)) { + x_45 = lean::alloc_cnstr(0, 2, 0); +} else { + x_45 = x_36; +} +lean::cnstr_set(x_45, 0, x_44); +lean::cnstr_set(x_45, 1, x_35); +x_46 = lean::box(0); +x_47 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_47, 0, x_46); +lean::cnstr_set(x_47, 1, x_45); +return x_47; } } } -obj* l_Lean_updateCmdPos(obj* x_1) { +obj* l_Lean_Elab_updateCmdPos(obj* x_1) { _start: { obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_updateCmdPos___rarg), 1, 0); +x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_Elab_updateCmdPos___rarg), 1, 0); return x_2; } } -obj* l_Lean_updateCmdPos___boxed(obj* x_1) { +obj* l_Lean_Elab_updateCmdPos___boxed(obj* x_1) { _start: { obj* x_2; -x_2 = l_Lean_updateCmdPos(x_1); +x_2 = l_Lean_Elab_updateCmdPos(x_1); lean::dec(x_1); return x_2; } } -obj* l_Lean_runElab___at_Lean_processCommand___spec__1(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_runElab___at_Lean_Elab_processCommand___spec__1(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_Lean_getElabContext(x_2, x_3); +x_4 = l_Lean_Elab_getElabContext(x_2, x_3); if (lean::obj_tag(x_4) == 0) { uint8 x_5; @@ -15822,7 +15663,7 @@ x_9 = lean::cnstr_get(x_6, 0); x_10 = lean::box(0); lean::cnstr_set(x_4, 1, x_9); lean::cnstr_set(x_4, 0, x_10); -x_11 = l_Lean_logElabException(x_1, x_8, x_4); +x_11 = l_Lean_Elab_logElabException(x_1, x_8, x_4); lean::dec(x_8); if (lean::obj_tag(x_11) == 0) { @@ -15891,7 +15732,7 @@ lean::dec(x_6); x_25 = lean::box(0); lean::cnstr_set(x_4, 1, x_23); lean::cnstr_set(x_4, 0, x_25); -x_26 = l_Lean_logElabException(x_1, x_22, x_4); +x_26 = l_Lean_Elab_logElabException(x_1, x_22, x_4); lean::dec(x_22); if (lean::obj_tag(x_26) == 0) { @@ -15973,7 +15814,7 @@ x_42 = lean::box(0); x_43 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_43, 0, x_42); lean::cnstr_set(x_43, 1, x_39); -x_44 = l_Lean_logElabException(x_1, x_38, x_43); +x_44 = l_Lean_Elab_logElabException(x_1, x_38, x_43); lean::dec(x_38); if (lean::obj_tag(x_44) == 0) { @@ -16064,11 +15905,11 @@ return x_58; } } } -obj* l_Lean_processCommand(obj* x_1, obj* x_2) { +obj* l_Lean_Elab_processCommand(obj* x_1, obj* x_2) { _start: { obj* x_3; -x_3 = l_Lean_updateCmdPos___rarg(x_2); +x_3 = l_Lean_Elab_updateCmdPos___rarg(x_2); if (lean::obj_tag(x_3) == 0) { uint8 x_4; @@ -16120,7 +15961,7 @@ if (x_20 == 0) { obj* x_21; lean::dec(x_17); -x_21 = l_Lean_runElab___at_Lean_elabCommandAtFrontend___spec__1(x_14, x_1, x_3); +x_21 = l_Lean_Elab_runElab___at_Lean_Elab_elabCommandAtFrontend___spec__1(x_14, x_1, x_3); if (lean::obj_tag(x_21) == 0) { uint8 x_22; @@ -16160,7 +16001,7 @@ obj* x_31; obj* x_32; x_31 = lean::cnstr_get(x_21, 0); lean::cnstr_set_tag(x_21, 0); lean::cnstr_set(x_21, 0, x_18); -x_32 = l_Lean_runElab___at_Lean_processCommand___spec__1(x_31, x_1, x_21); +x_32 = l_Lean_Elab_runElab___at_Lean_Elab_processCommand___spec__1(x_31, x_1, x_21); lean::dec(x_1); if (lean::obj_tag(x_32) == 0) { @@ -16224,7 +16065,7 @@ lean::dec(x_21); x_47 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_47, 0, x_18); lean::cnstr_set(x_47, 1, x_46); -x_48 = l_Lean_runElab___at_Lean_processCommand___spec__1(x_45, x_1, x_47); +x_48 = l_Lean_Elab_runElab___at_Lean_Elab_processCommand___spec__1(x_45, x_1, x_47); lean::dec(x_1); if (lean::obj_tag(x_48) == 0) { @@ -16307,12 +16148,14 @@ return x_63; } else { -obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; obj* x_73; obj* x_74; obj* x_75; obj* x_76; uint8 x_77; +obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; uint8 x_78; x_64 = lean::cnstr_get(x_7, 0); x_65 = lean::cnstr_get(x_7, 1); x_66 = lean::cnstr_get(x_7, 2); x_67 = lean::cnstr_get(x_7, 3); x_68 = lean::cnstr_get(x_7, 4); +x_69 = lean::cnstr_get(x_7, 5); +lean::inc(x_69); lean::inc(x_68); lean::inc(x_67); lean::inc(x_66); @@ -16321,411 +16164,416 @@ lean::inc(x_64); lean::dec(x_7); lean::inc(x_1); lean::inc(x_64); -x_69 = l_Lean_Parser_parseCommand___main(x_64, x_1, x_8, x_65); -x_70 = lean::cnstr_get(x_69, 1); -lean::inc(x_70); -x_71 = lean::cnstr_get(x_69, 0); +x_70 = l_Lean_Parser_parseCommand___main(x_64, x_1, x_8, x_65); +x_71 = lean::cnstr_get(x_70, 1); lean::inc(x_71); -lean::dec(x_69); x_72 = lean::cnstr_get(x_70, 0); lean::inc(x_72); -x_73 = lean::cnstr_get(x_70, 1); -lean::inc(x_73); lean::dec(x_70); -x_74 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_74, 0, x_64); -lean::cnstr_set(x_74, 1, x_73); -lean::cnstr_set(x_74, 2, x_66); -lean::cnstr_set(x_74, 3, x_67); -lean::cnstr_set(x_74, 4, x_68); -x_75 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_75, 0, x_74); -lean::cnstr_set(x_75, 1, x_72); -x_76 = lean::box(0); -lean::inc(x_75); -lean::cnstr_set(x_3, 1, x_75); -lean::cnstr_set(x_3, 0, x_76); -x_77 = l_Lean_Parser_isEOI(x_71); -if (x_77 == 0) -{ -uint8 x_78; -x_78 = l_Lean_Parser_isExitCommand(x_71); +x_73 = lean::cnstr_get(x_71, 0); +lean::inc(x_73); +x_74 = lean::cnstr_get(x_71, 1); +lean::inc(x_74); +lean::dec(x_71); +x_75 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_75, 0, x_64); +lean::cnstr_set(x_75, 1, x_74); +lean::cnstr_set(x_75, 2, x_66); +lean::cnstr_set(x_75, 3, x_67); +lean::cnstr_set(x_75, 4, x_68); +lean::cnstr_set(x_75, 5, x_69); +x_76 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_76, 0, x_75); +lean::cnstr_set(x_76, 1, x_73); +x_77 = lean::box(0); +lean::inc(x_76); +lean::cnstr_set(x_3, 1, x_76); +lean::cnstr_set(x_3, 0, x_77); +x_78 = l_Lean_Parser_isEOI(x_72); if (x_78 == 0) { -obj* x_79; -lean::dec(x_75); -x_79 = l_Lean_runElab___at_Lean_elabCommandAtFrontend___spec__1(x_71, x_1, x_3); -if (lean::obj_tag(x_79) == 0) +uint8 x_79; +x_79 = l_Lean_Parser_isExitCommand(x_72); +if (x_79 == 0) { -obj* x_80; obj* x_81; uint8 x_82; obj* x_83; obj* x_84; +obj* x_80; +lean::dec(x_76); +x_80 = l_Lean_Elab_runElab___at_Lean_Elab_elabCommandAtFrontend___spec__1(x_72, x_1, x_3); +if (lean::obj_tag(x_80) == 0) +{ +obj* x_81; obj* x_82; uint8 x_83; obj* x_84; obj* x_85; lean::dec(x_1); -x_80 = lean::cnstr_get(x_79, 1); -lean::inc(x_80); -if (lean::is_exclusive(x_79)) { - lean::cnstr_release(x_79, 0); - lean::cnstr_release(x_79, 1); - x_81 = x_79; +x_81 = lean::cnstr_get(x_80, 1); +lean::inc(x_81); +if (lean::is_exclusive(x_80)) { + lean::cnstr_release(x_80, 0); + lean::cnstr_release(x_80, 1); + x_82 = x_80; } else { - lean::dec_ref(x_79); - x_81 = lean::box(0); + lean::dec_ref(x_80); + x_82 = lean::box(0); } -x_82 = 0; -x_83 = lean::box(x_82); -if (lean::is_scalar(x_81)) { - x_84 = lean::alloc_cnstr(0, 2, 0); +x_83 = 0; +x_84 = lean::box(x_83); +if (lean::is_scalar(x_82)) { + x_85 = lean::alloc_cnstr(0, 2, 0); } else { - x_84 = x_81; + x_85 = x_82; } -lean::cnstr_set(x_84, 0, x_83); -lean::cnstr_set(x_84, 1, x_80); -return x_84; +lean::cnstr_set(x_85, 0, x_84); +lean::cnstr_set(x_85, 1, x_81); +return x_85; } else { -obj* x_85; obj* x_86; obj* x_87; obj* x_88; obj* x_89; -x_85 = lean::cnstr_get(x_79, 0); -lean::inc(x_85); -x_86 = lean::cnstr_get(x_79, 1); +obj* x_86; obj* x_87; obj* x_88; obj* x_89; obj* x_90; +x_86 = lean::cnstr_get(x_80, 0); lean::inc(x_86); -if (lean::is_exclusive(x_79)) { - lean::cnstr_release(x_79, 0); - lean::cnstr_release(x_79, 1); - x_87 = x_79; +x_87 = lean::cnstr_get(x_80, 1); +lean::inc(x_87); +if (lean::is_exclusive(x_80)) { + lean::cnstr_release(x_80, 0); + lean::cnstr_release(x_80, 1); + x_88 = x_80; } else { - lean::dec_ref(x_79); - x_87 = lean::box(0); + lean::dec_ref(x_80); + x_88 = lean::box(0); } -if (lean::is_scalar(x_87)) { - x_88 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_88)) { + x_89 = lean::alloc_cnstr(0, 2, 0); } else { - x_88 = x_87; - lean::cnstr_set_tag(x_88, 0); + x_89 = x_88; + lean::cnstr_set_tag(x_89, 0); } -lean::cnstr_set(x_88, 0, x_76); -lean::cnstr_set(x_88, 1, x_86); -x_89 = l_Lean_runElab___at_Lean_processCommand___spec__1(x_85, x_1, x_88); +lean::cnstr_set(x_89, 0, x_77); +lean::cnstr_set(x_89, 1, x_87); +x_90 = l_Lean_Elab_runElab___at_Lean_Elab_processCommand___spec__1(x_86, x_1, x_89); lean::dec(x_1); -if (lean::obj_tag(x_89) == 0) +if (lean::obj_tag(x_90) == 0) { -obj* x_90; obj* x_91; uint8 x_92; obj* x_93; obj* x_94; -x_90 = lean::cnstr_get(x_89, 1); -lean::inc(x_90); -if (lean::is_exclusive(x_89)) { - lean::cnstr_release(x_89, 0); - lean::cnstr_release(x_89, 1); - x_91 = x_89; +obj* x_91; obj* x_92; uint8 x_93; obj* x_94; obj* x_95; +x_91 = lean::cnstr_get(x_90, 1); +lean::inc(x_91); +if (lean::is_exclusive(x_90)) { + lean::cnstr_release(x_90, 0); + lean::cnstr_release(x_90, 1); + x_92 = x_90; } else { - lean::dec_ref(x_89); - x_91 = lean::box(0); + lean::dec_ref(x_90); + x_92 = lean::box(0); } -x_92 = 0; -x_93 = lean::box(x_92); -if (lean::is_scalar(x_91)) { - x_94 = lean::alloc_cnstr(0, 2, 0); +x_93 = 0; +x_94 = lean::box(x_93); +if (lean::is_scalar(x_92)) { + x_95 = lean::alloc_cnstr(0, 2, 0); } else { - x_94 = x_91; + x_95 = x_92; } -lean::cnstr_set(x_94, 0, x_93); -lean::cnstr_set(x_94, 1, x_90); -return x_94; +lean::cnstr_set(x_95, 0, x_94); +lean::cnstr_set(x_95, 1, x_91); +return x_95; } else { -obj* x_95; obj* x_96; obj* x_97; obj* x_98; -x_95 = lean::cnstr_get(x_89, 0); -lean::inc(x_95); -x_96 = lean::cnstr_get(x_89, 1); +obj* x_96; obj* x_97; obj* x_98; obj* x_99; +x_96 = lean::cnstr_get(x_90, 0); lean::inc(x_96); -if (lean::is_exclusive(x_89)) { - lean::cnstr_release(x_89, 0); - lean::cnstr_release(x_89, 1); - x_97 = x_89; +x_97 = lean::cnstr_get(x_90, 1); +lean::inc(x_97); +if (lean::is_exclusive(x_90)) { + lean::cnstr_release(x_90, 0); + lean::cnstr_release(x_90, 1); + x_98 = x_90; } else { - lean::dec_ref(x_89); - x_97 = lean::box(0); + lean::dec_ref(x_90); + x_98 = lean::box(0); } -if (lean::is_scalar(x_97)) { - x_98 = lean::alloc_cnstr(1, 2, 0); +if (lean::is_scalar(x_98)) { + x_99 = lean::alloc_cnstr(1, 2, 0); } else { - x_98 = x_97; + x_99 = x_98; } -lean::cnstr_set(x_98, 0, x_95); -lean::cnstr_set(x_98, 1, x_96); -return x_98; +lean::cnstr_set(x_99, 0, x_96); +lean::cnstr_set(x_99, 1, x_97); +return x_99; } } } else { -uint8 x_99; obj* x_100; obj* x_101; +uint8 x_100; obj* x_101; obj* x_102; lean::dec(x_3); -lean::dec(x_71); +lean::dec(x_72); lean::dec(x_1); -x_99 = 1; -x_100 = lean::box(x_99); -x_101 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_101, 0, x_100); -lean::cnstr_set(x_101, 1, x_75); -return x_101; +x_100 = 1; +x_101 = lean::box(x_100); +x_102 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_102, 0, x_101); +lean::cnstr_set(x_102, 1, x_76); +return x_102; } } else { -uint8 x_102; obj* x_103; obj* x_104; +uint8 x_103; obj* x_104; obj* x_105; lean::dec(x_3); -lean::dec(x_71); +lean::dec(x_72); lean::dec(x_1); -x_102 = 1; -x_103 = lean::box(x_102); -x_104 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_104, 0, x_103); -lean::cnstr_set(x_104, 1, x_75); -return x_104; +x_103 = 1; +x_104 = lean::box(x_103); +x_105 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_105, 0, x_104); +lean::cnstr_set(x_105, 1, x_76); +return x_105; } } } else { -obj* x_105; obj* x_106; obj* x_107; obj* x_108; obj* x_109; obj* x_110; obj* x_111; obj* x_112; obj* x_113; obj* x_114; obj* x_115; obj* x_116; obj* x_117; obj* x_118; obj* x_119; obj* x_120; obj* x_121; obj* x_122; uint8 x_123; -x_105 = lean::cnstr_get(x_3, 1); -lean::inc(x_105); -lean::dec(x_3); -x_106 = lean::cnstr_get(x_105, 0); +obj* x_106; obj* x_107; obj* x_108; obj* x_109; obj* x_110; obj* x_111; obj* x_112; obj* x_113; obj* x_114; obj* x_115; obj* x_116; obj* x_117; obj* x_118; obj* x_119; obj* x_120; obj* x_121; obj* x_122; obj* x_123; obj* x_124; uint8 x_125; +x_106 = lean::cnstr_get(x_3, 1); lean::inc(x_106); -x_107 = lean::cnstr_get(x_105, 1); +lean::dec(x_3); +x_107 = lean::cnstr_get(x_106, 0); lean::inc(x_107); -lean::dec(x_105); -x_108 = lean::cnstr_get(x_106, 0); +x_108 = lean::cnstr_get(x_106, 1); lean::inc(x_108); -x_109 = lean::cnstr_get(x_106, 1); +lean::dec(x_106); +x_109 = lean::cnstr_get(x_107, 0); lean::inc(x_109); -x_110 = lean::cnstr_get(x_106, 2); +x_110 = lean::cnstr_get(x_107, 1); lean::inc(x_110); -x_111 = lean::cnstr_get(x_106, 3); +x_111 = lean::cnstr_get(x_107, 2); lean::inc(x_111); -x_112 = lean::cnstr_get(x_106, 4); +x_112 = lean::cnstr_get(x_107, 3); lean::inc(x_112); -if (lean::is_exclusive(x_106)) { - lean::cnstr_release(x_106, 0); - lean::cnstr_release(x_106, 1); - lean::cnstr_release(x_106, 2); - lean::cnstr_release(x_106, 3); - lean::cnstr_release(x_106, 4); - x_113 = x_106; +x_113 = lean::cnstr_get(x_107, 4); +lean::inc(x_113); +x_114 = lean::cnstr_get(x_107, 5); +lean::inc(x_114); +if (lean::is_exclusive(x_107)) { + lean::cnstr_release(x_107, 0); + lean::cnstr_release(x_107, 1); + lean::cnstr_release(x_107, 2); + lean::cnstr_release(x_107, 3); + lean::cnstr_release(x_107, 4); + lean::cnstr_release(x_107, 5); + x_115 = x_107; } else { - lean::dec_ref(x_106); - x_113 = lean::box(0); + lean::dec_ref(x_107); + x_115 = lean::box(0); } lean::inc(x_1); -lean::inc(x_108); -x_114 = l_Lean_Parser_parseCommand___main(x_108, x_1, x_107, x_109); -x_115 = lean::cnstr_get(x_114, 1); -lean::inc(x_115); -x_116 = lean::cnstr_get(x_114, 0); -lean::inc(x_116); -lean::dec(x_114); -x_117 = lean::cnstr_get(x_115, 0); +lean::inc(x_109); +x_116 = l_Lean_Parser_parseCommand___main(x_109, x_1, x_108, x_110); +x_117 = lean::cnstr_get(x_116, 1); lean::inc(x_117); -x_118 = lean::cnstr_get(x_115, 1); +x_118 = lean::cnstr_get(x_116, 0); lean::inc(x_118); -lean::dec(x_115); -if (lean::is_scalar(x_113)) { - x_119 = lean::alloc_cnstr(0, 5, 0); -} else { - x_119 = x_113; -} -lean::cnstr_set(x_119, 0, x_108); -lean::cnstr_set(x_119, 1, x_118); -lean::cnstr_set(x_119, 2, x_110); -lean::cnstr_set(x_119, 3, x_111); -lean::cnstr_set(x_119, 4, x_112); -x_120 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_120, 0, x_119); -lean::cnstr_set(x_120, 1, x_117); -x_121 = lean::box(0); +lean::dec(x_116); +x_119 = lean::cnstr_get(x_117, 0); +lean::inc(x_119); +x_120 = lean::cnstr_get(x_117, 1); lean::inc(x_120); +lean::dec(x_117); +if (lean::is_scalar(x_115)) { + x_121 = lean::alloc_cnstr(0, 6, 0); +} else { + x_121 = x_115; +} +lean::cnstr_set(x_121, 0, x_109); +lean::cnstr_set(x_121, 1, x_120); +lean::cnstr_set(x_121, 2, x_111); +lean::cnstr_set(x_121, 3, x_112); +lean::cnstr_set(x_121, 4, x_113); +lean::cnstr_set(x_121, 5, x_114); x_122 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_122, 0, x_121); -lean::cnstr_set(x_122, 1, x_120); -x_123 = l_Lean_Parser_isEOI(x_116); -if (x_123 == 0) +lean::cnstr_set(x_122, 1, x_119); +x_123 = lean::box(0); +lean::inc(x_122); +x_124 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_124, 0, x_123); +lean::cnstr_set(x_124, 1, x_122); +x_125 = l_Lean_Parser_isEOI(x_118); +if (x_125 == 0) { -uint8 x_124; -x_124 = l_Lean_Parser_isExitCommand(x_116); -if (x_124 == 0) +uint8 x_126; +x_126 = l_Lean_Parser_isExitCommand(x_118); +if (x_126 == 0) { -obj* x_125; -lean::dec(x_120); -x_125 = l_Lean_runElab___at_Lean_elabCommandAtFrontend___spec__1(x_116, x_1, x_122); -if (lean::obj_tag(x_125) == 0) -{ -obj* x_126; obj* x_127; uint8 x_128; obj* x_129; obj* x_130; -lean::dec(x_1); -x_126 = lean::cnstr_get(x_125, 1); -lean::inc(x_126); -if (lean::is_exclusive(x_125)) { - lean::cnstr_release(x_125, 0); - lean::cnstr_release(x_125, 1); - x_127 = x_125; -} else { - lean::dec_ref(x_125); - x_127 = lean::box(0); -} -x_128 = 0; -x_129 = lean::box(x_128); -if (lean::is_scalar(x_127)) { - x_130 = lean::alloc_cnstr(0, 2, 0); -} else { - x_130 = x_127; -} -lean::cnstr_set(x_130, 0, x_129); -lean::cnstr_set(x_130, 1, x_126); -return x_130; -} -else -{ -obj* x_131; obj* x_132; obj* x_133; obj* x_134; obj* x_135; -x_131 = lean::cnstr_get(x_125, 0); -lean::inc(x_131); -x_132 = lean::cnstr_get(x_125, 1); -lean::inc(x_132); -if (lean::is_exclusive(x_125)) { - lean::cnstr_release(x_125, 0); - lean::cnstr_release(x_125, 1); - x_133 = x_125; -} else { - lean::dec_ref(x_125); - x_133 = lean::box(0); -} -if (lean::is_scalar(x_133)) { - x_134 = lean::alloc_cnstr(0, 2, 0); -} else { - x_134 = x_133; - lean::cnstr_set_tag(x_134, 0); -} -lean::cnstr_set(x_134, 0, x_121); -lean::cnstr_set(x_134, 1, x_132); -x_135 = l_Lean_runElab___at_Lean_processCommand___spec__1(x_131, x_1, x_134); -lean::dec(x_1); -if (lean::obj_tag(x_135) == 0) -{ -obj* x_136; obj* x_137; uint8 x_138; obj* x_139; obj* x_140; -x_136 = lean::cnstr_get(x_135, 1); -lean::inc(x_136); -if (lean::is_exclusive(x_135)) { - lean::cnstr_release(x_135, 0); - lean::cnstr_release(x_135, 1); - x_137 = x_135; -} else { - lean::dec_ref(x_135); - x_137 = lean::box(0); -} -x_138 = 0; -x_139 = lean::box(x_138); -if (lean::is_scalar(x_137)) { - x_140 = lean::alloc_cnstr(0, 2, 0); -} else { - x_140 = x_137; -} -lean::cnstr_set(x_140, 0, x_139); -lean::cnstr_set(x_140, 1, x_136); -return x_140; -} -else -{ -obj* x_141; obj* x_142; obj* x_143; obj* x_144; -x_141 = lean::cnstr_get(x_135, 0); -lean::inc(x_141); -x_142 = lean::cnstr_get(x_135, 1); -lean::inc(x_142); -if (lean::is_exclusive(x_135)) { - lean::cnstr_release(x_135, 0); - lean::cnstr_release(x_135, 1); - x_143 = x_135; -} else { - lean::dec_ref(x_135); - x_143 = lean::box(0); -} -if (lean::is_scalar(x_143)) { - x_144 = lean::alloc_cnstr(1, 2, 0); -} else { - x_144 = x_143; -} -lean::cnstr_set(x_144, 0, x_141); -lean::cnstr_set(x_144, 1, x_142); -return x_144; -} -} -} -else -{ -uint8 x_145; obj* x_146; obj* x_147; +obj* x_127; lean::dec(x_122); -lean::dec(x_116); +x_127 = l_Lean_Elab_runElab___at_Lean_Elab_elabCommandAtFrontend___spec__1(x_118, x_1, x_124); +if (lean::obj_tag(x_127) == 0) +{ +obj* x_128; obj* x_129; uint8 x_130; obj* x_131; obj* x_132; lean::dec(x_1); -x_145 = 1; -x_146 = lean::box(x_145); -x_147 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_147, 0, x_146); -lean::cnstr_set(x_147, 1, x_120); -return x_147; +x_128 = lean::cnstr_get(x_127, 1); +lean::inc(x_128); +if (lean::is_exclusive(x_127)) { + lean::cnstr_release(x_127, 0); + lean::cnstr_release(x_127, 1); + x_129 = x_127; +} else { + lean::dec_ref(x_127); + x_129 = lean::box(0); } +x_130 = 0; +x_131 = lean::box(x_130); +if (lean::is_scalar(x_129)) { + x_132 = lean::alloc_cnstr(0, 2, 0); +} else { + x_132 = x_129; +} +lean::cnstr_set(x_132, 0, x_131); +lean::cnstr_set(x_132, 1, x_128); +return x_132; } else { -uint8 x_148; obj* x_149; obj* x_150; -lean::dec(x_122); -lean::dec(x_116); +obj* x_133; obj* x_134; obj* x_135; obj* x_136; obj* x_137; +x_133 = lean::cnstr_get(x_127, 0); +lean::inc(x_133); +x_134 = lean::cnstr_get(x_127, 1); +lean::inc(x_134); +if (lean::is_exclusive(x_127)) { + lean::cnstr_release(x_127, 0); + lean::cnstr_release(x_127, 1); + x_135 = x_127; +} else { + lean::dec_ref(x_127); + x_135 = lean::box(0); +} +if (lean::is_scalar(x_135)) { + x_136 = lean::alloc_cnstr(0, 2, 0); +} else { + x_136 = x_135; + lean::cnstr_set_tag(x_136, 0); +} +lean::cnstr_set(x_136, 0, x_123); +lean::cnstr_set(x_136, 1, x_134); +x_137 = l_Lean_Elab_runElab___at_Lean_Elab_processCommand___spec__1(x_133, x_1, x_136); lean::dec(x_1); -x_148 = 1; -x_149 = lean::box(x_148); -x_150 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_150, 0, x_149); -lean::cnstr_set(x_150, 1, x_120); -return x_150; +if (lean::obj_tag(x_137) == 0) +{ +obj* x_138; obj* x_139; uint8 x_140; obj* x_141; obj* x_142; +x_138 = lean::cnstr_get(x_137, 1); +lean::inc(x_138); +if (lean::is_exclusive(x_137)) { + lean::cnstr_release(x_137, 0); + lean::cnstr_release(x_137, 1); + x_139 = x_137; +} else { + lean::dec_ref(x_137); + x_139 = lean::box(0); +} +x_140 = 0; +x_141 = lean::box(x_140); +if (lean::is_scalar(x_139)) { + x_142 = lean::alloc_cnstr(0, 2, 0); +} else { + x_142 = x_139; +} +lean::cnstr_set(x_142, 0, x_141); +lean::cnstr_set(x_142, 1, x_138); +return x_142; +} +else +{ +obj* x_143; obj* x_144; obj* x_145; obj* x_146; +x_143 = lean::cnstr_get(x_137, 0); +lean::inc(x_143); +x_144 = lean::cnstr_get(x_137, 1); +lean::inc(x_144); +if (lean::is_exclusive(x_137)) { + lean::cnstr_release(x_137, 0); + lean::cnstr_release(x_137, 1); + x_145 = x_137; +} else { + lean::dec_ref(x_137); + x_145 = lean::box(0); +} +if (lean::is_scalar(x_145)) { + x_146 = lean::alloc_cnstr(1, 2, 0); +} else { + x_146 = x_145; +} +lean::cnstr_set(x_146, 0, x_143); +lean::cnstr_set(x_146, 1, x_144); +return x_146; } } } else { -uint8 x_151; +uint8 x_147; obj* x_148; obj* x_149; +lean::dec(x_124); +lean::dec(x_118); lean::dec(x_1); -x_151 = !lean::is_exclusive(x_3); -if (x_151 == 0) +x_147 = 1; +x_148 = lean::box(x_147); +x_149 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_149, 0, x_148); +lean::cnstr_set(x_149, 1, x_122); +return x_149; +} +} +else +{ +uint8 x_150; obj* x_151; obj* x_152; +lean::dec(x_124); +lean::dec(x_118); +lean::dec(x_1); +x_150 = 1; +x_151 = lean::box(x_150); +x_152 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_152, 0, x_151); +lean::cnstr_set(x_152, 1, x_122); +return x_152; +} +} +} +else +{ +uint8 x_153; +lean::dec(x_1); +x_153 = !lean::is_exclusive(x_3); +if (x_153 == 0) { return x_3; } else { -obj* x_152; obj* x_153; obj* x_154; -x_152 = lean::cnstr_get(x_3, 0); -x_153 = lean::cnstr_get(x_3, 1); -lean::inc(x_153); -lean::inc(x_152); +obj* x_154; obj* x_155; obj* x_156; +x_154 = lean::cnstr_get(x_3, 0); +x_155 = lean::cnstr_get(x_3, 1); +lean::inc(x_155); +lean::inc(x_154); lean::dec(x_3); -x_154 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_154, 0, x_152); -lean::cnstr_set(x_154, 1, x_153); -return x_154; +x_156 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_156, 0, x_154); +lean::cnstr_set(x_156, 1, x_155); +return x_156; } } } } -obj* l_Lean_runElab___at_Lean_processCommand___spec__1___boxed(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_runElab___at_Lean_Elab_processCommand___spec__1___boxed(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_Lean_runElab___at_Lean_processCommand___spec__1(x_1, x_2, x_3); +x_4 = l_Lean_Elab_runElab___at_Lean_Elab_processCommand___spec__1(x_1, x_2, x_3); lean::dec(x_2); return x_4; } } -obj* l_Lean_processCommandsAux___main___rarg(obj* x_1, obj* x_2) { +obj* l_Lean_Elab_processCommandsAux___main___rarg(obj* x_1, obj* x_2) { _start: { obj* x_3; lean::inc(x_1); -x_3 = l_Lean_processCommand(x_1, x_2); +x_3 = l_Lean_Elab_processCommand(x_1, x_2); if (lean::obj_tag(x_3) == 0) { obj* x_4; uint8 x_5; @@ -16814,57 +16662,57 @@ return x_23; } } } -obj* l_Lean_processCommandsAux___main(obj* x_1) { +obj* l_Lean_Elab_processCommandsAux___main(obj* x_1) { _start: { obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_processCommandsAux___main___rarg), 2, 0); +x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_Elab_processCommandsAux___main___rarg), 2, 0); return x_2; } } -obj* l_Lean_processCommandsAux___main___boxed(obj* x_1) { +obj* l_Lean_Elab_processCommandsAux___main___boxed(obj* x_1) { _start: { obj* x_2; -x_2 = l_Lean_processCommandsAux___main(x_1); +x_2 = l_Lean_Elab_processCommandsAux___main(x_1); lean::dec(x_1); return x_2; } } -obj* l_Lean_processCommandsAux___rarg(obj* x_1, obj* x_2) { +obj* l_Lean_Elab_processCommandsAux___rarg(obj* x_1, obj* x_2) { _start: { obj* x_3; -x_3 = l_Lean_processCommandsAux___main___rarg(x_1, x_2); +x_3 = l_Lean_Elab_processCommandsAux___main___rarg(x_1, x_2); return x_3; } } -obj* l_Lean_processCommandsAux(obj* x_1) { +obj* l_Lean_Elab_processCommandsAux(obj* x_1) { _start: { obj* x_2; -x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_processCommandsAux___rarg), 2, 0); +x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_Elab_processCommandsAux___rarg), 2, 0); return x_2; } } -obj* l_Lean_processCommandsAux___boxed(obj* x_1) { +obj* l_Lean_Elab_processCommandsAux___boxed(obj* x_1) { _start: { obj* x_2; -x_2 = l_Lean_processCommandsAux(x_1); +x_2 = l_Lean_Elab_processCommandsAux(x_1); lean::dec(x_1); return x_2; } } -obj* l_Lean_processCommands(obj* x_1, obj* x_2) { +obj* l_Lean_Elab_processCommands(obj* x_1, obj* x_2) { _start: { obj* x_3; -x_3 = l_Lean_processCommandsAux___main___rarg(x_1, x_2); +x_3 = l_Lean_Elab_processCommandsAux___main___rarg(x_1, x_2); return x_3; } } -obj* _init_l_Lean_absolutizeModuleName___closed__1() { +obj* _init_l_Lean_Elab_absolutizeModuleName___closed__1() { _start: { obj* x_1; @@ -16914,7 +16762,7 @@ if (x_9 == 0) obj* x_10; obj* x_11; x_10 = lean::cnstr_get(x_4, 0); lean::dec(x_10); -x_11 = l_Lean_absolutizeModuleName___closed__1; +x_11 = l_Lean_Elab_absolutizeModuleName___closed__1; lean::cnstr_set_tag(x_4, 1); lean::cnstr_set(x_4, 0, x_11); return x_4; @@ -16925,7 +16773,7 @@ obj* x_12; obj* x_13; obj* x_14; x_12 = lean::cnstr_get(x_4, 1); lean::inc(x_12); lean::dec(x_4); -x_13 = l_Lean_absolutizeModuleName___closed__1; +x_13 = l_Lean_Elab_absolutizeModuleName___closed__1; x_14 = lean::alloc_cnstr(1, 2, 0); lean::cnstr_set(x_14, 0, x_13); lean::cnstr_set(x_14, 1, x_12); @@ -16961,7 +16809,7 @@ return x_26; } } } -obj* l_Array_miterateAux___main___at_Lean_processHeaderAux___spec__1(obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { +obj* l_Array_miterateAux___main___at_Lean_Elab_processHeaderAux___spec__1(obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { _start: { obj* x_8; uint8 x_9; @@ -17174,7 +17022,7 @@ return x_61; } } } -obj* l_Array_miterateAux___main___at_Lean_processHeaderAux___spec__2(obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { +obj* l_Array_miterateAux___main___at_Lean_Elab_processHeaderAux___spec__2(obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { _start: { obj* x_8; uint8 x_9; @@ -17221,7 +17069,7 @@ lean::dec(x_17); x_19 = lean::mk_nat_obj(0u); lean::inc(x_3); lean::inc(x_1); -x_20 = l_Array_miterateAux___main___at_Lean_processHeaderAux___spec__1(x_1, x_3, x_14, x_18, x_19, x_6, x_7); +x_20 = l_Array_miterateAux___main___at_Lean_Elab_processHeaderAux___spec__1(x_1, x_3, x_14, x_18, x_19, x_6, x_7); lean::dec(x_18); lean::dec(x_14); if (lean::obj_tag(x_20) == 0) @@ -17285,7 +17133,7 @@ return x_33; } } } -obj* _init_l_Lean_processHeaderAux___closed__1() { +obj* _init_l_Lean_Elab_processHeaderAux___closed__1() { _start: { obj* x_1; obj* x_2; obj* x_3; @@ -17295,19 +17143,19 @@ x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -obj* _init_l_Lean_processHeaderAux___closed__2() { +obj* _init_l_Lean_Elab_processHeaderAux___closed__2() { _start: { obj* x_1; obj* x_2; obj* x_3; x_1 = lean::box(0); -x_2 = l_Lean_processHeaderAux___closed__1; +x_2 = l_Lean_Elab_processHeaderAux___closed__1; x_3 = lean::alloc_cnstr(1, 2, 0); lean::cnstr_set(x_3, 0, x_2); lean::cnstr_set(x_3, 1, x_1); return x_3; } } -obj* l_Lean_processHeaderAux(obj* x_1, obj* x_2, uint32 x_3, obj* x_4) { +obj* l_Lean_Elab_processHeaderAux(obj* x_1, obj* x_2, uint32 x_3, obj* x_4) { _start: { obj* x_5; obj* x_6; obj* x_30; obj* x_31; obj* x_32; obj* x_33; uint8 x_34; @@ -17330,7 +17178,7 @@ goto block_29; else { obj* x_36; -x_36 = l_Lean_processHeaderAux___closed__2; +x_36 = l_Lean_Elab_processHeaderAux___closed__2; x_6 = x_36; goto block_29; } @@ -17346,7 +17194,7 @@ x_10 = lean::array_get(x_8, x_7, x_9); x_11 = l_Lean_Syntax_getArgs___rarg(x_10); lean::dec(x_10); x_12 = lean::mk_nat_obj(0u); -x_13 = l_Array_miterateAux___main___at_Lean_processHeaderAux___spec__2(x_1, x_7, x_8, x_11, x_12, x_6, x_4); +x_13 = l_Array_miterateAux___main___at_Lean_Elab_processHeaderAux___spec__2(x_1, x_7, x_8, x_11, x_12, x_6, x_4); lean::dec(x_11); lean::dec(x_7); if (lean::obj_tag(x_13) == 0) @@ -17405,42 +17253,42 @@ return x_28; } } } -obj* l_Array_miterateAux___main___at_Lean_processHeaderAux___spec__1___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { +obj* l_Array_miterateAux___main___at_Lean_Elab_processHeaderAux___spec__1___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { _start: { obj* x_8; -x_8 = l_Array_miterateAux___main___at_Lean_processHeaderAux___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_8 = l_Array_miterateAux___main___at_Lean_Elab_processHeaderAux___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7); lean::dec(x_4); lean::dec(x_3); return x_8; } } -obj* l_Array_miterateAux___main___at_Lean_processHeaderAux___spec__2___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { +obj* l_Array_miterateAux___main___at_Lean_Elab_processHeaderAux___spec__2___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6, obj* x_7) { _start: { obj* x_8; -x_8 = l_Array_miterateAux___main___at_Lean_processHeaderAux___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_8 = l_Array_miterateAux___main___at_Lean_Elab_processHeaderAux___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7); lean::dec(x_4); lean::dec(x_2); return x_8; } } -obj* l_Lean_processHeaderAux___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_Lean_Elab_processHeaderAux___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { uint32 x_5; obj* x_6; x_5 = lean::unbox_uint32(x_3); lean::dec(x_3); -x_6 = l_Lean_processHeaderAux(x_1, x_2, x_5, x_4); +x_6 = l_Lean_Elab_processHeaderAux(x_1, x_2, x_5, x_4); lean::dec(x_2); return x_6; } } -obj* l_Lean_processHeader(obj* x_1, obj* x_2, obj* x_3, obj* x_4, uint32 x_5, obj* x_6) { +obj* l_Lean_Elab_processHeader(obj* x_1, obj* x_2, obj* x_3, obj* x_4, uint32 x_5, obj* x_6) { _start: { obj* x_7; -x_7 = l_Lean_processHeaderAux(x_1, x_2, x_5, x_6); +x_7 = l_Lean_Elab_processHeaderAux(x_1, x_2, x_5, x_6); if (lean::obj_tag(x_7) == 0) { uint8 x_8; @@ -17770,19 +17618,19 @@ return x_98; } } } -obj* l_Lean_processHeader___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { +obj* l_Lean_Elab_processHeader___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5, obj* x_6) { _start: { uint32 x_7; obj* x_8; x_7 = lean::unbox_uint32(x_5); lean::dec(x_5); -x_8 = l_Lean_processHeader(x_1, x_2, x_3, x_4, x_7, x_6); +x_8 = l_Lean_Elab_processHeader(x_1, x_2, x_3, x_4, x_7, x_6); lean::dec(x_4); lean::dec(x_2); return x_8; } } -obj* l_Lean_toBaseDir(obj* x_1, obj* x_2) { +obj* l_Lean_Elab_toBaseDir(obj* x_1, obj* x_2) { _start: { if (lean::obj_tag(x_1) == 0) @@ -17933,7 +17781,7 @@ return x_32; } } } -obj* _init_l_Lean_testFrontend___closed__1() { +obj* _init_l_Lean_Elab_testFrontend___closed__1() { _start: { obj* x_1; @@ -17941,12 +17789,12 @@ x_1 = lean::mk_string("root"); return x_1; } } -obj* _init_l_Lean_testFrontend___closed__2() { +obj* _init_l_Lean_Elab_testFrontend___closed__2() { _start: { obj* x_1; obj* x_2; obj* x_3; obj* x_4; obj* x_5; obj* x_6; x_1 = lean::box(0); -x_2 = l_Lean_testFrontend___closed__1; +x_2 = l_Lean_Elab_testFrontend___closed__1; x_3 = lean::box(0); x_4 = l_Lean_Options_empty; x_5 = l_Lean_LocalContext_Inhabited___closed__1; @@ -17961,19 +17809,19 @@ lean::cnstr_set(x_6, 6, x_5); return x_6; } } -obj* _init_l_Lean_testFrontend___closed__3() { +obj* _init_l_Lean_Elab_testFrontend___closed__3() { _start: { obj* x_1; obj* x_2; obj* x_3; x_1 = lean::box(0); -x_2 = l_Lean_testFrontend___closed__2; +x_2 = l_Lean_Elab_testFrontend___closed__2; x_3 = lean::alloc_cnstr(1, 2, 0); lean::cnstr_set(x_3, 0, x_2); lean::cnstr_set(x_3, 1, x_1); return x_3; } } -obj* _init_l_Lean_testFrontend___closed__4() { +obj* _init_l_Lean_Elab_testFrontend___closed__4() { _start: { obj* x_1; @@ -17981,7 +17829,7 @@ x_1 = lean::mk_string(""); return x_1; } } -obj* l_Lean_testFrontend(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Elab_testFrontend(obj* x_1, obj* x_2, obj* x_3) { _start: { uint32 x_4; obj* x_5; @@ -17998,7 +17846,7 @@ x_7 = lean::cnstr_get(x_5, 0); x_8 = lean::box(0); lean::cnstr_set(x_5, 0, x_8); lean::inc(x_2); -x_9 = l_Lean_toBaseDir(x_2, x_5); +x_9 = l_Lean_Elab_toBaseDir(x_2, x_5); if (lean::obj_tag(x_9) == 0) { uint8 x_10; @@ -18010,21 +17858,21 @@ x_11 = lean::cnstr_get(x_9, 0); lean::cnstr_set(x_9, 0, x_8); if (lean::obj_tag(x_2) == 0) { -obj* x_108; -x_108 = l_Lean_testFrontend___closed__4; -x_12 = x_108; -goto block_107; +obj* x_111; +x_111 = l_Lean_Elab_testFrontend___closed__4; +x_12 = x_111; +goto block_110; } else { -obj* x_109; -x_109 = lean::cnstr_get(x_2, 0); -lean::inc(x_109); +obj* x_112; +x_112 = lean::cnstr_get(x_2, 0); +lean::inc(x_112); lean::dec(x_2); -x_12 = x_109; -goto block_107; +x_12 = x_112; +goto block_110; } -block_107: +block_110: { obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; x_13 = l_Lean_Parser_mkParserContextCore(x_7, x_1, x_12); @@ -18040,7 +17888,7 @@ lean::inc(x_17); x_18 = lean::cnstr_get(x_15, 1); lean::inc(x_18); lean::dec(x_15); -x_19 = l_Lean_processHeader(x_11, x_16, x_18, x_13, x_4, x_9); +x_19 = l_Lean_Elab_processHeader(x_11, x_16, x_18, x_13, x_4, x_9); lean::dec(x_16); if (lean::obj_tag(x_19) == 0) { @@ -18053,846 +17901,856 @@ x_21 = lean::cnstr_get(x_19, 0); x_22 = !lean::is_exclusive(x_21); if (x_22 == 0) { -obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; +obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; x_23 = lean::cnstr_get(x_19, 1); x_24 = lean::cnstr_get(x_21, 0); x_25 = lean::cnstr_get(x_21, 1); x_26 = lean::mk_nat_obj(0u); x_27 = l_Lean_NameGenerator_Inhabited___closed__3; -x_28 = l_Lean_testFrontend___closed__3; -x_29 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_29, 0, x_24); -lean::cnstr_set(x_29, 1, x_25); -lean::cnstr_set(x_29, 2, x_26); -lean::cnstr_set(x_29, 3, x_27); -lean::cnstr_set(x_29, 4, x_28); -x_30 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_30, 0, x_29); -lean::cnstr_set(x_30, 1, x_17); -lean::cnstr_set(x_19, 1, x_30); +x_28 = l_Lean_MetavarContext_mkMetavarContext___closed__1; +x_29 = l_Lean_Elab_testFrontend___closed__3; +x_30 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_30, 0, x_24); +lean::cnstr_set(x_30, 1, x_25); +lean::cnstr_set(x_30, 2, x_26); +lean::cnstr_set(x_30, 3, x_27); +lean::cnstr_set(x_30, 4, x_28); +lean::cnstr_set(x_30, 5, x_29); +x_31 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_31, 0, x_30); +lean::cnstr_set(x_31, 1, x_17); +lean::cnstr_set(x_19, 1, x_31); lean::cnstr_set(x_19, 0, x_8); -x_31 = l_Lean_processCommandsAux___main___rarg(x_13, x_19); -if (lean::obj_tag(x_31) == 0) +x_32 = l_Lean_Elab_processCommandsAux___main___rarg(x_13, x_19); +if (lean::obj_tag(x_32) == 0) { -uint8 x_32; -x_32 = !lean::is_exclusive(x_31); -if (x_32 == 0) +uint8 x_33; +x_33 = !lean::is_exclusive(x_32); +if (x_33 == 0) { -obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; -x_33 = lean::cnstr_get(x_31, 1); -x_34 = lean::cnstr_get(x_31, 0); -lean::dec(x_34); -x_35 = lean::cnstr_get(x_33, 0); -lean::inc(x_35); -lean::dec(x_33); -x_36 = lean::cnstr_get(x_35, 0); -lean::inc(x_36); -x_37 = lean::cnstr_get(x_35, 1); -lean::inc(x_37); +obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; +x_34 = lean::cnstr_get(x_32, 1); +x_35 = lean::cnstr_get(x_32, 0); lean::dec(x_35); -lean::cnstr_set(x_21, 1, x_37); -lean::cnstr_set(x_21, 0, x_36); -lean::cnstr_set(x_31, 1, x_23); -lean::cnstr_set(x_31, 0, x_21); -return x_31; +x_36 = lean::cnstr_get(x_34, 0); +lean::inc(x_36); +lean::dec(x_34); +x_37 = lean::cnstr_get(x_36, 0); +lean::inc(x_37); +x_38 = lean::cnstr_get(x_36, 1); +lean::inc(x_38); +lean::dec(x_36); +lean::cnstr_set(x_21, 1, x_38); +lean::cnstr_set(x_21, 0, x_37); +lean::cnstr_set(x_32, 1, x_23); +lean::cnstr_set(x_32, 0, x_21); +return x_32; } else { -obj* x_38; obj* x_39; obj* x_40; obj* x_41; obj* x_42; -x_38 = lean::cnstr_get(x_31, 1); -lean::inc(x_38); -lean::dec(x_31); -x_39 = lean::cnstr_get(x_38, 0); +obj* x_39; obj* x_40; obj* x_41; obj* x_42; obj* x_43; +x_39 = lean::cnstr_get(x_32, 1); lean::inc(x_39); -lean::dec(x_38); +lean::dec(x_32); x_40 = lean::cnstr_get(x_39, 0); lean::inc(x_40); -x_41 = lean::cnstr_get(x_39, 1); -lean::inc(x_41); lean::dec(x_39); -lean::cnstr_set(x_21, 1, x_41); -lean::cnstr_set(x_21, 0, x_40); -x_42 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_42, 0, x_21); -lean::cnstr_set(x_42, 1, x_23); -return x_42; +x_41 = lean::cnstr_get(x_40, 0); +lean::inc(x_41); +x_42 = lean::cnstr_get(x_40, 1); +lean::inc(x_42); +lean::dec(x_40); +lean::cnstr_set(x_21, 1, x_42); +lean::cnstr_set(x_21, 0, x_41); +x_43 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_43, 0, x_21); +lean::cnstr_set(x_43, 1, x_23); +return x_43; } } else { -uint8 x_43; -x_43 = !lean::is_exclusive(x_31); -if (x_43 == 0) +uint8 x_44; +x_44 = !lean::is_exclusive(x_32); +if (x_44 == 0) { -obj* x_44; obj* x_45; obj* x_46; obj* x_47; obj* x_48; -x_44 = lean::cnstr_get(x_31, 1); -x_45 = lean::cnstr_get(x_31, 0); -lean::dec(x_45); -x_46 = lean::cnstr_get(x_44, 0); -lean::inc(x_46); -lean::dec(x_44); -x_47 = lean::cnstr_get(x_46, 0); -lean::inc(x_47); -x_48 = lean::cnstr_get(x_46, 1); -lean::inc(x_48); +obj* x_45; obj* x_46; obj* x_47; obj* x_48; obj* x_49; +x_45 = lean::cnstr_get(x_32, 1); +x_46 = lean::cnstr_get(x_32, 0); lean::dec(x_46); -lean::cnstr_set(x_21, 1, x_48); -lean::cnstr_set(x_21, 0, x_47); -lean::cnstr_set_tag(x_31, 0); -lean::cnstr_set(x_31, 1, x_23); -lean::cnstr_set(x_31, 0, x_21); -return x_31; +x_47 = lean::cnstr_get(x_45, 0); +lean::inc(x_47); +lean::dec(x_45); +x_48 = lean::cnstr_get(x_47, 0); +lean::inc(x_48); +x_49 = lean::cnstr_get(x_47, 1); +lean::inc(x_49); +lean::dec(x_47); +lean::cnstr_set(x_21, 1, x_49); +lean::cnstr_set(x_21, 0, x_48); +lean::cnstr_set_tag(x_32, 0); +lean::cnstr_set(x_32, 1, x_23); +lean::cnstr_set(x_32, 0, x_21); +return x_32; } else { -obj* x_49; obj* x_50; obj* x_51; obj* x_52; obj* x_53; -x_49 = lean::cnstr_get(x_31, 1); -lean::inc(x_49); -lean::dec(x_31); -x_50 = lean::cnstr_get(x_49, 0); +obj* x_50; obj* x_51; obj* x_52; obj* x_53; obj* x_54; +x_50 = lean::cnstr_get(x_32, 1); lean::inc(x_50); -lean::dec(x_49); +lean::dec(x_32); x_51 = lean::cnstr_get(x_50, 0); lean::inc(x_51); -x_52 = lean::cnstr_get(x_50, 1); -lean::inc(x_52); lean::dec(x_50); -lean::cnstr_set(x_21, 1, x_52); -lean::cnstr_set(x_21, 0, x_51); -x_53 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_53, 0, x_21); -lean::cnstr_set(x_53, 1, x_23); -return x_53; +x_52 = lean::cnstr_get(x_51, 0); +lean::inc(x_52); +x_53 = lean::cnstr_get(x_51, 1); +lean::inc(x_53); +lean::dec(x_51); +lean::cnstr_set(x_21, 1, x_53); +lean::cnstr_set(x_21, 0, x_52); +x_54 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_54, 0, x_21); +lean::cnstr_set(x_54, 1, x_23); +return x_54; } } } else { -obj* x_54; obj* x_55; obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; -x_54 = lean::cnstr_get(x_19, 1); -x_55 = lean::cnstr_get(x_21, 0); -x_56 = lean::cnstr_get(x_21, 1); +obj* x_55; obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; +x_55 = lean::cnstr_get(x_19, 1); +x_56 = lean::cnstr_get(x_21, 0); +x_57 = lean::cnstr_get(x_21, 1); +lean::inc(x_57); lean::inc(x_56); -lean::inc(x_55); lean::dec(x_21); -x_57 = lean::mk_nat_obj(0u); -x_58 = l_Lean_NameGenerator_Inhabited___closed__3; -x_59 = l_Lean_testFrontend___closed__3; -x_60 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_60, 0, x_55); -lean::cnstr_set(x_60, 1, x_56); -lean::cnstr_set(x_60, 2, x_57); -lean::cnstr_set(x_60, 3, x_58); -lean::cnstr_set(x_60, 4, x_59); -x_61 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_61, 0, x_60); -lean::cnstr_set(x_61, 1, x_17); -lean::cnstr_set(x_19, 1, x_61); +x_58 = lean::mk_nat_obj(0u); +x_59 = l_Lean_NameGenerator_Inhabited___closed__3; +x_60 = l_Lean_MetavarContext_mkMetavarContext___closed__1; +x_61 = l_Lean_Elab_testFrontend___closed__3; +x_62 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_62, 0, x_56); +lean::cnstr_set(x_62, 1, x_57); +lean::cnstr_set(x_62, 2, x_58); +lean::cnstr_set(x_62, 3, x_59); +lean::cnstr_set(x_62, 4, x_60); +lean::cnstr_set(x_62, 5, x_61); +x_63 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_63, 0, x_62); +lean::cnstr_set(x_63, 1, x_17); +lean::cnstr_set(x_19, 1, x_63); lean::cnstr_set(x_19, 0, x_8); -x_62 = l_Lean_processCommandsAux___main___rarg(x_13, x_19); -if (lean::obj_tag(x_62) == 0) +x_64 = l_Lean_Elab_processCommandsAux___main___rarg(x_13, x_19); +if (lean::obj_tag(x_64) == 0) { -obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; -x_63 = lean::cnstr_get(x_62, 1); -lean::inc(x_63); -if (lean::is_exclusive(x_62)) { - lean::cnstr_release(x_62, 0); - lean::cnstr_release(x_62, 1); - x_64 = x_62; -} else { - lean::dec_ref(x_62); - x_64 = lean::box(0); -} -x_65 = lean::cnstr_get(x_63, 0); +obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; +x_65 = lean::cnstr_get(x_64, 1); lean::inc(x_65); -lean::dec(x_63); -x_66 = lean::cnstr_get(x_65, 0); -lean::inc(x_66); -x_67 = lean::cnstr_get(x_65, 1); +if (lean::is_exclusive(x_64)) { + lean::cnstr_release(x_64, 0); + lean::cnstr_release(x_64, 1); + x_66 = x_64; +} else { + lean::dec_ref(x_64); + x_66 = lean::box(0); +} +x_67 = lean::cnstr_get(x_65, 0); lean::inc(x_67); lean::dec(x_65); -x_68 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_68, 0, x_66); -lean::cnstr_set(x_68, 1, x_67); -if (lean::is_scalar(x_64)) { - x_69 = lean::alloc_cnstr(0, 2, 0); +x_68 = lean::cnstr_get(x_67, 0); +lean::inc(x_68); +x_69 = lean::cnstr_get(x_67, 1); +lean::inc(x_69); +lean::dec(x_67); +x_70 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_70, 0, x_68); +lean::cnstr_set(x_70, 1, x_69); +if (lean::is_scalar(x_66)) { + x_71 = lean::alloc_cnstr(0, 2, 0); } else { - x_69 = x_64; + x_71 = x_66; } -lean::cnstr_set(x_69, 0, x_68); -lean::cnstr_set(x_69, 1, x_54); -return x_69; +lean::cnstr_set(x_71, 0, x_70); +lean::cnstr_set(x_71, 1, x_55); +return x_71; } else { -obj* x_70; obj* x_71; obj* x_72; obj* x_73; obj* x_74; obj* x_75; obj* x_76; -x_70 = lean::cnstr_get(x_62, 1); -lean::inc(x_70); -if (lean::is_exclusive(x_62)) { - lean::cnstr_release(x_62, 0); - lean::cnstr_release(x_62, 1); - x_71 = x_62; -} else { - lean::dec_ref(x_62); - x_71 = lean::box(0); -} -x_72 = lean::cnstr_get(x_70, 0); +obj* x_72; obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; +x_72 = lean::cnstr_get(x_64, 1); lean::inc(x_72); -lean::dec(x_70); -x_73 = lean::cnstr_get(x_72, 0); -lean::inc(x_73); -x_74 = lean::cnstr_get(x_72, 1); +if (lean::is_exclusive(x_64)) { + lean::cnstr_release(x_64, 0); + lean::cnstr_release(x_64, 1); + x_73 = x_64; +} else { + lean::dec_ref(x_64); + x_73 = lean::box(0); +} +x_74 = lean::cnstr_get(x_72, 0); lean::inc(x_74); lean::dec(x_72); -x_75 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_75, 0, x_73); -lean::cnstr_set(x_75, 1, x_74); -if (lean::is_scalar(x_71)) { - x_76 = lean::alloc_cnstr(0, 2, 0); +x_75 = lean::cnstr_get(x_74, 0); +lean::inc(x_75); +x_76 = lean::cnstr_get(x_74, 1); +lean::inc(x_76); +lean::dec(x_74); +x_77 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_77, 0, x_75); +lean::cnstr_set(x_77, 1, x_76); +if (lean::is_scalar(x_73)) { + x_78 = lean::alloc_cnstr(0, 2, 0); } else { - x_76 = x_71; - lean::cnstr_set_tag(x_76, 0); + x_78 = x_73; + lean::cnstr_set_tag(x_78, 0); } -lean::cnstr_set(x_76, 0, x_75); -lean::cnstr_set(x_76, 1, x_54); -return x_76; +lean::cnstr_set(x_78, 0, x_77); +lean::cnstr_set(x_78, 1, x_55); +return x_78; } } } else { -obj* x_77; obj* x_78; obj* x_79; obj* x_80; obj* x_81; obj* x_82; obj* x_83; obj* x_84; obj* x_85; obj* x_86; obj* x_87; obj* x_88; -x_77 = lean::cnstr_get(x_19, 0); -x_78 = lean::cnstr_get(x_19, 1); -lean::inc(x_78); -lean::inc(x_77); -lean::dec(x_19); -x_79 = lean::cnstr_get(x_77, 0); -lean::inc(x_79); -x_80 = lean::cnstr_get(x_77, 1); +obj* x_79; obj* x_80; obj* x_81; obj* x_82; obj* x_83; obj* x_84; obj* x_85; obj* x_86; obj* x_87; obj* x_88; obj* x_89; obj* x_90; obj* x_91; +x_79 = lean::cnstr_get(x_19, 0); +x_80 = lean::cnstr_get(x_19, 1); lean::inc(x_80); -if (lean::is_exclusive(x_77)) { - lean::cnstr_release(x_77, 0); - lean::cnstr_release(x_77, 1); - x_81 = x_77; +lean::inc(x_79); +lean::dec(x_19); +x_81 = lean::cnstr_get(x_79, 0); +lean::inc(x_81); +x_82 = lean::cnstr_get(x_79, 1); +lean::inc(x_82); +if (lean::is_exclusive(x_79)) { + lean::cnstr_release(x_79, 0); + lean::cnstr_release(x_79, 1); + x_83 = x_79; } else { - lean::dec_ref(x_77); - x_81 = lean::box(0); + lean::dec_ref(x_79); + x_83 = lean::box(0); } -x_82 = lean::mk_nat_obj(0u); -x_83 = l_Lean_NameGenerator_Inhabited___closed__3; -x_84 = l_Lean_testFrontend___closed__3; -x_85 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_85, 0, x_79); -lean::cnstr_set(x_85, 1, x_80); -lean::cnstr_set(x_85, 2, x_82); -lean::cnstr_set(x_85, 3, x_83); -lean::cnstr_set(x_85, 4, x_84); -x_86 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_86, 0, x_85); -lean::cnstr_set(x_86, 1, x_17); -x_87 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_87, 0, x_8); -lean::cnstr_set(x_87, 1, x_86); -x_88 = l_Lean_processCommandsAux___main___rarg(x_13, x_87); -if (lean::obj_tag(x_88) == 0) +x_84 = lean::mk_nat_obj(0u); +x_85 = l_Lean_NameGenerator_Inhabited___closed__3; +x_86 = l_Lean_MetavarContext_mkMetavarContext___closed__1; +x_87 = l_Lean_Elab_testFrontend___closed__3; +x_88 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_88, 0, x_81); +lean::cnstr_set(x_88, 1, x_82); +lean::cnstr_set(x_88, 2, x_84); +lean::cnstr_set(x_88, 3, x_85); +lean::cnstr_set(x_88, 4, x_86); +lean::cnstr_set(x_88, 5, x_87); +x_89 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_89, 0, x_88); +lean::cnstr_set(x_89, 1, x_17); +x_90 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_90, 0, x_8); +lean::cnstr_set(x_90, 1, x_89); +x_91 = l_Lean_Elab_processCommandsAux___main___rarg(x_13, x_90); +if (lean::obj_tag(x_91) == 0) { -obj* x_89; obj* x_90; obj* x_91; obj* x_92; obj* x_93; obj* x_94; obj* x_95; -x_89 = lean::cnstr_get(x_88, 1); -lean::inc(x_89); -if (lean::is_exclusive(x_88)) { - lean::cnstr_release(x_88, 0); - lean::cnstr_release(x_88, 1); - x_90 = x_88; -} else { - lean::dec_ref(x_88); - x_90 = lean::box(0); -} -x_91 = lean::cnstr_get(x_89, 0); -lean::inc(x_91); -lean::dec(x_89); -x_92 = lean::cnstr_get(x_91, 0); +obj* x_92; obj* x_93; obj* x_94; obj* x_95; obj* x_96; obj* x_97; obj* x_98; +x_92 = lean::cnstr_get(x_91, 1); lean::inc(x_92); -x_93 = lean::cnstr_get(x_91, 1); -lean::inc(x_93); -lean::dec(x_91); -if (lean::is_scalar(x_81)) { - x_94 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_exclusive(x_91)) { + lean::cnstr_release(x_91, 0); + lean::cnstr_release(x_91, 1); + x_93 = x_91; } else { - x_94 = x_81; + lean::dec_ref(x_91); + x_93 = lean::box(0); } -lean::cnstr_set(x_94, 0, x_92); -lean::cnstr_set(x_94, 1, x_93); -if (lean::is_scalar(x_90)) { - x_95 = lean::alloc_cnstr(0, 2, 0); -} else { - x_95 = x_90; -} -lean::cnstr_set(x_95, 0, x_94); -lean::cnstr_set(x_95, 1, x_78); -return x_95; -} -else -{ -obj* x_96; obj* x_97; obj* x_98; obj* x_99; obj* x_100; obj* x_101; obj* x_102; -x_96 = lean::cnstr_get(x_88, 1); +x_94 = lean::cnstr_get(x_92, 0); +lean::inc(x_94); +lean::dec(x_92); +x_95 = lean::cnstr_get(x_94, 0); +lean::inc(x_95); +x_96 = lean::cnstr_get(x_94, 1); lean::inc(x_96); -if (lean::is_exclusive(x_88)) { - lean::cnstr_release(x_88, 0); - lean::cnstr_release(x_88, 1); - x_97 = x_88; +lean::dec(x_94); +if (lean::is_scalar(x_83)) { + x_97 = lean::alloc_cnstr(0, 2, 0); } else { - lean::dec_ref(x_88); - x_97 = lean::box(0); + x_97 = x_83; } -x_98 = lean::cnstr_get(x_96, 0); -lean::inc(x_98); -lean::dec(x_96); -x_99 = lean::cnstr_get(x_98, 0); +lean::cnstr_set(x_97, 0, x_95); +lean::cnstr_set(x_97, 1, x_96); +if (lean::is_scalar(x_93)) { + x_98 = lean::alloc_cnstr(0, 2, 0); +} else { + x_98 = x_93; +} +lean::cnstr_set(x_98, 0, x_97); +lean::cnstr_set(x_98, 1, x_80); +return x_98; +} +else +{ +obj* x_99; obj* x_100; obj* x_101; obj* x_102; obj* x_103; obj* x_104; obj* x_105; +x_99 = lean::cnstr_get(x_91, 1); lean::inc(x_99); -x_100 = lean::cnstr_get(x_98, 1); -lean::inc(x_100); -lean::dec(x_98); -if (lean::is_scalar(x_81)) { - x_101 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_exclusive(x_91)) { + lean::cnstr_release(x_91, 0); + lean::cnstr_release(x_91, 1); + x_100 = x_91; } else { - x_101 = x_81; + lean::dec_ref(x_91); + x_100 = lean::box(0); } -lean::cnstr_set(x_101, 0, x_99); -lean::cnstr_set(x_101, 1, x_100); -if (lean::is_scalar(x_97)) { - x_102 = lean::alloc_cnstr(0, 2, 0); +x_101 = lean::cnstr_get(x_99, 0); +lean::inc(x_101); +lean::dec(x_99); +x_102 = lean::cnstr_get(x_101, 0); +lean::inc(x_102); +x_103 = lean::cnstr_get(x_101, 1); +lean::inc(x_103); +lean::dec(x_101); +if (lean::is_scalar(x_83)) { + x_104 = lean::alloc_cnstr(0, 2, 0); } else { - x_102 = x_97; - lean::cnstr_set_tag(x_102, 0); + x_104 = x_83; } -lean::cnstr_set(x_102, 0, x_101); -lean::cnstr_set(x_102, 1, x_78); -return x_102; +lean::cnstr_set(x_104, 0, x_102); +lean::cnstr_set(x_104, 1, x_103); +if (lean::is_scalar(x_100)) { + x_105 = lean::alloc_cnstr(0, 2, 0); +} else { + x_105 = x_100; + lean::cnstr_set_tag(x_105, 0); +} +lean::cnstr_set(x_105, 0, x_104); +lean::cnstr_set(x_105, 1, x_80); +return x_105; } } } else { -uint8 x_103; +uint8 x_106; lean::dec(x_17); lean::dec(x_13); -x_103 = !lean::is_exclusive(x_19); -if (x_103 == 0) +x_106 = !lean::is_exclusive(x_19); +if (x_106 == 0) { return x_19; } else { -obj* x_104; obj* x_105; obj* x_106; -x_104 = lean::cnstr_get(x_19, 0); -x_105 = lean::cnstr_get(x_19, 1); -lean::inc(x_105); -lean::inc(x_104); +obj* x_107; obj* x_108; obj* x_109; +x_107 = lean::cnstr_get(x_19, 0); +x_108 = lean::cnstr_get(x_19, 1); +lean::inc(x_108); +lean::inc(x_107); lean::dec(x_19); -x_106 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_106, 0, x_104); -lean::cnstr_set(x_106, 1, x_105); -return x_106; +x_109 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_109, 0, x_107); +lean::cnstr_set(x_109, 1, x_108); +return x_109; } } } } else { -obj* x_110; obj* x_111; obj* x_112; obj* x_113; -x_110 = lean::cnstr_get(x_9, 0); -x_111 = lean::cnstr_get(x_9, 1); -lean::inc(x_111); -lean::inc(x_110); +obj* x_113; obj* x_114; obj* x_115; obj* x_116; +x_113 = lean::cnstr_get(x_9, 0); +x_114 = lean::cnstr_get(x_9, 1); +lean::inc(x_114); +lean::inc(x_113); lean::dec(x_9); -x_112 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_112, 0, x_8); -lean::cnstr_set(x_112, 1, x_111); +x_115 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_115, 0, x_8); +lean::cnstr_set(x_115, 1, x_114); if (lean::obj_tag(x_2) == 0) { -obj* x_153; -x_153 = l_Lean_testFrontend___closed__4; -x_113 = x_153; -goto block_152; +obj* x_157; +x_157 = l_Lean_Elab_testFrontend___closed__4; +x_116 = x_157; +goto block_156; } else { -obj* x_154; -x_154 = lean::cnstr_get(x_2, 0); -lean::inc(x_154); +obj* x_158; +x_158 = lean::cnstr_get(x_2, 0); +lean::inc(x_158); lean::dec(x_2); -x_113 = x_154; -goto block_152; +x_116 = x_158; +goto block_156; } -block_152: +block_156: { -obj* x_114; obj* x_115; obj* x_116; obj* x_117; obj* x_118; obj* x_119; obj* x_120; -x_114 = l_Lean_Parser_mkParserContextCore(x_7, x_1, x_113); -lean::inc(x_114); -x_115 = l_Lean_Parser_parseHeader(x_7, x_114); -x_116 = lean::cnstr_get(x_115, 1); -lean::inc(x_116); -x_117 = lean::cnstr_get(x_115, 0); +obj* x_117; obj* x_118; obj* x_119; obj* x_120; obj* x_121; obj* x_122; obj* x_123; +x_117 = l_Lean_Parser_mkParserContextCore(x_7, x_1, x_116); lean::inc(x_117); -lean::dec(x_115); -x_118 = lean::cnstr_get(x_116, 0); -lean::inc(x_118); -x_119 = lean::cnstr_get(x_116, 1); +x_118 = l_Lean_Parser_parseHeader(x_7, x_117); +x_119 = lean::cnstr_get(x_118, 1); lean::inc(x_119); -lean::dec(x_116); -x_120 = l_Lean_processHeader(x_110, x_117, x_119, x_114, x_4, x_112); -lean::dec(x_117); -if (lean::obj_tag(x_120) == 0) -{ -obj* x_121; obj* x_122; obj* x_123; obj* x_124; obj* x_125; obj* x_126; obj* x_127; obj* x_128; obj* x_129; obj* x_130; obj* x_131; obj* x_132; obj* x_133; -x_121 = lean::cnstr_get(x_120, 0); +x_120 = lean::cnstr_get(x_118, 0); +lean::inc(x_120); +lean::dec(x_118); +x_121 = lean::cnstr_get(x_119, 0); lean::inc(x_121); -x_122 = lean::cnstr_get(x_120, 1); +x_122 = lean::cnstr_get(x_119, 1); lean::inc(x_122); -if (lean::is_exclusive(x_120)) { - lean::cnstr_release(x_120, 0); - lean::cnstr_release(x_120, 1); - x_123 = x_120; -} else { - lean::dec_ref(x_120); - x_123 = lean::box(0); -} -x_124 = lean::cnstr_get(x_121, 0); +lean::dec(x_119); +x_123 = l_Lean_Elab_processHeader(x_113, x_120, x_122, x_117, x_4, x_115); +lean::dec(x_120); +if (lean::obj_tag(x_123) == 0) +{ +obj* x_124; obj* x_125; obj* x_126; obj* x_127; obj* x_128; obj* x_129; obj* x_130; obj* x_131; obj* x_132; obj* x_133; obj* x_134; obj* x_135; obj* x_136; obj* x_137; +x_124 = lean::cnstr_get(x_123, 0); lean::inc(x_124); -x_125 = lean::cnstr_get(x_121, 1); +x_125 = lean::cnstr_get(x_123, 1); lean::inc(x_125); -if (lean::is_exclusive(x_121)) { - lean::cnstr_release(x_121, 0); - lean::cnstr_release(x_121, 1); - x_126 = x_121; +if (lean::is_exclusive(x_123)) { + lean::cnstr_release(x_123, 0); + lean::cnstr_release(x_123, 1); + x_126 = x_123; } else { - lean::dec_ref(x_121); + lean::dec_ref(x_123); x_126 = lean::box(0); } -x_127 = lean::mk_nat_obj(0u); -x_128 = l_Lean_NameGenerator_Inhabited___closed__3; -x_129 = l_Lean_testFrontend___closed__3; -x_130 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_130, 0, x_124); -lean::cnstr_set(x_130, 1, x_125); -lean::cnstr_set(x_130, 2, x_127); -lean::cnstr_set(x_130, 3, x_128); -lean::cnstr_set(x_130, 4, x_129); -x_131 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_131, 0, x_130); -lean::cnstr_set(x_131, 1, x_118); -if (lean::is_scalar(x_123)) { - x_132 = lean::alloc_cnstr(0, 2, 0); +x_127 = lean::cnstr_get(x_124, 0); +lean::inc(x_127); +x_128 = lean::cnstr_get(x_124, 1); +lean::inc(x_128); +if (lean::is_exclusive(x_124)) { + lean::cnstr_release(x_124, 0); + lean::cnstr_release(x_124, 1); + x_129 = x_124; } else { - x_132 = x_123; + lean::dec_ref(x_124); + x_129 = lean::box(0); } -lean::cnstr_set(x_132, 0, x_8); -lean::cnstr_set(x_132, 1, x_131); -x_133 = l_Lean_processCommandsAux___main___rarg(x_114, x_132); -if (lean::obj_tag(x_133) == 0) +x_130 = lean::mk_nat_obj(0u); +x_131 = l_Lean_NameGenerator_Inhabited___closed__3; +x_132 = l_Lean_MetavarContext_mkMetavarContext___closed__1; +x_133 = l_Lean_Elab_testFrontend___closed__3; +x_134 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_134, 0, x_127); +lean::cnstr_set(x_134, 1, x_128); +lean::cnstr_set(x_134, 2, x_130); +lean::cnstr_set(x_134, 3, x_131); +lean::cnstr_set(x_134, 4, x_132); +lean::cnstr_set(x_134, 5, x_133); +x_135 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_135, 0, x_134); +lean::cnstr_set(x_135, 1, x_121); +if (lean::is_scalar(x_126)) { + x_136 = lean::alloc_cnstr(0, 2, 0); +} else { + x_136 = x_126; +} +lean::cnstr_set(x_136, 0, x_8); +lean::cnstr_set(x_136, 1, x_135); +x_137 = l_Lean_Elab_processCommandsAux___main___rarg(x_117, x_136); +if (lean::obj_tag(x_137) == 0) { -obj* x_134; obj* x_135; obj* x_136; obj* x_137; obj* x_138; obj* x_139; obj* x_140; -x_134 = lean::cnstr_get(x_133, 1); -lean::inc(x_134); -if (lean::is_exclusive(x_133)) { - lean::cnstr_release(x_133, 0); - lean::cnstr_release(x_133, 1); - x_135 = x_133; -} else { - lean::dec_ref(x_133); - x_135 = lean::box(0); -} -x_136 = lean::cnstr_get(x_134, 0); -lean::inc(x_136); -lean::dec(x_134); -x_137 = lean::cnstr_get(x_136, 0); -lean::inc(x_137); -x_138 = lean::cnstr_get(x_136, 1); +obj* x_138; obj* x_139; obj* x_140; obj* x_141; obj* x_142; obj* x_143; obj* x_144; +x_138 = lean::cnstr_get(x_137, 1); lean::inc(x_138); -lean::dec(x_136); -if (lean::is_scalar(x_126)) { - x_139 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_exclusive(x_137)) { + lean::cnstr_release(x_137, 0); + lean::cnstr_release(x_137, 1); + x_139 = x_137; } else { - x_139 = x_126; + lean::dec_ref(x_137); + x_139 = lean::box(0); } -lean::cnstr_set(x_139, 0, x_137); -lean::cnstr_set(x_139, 1, x_138); -if (lean::is_scalar(x_135)) { - x_140 = lean::alloc_cnstr(0, 2, 0); -} else { - x_140 = x_135; -} -lean::cnstr_set(x_140, 0, x_139); -lean::cnstr_set(x_140, 1, x_122); -return x_140; -} -else -{ -obj* x_141; obj* x_142; obj* x_143; obj* x_144; obj* x_145; obj* x_146; obj* x_147; -x_141 = lean::cnstr_get(x_133, 1); +x_140 = lean::cnstr_get(x_138, 0); +lean::inc(x_140); +lean::dec(x_138); +x_141 = lean::cnstr_get(x_140, 0); lean::inc(x_141); -if (lean::is_exclusive(x_133)) { - lean::cnstr_release(x_133, 0); - lean::cnstr_release(x_133, 1); - x_142 = x_133; +x_142 = lean::cnstr_get(x_140, 1); +lean::inc(x_142); +lean::dec(x_140); +if (lean::is_scalar(x_129)) { + x_143 = lean::alloc_cnstr(0, 2, 0); } else { - lean::dec_ref(x_133); - x_142 = lean::box(0); + x_143 = x_129; } -x_143 = lean::cnstr_get(x_141, 0); -lean::inc(x_143); -lean::dec(x_141); -x_144 = lean::cnstr_get(x_143, 0); -lean::inc(x_144); -x_145 = lean::cnstr_get(x_143, 1); -lean::inc(x_145); -lean::dec(x_143); -if (lean::is_scalar(x_126)) { - x_146 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_143, 0, x_141); +lean::cnstr_set(x_143, 1, x_142); +if (lean::is_scalar(x_139)) { + x_144 = lean::alloc_cnstr(0, 2, 0); } else { - x_146 = x_126; -} -lean::cnstr_set(x_146, 0, x_144); -lean::cnstr_set(x_146, 1, x_145); -if (lean::is_scalar(x_142)) { - x_147 = lean::alloc_cnstr(0, 2, 0); -} else { - x_147 = x_142; - lean::cnstr_set_tag(x_147, 0); -} -lean::cnstr_set(x_147, 0, x_146); -lean::cnstr_set(x_147, 1, x_122); -return x_147; + x_144 = x_139; } +lean::cnstr_set(x_144, 0, x_143); +lean::cnstr_set(x_144, 1, x_125); +return x_144; } else { -obj* x_148; obj* x_149; obj* x_150; obj* x_151; -lean::dec(x_118); -lean::dec(x_114); -x_148 = lean::cnstr_get(x_120, 0); +obj* x_145; obj* x_146; obj* x_147; obj* x_148; obj* x_149; obj* x_150; obj* x_151; +x_145 = lean::cnstr_get(x_137, 1); +lean::inc(x_145); +if (lean::is_exclusive(x_137)) { + lean::cnstr_release(x_137, 0); + lean::cnstr_release(x_137, 1); + x_146 = x_137; +} else { + lean::dec_ref(x_137); + x_146 = lean::box(0); +} +x_147 = lean::cnstr_get(x_145, 0); +lean::inc(x_147); +lean::dec(x_145); +x_148 = lean::cnstr_get(x_147, 0); lean::inc(x_148); -x_149 = lean::cnstr_get(x_120, 1); +x_149 = lean::cnstr_get(x_147, 1); lean::inc(x_149); -if (lean::is_exclusive(x_120)) { - lean::cnstr_release(x_120, 0); - lean::cnstr_release(x_120, 1); - x_150 = x_120; +lean::dec(x_147); +if (lean::is_scalar(x_129)) { + x_150 = lean::alloc_cnstr(0, 2, 0); } else { - lean::dec_ref(x_120); - x_150 = lean::box(0); + x_150 = x_129; } -if (lean::is_scalar(x_150)) { - x_151 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_150, 0, x_148); +lean::cnstr_set(x_150, 1, x_149); +if (lean::is_scalar(x_146)) { + x_151 = lean::alloc_cnstr(0, 2, 0); } else { - x_151 = x_150; + x_151 = x_146; + lean::cnstr_set_tag(x_151, 0); } -lean::cnstr_set(x_151, 0, x_148); -lean::cnstr_set(x_151, 1, x_149); +lean::cnstr_set(x_151, 0, x_150); +lean::cnstr_set(x_151, 1, x_125); return x_151; } } +else +{ +obj* x_152; obj* x_153; obj* x_154; obj* x_155; +lean::dec(x_121); +lean::dec(x_117); +x_152 = lean::cnstr_get(x_123, 0); +lean::inc(x_152); +x_153 = lean::cnstr_get(x_123, 1); +lean::inc(x_153); +if (lean::is_exclusive(x_123)) { + lean::cnstr_release(x_123, 0); + lean::cnstr_release(x_123, 1); + x_154 = x_123; +} else { + lean::dec_ref(x_123); + x_154 = lean::box(0); +} +if (lean::is_scalar(x_154)) { + x_155 = lean::alloc_cnstr(1, 2, 0); +} else { + x_155 = x_154; +} +lean::cnstr_set(x_155, 0, x_152); +lean::cnstr_set(x_155, 1, x_153); +return x_155; +} +} } } else { -uint8 x_155; +uint8 x_159; lean::dec(x_7); lean::dec(x_2); lean::dec(x_1); -x_155 = !lean::is_exclusive(x_9); -if (x_155 == 0) +x_159 = !lean::is_exclusive(x_9); +if (x_159 == 0) { return x_9; } else { -obj* x_156; obj* x_157; obj* x_158; -x_156 = lean::cnstr_get(x_9, 0); -x_157 = lean::cnstr_get(x_9, 1); -lean::inc(x_157); -lean::inc(x_156); +obj* x_160; obj* x_161; obj* x_162; +x_160 = lean::cnstr_get(x_9, 0); +x_161 = lean::cnstr_get(x_9, 1); +lean::inc(x_161); +lean::inc(x_160); lean::dec(x_9); -x_158 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_158, 0, x_156); -lean::cnstr_set(x_158, 1, x_157); -return x_158; +x_162 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_162, 0, x_160); +lean::cnstr_set(x_162, 1, x_161); +return x_162; } } } else { -obj* x_159; obj* x_160; obj* x_161; obj* x_162; obj* x_163; -x_159 = lean::cnstr_get(x_5, 0); -x_160 = lean::cnstr_get(x_5, 1); -lean::inc(x_160); -lean::inc(x_159); -lean::dec(x_5); -x_161 = lean::box(0); -x_162 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_162, 0, x_161); -lean::cnstr_set(x_162, 1, x_160); -lean::inc(x_2); -x_163 = l_Lean_toBaseDir(x_2, x_162); -if (lean::obj_tag(x_163) == 0) -{ -obj* x_164; obj* x_165; obj* x_166; obj* x_167; obj* x_168; -x_164 = lean::cnstr_get(x_163, 0); +obj* x_163; obj* x_164; obj* x_165; obj* x_166; obj* x_167; +x_163 = lean::cnstr_get(x_5, 0); +x_164 = lean::cnstr_get(x_5, 1); lean::inc(x_164); -x_165 = lean::cnstr_get(x_163, 1); -lean::inc(x_165); -if (lean::is_exclusive(x_163)) { - lean::cnstr_release(x_163, 0); - lean::cnstr_release(x_163, 1); - x_166 = x_163; +lean::inc(x_163); +lean::dec(x_5); +x_165 = lean::box(0); +x_166 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_166, 0, x_165); +lean::cnstr_set(x_166, 1, x_164); +lean::inc(x_2); +x_167 = l_Lean_Elab_toBaseDir(x_2, x_166); +if (lean::obj_tag(x_167) == 0) +{ +obj* x_168; obj* x_169; obj* x_170; obj* x_171; obj* x_172; +x_168 = lean::cnstr_get(x_167, 0); +lean::inc(x_168); +x_169 = lean::cnstr_get(x_167, 1); +lean::inc(x_169); +if (lean::is_exclusive(x_167)) { + lean::cnstr_release(x_167, 0); + lean::cnstr_release(x_167, 1); + x_170 = x_167; } else { - lean::dec_ref(x_163); - x_166 = lean::box(0); + lean::dec_ref(x_167); + x_170 = lean::box(0); } -if (lean::is_scalar(x_166)) { - x_167 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_170)) { + x_171 = lean::alloc_cnstr(0, 2, 0); } else { - x_167 = x_166; + x_171 = x_170; } -lean::cnstr_set(x_167, 0, x_161); -lean::cnstr_set(x_167, 1, x_165); +lean::cnstr_set(x_171, 0, x_165); +lean::cnstr_set(x_171, 1, x_169); if (lean::obj_tag(x_2) == 0) { -obj* x_208; -x_208 = l_Lean_testFrontend___closed__4; -x_168 = x_208; -goto block_207; +obj* x_213; +x_213 = l_Lean_Elab_testFrontend___closed__4; +x_172 = x_213; +goto block_212; } else { -obj* x_209; -x_209 = lean::cnstr_get(x_2, 0); -lean::inc(x_209); +obj* x_214; +x_214 = lean::cnstr_get(x_2, 0); +lean::inc(x_214); lean::dec(x_2); -x_168 = x_209; -goto block_207; +x_172 = x_214; +goto block_212; } -block_207: +block_212: { -obj* x_169; obj* x_170; obj* x_171; obj* x_172; obj* x_173; obj* x_174; obj* x_175; -x_169 = l_Lean_Parser_mkParserContextCore(x_159, x_1, x_168); -lean::inc(x_169); -x_170 = l_Lean_Parser_parseHeader(x_159, x_169); -x_171 = lean::cnstr_get(x_170, 1); -lean::inc(x_171); -x_172 = lean::cnstr_get(x_170, 0); -lean::inc(x_172); -lean::dec(x_170); -x_173 = lean::cnstr_get(x_171, 0); +obj* x_173; obj* x_174; obj* x_175; obj* x_176; obj* x_177; obj* x_178; obj* x_179; +x_173 = l_Lean_Parser_mkParserContextCore(x_163, x_1, x_172); lean::inc(x_173); -x_174 = lean::cnstr_get(x_171, 1); -lean::inc(x_174); -lean::dec(x_171); -x_175 = l_Lean_processHeader(x_164, x_172, x_174, x_169, x_4, x_167); -lean::dec(x_172); -if (lean::obj_tag(x_175) == 0) -{ -obj* x_176; obj* x_177; obj* x_178; obj* x_179; obj* x_180; obj* x_181; obj* x_182; obj* x_183; obj* x_184; obj* x_185; obj* x_186; obj* x_187; obj* x_188; -x_176 = lean::cnstr_get(x_175, 0); +x_174 = l_Lean_Parser_parseHeader(x_163, x_173); +x_175 = lean::cnstr_get(x_174, 1); +lean::inc(x_175); +x_176 = lean::cnstr_get(x_174, 0); lean::inc(x_176); -x_177 = lean::cnstr_get(x_175, 1); +lean::dec(x_174); +x_177 = lean::cnstr_get(x_175, 0); lean::inc(x_177); -if (lean::is_exclusive(x_175)) { - lean::cnstr_release(x_175, 0); - lean::cnstr_release(x_175, 1); - x_178 = x_175; -} else { - lean::dec_ref(x_175); - x_178 = lean::box(0); -} -x_179 = lean::cnstr_get(x_176, 0); -lean::inc(x_179); -x_180 = lean::cnstr_get(x_176, 1); +x_178 = lean::cnstr_get(x_175, 1); +lean::inc(x_178); +lean::dec(x_175); +x_179 = l_Lean_Elab_processHeader(x_168, x_176, x_178, x_173, x_4, x_171); +lean::dec(x_176); +if (lean::obj_tag(x_179) == 0) +{ +obj* x_180; obj* x_181; obj* x_182; obj* x_183; obj* x_184; obj* x_185; obj* x_186; obj* x_187; obj* x_188; obj* x_189; obj* x_190; obj* x_191; obj* x_192; obj* x_193; +x_180 = lean::cnstr_get(x_179, 0); lean::inc(x_180); -if (lean::is_exclusive(x_176)) { - lean::cnstr_release(x_176, 0); - lean::cnstr_release(x_176, 1); - x_181 = x_176; +x_181 = lean::cnstr_get(x_179, 1); +lean::inc(x_181); +if (lean::is_exclusive(x_179)) { + lean::cnstr_release(x_179, 0); + lean::cnstr_release(x_179, 1); + x_182 = x_179; } else { - lean::dec_ref(x_176); - x_181 = lean::box(0); + lean::dec_ref(x_179); + x_182 = lean::box(0); } -x_182 = lean::mk_nat_obj(0u); -x_183 = l_Lean_NameGenerator_Inhabited___closed__3; -x_184 = l_Lean_testFrontend___closed__3; -x_185 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_185, 0, x_179); -lean::cnstr_set(x_185, 1, x_180); -lean::cnstr_set(x_185, 2, x_182); -lean::cnstr_set(x_185, 3, x_183); -lean::cnstr_set(x_185, 4, x_184); -x_186 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_186, 0, x_185); -lean::cnstr_set(x_186, 1, x_173); -if (lean::is_scalar(x_178)) { - x_187 = lean::alloc_cnstr(0, 2, 0); +x_183 = lean::cnstr_get(x_180, 0); +lean::inc(x_183); +x_184 = lean::cnstr_get(x_180, 1); +lean::inc(x_184); +if (lean::is_exclusive(x_180)) { + lean::cnstr_release(x_180, 0); + lean::cnstr_release(x_180, 1); + x_185 = x_180; } else { - x_187 = x_178; + lean::dec_ref(x_180); + x_185 = lean::box(0); } -lean::cnstr_set(x_187, 0, x_161); -lean::cnstr_set(x_187, 1, x_186); -x_188 = l_Lean_processCommandsAux___main___rarg(x_169, x_187); -if (lean::obj_tag(x_188) == 0) +x_186 = lean::mk_nat_obj(0u); +x_187 = l_Lean_NameGenerator_Inhabited___closed__3; +x_188 = l_Lean_MetavarContext_mkMetavarContext___closed__1; +x_189 = l_Lean_Elab_testFrontend___closed__3; +x_190 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_190, 0, x_183); +lean::cnstr_set(x_190, 1, x_184); +lean::cnstr_set(x_190, 2, x_186); +lean::cnstr_set(x_190, 3, x_187); +lean::cnstr_set(x_190, 4, x_188); +lean::cnstr_set(x_190, 5, x_189); +x_191 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_191, 0, x_190); +lean::cnstr_set(x_191, 1, x_177); +if (lean::is_scalar(x_182)) { + x_192 = lean::alloc_cnstr(0, 2, 0); +} else { + x_192 = x_182; +} +lean::cnstr_set(x_192, 0, x_165); +lean::cnstr_set(x_192, 1, x_191); +x_193 = l_Lean_Elab_processCommandsAux___main___rarg(x_173, x_192); +if (lean::obj_tag(x_193) == 0) { -obj* x_189; obj* x_190; obj* x_191; obj* x_192; obj* x_193; obj* x_194; obj* x_195; -x_189 = lean::cnstr_get(x_188, 1); -lean::inc(x_189); -if (lean::is_exclusive(x_188)) { - lean::cnstr_release(x_188, 0); - lean::cnstr_release(x_188, 1); - x_190 = x_188; +obj* x_194; obj* x_195; obj* x_196; obj* x_197; obj* x_198; obj* x_199; obj* x_200; +x_194 = lean::cnstr_get(x_193, 1); +lean::inc(x_194); +if (lean::is_exclusive(x_193)) { + lean::cnstr_release(x_193, 0); + lean::cnstr_release(x_193, 1); + x_195 = x_193; } else { - lean::dec_ref(x_188); - x_190 = lean::box(0); + lean::dec_ref(x_193); + x_195 = lean::box(0); } -x_191 = lean::cnstr_get(x_189, 0); -lean::inc(x_191); -lean::dec(x_189); -x_192 = lean::cnstr_get(x_191, 0); -lean::inc(x_192); -x_193 = lean::cnstr_get(x_191, 1); -lean::inc(x_193); -lean::dec(x_191); -if (lean::is_scalar(x_181)) { - x_194 = lean::alloc_cnstr(0, 2, 0); -} else { - x_194 = x_181; -} -lean::cnstr_set(x_194, 0, x_192); -lean::cnstr_set(x_194, 1, x_193); -if (lean::is_scalar(x_190)) { - x_195 = lean::alloc_cnstr(0, 2, 0); -} else { - x_195 = x_190; -} -lean::cnstr_set(x_195, 0, x_194); -lean::cnstr_set(x_195, 1, x_177); -return x_195; -} -else -{ -obj* x_196; obj* x_197; obj* x_198; obj* x_199; obj* x_200; obj* x_201; obj* x_202; -x_196 = lean::cnstr_get(x_188, 1); +x_196 = lean::cnstr_get(x_194, 0); lean::inc(x_196); -if (lean::is_exclusive(x_188)) { - lean::cnstr_release(x_188, 0); - lean::cnstr_release(x_188, 1); - x_197 = x_188; -} else { - lean::dec_ref(x_188); - x_197 = lean::box(0); -} -x_198 = lean::cnstr_get(x_196, 0); +lean::dec(x_194); +x_197 = lean::cnstr_get(x_196, 0); +lean::inc(x_197); +x_198 = lean::cnstr_get(x_196, 1); lean::inc(x_198); lean::dec(x_196); -x_199 = lean::cnstr_get(x_198, 0); -lean::inc(x_199); -x_200 = lean::cnstr_get(x_198, 1); -lean::inc(x_200); -lean::dec(x_198); -if (lean::is_scalar(x_181)) { - x_201 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_185)) { + x_199 = lean::alloc_cnstr(0, 2, 0); } else { - x_201 = x_181; + x_199 = x_185; } -lean::cnstr_set(x_201, 0, x_199); -lean::cnstr_set(x_201, 1, x_200); -if (lean::is_scalar(x_197)) { - x_202 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_199, 0, x_197); +lean::cnstr_set(x_199, 1, x_198); +if (lean::is_scalar(x_195)) { + x_200 = lean::alloc_cnstr(0, 2, 0); } else { - x_202 = x_197; - lean::cnstr_set_tag(x_202, 0); -} -lean::cnstr_set(x_202, 0, x_201); -lean::cnstr_set(x_202, 1, x_177); -return x_202; + x_200 = x_195; } +lean::cnstr_set(x_200, 0, x_199); +lean::cnstr_set(x_200, 1, x_181); +return x_200; } else { -obj* x_203; obj* x_204; obj* x_205; obj* x_206; -lean::dec(x_173); -lean::dec(x_169); -x_203 = lean::cnstr_get(x_175, 0); +obj* x_201; obj* x_202; obj* x_203; obj* x_204; obj* x_205; obj* x_206; obj* x_207; +x_201 = lean::cnstr_get(x_193, 1); +lean::inc(x_201); +if (lean::is_exclusive(x_193)) { + lean::cnstr_release(x_193, 0); + lean::cnstr_release(x_193, 1); + x_202 = x_193; +} else { + lean::dec_ref(x_193); + x_202 = lean::box(0); +} +x_203 = lean::cnstr_get(x_201, 0); lean::inc(x_203); -x_204 = lean::cnstr_get(x_175, 1); +lean::dec(x_201); +x_204 = lean::cnstr_get(x_203, 0); lean::inc(x_204); -if (lean::is_exclusive(x_175)) { - lean::cnstr_release(x_175, 0); - lean::cnstr_release(x_175, 1); - x_205 = x_175; +x_205 = lean::cnstr_get(x_203, 1); +lean::inc(x_205); +lean::dec(x_203); +if (lean::is_scalar(x_185)) { + x_206 = lean::alloc_cnstr(0, 2, 0); } else { - lean::dec_ref(x_175); - x_205 = lean::box(0); + x_206 = x_185; } -if (lean::is_scalar(x_205)) { - x_206 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_206, 0, x_204); +lean::cnstr_set(x_206, 1, x_205); +if (lean::is_scalar(x_202)) { + x_207 = lean::alloc_cnstr(0, 2, 0); } else { - x_206 = x_205; + x_207 = x_202; + lean::cnstr_set_tag(x_207, 0); } -lean::cnstr_set(x_206, 0, x_203); -lean::cnstr_set(x_206, 1, x_204); -return x_206; +lean::cnstr_set(x_207, 0, x_206); +lean::cnstr_set(x_207, 1, x_181); +return x_207; +} +} +else +{ +obj* x_208; obj* x_209; obj* x_210; obj* x_211; +lean::dec(x_177); +lean::dec(x_173); +x_208 = lean::cnstr_get(x_179, 0); +lean::inc(x_208); +x_209 = lean::cnstr_get(x_179, 1); +lean::inc(x_209); +if (lean::is_exclusive(x_179)) { + lean::cnstr_release(x_179, 0); + lean::cnstr_release(x_179, 1); + x_210 = x_179; +} else { + lean::dec_ref(x_179); + x_210 = lean::box(0); +} +if (lean::is_scalar(x_210)) { + x_211 = lean::alloc_cnstr(1, 2, 0); +} else { + x_211 = x_210; +} +lean::cnstr_set(x_211, 0, x_208); +lean::cnstr_set(x_211, 1, x_209); +return x_211; } } } else { -obj* x_210; obj* x_211; obj* x_212; obj* x_213; -lean::dec(x_159); +obj* x_215; obj* x_216; obj* x_217; obj* x_218; +lean::dec(x_163); lean::dec(x_2); lean::dec(x_1); -x_210 = lean::cnstr_get(x_163, 0); -lean::inc(x_210); -x_211 = lean::cnstr_get(x_163, 1); -lean::inc(x_211); -if (lean::is_exclusive(x_163)) { - lean::cnstr_release(x_163, 0); - lean::cnstr_release(x_163, 1); - x_212 = x_163; +x_215 = lean::cnstr_get(x_167, 0); +lean::inc(x_215); +x_216 = lean::cnstr_get(x_167, 1); +lean::inc(x_216); +if (lean::is_exclusive(x_167)) { + lean::cnstr_release(x_167, 0); + lean::cnstr_release(x_167, 1); + x_217 = x_167; } else { - lean::dec_ref(x_163); - x_212 = lean::box(0); + lean::dec_ref(x_167); + x_217 = lean::box(0); } -if (lean::is_scalar(x_212)) { - x_213 = lean::alloc_cnstr(1, 2, 0); +if (lean::is_scalar(x_217)) { + x_218 = lean::alloc_cnstr(1, 2, 0); } else { - x_213 = x_212; + x_218 = x_217; } -lean::cnstr_set(x_213, 0, x_210); -lean::cnstr_set(x_213, 1, x_211); -return x_213; +lean::cnstr_set(x_218, 0, x_215); +lean::cnstr_set(x_218, 1, x_216); +return x_218; } } } else { -uint8 x_214; +uint8 x_219; lean::dec(x_2); lean::dec(x_1); -x_214 = !lean::is_exclusive(x_5); -if (x_214 == 0) +x_219 = !lean::is_exclusive(x_5); +if (x_219 == 0) { return x_5; } else { -obj* x_215; obj* x_216; obj* x_217; -x_215 = lean::cnstr_get(x_5, 0); -x_216 = lean::cnstr_get(x_5, 1); -lean::inc(x_216); -lean::inc(x_215); +obj* x_220; obj* x_221; obj* x_222; +x_220 = lean::cnstr_get(x_5, 0); +x_221 = lean::cnstr_get(x_5, 1); +lean::inc(x_221); +lean::inc(x_220); lean::dec(x_5); -x_217 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_217, 0, x_215); -lean::cnstr_set(x_217, 1, x_216); -return x_217; +x_222 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_222, 0, x_220); +lean::cnstr_set(x_222, 1, x_221); +return x_222; } } } @@ -18968,12 +18826,14 @@ return x_1; } else { -obj* x_9; obj* x_10; obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; +obj* x_9; obj* x_10; obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; x_9 = lean::cnstr_get(x_3, 0); x_10 = lean::cnstr_get(x_3, 1); x_11 = lean::cnstr_get(x_3, 2); x_12 = lean::cnstr_get(x_3, 3); x_13 = lean::cnstr_get(x_3, 4); +x_14 = lean::cnstr_get(x_3, 5); +lean::inc(x_14); lean::inc(x_13); lean::inc(x_12); lean::inc(x_11); @@ -18981,63 +18841,68 @@ lean::inc(x_10); lean::inc(x_9); lean::dec(x_3); lean::inc(x_12); -x_14 = l_Lean_NameGenerator_curr(x_12); -x_15 = l_Lean_NameGenerator_next(x_12); -x_16 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_16, 0, x_9); -lean::cnstr_set(x_16, 1, x_10); -lean::cnstr_set(x_16, 2, x_11); -lean::cnstr_set(x_16, 3, x_15); -lean::cnstr_set(x_16, 4, x_13); -lean::cnstr_set(x_1, 1, x_16); -lean::cnstr_set(x_1, 0, x_14); +x_15 = l_Lean_NameGenerator_curr(x_12); +x_16 = l_Lean_NameGenerator_next(x_12); +x_17 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_17, 0, x_9); +lean::cnstr_set(x_17, 1, x_10); +lean::cnstr_set(x_17, 2, x_11); +lean::cnstr_set(x_17, 3, x_16); +lean::cnstr_set(x_17, 4, x_13); +lean::cnstr_set(x_17, 5, x_14); +lean::cnstr_set(x_1, 1, x_17); +lean::cnstr_set(x_1, 0, x_15); return x_1; } } else { -obj* x_17; obj* x_18; obj* x_19; obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; -x_17 = lean::cnstr_get(x_1, 1); -lean::inc(x_17); -lean::dec(x_1); -x_18 = lean::cnstr_get(x_17, 0); +obj* x_18; obj* x_19; obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; +x_18 = lean::cnstr_get(x_1, 1); lean::inc(x_18); -x_19 = lean::cnstr_get(x_17, 1); +lean::dec(x_1); +x_19 = lean::cnstr_get(x_18, 0); lean::inc(x_19); -x_20 = lean::cnstr_get(x_17, 2); +x_20 = lean::cnstr_get(x_18, 1); lean::inc(x_20); -x_21 = lean::cnstr_get(x_17, 3); +x_21 = lean::cnstr_get(x_18, 2); lean::inc(x_21); -x_22 = lean::cnstr_get(x_17, 4); +x_22 = lean::cnstr_get(x_18, 3); lean::inc(x_22); -if (lean::is_exclusive(x_17)) { - lean::cnstr_release(x_17, 0); - lean::cnstr_release(x_17, 1); - lean::cnstr_release(x_17, 2); - lean::cnstr_release(x_17, 3); - lean::cnstr_release(x_17, 4); - x_23 = x_17; +x_23 = lean::cnstr_get(x_18, 4); +lean::inc(x_23); +x_24 = lean::cnstr_get(x_18, 5); +lean::inc(x_24); +if (lean::is_exclusive(x_18)) { + lean::cnstr_release(x_18, 0); + lean::cnstr_release(x_18, 1); + lean::cnstr_release(x_18, 2); + lean::cnstr_release(x_18, 3); + lean::cnstr_release(x_18, 4); + lean::cnstr_release(x_18, 5); + x_25 = x_18; } else { - lean::dec_ref(x_17); - x_23 = lean::box(0); + lean::dec_ref(x_18); + x_25 = lean::box(0); } -lean::inc(x_21); -x_24 = l_Lean_NameGenerator_curr(x_21); -x_25 = l_Lean_NameGenerator_next(x_21); -if (lean::is_scalar(x_23)) { - x_26 = lean::alloc_cnstr(0, 5, 0); +lean::inc(x_22); +x_26 = l_Lean_NameGenerator_curr(x_22); +x_27 = l_Lean_NameGenerator_next(x_22); +if (lean::is_scalar(x_25)) { + x_28 = lean::alloc_cnstr(0, 6, 0); } else { - x_26 = x_23; + x_28 = x_25; } -lean::cnstr_set(x_26, 0, x_18); -lean::cnstr_set(x_26, 1, x_19); -lean::cnstr_set(x_26, 2, x_20); -lean::cnstr_set(x_26, 3, x_25); -lean::cnstr_set(x_26, 4, x_22); -x_27 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_27, 0, x_24); -lean::cnstr_set(x_27, 1, x_26); -return x_27; +lean::cnstr_set(x_28, 0, x_19); +lean::cnstr_set(x_28, 1, x_20); +lean::cnstr_set(x_28, 2, x_21); +lean::cnstr_set(x_28, 3, x_27); +lean::cnstr_set(x_28, 4, x_23); +lean::cnstr_set(x_28, 5, x_24); +x_29 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_29, 0, x_26); +lean::cnstr_set(x_29, 1, x_28); +return x_29; } } } @@ -19087,7 +18952,7 @@ obj* x_3; obj* x_4; obj* x_5; obj* x_6; x_3 = lean::cnstr_get(x_1, 1); x_4 = lean::cnstr_get(x_1, 0); lean::dec(x_4); -x_5 = lean::cnstr_get(x_3, 4); +x_5 = lean::cnstr_get(x_3, 5); lean::inc(x_5); x_6 = l_List_head___at_Lean_Elab_getScope___spec__1(x_5); lean::dec(x_5); @@ -19100,7 +18965,7 @@ obj* x_7; obj* x_8; obj* x_9; obj* x_10; x_7 = lean::cnstr_get(x_1, 1); lean::inc(x_7); lean::dec(x_1); -x_8 = lean::cnstr_get(x_7, 4); +x_8 = lean::cnstr_get(x_7, 5); lean::inc(x_8); x_9 = l_List_head___at_Lean_Elab_getScope___spec__1(x_8); lean::dec(x_8); @@ -19302,7 +19167,7 @@ obj* x_3; obj* x_4; obj* x_5; x_3 = lean::cnstr_get(x_1, 1); x_4 = lean::cnstr_get(x_1, 0); lean::dec(x_4); -x_5 = lean::cnstr_get(x_3, 4); +x_5 = lean::cnstr_get(x_3, 5); lean::inc(x_5); if (lean::obj_tag(x_5) == 0) { @@ -19330,7 +19195,7 @@ obj* x_9; obj* x_10; x_9 = lean::cnstr_get(x_1, 1); lean::inc(x_9); lean::dec(x_1); -x_10 = lean::cnstr_get(x_9, 4); +x_10 = lean::cnstr_get(x_9, 5); lean::inc(x_10); if (lean::obj_tag(x_10) == 0) { @@ -19590,7 +19455,7 @@ x_9 = l_Lean_isNamespace(x_8, x_1); if (x_9 == 0) { obj* x_10; obj* x_11; -x_10 = lean::cnstr_get(x_5, 4); +x_10 = lean::cnstr_get(x_5, 5); lean::inc(x_10); lean::inc(x_1); x_11 = l_Lean_Elab_resolveNamespaceUsingScopes___main(x_8, x_1, x_10); @@ -19750,7 +19615,7 @@ x_48 = l_Lean_isNamespace(x_47, x_1); if (x_48 == 0) { obj* x_49; obj* x_50; -x_49 = lean::cnstr_get(x_44, 4); +x_49 = lean::cnstr_get(x_44, 5); lean::inc(x_49); lean::inc(x_1); x_50 = l_Lean_Elab_resolveNamespaceUsingScopes___main(x_47, x_1, x_49); @@ -20014,6 +19879,7 @@ return x_4; } } obj* initialize_init_control_reader(obj*); +obj* initialize_init_lean_metavarcontext(obj*); obj* initialize_init_lean_namegenerator(obj*); obj* initialize_init_lean_scopes(obj*); obj* initialize_init_lean_parser_module(obj*); @@ -20024,6 +19890,8 @@ _G_initialized = true; if (io_result_is_error(w)) return w; w = initialize_init_control_reader(w); if (io_result_is_error(w)) return w; +w = initialize_init_lean_metavarcontext(w); +if (io_result_is_error(w)) return w; w = initialize_init_lean_namegenerator(w); if (io_result_is_error(w)) return w; w = initialize_init_lean_scopes(w); @@ -20174,36 +20042,30 @@ w = l_Lean_mkCommandElabAttribute(w); if (io_result_is_error(w)) return w; l_Lean_commandElabAttribute = io_result_get_value(w); lean::mark_persistent(l_Lean_commandElabAttribute); -l_Lean_logElabException___closed__1 = _init_l_Lean_logElabException___closed__1(); -lean::mark_persistent(l_Lean_logElabException___closed__1); -l_Lean_logUnknownDecl___closed__1 = _init_l_Lean_logUnknownDecl___closed__1(); -lean::mark_persistent(l_Lean_logUnknownDecl___closed__1); -l_Lean_elabTerm___closed__1 = _init_l_Lean_elabTerm___closed__1(); -lean::mark_persistent(l_Lean_elabTerm___closed__1); -l_Lean_elabTerm___closed__2 = _init_l_Lean_elabTerm___closed__2(); -lean::mark_persistent(l_Lean_elabTerm___closed__2); -l_Lean_elabTerm___closed__3 = _init_l_Lean_elabTerm___closed__3(); -lean::mark_persistent(l_Lean_elabTerm___closed__3); -l_Lean_elabCommand___closed__1 = _init_l_Lean_elabCommand___closed__1(); -lean::mark_persistent(l_Lean_elabCommand___closed__1); -l_Lean_elabCommand___closed__2 = _init_l_Lean_elabCommand___closed__2(); -lean::mark_persistent(l_Lean_elabCommand___closed__2); -l_Lean_elabCommand___closed__3 = _init_l_Lean_elabCommand___closed__3(); -lean::mark_persistent(l_Lean_elabCommand___closed__3); -l_Lean_absolutizeModuleName___closed__1 = _init_l_Lean_absolutizeModuleName___closed__1(); -lean::mark_persistent(l_Lean_absolutizeModuleName___closed__1); -l_Lean_processHeaderAux___closed__1 = _init_l_Lean_processHeaderAux___closed__1(); -lean::mark_persistent(l_Lean_processHeaderAux___closed__1); -l_Lean_processHeaderAux___closed__2 = _init_l_Lean_processHeaderAux___closed__2(); -lean::mark_persistent(l_Lean_processHeaderAux___closed__2); -l_Lean_testFrontend___closed__1 = _init_l_Lean_testFrontend___closed__1(); -lean::mark_persistent(l_Lean_testFrontend___closed__1); -l_Lean_testFrontend___closed__2 = _init_l_Lean_testFrontend___closed__2(); -lean::mark_persistent(l_Lean_testFrontend___closed__2); -l_Lean_testFrontend___closed__3 = _init_l_Lean_testFrontend___closed__3(); -lean::mark_persistent(l_Lean_testFrontend___closed__3); -l_Lean_testFrontend___closed__4 = _init_l_Lean_testFrontend___closed__4(); -lean::mark_persistent(l_Lean_testFrontend___closed__4); +l_Lean_Elab_logElabException___closed__1 = _init_l_Lean_Elab_logElabException___closed__1(); +lean::mark_persistent(l_Lean_Elab_logElabException___closed__1); +l_Lean_Elab_logUnknownDecl___rarg___closed__1 = _init_l_Lean_Elab_logUnknownDecl___rarg___closed__1(); +lean::mark_persistent(l_Lean_Elab_logUnknownDecl___rarg___closed__1); +l_Lean_Elab_elabCommand___closed__1 = _init_l_Lean_Elab_elabCommand___closed__1(); +lean::mark_persistent(l_Lean_Elab_elabCommand___closed__1); +l_Lean_Elab_elabCommand___closed__2 = _init_l_Lean_Elab_elabCommand___closed__2(); +lean::mark_persistent(l_Lean_Elab_elabCommand___closed__2); +l_Lean_Elab_elabCommand___closed__3 = _init_l_Lean_Elab_elabCommand___closed__3(); +lean::mark_persistent(l_Lean_Elab_elabCommand___closed__3); +l_Lean_Elab_absolutizeModuleName___closed__1 = _init_l_Lean_Elab_absolutizeModuleName___closed__1(); +lean::mark_persistent(l_Lean_Elab_absolutizeModuleName___closed__1); +l_Lean_Elab_processHeaderAux___closed__1 = _init_l_Lean_Elab_processHeaderAux___closed__1(); +lean::mark_persistent(l_Lean_Elab_processHeaderAux___closed__1); +l_Lean_Elab_processHeaderAux___closed__2 = _init_l_Lean_Elab_processHeaderAux___closed__2(); +lean::mark_persistent(l_Lean_Elab_processHeaderAux___closed__2); +l_Lean_Elab_testFrontend___closed__1 = _init_l_Lean_Elab_testFrontend___closed__1(); +lean::mark_persistent(l_Lean_Elab_testFrontend___closed__1); +l_Lean_Elab_testFrontend___closed__2 = _init_l_Lean_Elab_testFrontend___closed__2(); +lean::mark_persistent(l_Lean_Elab_testFrontend___closed__2); +l_Lean_Elab_testFrontend___closed__3 = _init_l_Lean_Elab_testFrontend___closed__3(); +lean::mark_persistent(l_Lean_Elab_testFrontend___closed__3); +l_Lean_Elab_testFrontend___closed__4 = _init_l_Lean_Elab_testFrontend___closed__4(); +lean::mark_persistent(l_Lean_Elab_testFrontend___closed__4); l_Lean_Elab_rootNamespace___closed__1 = _init_l_Lean_Elab_rootNamespace___closed__1(); lean::mark_persistent(l_Lean_Elab_rootNamespace___closed__1); l_Lean_Elab_rootNamespace___closed__2 = _init_l_Lean_Elab_rootNamespace___closed__2(); diff --git a/src/stage0/init/lean/elaborator/command.cpp b/src/stage0/init/lean/elaborator/command.cpp index 349d626e69..8ff08e45a5 100644 --- a/src/stage0/init/lean/elaborator/command.cpp +++ b/src/stage0/init/lean/elaborator/command.cpp @@ -57,10 +57,9 @@ obj* l_Lean_Elab_elabExport___boxed(obj*, obj*, obj*); obj* l___regBuiltinTermElab_Lean_Elab_elabUniverses___closed__1; obj* l___regBuiltinTermElab_Lean_Elab_elabNamespace___closed__2; obj* l_Lean_Elab_addUniverse___closed__2; -obj* l_Lean_logElabException(obj*, obj*, obj*); +obj* l_Lean_Elab_logError___rarg(obj*, obj*, obj*, obj*); obj* l_Lean_Elab_elabSection___boxed(obj*, obj*, obj*); obj* l_Lean_Elab_modifyScope___at_Lean_Elab_addOpenDecl___spec__1(obj*, obj*, obj*); -obj* l_Lean_logError(obj*, obj*, obj*, obj*); obj* l_Lean_Elab_elabOpenHiding(obj*, obj*, obj*); obj* l_List_toStringAux___main___at_Lean_Elab_elabResolveName___spec__2(uint8, obj*); obj* l_Lean_Elab_elabResolveName(obj*, obj*, obj*); @@ -90,7 +89,6 @@ obj* l___regBuiltinTermElab_Lean_Elab_elabReserve___closed__2; obj* l___regBuiltinTermElab_Lean_Elab_elabNamespace___closed__3; obj* l___regBuiltinTermElab_Lean_Elab_elabUniverses(obj*); obj* l_Lean_Elab_elabUniverses(obj*, obj*, obj*); -obj* l_Lean_setEnv(obj*, obj*, obj*); extern obj* l_Lean_Parser_Command_openOnly___elambda__1___closed__2; obj* l___regBuiltinTermElab_Lean_Elab_elabResolveName___closed__3; obj* l___regBuiltinTermElab_Lean_Elab_elabInitQuot___closed__3; @@ -101,6 +99,8 @@ obj* l_List_foldl___main___at_Lean_Elab_elabExport___spec__2(obj*, obj*); obj* l___private_init_lean_elaborator_command_3__checkAnonymousScope___boxed(obj*); obj* l_Lean_Elab_resolveNamespace(obj*, obj*, obj*); obj* l_Lean_Elab_elabMixfix___rarg(obj*); +obj* l_Lean_Syntax_lift(obj*, obj*); +obj* l_Lean_Elab_setEnv(obj*, obj*, obj*); obj* l_Nat_repr(obj*); extern obj* l_List_repr___rarg___closed__2; obj* l_Lean_Elab_getNamespace___rarg(obj*); @@ -131,7 +131,6 @@ obj* l_Lean_Elab_elabEnd___closed__2; obj* l_Lean_Syntax_getId___rarg(obj*); obj* l_Lean_Elab_elabExport(obj*, obj*, obj*); extern obj* l_Lean_Parser_Command_resolve__name___elambda__1___rarg___closed__2; -obj* l_Lean_getPosition(obj*, obj*, obj*); extern obj* l_Lean_Parser_Command_notation___elambda__1___closed__2; obj* l___private_init_lean_elaborator_command_1__addScopes___boxed(obj*, obj*, obj*, obj*); obj* l_Lean_Elab_getUniverses___rarg(obj*); @@ -150,7 +149,6 @@ obj* l_Lean_Elab_elabNamespace(obj*, obj*, obj*); obj* l_Lean_Elab_modifyScope(obj*, obj*, obj*); obj* l_Lean_Elab_elabOpenSimple___boxed(obj*, obj*, obj*); extern obj* l_Lean_Format_flatten___main___closed__1; -obj* l_Lean_getEnv___rarg(obj*); obj* l_Lean_Elab_resolveName(obj*, obj*, obj*); obj* l_Lean_Name_getNumParts___main(obj*); obj* l___regBuiltinTermElab_Lean_Elab_elabNotation___closed__3; @@ -158,6 +156,7 @@ obj* l_Lean_Elab_elabNotation___boxed(obj*, obj*); obj* l___regBuiltinTermElab_Lean_Elab_elabEnd___closed__3; obj* l_Lean_Elab_elabEnd___closed__6; uint8 l_Lean_Name_eqStr(obj*, obj*); +obj* l_Lean_Elab_logUnknownDecl___rarg(obj*, obj*, obj*, obj*); uint8 l_List_elem___main___at_Lean_Parser_addBuiltinLeadingParser___spec__4(obj*, obj*); obj* l_Lean_Elab_elabUniverses___boxed(obj*, obj*, obj*); obj* l_Lean_Elab_elabPreTerm___boxed(obj*, obj*, obj*); @@ -175,12 +174,12 @@ obj* l_Array_miterateAux___main___at_Lean_Elab_elabExport___spec__1(obj*, obj*, obj* l_Lean_Syntax_getIdAt___rarg(obj*, obj*); obj* l_Lean_Elab_elabUniverse___boxed(obj*, obj*, obj*); obj* l___regBuiltinTermElab_Lean_Elab_elabResolveName___closed__1; -obj* l_Lean_logUnknownDecl(obj*, obj*, obj*, obj*); obj* l_List_toString___at_Lean_Elab_elabResolveName___spec__1(obj*); obj* l_Lean_Elab_elabEnd(obj*, obj*, obj*); obj* l_Lean_Elab_toPreTerm(obj*, obj*, obj*); obj* l_Lean_Syntax_mfoldArgsAux___main___at_Lean_Elab_elabUniverses___spec__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Elab_elabEnd___closed__5; +obj* l_Lean_Elab_getEnv___rarg(obj*); obj* l_Array_size(obj*, obj*); extern obj* l_Lean_Parser_Command_section___elambda__1___rarg___closed__2; obj* l___regBuiltinTermElab_Lean_Elab_elabPreTerm___closed__2; @@ -195,6 +194,7 @@ obj* l___regBuiltinTermElab_Lean_Elab_elabNamespace(obj*); obj* l_Lean_Syntax_mfoldArgsAux___main___at_Lean_Elab_elabOpenSimple___spec__1(obj*, obj*, obj*, obj*, obj*, obj*); obj* l___regBuiltinTermElab_Lean_Elab_elabSection___closed__1; obj* l___regBuiltinTermElab_Lean_Elab_elabPreTerm___closed__3; +obj* l_Lean_Elab_getPosition(obj*, obj*, obj*); extern obj* l_Lean_Name_toString___closed__1; obj* l___private_init_lean_elaborator_command_4__checkEndHeader___boxed(obj*, obj*); uint8 l_Lean_Environment_contains(obj*, obj*); @@ -208,6 +208,7 @@ obj* l_Lean_Elab_elabEnd___closed__1; obj* l_List_toStringAux___main___at_Lean_Elab_elabResolveName___spec__2___boxed(obj*, obj*); extern obj* l_Lean_Parser_Command_reserve___elambda__1___closed__2; obj* l___regBuiltinTermElab_Lean_Elab_elabEnd___closed__1; +obj* l_Lean_Elab_logElabException(obj*, obj*, obj*); obj* l_Lean_Elab_elabInitQuot___boxed(obj*); obj* l_Lean_Elab_elabMixfix(obj*, obj*); obj* l___regBuiltinTermElab_Lean_Elab_elabPreTerm___closed__1; @@ -425,12 +426,12 @@ x_12 = !lean::is_exclusive(x_6); if (x_12 == 0) { obj* x_13; obj* x_14; uint8 x_15; obj* x_16; obj* x_17; obj* x_18; -x_13 = lean::cnstr_get(x_6, 4); +x_13 = lean::cnstr_get(x_6, 5); x_14 = l_Lean_Parser_Command_namespace___elambda__1___rarg___closed__1; x_15 = 1; x_16 = l___private_init_lean_elaborator_command_1__addScopes___main(x_14, x_15, x_11, x_13); lean::dec(x_13); -lean::cnstr_set(x_6, 4, x_16); +lean::cnstr_set(x_6, 5, x_16); x_17 = lean::box(0); lean::cnstr_set(x_3, 0, x_17); x_18 = l_Lean_Elab_getNamespace___rarg(x_3); @@ -455,341 +456,363 @@ return x_18; } else { -obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; +obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; x_25 = lean::cnstr_get(x_18, 0); x_26 = lean::cnstr_get(x_20, 0); x_27 = lean::cnstr_get(x_20, 1); x_28 = lean::cnstr_get(x_20, 2); x_29 = lean::cnstr_get(x_20, 3); x_30 = lean::cnstr_get(x_20, 4); +x_31 = lean::cnstr_get(x_20, 5); +lean::inc(x_31); lean::inc(x_30); lean::inc(x_29); lean::inc(x_28); lean::inc(x_27); lean::inc(x_26); lean::dec(x_20); -x_31 = l_Lean_registerNamespace(x_26, x_25); -x_32 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_32, 0, x_31); -lean::cnstr_set(x_32, 1, x_27); -lean::cnstr_set(x_32, 2, x_28); -lean::cnstr_set(x_32, 3, x_29); -lean::cnstr_set(x_32, 4, x_30); -lean::cnstr_set(x_18, 1, x_32); +x_32 = l_Lean_registerNamespace(x_26, x_25); +x_33 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_33, 0, x_32); +lean::cnstr_set(x_33, 1, x_27); +lean::cnstr_set(x_33, 2, x_28); +lean::cnstr_set(x_33, 3, x_29); +lean::cnstr_set(x_33, 4, x_30); +lean::cnstr_set(x_33, 5, x_31); +lean::cnstr_set(x_18, 1, x_33); lean::cnstr_set(x_18, 0, x_17); return x_18; } } else { -obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; obj* x_39; obj* x_40; obj* x_41; obj* x_42; obj* x_43; -x_33 = lean::cnstr_get(x_18, 1); -x_34 = lean::cnstr_get(x_18, 0); -lean::inc(x_33); +obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; obj* x_39; obj* x_40; obj* x_41; obj* x_42; obj* x_43; obj* x_44; obj* x_45; +x_34 = lean::cnstr_get(x_18, 1); +x_35 = lean::cnstr_get(x_18, 0); lean::inc(x_34); -lean::dec(x_18); -x_35 = lean::cnstr_get(x_33, 0); lean::inc(x_35); -x_36 = lean::cnstr_get(x_33, 1); +lean::dec(x_18); +x_36 = lean::cnstr_get(x_34, 0); lean::inc(x_36); -x_37 = lean::cnstr_get(x_33, 2); +x_37 = lean::cnstr_get(x_34, 1); lean::inc(x_37); -x_38 = lean::cnstr_get(x_33, 3); +x_38 = lean::cnstr_get(x_34, 2); lean::inc(x_38); -x_39 = lean::cnstr_get(x_33, 4); +x_39 = lean::cnstr_get(x_34, 3); lean::inc(x_39); -if (lean::is_exclusive(x_33)) { - lean::cnstr_release(x_33, 0); - lean::cnstr_release(x_33, 1); - lean::cnstr_release(x_33, 2); - lean::cnstr_release(x_33, 3); - lean::cnstr_release(x_33, 4); - x_40 = x_33; +x_40 = lean::cnstr_get(x_34, 4); +lean::inc(x_40); +x_41 = lean::cnstr_get(x_34, 5); +lean::inc(x_41); +if (lean::is_exclusive(x_34)) { + lean::cnstr_release(x_34, 0); + lean::cnstr_release(x_34, 1); + lean::cnstr_release(x_34, 2); + lean::cnstr_release(x_34, 3); + lean::cnstr_release(x_34, 4); + lean::cnstr_release(x_34, 5); + x_42 = x_34; } else { - lean::dec_ref(x_33); - x_40 = lean::box(0); + lean::dec_ref(x_34); + x_42 = lean::box(0); } -x_41 = l_Lean_registerNamespace(x_35, x_34); -if (lean::is_scalar(x_40)) { - x_42 = lean::alloc_cnstr(0, 5, 0); +x_43 = l_Lean_registerNamespace(x_36, x_35); +if (lean::is_scalar(x_42)) { + x_44 = lean::alloc_cnstr(0, 6, 0); } else { - x_42 = x_40; + x_44 = x_42; } -lean::cnstr_set(x_42, 0, x_41); -lean::cnstr_set(x_42, 1, x_36); -lean::cnstr_set(x_42, 2, x_37); -lean::cnstr_set(x_42, 3, x_38); -lean::cnstr_set(x_42, 4, x_39); -x_43 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_43, 0, x_17); -lean::cnstr_set(x_43, 1, x_42); -return x_43; +lean::cnstr_set(x_44, 0, x_43); +lean::cnstr_set(x_44, 1, x_37); +lean::cnstr_set(x_44, 2, x_38); +lean::cnstr_set(x_44, 3, x_39); +lean::cnstr_set(x_44, 4, x_40); +lean::cnstr_set(x_44, 5, x_41); +x_45 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_45, 0, x_17); +lean::cnstr_set(x_45, 1, x_44); +return x_45; } } else { -uint8 x_44; -x_44 = !lean::is_exclusive(x_18); -if (x_44 == 0) +uint8 x_46; +x_46 = !lean::is_exclusive(x_18); +if (x_46 == 0) { return x_18; } else { -obj* x_45; obj* x_46; obj* x_47; -x_45 = lean::cnstr_get(x_18, 0); -x_46 = lean::cnstr_get(x_18, 1); -lean::inc(x_46); -lean::inc(x_45); +obj* x_47; obj* x_48; obj* x_49; +x_47 = lean::cnstr_get(x_18, 0); +x_48 = lean::cnstr_get(x_18, 1); +lean::inc(x_48); +lean::inc(x_47); lean::dec(x_18); -x_47 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_47, 0, x_45); -lean::cnstr_set(x_47, 1, x_46); -return x_47; +x_49 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_49, 0, x_47); +lean::cnstr_set(x_49, 1, x_48); +return x_49; } } } else { -obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; obj* x_53; uint8 x_54; obj* x_55; obj* x_56; obj* x_57; obj* x_58; -x_48 = lean::cnstr_get(x_6, 0); -x_49 = lean::cnstr_get(x_6, 1); -x_50 = lean::cnstr_get(x_6, 2); -x_51 = lean::cnstr_get(x_6, 3); -x_52 = lean::cnstr_get(x_6, 4); +obj* x_50; obj* x_51; obj* x_52; obj* x_53; obj* x_54; obj* x_55; obj* x_56; uint8 x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_50 = lean::cnstr_get(x_6, 0); +x_51 = lean::cnstr_get(x_6, 1); +x_52 = lean::cnstr_get(x_6, 2); +x_53 = lean::cnstr_get(x_6, 3); +x_54 = lean::cnstr_get(x_6, 4); +x_55 = lean::cnstr_get(x_6, 5); +lean::inc(x_55); +lean::inc(x_54); +lean::inc(x_53); lean::inc(x_52); lean::inc(x_51); lean::inc(x_50); -lean::inc(x_49); -lean::inc(x_48); lean::dec(x_6); -x_53 = l_Lean_Parser_Command_namespace___elambda__1___rarg___closed__1; -x_54 = 1; -x_55 = l___private_init_lean_elaborator_command_1__addScopes___main(x_53, x_54, x_11, x_52); -lean::dec(x_52); -x_56 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_56, 0, x_48); -lean::cnstr_set(x_56, 1, x_49); -lean::cnstr_set(x_56, 2, x_50); -lean::cnstr_set(x_56, 3, x_51); -lean::cnstr_set(x_56, 4, x_55); -x_57 = lean::box(0); -lean::cnstr_set(x_3, 1, x_56); -lean::cnstr_set(x_3, 0, x_57); -x_58 = l_Lean_Elab_getNamespace___rarg(x_3); -if (lean::obj_tag(x_58) == 0) +x_56 = l_Lean_Parser_Command_namespace___elambda__1___rarg___closed__1; +x_57 = 1; +x_58 = l___private_init_lean_elaborator_command_1__addScopes___main(x_56, x_57, x_11, x_55); +lean::dec(x_55); +x_59 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_59, 0, x_50); +lean::cnstr_set(x_59, 1, x_51); +lean::cnstr_set(x_59, 2, x_52); +lean::cnstr_set(x_59, 3, x_53); +lean::cnstr_set(x_59, 4, x_54); +lean::cnstr_set(x_59, 5, x_58); +x_60 = lean::box(0); +lean::cnstr_set(x_3, 1, x_59); +lean::cnstr_set(x_3, 0, x_60); +x_61 = l_Lean_Elab_getNamespace___rarg(x_3); +if (lean::obj_tag(x_61) == 0) { -obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; -x_59 = lean::cnstr_get(x_58, 1); -lean::inc(x_59); -x_60 = lean::cnstr_get(x_58, 0); -lean::inc(x_60); -if (lean::is_exclusive(x_58)) { - lean::cnstr_release(x_58, 0); - lean::cnstr_release(x_58, 1); - x_61 = x_58; -} else { - lean::dec_ref(x_58); - x_61 = lean::box(0); -} -x_62 = lean::cnstr_get(x_59, 0); +obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; obj* x_73; obj* x_74; +x_62 = lean::cnstr_get(x_61, 1); lean::inc(x_62); -x_63 = lean::cnstr_get(x_59, 1); +x_63 = lean::cnstr_get(x_61, 0); lean::inc(x_63); -x_64 = lean::cnstr_get(x_59, 2); -lean::inc(x_64); -x_65 = lean::cnstr_get(x_59, 3); +if (lean::is_exclusive(x_61)) { + lean::cnstr_release(x_61, 0); + lean::cnstr_release(x_61, 1); + x_64 = x_61; +} else { + lean::dec_ref(x_61); + x_64 = lean::box(0); +} +x_65 = lean::cnstr_get(x_62, 0); lean::inc(x_65); -x_66 = lean::cnstr_get(x_59, 4); +x_66 = lean::cnstr_get(x_62, 1); lean::inc(x_66); -if (lean::is_exclusive(x_59)) { - lean::cnstr_release(x_59, 0); - lean::cnstr_release(x_59, 1); - lean::cnstr_release(x_59, 2); - lean::cnstr_release(x_59, 3); - lean::cnstr_release(x_59, 4); - x_67 = x_59; +x_67 = lean::cnstr_get(x_62, 2); +lean::inc(x_67); +x_68 = lean::cnstr_get(x_62, 3); +lean::inc(x_68); +x_69 = lean::cnstr_get(x_62, 4); +lean::inc(x_69); +x_70 = lean::cnstr_get(x_62, 5); +lean::inc(x_70); +if (lean::is_exclusive(x_62)) { + lean::cnstr_release(x_62, 0); + lean::cnstr_release(x_62, 1); + lean::cnstr_release(x_62, 2); + lean::cnstr_release(x_62, 3); + lean::cnstr_release(x_62, 4); + lean::cnstr_release(x_62, 5); + x_71 = x_62; } else { - lean::dec_ref(x_59); - x_67 = lean::box(0); + lean::dec_ref(x_62); + x_71 = lean::box(0); } -x_68 = l_Lean_registerNamespace(x_62, x_60); -if (lean::is_scalar(x_67)) { - x_69 = lean::alloc_cnstr(0, 5, 0); +x_72 = l_Lean_registerNamespace(x_65, x_63); +if (lean::is_scalar(x_71)) { + x_73 = lean::alloc_cnstr(0, 6, 0); } else { - x_69 = x_67; + x_73 = x_71; } -lean::cnstr_set(x_69, 0, x_68); -lean::cnstr_set(x_69, 1, x_63); -lean::cnstr_set(x_69, 2, x_64); -lean::cnstr_set(x_69, 3, x_65); -lean::cnstr_set(x_69, 4, x_66); -if (lean::is_scalar(x_61)) { - x_70 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_73, 0, x_72); +lean::cnstr_set(x_73, 1, x_66); +lean::cnstr_set(x_73, 2, x_67); +lean::cnstr_set(x_73, 3, x_68); +lean::cnstr_set(x_73, 4, x_69); +lean::cnstr_set(x_73, 5, x_70); +if (lean::is_scalar(x_64)) { + x_74 = lean::alloc_cnstr(0, 2, 0); } else { - x_70 = x_61; + x_74 = x_64; } -lean::cnstr_set(x_70, 0, x_57); -lean::cnstr_set(x_70, 1, x_69); -return x_70; -} -else -{ -obj* x_71; obj* x_72; obj* x_73; obj* x_74; -x_71 = lean::cnstr_get(x_58, 0); -lean::inc(x_71); -x_72 = lean::cnstr_get(x_58, 1); -lean::inc(x_72); -if (lean::is_exclusive(x_58)) { - lean::cnstr_release(x_58, 0); - lean::cnstr_release(x_58, 1); - x_73 = x_58; -} else { - lean::dec_ref(x_58); - x_73 = lean::box(0); -} -if (lean::is_scalar(x_73)) { - x_74 = lean::alloc_cnstr(1, 2, 0); -} else { - x_74 = x_73; -} -lean::cnstr_set(x_74, 0, x_71); -lean::cnstr_set(x_74, 1, x_72); +lean::cnstr_set(x_74, 0, x_60); +lean::cnstr_set(x_74, 1, x_73); return x_74; } -} -} else { -obj* x_75; obj* x_76; obj* x_77; obj* x_78; obj* x_79; obj* x_80; obj* x_81; obj* x_82; obj* x_83; obj* x_84; obj* x_85; obj* x_86; obj* x_87; uint8 x_88; obj* x_89; obj* x_90; obj* x_91; obj* x_92; obj* x_93; -x_75 = lean::cnstr_get(x_1, 1); -x_76 = lean::cnstr_get(x_3, 1); +obj* x_75; obj* x_76; obj* x_77; obj* x_78; +x_75 = lean::cnstr_get(x_61, 0); +lean::inc(x_75); +x_76 = lean::cnstr_get(x_61, 1); lean::inc(x_76); -lean::dec(x_3); -x_77 = lean::box(0); -x_78 = lean::mk_nat_obj(1u); -x_79 = lean::array_get(x_77, x_75, x_78); -x_80 = l_Lean_Syntax_getId___rarg(x_79); -lean::dec(x_79); -x_81 = lean::cnstr_get(x_76, 0); -lean::inc(x_81); -x_82 = lean::cnstr_get(x_76, 1); -lean::inc(x_82); -x_83 = lean::cnstr_get(x_76, 2); -lean::inc(x_83); -x_84 = lean::cnstr_get(x_76, 3); -lean::inc(x_84); -x_85 = lean::cnstr_get(x_76, 4); -lean::inc(x_85); -if (lean::is_exclusive(x_76)) { - lean::cnstr_release(x_76, 0); - lean::cnstr_release(x_76, 1); - lean::cnstr_release(x_76, 2); - lean::cnstr_release(x_76, 3); - lean::cnstr_release(x_76, 4); - x_86 = x_76; +if (lean::is_exclusive(x_61)) { + lean::cnstr_release(x_61, 0); + lean::cnstr_release(x_61, 1); + x_77 = x_61; } else { - lean::dec_ref(x_76); - x_86 = lean::box(0); + lean::dec_ref(x_61); + x_77 = lean::box(0); } -x_87 = l_Lean_Parser_Command_namespace___elambda__1___rarg___closed__1; -x_88 = 1; -x_89 = l___private_init_lean_elaborator_command_1__addScopes___main(x_87, x_88, x_80, x_85); -lean::dec(x_85); -if (lean::is_scalar(x_86)) { - x_90 = lean::alloc_cnstr(0, 5, 0); +if (lean::is_scalar(x_77)) { + x_78 = lean::alloc_cnstr(1, 2, 0); } else { - x_90 = x_86; + x_78 = x_77; } -lean::cnstr_set(x_90, 0, x_81); -lean::cnstr_set(x_90, 1, x_82); -lean::cnstr_set(x_90, 2, x_83); -lean::cnstr_set(x_90, 3, x_84); -lean::cnstr_set(x_90, 4, x_89); -x_91 = lean::box(0); -x_92 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_92, 0, x_91); -lean::cnstr_set(x_92, 1, x_90); -x_93 = l_Lean_Elab_getNamespace___rarg(x_92); -if (lean::obj_tag(x_93) == 0) -{ -obj* x_94; obj* x_95; obj* x_96; obj* x_97; obj* x_98; obj* x_99; obj* x_100; obj* x_101; obj* x_102; obj* x_103; obj* x_104; obj* x_105; -x_94 = lean::cnstr_get(x_93, 1); -lean::inc(x_94); -x_95 = lean::cnstr_get(x_93, 0); -lean::inc(x_95); -if (lean::is_exclusive(x_93)) { - lean::cnstr_release(x_93, 0); - lean::cnstr_release(x_93, 1); - x_96 = x_93; -} else { - lean::dec_ref(x_93); - x_96 = lean::box(0); +lean::cnstr_set(x_78, 0, x_75); +lean::cnstr_set(x_78, 1, x_76); +return x_78; } -x_97 = lean::cnstr_get(x_94, 0); -lean::inc(x_97); -x_98 = lean::cnstr_get(x_94, 1); -lean::inc(x_98); -x_99 = lean::cnstr_get(x_94, 2); -lean::inc(x_99); -x_100 = lean::cnstr_get(x_94, 3); -lean::inc(x_100); -x_101 = lean::cnstr_get(x_94, 4); -lean::inc(x_101); -if (lean::is_exclusive(x_94)) { - lean::cnstr_release(x_94, 0); - lean::cnstr_release(x_94, 1); - lean::cnstr_release(x_94, 2); - lean::cnstr_release(x_94, 3); - lean::cnstr_release(x_94, 4); - x_102 = x_94; -} else { - lean::dec_ref(x_94); - x_102 = lean::box(0); } -x_103 = l_Lean_registerNamespace(x_97, x_95); -if (lean::is_scalar(x_102)) { - x_104 = lean::alloc_cnstr(0, 5, 0); -} else { - x_104 = x_102; -} -lean::cnstr_set(x_104, 0, x_103); -lean::cnstr_set(x_104, 1, x_98); -lean::cnstr_set(x_104, 2, x_99); -lean::cnstr_set(x_104, 3, x_100); -lean::cnstr_set(x_104, 4, x_101); -if (lean::is_scalar(x_96)) { - x_105 = lean::alloc_cnstr(0, 2, 0); -} else { - x_105 = x_96; -} -lean::cnstr_set(x_105, 0, x_91); -lean::cnstr_set(x_105, 1, x_104); -return x_105; } else { -obj* x_106; obj* x_107; obj* x_108; obj* x_109; -x_106 = lean::cnstr_get(x_93, 0); -lean::inc(x_106); -x_107 = lean::cnstr_get(x_93, 1); -lean::inc(x_107); -if (lean::is_exclusive(x_93)) { - lean::cnstr_release(x_93, 0); - lean::cnstr_release(x_93, 1); - x_108 = x_93; +obj* x_79; obj* x_80; obj* x_81; obj* x_82; obj* x_83; obj* x_84; obj* x_85; obj* x_86; obj* x_87; obj* x_88; obj* x_89; obj* x_90; obj* x_91; obj* x_92; uint8 x_93; obj* x_94; obj* x_95; obj* x_96; obj* x_97; obj* x_98; +x_79 = lean::cnstr_get(x_1, 1); +x_80 = lean::cnstr_get(x_3, 1); +lean::inc(x_80); +lean::dec(x_3); +x_81 = lean::box(0); +x_82 = lean::mk_nat_obj(1u); +x_83 = lean::array_get(x_81, x_79, x_82); +x_84 = l_Lean_Syntax_getId___rarg(x_83); +lean::dec(x_83); +x_85 = lean::cnstr_get(x_80, 0); +lean::inc(x_85); +x_86 = lean::cnstr_get(x_80, 1); +lean::inc(x_86); +x_87 = lean::cnstr_get(x_80, 2); +lean::inc(x_87); +x_88 = lean::cnstr_get(x_80, 3); +lean::inc(x_88); +x_89 = lean::cnstr_get(x_80, 4); +lean::inc(x_89); +x_90 = lean::cnstr_get(x_80, 5); +lean::inc(x_90); +if (lean::is_exclusive(x_80)) { + lean::cnstr_release(x_80, 0); + lean::cnstr_release(x_80, 1); + lean::cnstr_release(x_80, 2); + lean::cnstr_release(x_80, 3); + lean::cnstr_release(x_80, 4); + lean::cnstr_release(x_80, 5); + x_91 = x_80; } else { - lean::dec_ref(x_93); + lean::dec_ref(x_80); + x_91 = lean::box(0); +} +x_92 = l_Lean_Parser_Command_namespace___elambda__1___rarg___closed__1; +x_93 = 1; +x_94 = l___private_init_lean_elaborator_command_1__addScopes___main(x_92, x_93, x_84, x_90); +lean::dec(x_90); +if (lean::is_scalar(x_91)) { + x_95 = lean::alloc_cnstr(0, 6, 0); +} else { + x_95 = x_91; +} +lean::cnstr_set(x_95, 0, x_85); +lean::cnstr_set(x_95, 1, x_86); +lean::cnstr_set(x_95, 2, x_87); +lean::cnstr_set(x_95, 3, x_88); +lean::cnstr_set(x_95, 4, x_89); +lean::cnstr_set(x_95, 5, x_94); +x_96 = lean::box(0); +x_97 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_97, 0, x_96); +lean::cnstr_set(x_97, 1, x_95); +x_98 = l_Lean_Elab_getNamespace___rarg(x_97); +if (lean::obj_tag(x_98) == 0) +{ +obj* x_99; obj* x_100; obj* x_101; obj* x_102; obj* x_103; obj* x_104; obj* x_105; obj* x_106; obj* x_107; obj* x_108; obj* x_109; obj* x_110; obj* x_111; +x_99 = lean::cnstr_get(x_98, 1); +lean::inc(x_99); +x_100 = lean::cnstr_get(x_98, 0); +lean::inc(x_100); +if (lean::is_exclusive(x_98)) { + lean::cnstr_release(x_98, 0); + lean::cnstr_release(x_98, 1); + x_101 = x_98; +} else { + lean::dec_ref(x_98); + x_101 = lean::box(0); +} +x_102 = lean::cnstr_get(x_99, 0); +lean::inc(x_102); +x_103 = lean::cnstr_get(x_99, 1); +lean::inc(x_103); +x_104 = lean::cnstr_get(x_99, 2); +lean::inc(x_104); +x_105 = lean::cnstr_get(x_99, 3); +lean::inc(x_105); +x_106 = lean::cnstr_get(x_99, 4); +lean::inc(x_106); +x_107 = lean::cnstr_get(x_99, 5); +lean::inc(x_107); +if (lean::is_exclusive(x_99)) { + lean::cnstr_release(x_99, 0); + lean::cnstr_release(x_99, 1); + lean::cnstr_release(x_99, 2); + lean::cnstr_release(x_99, 3); + lean::cnstr_release(x_99, 4); + lean::cnstr_release(x_99, 5); + x_108 = x_99; +} else { + lean::dec_ref(x_99); x_108 = lean::box(0); } +x_109 = l_Lean_registerNamespace(x_102, x_100); if (lean::is_scalar(x_108)) { - x_109 = lean::alloc_cnstr(1, 2, 0); + x_110 = lean::alloc_cnstr(0, 6, 0); } else { - x_109 = x_108; + x_110 = x_108; } -lean::cnstr_set(x_109, 0, x_106); -lean::cnstr_set(x_109, 1, x_107); -return x_109; +lean::cnstr_set(x_110, 0, x_109); +lean::cnstr_set(x_110, 1, x_103); +lean::cnstr_set(x_110, 2, x_104); +lean::cnstr_set(x_110, 3, x_105); +lean::cnstr_set(x_110, 4, x_106); +lean::cnstr_set(x_110, 5, x_107); +if (lean::is_scalar(x_101)) { + x_111 = lean::alloc_cnstr(0, 2, 0); +} else { + x_111 = x_101; +} +lean::cnstr_set(x_111, 0, x_96); +lean::cnstr_set(x_111, 1, x_110); +return x_111; +} +else +{ +obj* x_112; obj* x_113; obj* x_114; obj* x_115; +x_112 = lean::cnstr_get(x_98, 0); +lean::inc(x_112); +x_113 = lean::cnstr_get(x_98, 1); +lean::inc(x_113); +if (lean::is_exclusive(x_98)) { + lean::cnstr_release(x_98, 0); + lean::cnstr_release(x_98, 1); + x_114 = x_98; +} else { + lean::dec_ref(x_98); + x_114 = lean::box(0); +} +if (lean::is_scalar(x_114)) { + x_115 = lean::alloc_cnstr(1, 2, 0); +} else { + x_115 = x_114; +} +lean::cnstr_set(x_115, 0, x_112); +lean::cnstr_set(x_115, 1, x_113); +return x_115; } } } @@ -868,7 +891,7 @@ x_13 = !lean::is_exclusive(x_8); if (x_13 == 0) { obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; obj* x_21; obj* x_22; -x_14 = lean::cnstr_get(x_8, 4); +x_14 = lean::cnstr_get(x_8, 5); x_15 = lean::box(0); x_16 = l_Lean_Parser_Command_section___elambda__1___rarg___closed__1; x_17 = lean::box(0); @@ -885,244 +908,258 @@ lean::cnstr_set(x_20, 6, x_19); x_21 = lean::alloc_cnstr(1, 2, 0); lean::cnstr_set(x_21, 0, x_20); lean::cnstr_set(x_21, 1, x_14); -lean::cnstr_set(x_8, 4, x_21); +lean::cnstr_set(x_8, 5, x_21); x_22 = lean::box(0); lean::cnstr_set(x_5, 0, x_22); return x_5; } else { -obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; +obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; x_23 = lean::cnstr_get(x_8, 0); x_24 = lean::cnstr_get(x_8, 1); x_25 = lean::cnstr_get(x_8, 2); x_26 = lean::cnstr_get(x_8, 3); x_27 = lean::cnstr_get(x_8, 4); +x_28 = lean::cnstr_get(x_8, 5); +lean::inc(x_28); lean::inc(x_27); lean::inc(x_26); lean::inc(x_25); lean::inc(x_24); lean::inc(x_23); lean::dec(x_8); -x_28 = lean::box(0); -x_29 = l_Lean_Parser_Command_section___elambda__1___rarg___closed__1; -x_30 = lean::box(0); -x_31 = l_Lean_Options_empty; -x_32 = l_Lean_LocalContext_Inhabited___closed__1; -x_33 = lean::alloc_cnstr(0, 7, 0); -lean::cnstr_set(x_33, 0, x_29); -lean::cnstr_set(x_33, 1, x_30); -lean::cnstr_set(x_33, 2, x_31); -lean::cnstr_set(x_33, 3, x_7); -lean::cnstr_set(x_33, 4, x_28); -lean::cnstr_set(x_33, 5, x_28); -lean::cnstr_set(x_33, 6, x_32); -x_34 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_34, 0, x_33); -lean::cnstr_set(x_34, 1, x_27); -x_35 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_35, 0, x_23); -lean::cnstr_set(x_35, 1, x_24); -lean::cnstr_set(x_35, 2, x_25); -lean::cnstr_set(x_35, 3, x_26); -lean::cnstr_set(x_35, 4, x_34); -x_36 = lean::box(0); -lean::cnstr_set(x_5, 1, x_35); -lean::cnstr_set(x_5, 0, x_36); +x_29 = lean::box(0); +x_30 = l_Lean_Parser_Command_section___elambda__1___rarg___closed__1; +x_31 = lean::box(0); +x_32 = l_Lean_Options_empty; +x_33 = l_Lean_LocalContext_Inhabited___closed__1; +x_34 = lean::alloc_cnstr(0, 7, 0); +lean::cnstr_set(x_34, 0, x_30); +lean::cnstr_set(x_34, 1, x_31); +lean::cnstr_set(x_34, 2, x_32); +lean::cnstr_set(x_34, 3, x_7); +lean::cnstr_set(x_34, 4, x_29); +lean::cnstr_set(x_34, 5, x_29); +lean::cnstr_set(x_34, 6, x_33); +x_35 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_35, 0, x_34); +lean::cnstr_set(x_35, 1, x_28); +x_36 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_36, 0, x_23); +lean::cnstr_set(x_36, 1, x_24); +lean::cnstr_set(x_36, 2, x_25); +lean::cnstr_set(x_36, 3, x_26); +lean::cnstr_set(x_36, 4, x_27); +lean::cnstr_set(x_36, 5, x_35); +x_37 = lean::box(0); +lean::cnstr_set(x_5, 1, x_36); +lean::cnstr_set(x_5, 0, x_37); return x_5; } } else { -obj* x_37; uint8 x_38; +obj* x_38; uint8 x_39; lean::dec(x_7); -x_37 = lean::cnstr_get(x_12, 0); -lean::inc(x_37); +x_38 = lean::cnstr_get(x_12, 0); +lean::inc(x_38); lean::dec(x_12); -x_38 = !lean::is_exclusive(x_8); -if (x_38 == 0) +x_39 = !lean::is_exclusive(x_8); +if (x_39 == 0) { -obj* x_39; obj* x_40; uint8 x_41; obj* x_42; obj* x_43; -x_39 = lean::cnstr_get(x_8, 4); -x_40 = l_Lean_Parser_Command_section___elambda__1___rarg___closed__1; -x_41 = 0; -x_42 = l___private_init_lean_elaborator_command_1__addScopes___main(x_40, x_41, x_37, x_39); -lean::dec(x_39); -lean::cnstr_set(x_8, 4, x_42); -x_43 = lean::box(0); -lean::cnstr_set(x_5, 0, x_43); +obj* x_40; obj* x_41; uint8 x_42; obj* x_43; obj* x_44; +x_40 = lean::cnstr_get(x_8, 5); +x_41 = l_Lean_Parser_Command_section___elambda__1___rarg___closed__1; +x_42 = 0; +x_43 = l___private_init_lean_elaborator_command_1__addScopes___main(x_41, x_42, x_38, x_40); +lean::dec(x_40); +lean::cnstr_set(x_8, 5, x_43); +x_44 = lean::box(0); +lean::cnstr_set(x_5, 0, x_44); return x_5; } else { -obj* x_44; obj* x_45; obj* x_46; obj* x_47; obj* x_48; obj* x_49; uint8 x_50; obj* x_51; obj* x_52; obj* x_53; -x_44 = lean::cnstr_get(x_8, 0); -x_45 = lean::cnstr_get(x_8, 1); -x_46 = lean::cnstr_get(x_8, 2); -x_47 = lean::cnstr_get(x_8, 3); -x_48 = lean::cnstr_get(x_8, 4); +obj* x_45; obj* x_46; obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; uint8 x_52; obj* x_53; obj* x_54; obj* x_55; +x_45 = lean::cnstr_get(x_8, 0); +x_46 = lean::cnstr_get(x_8, 1); +x_47 = lean::cnstr_get(x_8, 2); +x_48 = lean::cnstr_get(x_8, 3); +x_49 = lean::cnstr_get(x_8, 4); +x_50 = lean::cnstr_get(x_8, 5); +lean::inc(x_50); +lean::inc(x_49); lean::inc(x_48); lean::inc(x_47); lean::inc(x_46); lean::inc(x_45); -lean::inc(x_44); lean::dec(x_8); -x_49 = l_Lean_Parser_Command_section___elambda__1___rarg___closed__1; -x_50 = 0; -x_51 = l___private_init_lean_elaborator_command_1__addScopes___main(x_49, x_50, x_37, x_48); -lean::dec(x_48); -x_52 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_52, 0, x_44); -lean::cnstr_set(x_52, 1, x_45); -lean::cnstr_set(x_52, 2, x_46); -lean::cnstr_set(x_52, 3, x_47); -lean::cnstr_set(x_52, 4, x_51); -x_53 = lean::box(0); -lean::cnstr_set(x_5, 1, x_52); -lean::cnstr_set(x_5, 0, x_53); +x_51 = l_Lean_Parser_Command_section___elambda__1___rarg___closed__1; +x_52 = 0; +x_53 = l___private_init_lean_elaborator_command_1__addScopes___main(x_51, x_52, x_38, x_50); +lean::dec(x_50); +x_54 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_54, 0, x_45); +lean::cnstr_set(x_54, 1, x_46); +lean::cnstr_set(x_54, 2, x_47); +lean::cnstr_set(x_54, 3, x_48); +lean::cnstr_set(x_54, 4, x_49); +lean::cnstr_set(x_54, 5, x_53); +x_55 = lean::box(0); +lean::cnstr_set(x_5, 1, x_54); +lean::cnstr_set(x_5, 0, x_55); return x_5; } } } else { -obj* x_54; obj* x_55; obj* x_56; obj* x_57; obj* x_58; obj* x_59; -x_54 = lean::cnstr_get(x_5, 0); -x_55 = lean::cnstr_get(x_5, 1); -lean::inc(x_55); -lean::inc(x_54); +obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; +x_56 = lean::cnstr_get(x_5, 0); +x_57 = lean::cnstr_get(x_5, 1); +lean::inc(x_57); +lean::inc(x_56); lean::dec(x_5); -x_56 = lean::box(0); -x_57 = lean::mk_nat_obj(1u); -x_58 = lean::array_get(x_56, x_4, x_57); -x_59 = l_Lean_Syntax_getOptionalIdent___rarg(x_58); -lean::dec(x_58); -if (lean::obj_tag(x_59) == 0) +x_58 = lean::box(0); +x_59 = lean::mk_nat_obj(1u); +x_60 = lean::array_get(x_58, x_4, x_59); +x_61 = l_Lean_Syntax_getOptionalIdent___rarg(x_60); +lean::dec(x_60); +if (lean::obj_tag(x_61) == 0) { -obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; obj* x_73; obj* x_74; obj* x_75; -x_60 = lean::cnstr_get(x_55, 0); -lean::inc(x_60); -x_61 = lean::cnstr_get(x_55, 1); -lean::inc(x_61); -x_62 = lean::cnstr_get(x_55, 2); +obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; +x_62 = lean::cnstr_get(x_57, 0); lean::inc(x_62); -x_63 = lean::cnstr_get(x_55, 3); +x_63 = lean::cnstr_get(x_57, 1); lean::inc(x_63); -x_64 = lean::cnstr_get(x_55, 4); +x_64 = lean::cnstr_get(x_57, 2); lean::inc(x_64); -if (lean::is_exclusive(x_55)) { - lean::cnstr_release(x_55, 0); - lean::cnstr_release(x_55, 1); - lean::cnstr_release(x_55, 2); - lean::cnstr_release(x_55, 3); - lean::cnstr_release(x_55, 4); - x_65 = x_55; +x_65 = lean::cnstr_get(x_57, 3); +lean::inc(x_65); +x_66 = lean::cnstr_get(x_57, 4); +lean::inc(x_66); +x_67 = lean::cnstr_get(x_57, 5); +lean::inc(x_67); +if (lean::is_exclusive(x_57)) { + lean::cnstr_release(x_57, 0); + lean::cnstr_release(x_57, 1); + lean::cnstr_release(x_57, 2); + lean::cnstr_release(x_57, 3); + lean::cnstr_release(x_57, 4); + lean::cnstr_release(x_57, 5); + x_68 = x_57; } else { - lean::dec_ref(x_55); - x_65 = lean::box(0); + lean::dec_ref(x_57); + x_68 = lean::box(0); } -x_66 = lean::box(0); -x_67 = l_Lean_Parser_Command_section___elambda__1___rarg___closed__1; -x_68 = lean::box(0); -x_69 = l_Lean_Options_empty; -x_70 = l_Lean_LocalContext_Inhabited___closed__1; -x_71 = lean::alloc_cnstr(0, 7, 0); -lean::cnstr_set(x_71, 0, x_67); -lean::cnstr_set(x_71, 1, x_68); -lean::cnstr_set(x_71, 2, x_69); -lean::cnstr_set(x_71, 3, x_54); -lean::cnstr_set(x_71, 4, x_66); -lean::cnstr_set(x_71, 5, x_66); -lean::cnstr_set(x_71, 6, x_70); -x_72 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_72, 0, x_71); -lean::cnstr_set(x_72, 1, x_64); -if (lean::is_scalar(x_65)) { - x_73 = lean::alloc_cnstr(0, 5, 0); -} else { - x_73 = x_65; -} -lean::cnstr_set(x_73, 0, x_60); -lean::cnstr_set(x_73, 1, x_61); -lean::cnstr_set(x_73, 2, x_62); -lean::cnstr_set(x_73, 3, x_63); -lean::cnstr_set(x_73, 4, x_72); -x_74 = lean::box(0); -x_75 = lean::alloc_cnstr(0, 2, 0); +x_69 = lean::box(0); +x_70 = l_Lean_Parser_Command_section___elambda__1___rarg___closed__1; +x_71 = lean::box(0); +x_72 = l_Lean_Options_empty; +x_73 = l_Lean_LocalContext_Inhabited___closed__1; +x_74 = lean::alloc_cnstr(0, 7, 0); +lean::cnstr_set(x_74, 0, x_70); +lean::cnstr_set(x_74, 1, x_71); +lean::cnstr_set(x_74, 2, x_72); +lean::cnstr_set(x_74, 3, x_56); +lean::cnstr_set(x_74, 4, x_69); +lean::cnstr_set(x_74, 5, x_69); +lean::cnstr_set(x_74, 6, x_73); +x_75 = lean::alloc_cnstr(1, 2, 0); lean::cnstr_set(x_75, 0, x_74); -lean::cnstr_set(x_75, 1, x_73); -return x_75; +lean::cnstr_set(x_75, 1, x_67); +if (lean::is_scalar(x_68)) { + x_76 = lean::alloc_cnstr(0, 6, 0); +} else { + x_76 = x_68; +} +lean::cnstr_set(x_76, 0, x_62); +lean::cnstr_set(x_76, 1, x_63); +lean::cnstr_set(x_76, 2, x_64); +lean::cnstr_set(x_76, 3, x_65); +lean::cnstr_set(x_76, 4, x_66); +lean::cnstr_set(x_76, 5, x_75); +x_77 = lean::box(0); +x_78 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_78, 0, x_77); +lean::cnstr_set(x_78, 1, x_76); +return x_78; } else { -obj* x_76; obj* x_77; obj* x_78; obj* x_79; obj* x_80; obj* x_81; obj* x_82; obj* x_83; uint8 x_84; obj* x_85; obj* x_86; obj* x_87; obj* x_88; -lean::dec(x_54); -x_76 = lean::cnstr_get(x_59, 0); -lean::inc(x_76); -lean::dec(x_59); -x_77 = lean::cnstr_get(x_55, 0); -lean::inc(x_77); -x_78 = lean::cnstr_get(x_55, 1); -lean::inc(x_78); -x_79 = lean::cnstr_get(x_55, 2); +obj* x_79; obj* x_80; obj* x_81; obj* x_82; obj* x_83; obj* x_84; obj* x_85; obj* x_86; obj* x_87; uint8 x_88; obj* x_89; obj* x_90; obj* x_91; obj* x_92; +lean::dec(x_56); +x_79 = lean::cnstr_get(x_61, 0); lean::inc(x_79); -x_80 = lean::cnstr_get(x_55, 3); +lean::dec(x_61); +x_80 = lean::cnstr_get(x_57, 0); lean::inc(x_80); -x_81 = lean::cnstr_get(x_55, 4); +x_81 = lean::cnstr_get(x_57, 1); lean::inc(x_81); -if (lean::is_exclusive(x_55)) { - lean::cnstr_release(x_55, 0); - lean::cnstr_release(x_55, 1); - lean::cnstr_release(x_55, 2); - lean::cnstr_release(x_55, 3); - lean::cnstr_release(x_55, 4); - x_82 = x_55; +x_82 = lean::cnstr_get(x_57, 2); +lean::inc(x_82); +x_83 = lean::cnstr_get(x_57, 3); +lean::inc(x_83); +x_84 = lean::cnstr_get(x_57, 4); +lean::inc(x_84); +x_85 = lean::cnstr_get(x_57, 5); +lean::inc(x_85); +if (lean::is_exclusive(x_57)) { + lean::cnstr_release(x_57, 0); + lean::cnstr_release(x_57, 1); + lean::cnstr_release(x_57, 2); + lean::cnstr_release(x_57, 3); + lean::cnstr_release(x_57, 4); + lean::cnstr_release(x_57, 5); + x_86 = x_57; } else { - lean::dec_ref(x_55); - x_82 = lean::box(0); + lean::dec_ref(x_57); + x_86 = lean::box(0); } -x_83 = l_Lean_Parser_Command_section___elambda__1___rarg___closed__1; -x_84 = 0; -x_85 = l___private_init_lean_elaborator_command_1__addScopes___main(x_83, x_84, x_76, x_81); -lean::dec(x_81); -if (lean::is_scalar(x_82)) { - x_86 = lean::alloc_cnstr(0, 5, 0); +x_87 = l_Lean_Parser_Command_section___elambda__1___rarg___closed__1; +x_88 = 0; +x_89 = l___private_init_lean_elaborator_command_1__addScopes___main(x_87, x_88, x_79, x_85); +lean::dec(x_85); +if (lean::is_scalar(x_86)) { + x_90 = lean::alloc_cnstr(0, 6, 0); } else { - x_86 = x_82; + x_90 = x_86; } -lean::cnstr_set(x_86, 0, x_77); -lean::cnstr_set(x_86, 1, x_78); -lean::cnstr_set(x_86, 2, x_79); -lean::cnstr_set(x_86, 3, x_80); -lean::cnstr_set(x_86, 4, x_85); -x_87 = lean::box(0); -x_88 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_88, 0, x_87); -lean::cnstr_set(x_88, 1, x_86); -return x_88; +lean::cnstr_set(x_90, 0, x_80); +lean::cnstr_set(x_90, 1, x_81); +lean::cnstr_set(x_90, 2, x_82); +lean::cnstr_set(x_90, 3, x_83); +lean::cnstr_set(x_90, 4, x_84); +lean::cnstr_set(x_90, 5, x_89); +x_91 = lean::box(0); +x_92 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_92, 0, x_91); +lean::cnstr_set(x_92, 1, x_90); +return x_92; } } } else { -uint8 x_89; -x_89 = !lean::is_exclusive(x_5); -if (x_89 == 0) +uint8 x_93; +x_93 = !lean::is_exclusive(x_5); +if (x_93 == 0) { return x_5; } else { -obj* x_90; obj* x_91; obj* x_92; -x_90 = lean::cnstr_get(x_5, 0); -x_91 = lean::cnstr_get(x_5, 1); -lean::inc(x_91); -lean::inc(x_90); +obj* x_94; obj* x_95; obj* x_96; +x_94 = lean::cnstr_get(x_5, 0); +x_95 = lean::cnstr_get(x_5, 1); +lean::inc(x_95); +lean::inc(x_94); lean::dec(x_5); -x_92 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_92, 0, x_90); -lean::cnstr_set(x_92, 1, x_91); -return x_92; +x_96 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_96, 0, x_94); +lean::cnstr_set(x_96, 1, x_95); +return x_96; } } } @@ -1391,7 +1428,7 @@ x_7 = !lean::is_exclusive(x_5); if (x_7 == 0) { obj* x_8; obj* x_9; obj* x_10; obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; uint8 x_17; -x_8 = lean::cnstr_get(x_5, 4); +x_8 = lean::cnstr_get(x_5, 5); x_9 = lean::cnstr_get(x_1, 1); x_10 = lean::mk_nat_obj(0u); x_11 = l_List_lengthAux___main___rarg(x_8, x_10); @@ -1411,7 +1448,7 @@ x_18 = lean::nat_sub(x_11, x_13); lean::dec(x_11); x_19 = l_List_drop___main___rarg(x_18, x_8); lean::dec(x_8); -lean::cnstr_set(x_5, 4, x_19); +lean::cnstr_set(x_5, 5, x_19); x_20 = l_Lean_Elab_elabEnd___closed__2; lean::cnstr_set_tag(x_3, 1); lean::cnstr_set(x_3, 0, x_20); @@ -1422,7 +1459,7 @@ else obj* x_21; lean::dec(x_11); x_21 = l_List_drop___main___rarg(x_16, x_8); -lean::cnstr_set(x_5, 4, x_21); +lean::cnstr_set(x_5, 5, x_21); if (lean::obj_tag(x_15) == 0) { uint8 x_22; @@ -1473,241 +1510,250 @@ return x_3; } else { -obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; obj* x_39; obj* x_40; obj* x_41; uint8 x_42; +obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; obj* x_39; obj* x_40; obj* x_41; obj* x_42; uint8 x_43; x_29 = lean::cnstr_get(x_5, 0); x_30 = lean::cnstr_get(x_5, 1); x_31 = lean::cnstr_get(x_5, 2); x_32 = lean::cnstr_get(x_5, 3); x_33 = lean::cnstr_get(x_5, 4); +x_34 = lean::cnstr_get(x_5, 5); +lean::inc(x_34); lean::inc(x_33); lean::inc(x_32); lean::inc(x_31); lean::inc(x_30); lean::inc(x_29); lean::dec(x_5); -x_34 = lean::cnstr_get(x_1, 1); -x_35 = lean::mk_nat_obj(0u); -x_36 = l_List_lengthAux___main___rarg(x_33, x_35); -x_37 = lean::box(0); -x_38 = lean::mk_nat_obj(1u); -x_39 = lean::array_get(x_37, x_34, x_38); -x_40 = l_Lean_Syntax_getOptionalIdent___rarg(x_39); -lean::dec(x_39); -x_41 = l___private_init_lean_elaborator_command_2__getNumEndScopes(x_40); -x_42 = lean::nat_dec_lt(x_41, x_36); -if (x_42 == 0) -{ -obj* x_43; obj* x_44; obj* x_45; obj* x_46; -lean::dec(x_41); +x_35 = lean::cnstr_get(x_1, 1); +x_36 = lean::mk_nat_obj(0u); +x_37 = l_List_lengthAux___main___rarg(x_34, x_36); +x_38 = lean::box(0); +x_39 = lean::mk_nat_obj(1u); +x_40 = lean::array_get(x_38, x_35, x_39); +x_41 = l_Lean_Syntax_getOptionalIdent___rarg(x_40); lean::dec(x_40); -x_43 = lean::nat_sub(x_36, x_38); -lean::dec(x_36); -x_44 = l_List_drop___main___rarg(x_43, x_33); -lean::dec(x_33); -x_45 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_45, 0, x_29); -lean::cnstr_set(x_45, 1, x_30); -lean::cnstr_set(x_45, 2, x_31); -lean::cnstr_set(x_45, 3, x_32); -lean::cnstr_set(x_45, 4, x_44); -x_46 = l_Lean_Elab_elabEnd___closed__2; +x_42 = l___private_init_lean_elaborator_command_2__getNumEndScopes(x_41); +x_43 = lean::nat_dec_lt(x_42, x_37); +if (x_43 == 0) +{ +obj* x_44; obj* x_45; obj* x_46; obj* x_47; +lean::dec(x_42); +lean::dec(x_41); +x_44 = lean::nat_sub(x_37, x_39); +lean::dec(x_37); +x_45 = l_List_drop___main___rarg(x_44, x_34); +lean::dec(x_34); +x_46 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_46, 0, x_29); +lean::cnstr_set(x_46, 1, x_30); +lean::cnstr_set(x_46, 2, x_31); +lean::cnstr_set(x_46, 3, x_32); +lean::cnstr_set(x_46, 4, x_33); +lean::cnstr_set(x_46, 5, x_45); +x_47 = l_Lean_Elab_elabEnd___closed__2; lean::cnstr_set_tag(x_3, 1); -lean::cnstr_set(x_3, 1, x_45); -lean::cnstr_set(x_3, 0, x_46); +lean::cnstr_set(x_3, 1, x_46); +lean::cnstr_set(x_3, 0, x_47); return x_3; } else { -obj* x_47; obj* x_48; -lean::dec(x_36); -x_47 = l_List_drop___main___rarg(x_41, x_33); -x_48 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_48, 0, x_29); -lean::cnstr_set(x_48, 1, x_30); -lean::cnstr_set(x_48, 2, x_31); -lean::cnstr_set(x_48, 3, x_32); -lean::cnstr_set(x_48, 4, x_47); -if (lean::obj_tag(x_40) == 0) +obj* x_48; obj* x_49; +lean::dec(x_37); +x_48 = l_List_drop___main___rarg(x_42, x_34); +x_49 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_49, 0, x_29); +lean::cnstr_set(x_49, 1, x_30); +lean::cnstr_set(x_49, 2, x_31); +lean::cnstr_set(x_49, 3, x_32); +lean::cnstr_set(x_49, 4, x_33); +lean::cnstr_set(x_49, 5, x_48); +if (lean::obj_tag(x_41) == 0) { -uint8 x_49; -x_49 = l___private_init_lean_elaborator_command_3__checkAnonymousScope(x_33); -lean::dec(x_33); -if (x_49 == 0) -{ -obj* x_50; -x_50 = l_Lean_Elab_elabEnd___closed__4; -lean::cnstr_set_tag(x_3, 1); -lean::cnstr_set(x_3, 1, x_48); -lean::cnstr_set(x_3, 0, x_50); -return x_3; -} -else +uint8 x_50; +x_50 = l___private_init_lean_elaborator_command_3__checkAnonymousScope(x_34); +lean::dec(x_34); +if (x_50 == 0) { obj* x_51; -x_51 = lean::box(0); -lean::cnstr_set(x_3, 1, x_48); +x_51 = l_Lean_Elab_elabEnd___closed__4; +lean::cnstr_set_tag(x_3, 1); +lean::cnstr_set(x_3, 1, x_49); lean::cnstr_set(x_3, 0, x_51); return x_3; } -} else { -obj* x_52; uint8 x_53; -x_52 = lean::cnstr_get(x_40, 0); -lean::inc(x_52); -lean::dec(x_40); -x_53 = l___private_init_lean_elaborator_command_4__checkEndHeader___main(x_52, x_33); -lean::dec(x_33); -lean::dec(x_52); -if (x_53 == 0) -{ -obj* x_54; -x_54 = l_Lean_Elab_elabEnd___closed__6; -lean::cnstr_set_tag(x_3, 1); -lean::cnstr_set(x_3, 1, x_48); -lean::cnstr_set(x_3, 0, x_54); +obj* x_52; +x_52 = lean::box(0); +lean::cnstr_set(x_3, 1, x_49); +lean::cnstr_set(x_3, 0, x_52); return x_3; } +} else { +obj* x_53; uint8 x_54; +x_53 = lean::cnstr_get(x_41, 0); +lean::inc(x_53); +lean::dec(x_41); +x_54 = l___private_init_lean_elaborator_command_4__checkEndHeader___main(x_53, x_34); +lean::dec(x_34); +lean::dec(x_53); +if (x_54 == 0) +{ obj* x_55; -x_55 = lean::box(0); -lean::cnstr_set(x_3, 1, x_48); +x_55 = l_Lean_Elab_elabEnd___closed__6; +lean::cnstr_set_tag(x_3, 1); +lean::cnstr_set(x_3, 1, x_49); lean::cnstr_set(x_3, 0, x_55); return x_3; } +else +{ +obj* x_56; +x_56 = lean::box(0); +lean::cnstr_set(x_3, 1, x_49); +lean::cnstr_set(x_3, 0, x_56); +return x_3; +} } } } } else { -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; uint8 x_71; -x_56 = lean::cnstr_get(x_3, 1); -lean::inc(x_56); -lean::dec(x_3); -x_57 = lean::cnstr_get(x_56, 0); +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; uint8 x_73; +x_57 = lean::cnstr_get(x_3, 1); lean::inc(x_57); -x_58 = lean::cnstr_get(x_56, 1); +lean::dec(x_3); +x_58 = lean::cnstr_get(x_57, 0); lean::inc(x_58); -x_59 = lean::cnstr_get(x_56, 2); +x_59 = lean::cnstr_get(x_57, 1); lean::inc(x_59); -x_60 = lean::cnstr_get(x_56, 3); +x_60 = lean::cnstr_get(x_57, 2); lean::inc(x_60); -x_61 = lean::cnstr_get(x_56, 4); +x_61 = lean::cnstr_get(x_57, 3); lean::inc(x_61); -if (lean::is_exclusive(x_56)) { - lean::cnstr_release(x_56, 0); - lean::cnstr_release(x_56, 1); - lean::cnstr_release(x_56, 2); - lean::cnstr_release(x_56, 3); - lean::cnstr_release(x_56, 4); - x_62 = x_56; +x_62 = lean::cnstr_get(x_57, 4); +lean::inc(x_62); +x_63 = lean::cnstr_get(x_57, 5); +lean::inc(x_63); +if (lean::is_exclusive(x_57)) { + lean::cnstr_release(x_57, 0); + lean::cnstr_release(x_57, 1); + lean::cnstr_release(x_57, 2); + lean::cnstr_release(x_57, 3); + lean::cnstr_release(x_57, 4); + lean::cnstr_release(x_57, 5); + x_64 = x_57; } else { - lean::dec_ref(x_56); - x_62 = lean::box(0); + lean::dec_ref(x_57); + x_64 = lean::box(0); } -x_63 = lean::cnstr_get(x_1, 1); -x_64 = lean::mk_nat_obj(0u); -x_65 = l_List_lengthAux___main___rarg(x_61, x_64); -x_66 = lean::box(0); -x_67 = lean::mk_nat_obj(1u); -x_68 = lean::array_get(x_66, x_63, x_67); -x_69 = l_Lean_Syntax_getOptionalIdent___rarg(x_68); -lean::dec(x_68); -x_70 = l___private_init_lean_elaborator_command_2__getNumEndScopes(x_69); -x_71 = lean::nat_dec_lt(x_70, x_65); -if (x_71 == 0) -{ -obj* x_72; obj* x_73; obj* x_74; obj* x_75; obj* x_76; +x_65 = lean::cnstr_get(x_1, 1); +x_66 = lean::mk_nat_obj(0u); +x_67 = l_List_lengthAux___main___rarg(x_63, x_66); +x_68 = lean::box(0); +x_69 = lean::mk_nat_obj(1u); +x_70 = lean::array_get(x_68, x_65, x_69); +x_71 = l_Lean_Syntax_getOptionalIdent___rarg(x_70); lean::dec(x_70); -lean::dec(x_69); -x_72 = lean::nat_sub(x_65, x_67); -lean::dec(x_65); -x_73 = l_List_drop___main___rarg(x_72, x_61); -lean::dec(x_61); -if (lean::is_scalar(x_62)) { - x_74 = lean::alloc_cnstr(0, 5, 0); +x_72 = l___private_init_lean_elaborator_command_2__getNumEndScopes(x_71); +x_73 = lean::nat_dec_lt(x_72, x_67); +if (x_73 == 0) +{ +obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; +lean::dec(x_72); +lean::dec(x_71); +x_74 = lean::nat_sub(x_67, x_69); +lean::dec(x_67); +x_75 = l_List_drop___main___rarg(x_74, x_63); +lean::dec(x_63); +if (lean::is_scalar(x_64)) { + x_76 = lean::alloc_cnstr(0, 6, 0); } else { - x_74 = x_62; + x_76 = x_64; } -lean::cnstr_set(x_74, 0, x_57); -lean::cnstr_set(x_74, 1, x_58); -lean::cnstr_set(x_74, 2, x_59); -lean::cnstr_set(x_74, 3, x_60); -lean::cnstr_set(x_74, 4, x_73); -x_75 = l_Lean_Elab_elabEnd___closed__2; -x_76 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_76, 0, x_75); -lean::cnstr_set(x_76, 1, x_74); -return x_76; +lean::cnstr_set(x_76, 0, x_58); +lean::cnstr_set(x_76, 1, x_59); +lean::cnstr_set(x_76, 2, x_60); +lean::cnstr_set(x_76, 3, x_61); +lean::cnstr_set(x_76, 4, x_62); +lean::cnstr_set(x_76, 5, x_75); +x_77 = l_Lean_Elab_elabEnd___closed__2; +x_78 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_78, 0, x_77); +lean::cnstr_set(x_78, 1, x_76); +return x_78; } else { -obj* x_77; obj* x_78; -lean::dec(x_65); -x_77 = l_List_drop___main___rarg(x_70, x_61); -if (lean::is_scalar(x_62)) { - x_78 = lean::alloc_cnstr(0, 5, 0); +obj* x_79; obj* x_80; +lean::dec(x_67); +x_79 = l_List_drop___main___rarg(x_72, x_63); +if (lean::is_scalar(x_64)) { + x_80 = lean::alloc_cnstr(0, 6, 0); } else { - x_78 = x_62; + x_80 = x_64; } -lean::cnstr_set(x_78, 0, x_57); -lean::cnstr_set(x_78, 1, x_58); -lean::cnstr_set(x_78, 2, x_59); -lean::cnstr_set(x_78, 3, x_60); -lean::cnstr_set(x_78, 4, x_77); -if (lean::obj_tag(x_69) == 0) +lean::cnstr_set(x_80, 0, x_58); +lean::cnstr_set(x_80, 1, x_59); +lean::cnstr_set(x_80, 2, x_60); +lean::cnstr_set(x_80, 3, x_61); +lean::cnstr_set(x_80, 4, x_62); +lean::cnstr_set(x_80, 5, x_79); +if (lean::obj_tag(x_71) == 0) { -uint8 x_79; -x_79 = l___private_init_lean_elaborator_command_3__checkAnonymousScope(x_61); -lean::dec(x_61); -if (x_79 == 0) -{ -obj* x_80; obj* x_81; -x_80 = l_Lean_Elab_elabEnd___closed__4; -x_81 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_81, 0, x_80); -lean::cnstr_set(x_81, 1, x_78); -return x_81; -} -else +uint8 x_81; +x_81 = l___private_init_lean_elaborator_command_3__checkAnonymousScope(x_63); +lean::dec(x_63); +if (x_81 == 0) { obj* x_82; obj* x_83; -x_82 = lean::box(0); -x_83 = lean::alloc_cnstr(0, 2, 0); +x_82 = l_Lean_Elab_elabEnd___closed__4; +x_83 = lean::alloc_cnstr(1, 2, 0); lean::cnstr_set(x_83, 0, x_82); -lean::cnstr_set(x_83, 1, x_78); +lean::cnstr_set(x_83, 1, x_80); return x_83; } +else +{ +obj* x_84; obj* x_85; +x_84 = lean::box(0); +x_85 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_85, 0, x_84); +lean::cnstr_set(x_85, 1, x_80); +return x_85; +} } else { -obj* x_84; uint8 x_85; -x_84 = lean::cnstr_get(x_69, 0); -lean::inc(x_84); -lean::dec(x_69); -x_85 = l___private_init_lean_elaborator_command_4__checkEndHeader___main(x_84, x_61); -lean::dec(x_61); -lean::dec(x_84); -if (x_85 == 0) -{ -obj* x_86; obj* x_87; -x_86 = l_Lean_Elab_elabEnd___closed__6; -x_87 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_87, 0, x_86); -lean::cnstr_set(x_87, 1, x_78); -return x_87; -} -else +obj* x_86; uint8 x_87; +x_86 = lean::cnstr_get(x_71, 0); +lean::inc(x_86); +lean::dec(x_71); +x_87 = l___private_init_lean_elaborator_command_4__checkEndHeader___main(x_86, x_63); +lean::dec(x_63); +lean::dec(x_86); +if (x_87 == 0) { obj* x_88; obj* x_89; -x_88 = lean::box(0); -x_89 = lean::alloc_cnstr(0, 2, 0); +x_88 = l_Lean_Elab_elabEnd___closed__6; +x_89 = lean::alloc_cnstr(1, 2, 0); lean::cnstr_set(x_89, 0, x_88); -lean::cnstr_set(x_89, 1, x_78); +lean::cnstr_set(x_89, 1, x_80); return x_89; } +else +{ +obj* x_90; obj* x_91; +x_90 = lean::box(0); +x_91 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_91, 0, x_90); +lean::cnstr_set(x_91, 1, x_80); +return x_91; +} } } } @@ -1807,7 +1853,7 @@ if (x_21 == 0) { obj* x_22; lean::dec(x_19); -x_22 = l_Lean_logUnknownDecl(x_16, x_20, x_8, x_9); +x_22 = l_Lean_Elab_logUnknownDecl___rarg(x_16, x_20, x_8, x_9); lean::dec(x_16); if (lean::obj_tag(x_22) == 0) { @@ -1993,7 +2039,7 @@ if (x_16 == 0) { obj* x_17; lean::cnstr_set(x_13, 0, x_12); -x_17 = l_Lean_getEnv___rarg(x_13); +x_17 = l_Lean_Elab_getEnv___rarg(x_13); if (lean::obj_tag(x_17) == 0) { uint8 x_18; @@ -2035,385 +2081,373 @@ return x_25; } else { -obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; obj* x_39; +obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; obj* x_39; obj* x_40; x_32 = lean::cnstr_get(x_25, 0); x_33 = lean::cnstr_get(x_27, 0); x_34 = lean::cnstr_get(x_27, 1); x_35 = lean::cnstr_get(x_27, 2); x_36 = lean::cnstr_get(x_27, 3); x_37 = lean::cnstr_get(x_27, 4); +x_38 = lean::cnstr_get(x_27, 5); +lean::inc(x_38); lean::inc(x_37); lean::inc(x_36); lean::inc(x_35); lean::inc(x_34); lean::inc(x_33); lean::dec(x_27); -x_38 = l_List_foldl___main___at_Lean_Elab_elabExport___spec__2(x_33, x_32); -x_39 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_39, 0, x_38); -lean::cnstr_set(x_39, 1, x_34); -lean::cnstr_set(x_39, 2, x_35); -lean::cnstr_set(x_39, 3, x_36); -lean::cnstr_set(x_39, 4, x_37); -lean::cnstr_set(x_25, 1, x_39); +x_39 = l_List_foldl___main___at_Lean_Elab_elabExport___spec__2(x_33, x_32); +x_40 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_40, 0, x_39); +lean::cnstr_set(x_40, 1, x_34); +lean::cnstr_set(x_40, 2, x_35); +lean::cnstr_set(x_40, 3, x_36); +lean::cnstr_set(x_40, 4, x_37); +lean::cnstr_set(x_40, 5, x_38); +lean::cnstr_set(x_25, 1, x_40); lean::cnstr_set(x_25, 0, x_12); return x_25; } } else { -obj* x_40; obj* x_41; obj* x_42; obj* x_43; obj* x_44; obj* x_45; obj* x_46; obj* x_47; obj* x_48; obj* x_49; obj* x_50; -x_40 = lean::cnstr_get(x_25, 1); -x_41 = lean::cnstr_get(x_25, 0); -lean::inc(x_40); +obj* x_41; obj* x_42; obj* x_43; obj* x_44; obj* x_45; obj* x_46; obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; obj* x_52; +x_41 = lean::cnstr_get(x_25, 1); +x_42 = lean::cnstr_get(x_25, 0); lean::inc(x_41); -lean::dec(x_25); -x_42 = lean::cnstr_get(x_40, 0); lean::inc(x_42); -x_43 = lean::cnstr_get(x_40, 1); +lean::dec(x_25); +x_43 = lean::cnstr_get(x_41, 0); lean::inc(x_43); -x_44 = lean::cnstr_get(x_40, 2); +x_44 = lean::cnstr_get(x_41, 1); lean::inc(x_44); -x_45 = lean::cnstr_get(x_40, 3); +x_45 = lean::cnstr_get(x_41, 2); lean::inc(x_45); -x_46 = lean::cnstr_get(x_40, 4); +x_46 = lean::cnstr_get(x_41, 3); lean::inc(x_46); -if (lean::is_exclusive(x_40)) { - lean::cnstr_release(x_40, 0); - lean::cnstr_release(x_40, 1); - lean::cnstr_release(x_40, 2); - lean::cnstr_release(x_40, 3); - lean::cnstr_release(x_40, 4); - x_47 = x_40; +x_47 = lean::cnstr_get(x_41, 4); +lean::inc(x_47); +x_48 = lean::cnstr_get(x_41, 5); +lean::inc(x_48); +if (lean::is_exclusive(x_41)) { + lean::cnstr_release(x_41, 0); + lean::cnstr_release(x_41, 1); + lean::cnstr_release(x_41, 2); + lean::cnstr_release(x_41, 3); + lean::cnstr_release(x_41, 4); + lean::cnstr_release(x_41, 5); + x_49 = x_41; } else { - lean::dec_ref(x_40); - x_47 = lean::box(0); + lean::dec_ref(x_41); + x_49 = lean::box(0); } -x_48 = l_List_foldl___main___at_Lean_Elab_elabExport___spec__2(x_42, x_41); -if (lean::is_scalar(x_47)) { - x_49 = lean::alloc_cnstr(0, 5, 0); +x_50 = l_List_foldl___main___at_Lean_Elab_elabExport___spec__2(x_43, x_42); +if (lean::is_scalar(x_49)) { + x_51 = lean::alloc_cnstr(0, 6, 0); } else { - x_49 = x_47; + x_51 = x_49; } -lean::cnstr_set(x_49, 0, x_48); -lean::cnstr_set(x_49, 1, x_43); -lean::cnstr_set(x_49, 2, x_44); -lean::cnstr_set(x_49, 3, x_45); -lean::cnstr_set(x_49, 4, x_46); -x_50 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_50, 0, x_12); -lean::cnstr_set(x_50, 1, x_49); -return x_50; +lean::cnstr_set(x_51, 0, x_50); +lean::cnstr_set(x_51, 1, x_44); +lean::cnstr_set(x_51, 2, x_45); +lean::cnstr_set(x_51, 3, x_46); +lean::cnstr_set(x_51, 4, x_47); +lean::cnstr_set(x_51, 5, x_48); +x_52 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_52, 0, x_12); +lean::cnstr_set(x_52, 1, x_51); +return x_52; } } else { -uint8 x_51; -x_51 = !lean::is_exclusive(x_25); -if (x_51 == 0) +uint8 x_53; +x_53 = !lean::is_exclusive(x_25); +if (x_53 == 0) { return x_25; } else { -obj* x_52; obj* x_53; obj* x_54; -x_52 = lean::cnstr_get(x_25, 0); -x_53 = lean::cnstr_get(x_25, 1); -lean::inc(x_53); -lean::inc(x_52); -lean::dec(x_25); -x_54 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_54, 0, x_52); -lean::cnstr_set(x_54, 1, x_53); -return x_54; -} -} -} -else -{ -obj* x_55; obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; -x_55 = lean::cnstr_get(x_17, 0); -x_56 = lean::cnstr_get(x_17, 1); -lean::inc(x_56); +obj* x_54; obj* x_55; obj* x_56; +x_54 = lean::cnstr_get(x_25, 0); +x_55 = lean::cnstr_get(x_25, 1); lean::inc(x_55); +lean::inc(x_54); +lean::dec(x_25); +x_56 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_56, 0, x_54); +lean::cnstr_set(x_56, 1, x_55); +return x_56; +} +} +} +else +{ +obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; +x_57 = lean::cnstr_get(x_17, 0); +x_58 = lean::cnstr_get(x_17, 1); +lean::inc(x_58); +lean::inc(x_57); lean::dec(x_17); -x_57 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_57, 0, x_12); -lean::cnstr_set(x_57, 1, x_56); -x_58 = lean::box(0); -x_59 = lean::mk_nat_obj(3u); -x_60 = lean::array_get(x_5, x_4, x_59); -x_61 = l_Lean_Syntax_getArgs___rarg(x_60); -lean::dec(x_60); -x_62 = lean::mk_nat_obj(0u); -x_63 = l_Array_miterateAux___main___at_Lean_Elab_elabExport___spec__1(x_4, x_11, x_15, x_55, x_61, x_62, x_58, x_2, x_57); -lean::dec(x_61); -lean::dec(x_55); +x_59 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_59, 0, x_12); +lean::cnstr_set(x_59, 1, x_58); +x_60 = lean::box(0); +x_61 = lean::mk_nat_obj(3u); +x_62 = lean::array_get(x_5, x_4, x_61); +x_63 = l_Lean_Syntax_getArgs___rarg(x_62); +lean::dec(x_62); +x_64 = lean::mk_nat_obj(0u); +x_65 = l_Array_miterateAux___main___at_Lean_Elab_elabExport___spec__1(x_4, x_11, x_15, x_57, x_63, x_64, x_60, x_2, x_59); +lean::dec(x_63); +lean::dec(x_57); lean::dec(x_15); lean::dec(x_11); -if (lean::obj_tag(x_63) == 0) +if (lean::obj_tag(x_65) == 0) { -obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; obj* x_73; obj* x_74; obj* x_75; -x_64 = lean::cnstr_get(x_63, 1); -lean::inc(x_64); -x_65 = lean::cnstr_get(x_63, 0); -lean::inc(x_65); -if (lean::is_exclusive(x_63)) { - lean::cnstr_release(x_63, 0); - lean::cnstr_release(x_63, 1); - x_66 = x_63; -} else { - lean::dec_ref(x_63); - x_66 = lean::box(0); -} -x_67 = lean::cnstr_get(x_64, 0); +obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; +x_66 = lean::cnstr_get(x_65, 1); +lean::inc(x_66); +x_67 = lean::cnstr_get(x_65, 0); lean::inc(x_67); -x_68 = lean::cnstr_get(x_64, 1); -lean::inc(x_68); -x_69 = lean::cnstr_get(x_64, 2); +if (lean::is_exclusive(x_65)) { + lean::cnstr_release(x_65, 0); + lean::cnstr_release(x_65, 1); + x_68 = x_65; +} else { + lean::dec_ref(x_65); + x_68 = lean::box(0); +} +x_69 = lean::cnstr_get(x_66, 0); lean::inc(x_69); -x_70 = lean::cnstr_get(x_64, 3); +x_70 = lean::cnstr_get(x_66, 1); lean::inc(x_70); -x_71 = lean::cnstr_get(x_64, 4); +x_71 = lean::cnstr_get(x_66, 2); lean::inc(x_71); -if (lean::is_exclusive(x_64)) { - lean::cnstr_release(x_64, 0); - lean::cnstr_release(x_64, 1); - lean::cnstr_release(x_64, 2); - lean::cnstr_release(x_64, 3); - lean::cnstr_release(x_64, 4); - x_72 = x_64; -} else { - lean::dec_ref(x_64); - x_72 = lean::box(0); -} -x_73 = l_List_foldl___main___at_Lean_Elab_elabExport___spec__2(x_67, x_65); -if (lean::is_scalar(x_72)) { - x_74 = lean::alloc_cnstr(0, 5, 0); -} else { - x_74 = x_72; -} -lean::cnstr_set(x_74, 0, x_73); -lean::cnstr_set(x_74, 1, x_68); -lean::cnstr_set(x_74, 2, x_69); -lean::cnstr_set(x_74, 3, x_70); -lean::cnstr_set(x_74, 4, x_71); -if (lean::is_scalar(x_66)) { - x_75 = lean::alloc_cnstr(0, 2, 0); -} else { +x_72 = lean::cnstr_get(x_66, 3); +lean::inc(x_72); +x_73 = lean::cnstr_get(x_66, 4); +lean::inc(x_73); +x_74 = lean::cnstr_get(x_66, 5); +lean::inc(x_74); +if (lean::is_exclusive(x_66)) { + lean::cnstr_release(x_66, 0); + lean::cnstr_release(x_66, 1); + lean::cnstr_release(x_66, 2); + lean::cnstr_release(x_66, 3); + lean::cnstr_release(x_66, 4); + lean::cnstr_release(x_66, 5); x_75 = x_66; +} else { + lean::dec_ref(x_66); + x_75 = lean::box(0); } -lean::cnstr_set(x_75, 0, x_12); -lean::cnstr_set(x_75, 1, x_74); -return x_75; +x_76 = l_List_foldl___main___at_Lean_Elab_elabExport___spec__2(x_69, x_67); +if (lean::is_scalar(x_75)) { + x_77 = lean::alloc_cnstr(0, 6, 0); +} else { + x_77 = x_75; +} +lean::cnstr_set(x_77, 0, x_76); +lean::cnstr_set(x_77, 1, x_70); +lean::cnstr_set(x_77, 2, x_71); +lean::cnstr_set(x_77, 3, x_72); +lean::cnstr_set(x_77, 4, x_73); +lean::cnstr_set(x_77, 5, x_74); +if (lean::is_scalar(x_68)) { + x_78 = lean::alloc_cnstr(0, 2, 0); +} else { + x_78 = x_68; +} +lean::cnstr_set(x_78, 0, x_12); +lean::cnstr_set(x_78, 1, x_77); +return x_78; } else { -obj* x_76; obj* x_77; obj* x_78; obj* x_79; -x_76 = lean::cnstr_get(x_63, 0); -lean::inc(x_76); -x_77 = lean::cnstr_get(x_63, 1); -lean::inc(x_77); -if (lean::is_exclusive(x_63)) { - lean::cnstr_release(x_63, 0); - lean::cnstr_release(x_63, 1); - x_78 = x_63; +obj* x_79; obj* x_80; obj* x_81; obj* x_82; +x_79 = lean::cnstr_get(x_65, 0); +lean::inc(x_79); +x_80 = lean::cnstr_get(x_65, 1); +lean::inc(x_80); +if (lean::is_exclusive(x_65)) { + lean::cnstr_release(x_65, 0); + lean::cnstr_release(x_65, 1); + x_81 = x_65; } else { - lean::dec_ref(x_63); - x_78 = lean::box(0); + lean::dec_ref(x_65); + x_81 = lean::box(0); } -if (lean::is_scalar(x_78)) { - x_79 = lean::alloc_cnstr(1, 2, 0); +if (lean::is_scalar(x_81)) { + x_82 = lean::alloc_cnstr(1, 2, 0); } else { - x_79 = x_78; + x_82 = x_81; } -lean::cnstr_set(x_79, 0, x_76); -lean::cnstr_set(x_79, 1, x_77); -return x_79; +lean::cnstr_set(x_82, 0, x_79); +lean::cnstr_set(x_82, 1, x_80); +return x_82; } } } else { -uint8 x_80; +uint8 x_83; lean::dec(x_15); lean::dec(x_11); -x_80 = !lean::is_exclusive(x_17); -if (x_80 == 0) +x_83 = !lean::is_exclusive(x_17); +if (x_83 == 0) { return x_17; } else { -obj* x_81; obj* x_82; obj* x_83; -x_81 = lean::cnstr_get(x_17, 0); -x_82 = lean::cnstr_get(x_17, 1); -lean::inc(x_82); -lean::inc(x_81); +obj* x_84; obj* x_85; obj* x_86; +x_84 = lean::cnstr_get(x_17, 0); +x_85 = lean::cnstr_get(x_17, 1); +lean::inc(x_85); +lean::inc(x_84); lean::dec(x_17); -x_83 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_83, 0, x_81); -lean::cnstr_set(x_83, 1, x_82); -return x_83; +x_86 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_86, 0, x_84); +lean::cnstr_set(x_86, 1, x_85); +return x_86; } } } else { -obj* x_84; +obj* x_87; lean::dec(x_15); lean::dec(x_11); -x_84 = l_Lean_Elab_elabExport___closed__2; +x_87 = l_Lean_Elab_elabExport___closed__2; lean::cnstr_set_tag(x_13, 1); -lean::cnstr_set(x_13, 0, x_84); +lean::cnstr_set(x_13, 0, x_87); return x_13; } } else { -obj* x_85; obj* x_86; uint8 x_87; -x_85 = lean::cnstr_get(x_13, 0); -x_86 = lean::cnstr_get(x_13, 1); -lean::inc(x_86); -lean::inc(x_85); +obj* x_88; obj* x_89; uint8 x_90; +x_88 = lean::cnstr_get(x_13, 0); +x_89 = lean::cnstr_get(x_13, 1); +lean::inc(x_89); +lean::inc(x_88); lean::dec(x_13); -x_87 = lean_name_dec_eq(x_11, x_85); -if (x_87 == 0) +x_90 = lean_name_dec_eq(x_11, x_88); +if (x_90 == 0) { -obj* x_88; obj* x_89; -x_88 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_88, 0, x_12); -lean::cnstr_set(x_88, 1, x_86); -x_89 = l_Lean_getEnv___rarg(x_88); -if (lean::obj_tag(x_89) == 0) +obj* x_91; obj* x_92; +x_91 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_91, 0, x_12); +lean::cnstr_set(x_91, 1, x_89); +x_92 = l_Lean_Elab_getEnv___rarg(x_91); +if (lean::obj_tag(x_92) == 0) { -obj* x_90; obj* x_91; obj* x_92; obj* x_93; obj* x_94; obj* x_95; obj* x_96; obj* x_97; obj* x_98; obj* x_99; -x_90 = lean::cnstr_get(x_89, 0); -lean::inc(x_90); -x_91 = lean::cnstr_get(x_89, 1); -lean::inc(x_91); -if (lean::is_exclusive(x_89)) { - lean::cnstr_release(x_89, 0); - lean::cnstr_release(x_89, 1); - x_92 = x_89; +obj* x_93; obj* x_94; obj* x_95; obj* x_96; obj* x_97; obj* x_98; obj* x_99; obj* x_100; obj* x_101; obj* x_102; +x_93 = lean::cnstr_get(x_92, 0); +lean::inc(x_93); +x_94 = lean::cnstr_get(x_92, 1); +lean::inc(x_94); +if (lean::is_exclusive(x_92)) { + lean::cnstr_release(x_92, 0); + lean::cnstr_release(x_92, 1); + x_95 = x_92; } else { - lean::dec_ref(x_89); - x_92 = lean::box(0); + lean::dec_ref(x_92); + x_95 = lean::box(0); } -if (lean::is_scalar(x_92)) { - x_93 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_95)) { + x_96 = lean::alloc_cnstr(0, 2, 0); } else { - x_93 = x_92; + x_96 = x_95; } -lean::cnstr_set(x_93, 0, x_12); -lean::cnstr_set(x_93, 1, x_91); -x_94 = lean::box(0); -x_95 = lean::mk_nat_obj(3u); -x_96 = lean::array_get(x_5, x_4, x_95); -x_97 = l_Lean_Syntax_getArgs___rarg(x_96); -lean::dec(x_96); -x_98 = lean::mk_nat_obj(0u); -x_99 = l_Array_miterateAux___main___at_Lean_Elab_elabExport___spec__1(x_4, x_11, x_85, x_90, x_97, x_98, x_94, x_2, x_93); -lean::dec(x_97); -lean::dec(x_90); -lean::dec(x_85); +lean::cnstr_set(x_96, 0, x_12); +lean::cnstr_set(x_96, 1, x_94); +x_97 = lean::box(0); +x_98 = lean::mk_nat_obj(3u); +x_99 = lean::array_get(x_5, x_4, x_98); +x_100 = l_Lean_Syntax_getArgs___rarg(x_99); +lean::dec(x_99); +x_101 = lean::mk_nat_obj(0u); +x_102 = l_Array_miterateAux___main___at_Lean_Elab_elabExport___spec__1(x_4, x_11, x_88, x_93, x_100, x_101, x_97, x_2, x_96); +lean::dec(x_100); +lean::dec(x_93); +lean::dec(x_88); lean::dec(x_11); -if (lean::obj_tag(x_99) == 0) +if (lean::obj_tag(x_102) == 0) { -obj* x_100; obj* x_101; obj* x_102; obj* x_103; obj* x_104; obj* x_105; obj* x_106; obj* x_107; obj* x_108; obj* x_109; obj* x_110; obj* x_111; -x_100 = lean::cnstr_get(x_99, 1); -lean::inc(x_100); -x_101 = lean::cnstr_get(x_99, 0); -lean::inc(x_101); -if (lean::is_exclusive(x_99)) { - lean::cnstr_release(x_99, 0); - lean::cnstr_release(x_99, 1); - x_102 = x_99; -} else { - lean::dec_ref(x_99); - x_102 = lean::box(0); -} -x_103 = lean::cnstr_get(x_100, 0); +obj* x_103; obj* x_104; obj* x_105; obj* x_106; obj* x_107; obj* x_108; obj* x_109; obj* x_110; obj* x_111; obj* x_112; obj* x_113; obj* x_114; obj* x_115; +x_103 = lean::cnstr_get(x_102, 1); lean::inc(x_103); -x_104 = lean::cnstr_get(x_100, 1); +x_104 = lean::cnstr_get(x_102, 0); lean::inc(x_104); -x_105 = lean::cnstr_get(x_100, 2); -lean::inc(x_105); -x_106 = lean::cnstr_get(x_100, 3); +if (lean::is_exclusive(x_102)) { + lean::cnstr_release(x_102, 0); + lean::cnstr_release(x_102, 1); + x_105 = x_102; +} else { + lean::dec_ref(x_102); + x_105 = lean::box(0); +} +x_106 = lean::cnstr_get(x_103, 0); lean::inc(x_106); -x_107 = lean::cnstr_get(x_100, 4); +x_107 = lean::cnstr_get(x_103, 1); lean::inc(x_107); -if (lean::is_exclusive(x_100)) { - lean::cnstr_release(x_100, 0); - lean::cnstr_release(x_100, 1); - lean::cnstr_release(x_100, 2); - lean::cnstr_release(x_100, 3); - lean::cnstr_release(x_100, 4); - x_108 = x_100; +x_108 = lean::cnstr_get(x_103, 2); +lean::inc(x_108); +x_109 = lean::cnstr_get(x_103, 3); +lean::inc(x_109); +x_110 = lean::cnstr_get(x_103, 4); +lean::inc(x_110); +x_111 = lean::cnstr_get(x_103, 5); +lean::inc(x_111); +if (lean::is_exclusive(x_103)) { + lean::cnstr_release(x_103, 0); + lean::cnstr_release(x_103, 1); + lean::cnstr_release(x_103, 2); + lean::cnstr_release(x_103, 3); + lean::cnstr_release(x_103, 4); + lean::cnstr_release(x_103, 5); + x_112 = x_103; } else { - lean::dec_ref(x_100); - x_108 = lean::box(0); + lean::dec_ref(x_103); + x_112 = lean::box(0); } -x_109 = l_List_foldl___main___at_Lean_Elab_elabExport___spec__2(x_103, x_101); -if (lean::is_scalar(x_108)) { - x_110 = lean::alloc_cnstr(0, 5, 0); +x_113 = l_List_foldl___main___at_Lean_Elab_elabExport___spec__2(x_106, x_104); +if (lean::is_scalar(x_112)) { + x_114 = lean::alloc_cnstr(0, 6, 0); } else { - x_110 = x_108; + x_114 = x_112; } -lean::cnstr_set(x_110, 0, x_109); -lean::cnstr_set(x_110, 1, x_104); -lean::cnstr_set(x_110, 2, x_105); -lean::cnstr_set(x_110, 3, x_106); -lean::cnstr_set(x_110, 4, x_107); -if (lean::is_scalar(x_102)) { - x_111 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_114, 0, x_113); +lean::cnstr_set(x_114, 1, x_107); +lean::cnstr_set(x_114, 2, x_108); +lean::cnstr_set(x_114, 3, x_109); +lean::cnstr_set(x_114, 4, x_110); +lean::cnstr_set(x_114, 5, x_111); +if (lean::is_scalar(x_105)) { + x_115 = lean::alloc_cnstr(0, 2, 0); } else { - x_111 = x_102; + x_115 = x_105; } -lean::cnstr_set(x_111, 0, x_12); -lean::cnstr_set(x_111, 1, x_110); -return x_111; -} -else -{ -obj* x_112; obj* x_113; obj* x_114; obj* x_115; -x_112 = lean::cnstr_get(x_99, 0); -lean::inc(x_112); -x_113 = lean::cnstr_get(x_99, 1); -lean::inc(x_113); -if (lean::is_exclusive(x_99)) { - lean::cnstr_release(x_99, 0); - lean::cnstr_release(x_99, 1); - x_114 = x_99; -} else { - lean::dec_ref(x_99); - x_114 = lean::box(0); -} -if (lean::is_scalar(x_114)) { - x_115 = lean::alloc_cnstr(1, 2, 0); -} else { - x_115 = x_114; -} -lean::cnstr_set(x_115, 0, x_112); -lean::cnstr_set(x_115, 1, x_113); +lean::cnstr_set(x_115, 0, x_12); +lean::cnstr_set(x_115, 1, x_114); return x_115; } -} else { obj* x_116; obj* x_117; obj* x_118; obj* x_119; -lean::dec(x_85); -lean::dec(x_11); -x_116 = lean::cnstr_get(x_89, 0); +x_116 = lean::cnstr_get(x_102, 0); lean::inc(x_116); -x_117 = lean::cnstr_get(x_89, 1); +x_117 = lean::cnstr_get(x_102, 1); lean::inc(x_117); -if (lean::is_exclusive(x_89)) { - lean::cnstr_release(x_89, 0); - lean::cnstr_release(x_89, 1); - x_118 = x_89; +if (lean::is_exclusive(x_102)) { + lean::cnstr_release(x_102, 0); + lean::cnstr_release(x_102, 1); + x_118 = x_102; } else { - lean::dec_ref(x_89); + lean::dec_ref(x_102); x_118 = lean::box(0); } if (lean::is_scalar(x_118)) { @@ -2428,286 +2462,317 @@ return x_119; } else { -obj* x_120; obj* x_121; -lean::dec(x_85); +obj* x_120; obj* x_121; obj* x_122; obj* x_123; +lean::dec(x_88); lean::dec(x_11); -x_120 = l_Lean_Elab_elabExport___closed__2; -x_121 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_121, 0, x_120); -lean::cnstr_set(x_121, 1, x_86); -return x_121; +x_120 = lean::cnstr_get(x_92, 0); +lean::inc(x_120); +x_121 = lean::cnstr_get(x_92, 1); +lean::inc(x_121); +if (lean::is_exclusive(x_92)) { + lean::cnstr_release(x_92, 0); + lean::cnstr_release(x_92, 1); + x_122 = x_92; +} else { + lean::dec_ref(x_92); + x_122 = lean::box(0); } +if (lean::is_scalar(x_122)) { + x_123 = lean::alloc_cnstr(1, 2, 0); +} else { + x_123 = x_122; +} +lean::cnstr_set(x_123, 0, x_120); +lean::cnstr_set(x_123, 1, x_121); +return x_123; } } else { -uint8 x_122; +obj* x_124; obj* x_125; +lean::dec(x_88); lean::dec(x_11); -x_122 = !lean::is_exclusive(x_13); -if (x_122 == 0) -{ -return x_13; -} -else -{ -obj* x_123; obj* x_124; obj* x_125; -x_123 = lean::cnstr_get(x_13, 0); -x_124 = lean::cnstr_get(x_13, 1); -lean::inc(x_124); -lean::inc(x_123); -lean::dec(x_13); +x_124 = l_Lean_Elab_elabExport___closed__2; x_125 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_125, 0, x_123); -lean::cnstr_set(x_125, 1, x_124); +lean::cnstr_set(x_125, 0, x_124); +lean::cnstr_set(x_125, 1, x_89); return x_125; } } } else { -obj* x_126; obj* x_127; obj* x_128; obj* x_129; obj* x_130; -x_126 = lean::cnstr_get(x_9, 0); -x_127 = lean::cnstr_get(x_9, 1); +uint8 x_126; +lean::dec(x_11); +x_126 = !lean::is_exclusive(x_13); +if (x_126 == 0) +{ +return x_13; +} +else +{ +obj* x_127; obj* x_128; obj* x_129; +x_127 = lean::cnstr_get(x_13, 0); +x_128 = lean::cnstr_get(x_13, 1); +lean::inc(x_128); lean::inc(x_127); -lean::inc(x_126); -lean::dec(x_9); -x_128 = lean::box(0); -x_129 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_129, 0, x_128); -lean::cnstr_set(x_129, 1, x_127); -x_130 = l_Lean_Elab_getNamespace___rarg(x_129); -if (lean::obj_tag(x_130) == 0) +lean::dec(x_13); +x_129 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_129, 0, x_127); +lean::cnstr_set(x_129, 1, x_128); +return x_129; +} +} +} +else { -obj* x_131; obj* x_132; obj* x_133; uint8 x_134; -x_131 = lean::cnstr_get(x_130, 0); +obj* x_130; obj* x_131; obj* x_132; obj* x_133; obj* x_134; +x_130 = lean::cnstr_get(x_9, 0); +x_131 = lean::cnstr_get(x_9, 1); lean::inc(x_131); -x_132 = lean::cnstr_get(x_130, 1); -lean::inc(x_132); -if (lean::is_exclusive(x_130)) { - lean::cnstr_release(x_130, 0); - lean::cnstr_release(x_130, 1); - x_133 = x_130; -} else { - lean::dec_ref(x_130); - x_133 = lean::box(0); -} -x_134 = lean_name_dec_eq(x_126, x_131); -if (x_134 == 0) +lean::inc(x_130); +lean::dec(x_9); +x_132 = lean::box(0); +x_133 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_133, 0, x_132); +lean::cnstr_set(x_133, 1, x_131); +x_134 = l_Lean_Elab_getNamespace___rarg(x_133); +if (lean::obj_tag(x_134) == 0) { -obj* x_135; obj* x_136; -if (lean::is_scalar(x_133)) { - x_135 = lean::alloc_cnstr(0, 2, 0); +obj* x_135; obj* x_136; obj* x_137; uint8 x_138; +x_135 = lean::cnstr_get(x_134, 0); +lean::inc(x_135); +x_136 = lean::cnstr_get(x_134, 1); +lean::inc(x_136); +if (lean::is_exclusive(x_134)) { + lean::cnstr_release(x_134, 0); + lean::cnstr_release(x_134, 1); + x_137 = x_134; } else { - x_135 = x_133; + lean::dec_ref(x_134); + x_137 = lean::box(0); } -lean::cnstr_set(x_135, 0, x_128); -lean::cnstr_set(x_135, 1, x_132); -x_136 = l_Lean_getEnv___rarg(x_135); -if (lean::obj_tag(x_136) == 0) +x_138 = lean_name_dec_eq(x_130, x_135); +if (x_138 == 0) { -obj* x_137; obj* x_138; obj* x_139; obj* x_140; obj* x_141; obj* x_142; obj* x_143; obj* x_144; obj* x_145; obj* x_146; -x_137 = lean::cnstr_get(x_136, 0); -lean::inc(x_137); -x_138 = lean::cnstr_get(x_136, 1); -lean::inc(x_138); -if (lean::is_exclusive(x_136)) { - lean::cnstr_release(x_136, 0); - lean::cnstr_release(x_136, 1); - x_139 = x_136; +obj* x_139; obj* x_140; +if (lean::is_scalar(x_137)) { + x_139 = lean::alloc_cnstr(0, 2, 0); } else { - lean::dec_ref(x_136); - x_139 = lean::box(0); + x_139 = x_137; } -if (lean::is_scalar(x_139)) { - x_140 = lean::alloc_cnstr(0, 2, 0); -} else { - x_140 = x_139; -} -lean::cnstr_set(x_140, 0, x_128); -lean::cnstr_set(x_140, 1, x_138); -x_141 = lean::box(0); -x_142 = lean::mk_nat_obj(3u); -x_143 = lean::array_get(x_5, x_4, x_142); -x_144 = l_Lean_Syntax_getArgs___rarg(x_143); -lean::dec(x_143); -x_145 = lean::mk_nat_obj(0u); -x_146 = l_Array_miterateAux___main___at_Lean_Elab_elabExport___spec__1(x_4, x_126, x_131, x_137, x_144, x_145, x_141, x_2, x_140); -lean::dec(x_144); -lean::dec(x_137); -lean::dec(x_131); -lean::dec(x_126); -if (lean::obj_tag(x_146) == 0) +lean::cnstr_set(x_139, 0, x_132); +lean::cnstr_set(x_139, 1, x_136); +x_140 = l_Lean_Elab_getEnv___rarg(x_139); +if (lean::obj_tag(x_140) == 0) { -obj* x_147; obj* x_148; obj* x_149; obj* x_150; obj* x_151; obj* x_152; obj* x_153; obj* x_154; obj* x_155; obj* x_156; obj* x_157; obj* x_158; -x_147 = lean::cnstr_get(x_146, 1); -lean::inc(x_147); -x_148 = lean::cnstr_get(x_146, 0); -lean::inc(x_148); -if (lean::is_exclusive(x_146)) { - lean::cnstr_release(x_146, 0); - lean::cnstr_release(x_146, 1); - x_149 = x_146; +obj* x_141; obj* x_142; obj* x_143; obj* x_144; obj* x_145; obj* x_146; obj* x_147; obj* x_148; obj* x_149; obj* x_150; +x_141 = lean::cnstr_get(x_140, 0); +lean::inc(x_141); +x_142 = lean::cnstr_get(x_140, 1); +lean::inc(x_142); +if (lean::is_exclusive(x_140)) { + lean::cnstr_release(x_140, 0); + lean::cnstr_release(x_140, 1); + x_143 = x_140; } else { - lean::dec_ref(x_146); - x_149 = lean::box(0); + lean::dec_ref(x_140); + x_143 = lean::box(0); } -x_150 = lean::cnstr_get(x_147, 0); -lean::inc(x_150); -x_151 = lean::cnstr_get(x_147, 1); +if (lean::is_scalar(x_143)) { + x_144 = lean::alloc_cnstr(0, 2, 0); +} else { + x_144 = x_143; +} +lean::cnstr_set(x_144, 0, x_132); +lean::cnstr_set(x_144, 1, x_142); +x_145 = lean::box(0); +x_146 = lean::mk_nat_obj(3u); +x_147 = lean::array_get(x_5, x_4, x_146); +x_148 = l_Lean_Syntax_getArgs___rarg(x_147); +lean::dec(x_147); +x_149 = lean::mk_nat_obj(0u); +x_150 = l_Array_miterateAux___main___at_Lean_Elab_elabExport___spec__1(x_4, x_130, x_135, x_141, x_148, x_149, x_145, x_2, x_144); +lean::dec(x_148); +lean::dec(x_141); +lean::dec(x_135); +lean::dec(x_130); +if (lean::obj_tag(x_150) == 0) +{ +obj* x_151; obj* x_152; obj* x_153; obj* x_154; obj* x_155; obj* x_156; obj* x_157; obj* x_158; obj* x_159; obj* x_160; obj* x_161; obj* x_162; obj* x_163; +x_151 = lean::cnstr_get(x_150, 1); lean::inc(x_151); -x_152 = lean::cnstr_get(x_147, 2); +x_152 = lean::cnstr_get(x_150, 0); lean::inc(x_152); -x_153 = lean::cnstr_get(x_147, 3); -lean::inc(x_153); -x_154 = lean::cnstr_get(x_147, 4); +if (lean::is_exclusive(x_150)) { + lean::cnstr_release(x_150, 0); + lean::cnstr_release(x_150, 1); + x_153 = x_150; +} else { + lean::dec_ref(x_150); + x_153 = lean::box(0); +} +x_154 = lean::cnstr_get(x_151, 0); lean::inc(x_154); -if (lean::is_exclusive(x_147)) { - lean::cnstr_release(x_147, 0); - lean::cnstr_release(x_147, 1); - lean::cnstr_release(x_147, 2); - lean::cnstr_release(x_147, 3); - lean::cnstr_release(x_147, 4); - x_155 = x_147; -} else { - lean::dec_ref(x_147); - x_155 = lean::box(0); -} -x_156 = l_List_foldl___main___at_Lean_Elab_elabExport___spec__2(x_150, x_148); -if (lean::is_scalar(x_155)) { - x_157 = lean::alloc_cnstr(0, 5, 0); -} else { - x_157 = x_155; -} -lean::cnstr_set(x_157, 0, x_156); -lean::cnstr_set(x_157, 1, x_151); -lean::cnstr_set(x_157, 2, x_152); -lean::cnstr_set(x_157, 3, x_153); -lean::cnstr_set(x_157, 4, x_154); -if (lean::is_scalar(x_149)) { - x_158 = lean::alloc_cnstr(0, 2, 0); -} else { - x_158 = x_149; -} -lean::cnstr_set(x_158, 0, x_128); -lean::cnstr_set(x_158, 1, x_157); -return x_158; -} -else -{ -obj* x_159; obj* x_160; obj* x_161; obj* x_162; -x_159 = lean::cnstr_get(x_146, 0); +x_155 = lean::cnstr_get(x_151, 1); +lean::inc(x_155); +x_156 = lean::cnstr_get(x_151, 2); +lean::inc(x_156); +x_157 = lean::cnstr_get(x_151, 3); +lean::inc(x_157); +x_158 = lean::cnstr_get(x_151, 4); +lean::inc(x_158); +x_159 = lean::cnstr_get(x_151, 5); lean::inc(x_159); -x_160 = lean::cnstr_get(x_146, 1); -lean::inc(x_160); -if (lean::is_exclusive(x_146)) { - lean::cnstr_release(x_146, 0); - lean::cnstr_release(x_146, 1); - x_161 = x_146; +if (lean::is_exclusive(x_151)) { + lean::cnstr_release(x_151, 0); + lean::cnstr_release(x_151, 1); + lean::cnstr_release(x_151, 2); + lean::cnstr_release(x_151, 3); + lean::cnstr_release(x_151, 4); + lean::cnstr_release(x_151, 5); + x_160 = x_151; } else { - lean::dec_ref(x_146); - x_161 = lean::box(0); + lean::dec_ref(x_151); + x_160 = lean::box(0); } -if (lean::is_scalar(x_161)) { - x_162 = lean::alloc_cnstr(1, 2, 0); +x_161 = l_List_foldl___main___at_Lean_Elab_elabExport___spec__2(x_154, x_152); +if (lean::is_scalar(x_160)) { + x_162 = lean::alloc_cnstr(0, 6, 0); } else { - x_162 = x_161; + x_162 = x_160; } -lean::cnstr_set(x_162, 0, x_159); -lean::cnstr_set(x_162, 1, x_160); -return x_162; +lean::cnstr_set(x_162, 0, x_161); +lean::cnstr_set(x_162, 1, x_155); +lean::cnstr_set(x_162, 2, x_156); +lean::cnstr_set(x_162, 3, x_157); +lean::cnstr_set(x_162, 4, x_158); +lean::cnstr_set(x_162, 5, x_159); +if (lean::is_scalar(x_153)) { + x_163 = lean::alloc_cnstr(0, 2, 0); +} else { + x_163 = x_153; } +lean::cnstr_set(x_163, 0, x_132); +lean::cnstr_set(x_163, 1, x_162); +return x_163; } else { -obj* x_163; obj* x_164; obj* x_165; obj* x_166; -lean::dec(x_131); -lean::dec(x_126); -x_163 = lean::cnstr_get(x_136, 0); -lean::inc(x_163); -x_164 = lean::cnstr_get(x_136, 1); +obj* x_164; obj* x_165; obj* x_166; obj* x_167; +x_164 = lean::cnstr_get(x_150, 0); lean::inc(x_164); -if (lean::is_exclusive(x_136)) { - lean::cnstr_release(x_136, 0); - lean::cnstr_release(x_136, 1); - x_165 = x_136; +x_165 = lean::cnstr_get(x_150, 1); +lean::inc(x_165); +if (lean::is_exclusive(x_150)) { + lean::cnstr_release(x_150, 0); + lean::cnstr_release(x_150, 1); + x_166 = x_150; } else { - lean::dec_ref(x_136); - x_165 = lean::box(0); + lean::dec_ref(x_150); + x_166 = lean::box(0); } -if (lean::is_scalar(x_165)) { - x_166 = lean::alloc_cnstr(1, 2, 0); +if (lean::is_scalar(x_166)) { + x_167 = lean::alloc_cnstr(1, 2, 0); } else { - x_166 = x_165; + x_167 = x_166; } -lean::cnstr_set(x_166, 0, x_163); -lean::cnstr_set(x_166, 1, x_164); -return x_166; +lean::cnstr_set(x_167, 0, x_164); +lean::cnstr_set(x_167, 1, x_165); +return x_167; } } else { -obj* x_167; obj* x_168; -lean::dec(x_131); -lean::dec(x_126); -x_167 = l_Lean_Elab_elabExport___closed__2; -if (lean::is_scalar(x_133)) { - x_168 = lean::alloc_cnstr(1, 2, 0); -} else { - x_168 = x_133; - lean::cnstr_set_tag(x_168, 1); -} -lean::cnstr_set(x_168, 0, x_167); -lean::cnstr_set(x_168, 1, x_132); -return x_168; -} -} -else -{ -obj* x_169; obj* x_170; obj* x_171; obj* x_172; -lean::dec(x_126); -x_169 = lean::cnstr_get(x_130, 0); +obj* x_168; obj* x_169; obj* x_170; obj* x_171; +lean::dec(x_135); +lean::dec(x_130); +x_168 = lean::cnstr_get(x_140, 0); +lean::inc(x_168); +x_169 = lean::cnstr_get(x_140, 1); lean::inc(x_169); -x_170 = lean::cnstr_get(x_130, 1); -lean::inc(x_170); -if (lean::is_exclusive(x_130)) { - lean::cnstr_release(x_130, 0); - lean::cnstr_release(x_130, 1); - x_171 = x_130; +if (lean::is_exclusive(x_140)) { + lean::cnstr_release(x_140, 0); + lean::cnstr_release(x_140, 1); + x_170 = x_140; } else { - lean::dec_ref(x_130); - x_171 = lean::box(0); + lean::dec_ref(x_140); + x_170 = lean::box(0); } -if (lean::is_scalar(x_171)) { - x_172 = lean::alloc_cnstr(1, 2, 0); +if (lean::is_scalar(x_170)) { + x_171 = lean::alloc_cnstr(1, 2, 0); } else { - x_172 = x_171; + x_171 = x_170; } -lean::cnstr_set(x_172, 0, x_169); -lean::cnstr_set(x_172, 1, x_170); -return x_172; +lean::cnstr_set(x_171, 0, x_168); +lean::cnstr_set(x_171, 1, x_169); +return x_171; +} +} +else +{ +obj* x_172; obj* x_173; +lean::dec(x_135); +lean::dec(x_130); +x_172 = l_Lean_Elab_elabExport___closed__2; +if (lean::is_scalar(x_137)) { + x_173 = lean::alloc_cnstr(1, 2, 0); +} else { + x_173 = x_137; + lean::cnstr_set_tag(x_173, 1); +} +lean::cnstr_set(x_173, 0, x_172); +lean::cnstr_set(x_173, 1, x_136); +return x_173; +} +} +else +{ +obj* x_174; obj* x_175; obj* x_176; obj* x_177; +lean::dec(x_130); +x_174 = lean::cnstr_get(x_134, 0); +lean::inc(x_174); +x_175 = lean::cnstr_get(x_134, 1); +lean::inc(x_175); +if (lean::is_exclusive(x_134)) { + lean::cnstr_release(x_134, 0); + lean::cnstr_release(x_134, 1); + x_176 = x_134; +} else { + lean::dec_ref(x_134); + x_176 = lean::box(0); +} +if (lean::is_scalar(x_176)) { + x_177 = lean::alloc_cnstr(1, 2, 0); +} else { + x_177 = x_176; +} +lean::cnstr_set(x_177, 0, x_174); +lean::cnstr_set(x_177, 1, x_175); +return x_177; } } } else { -uint8 x_173; -x_173 = !lean::is_exclusive(x_9); -if (x_173 == 0) +uint8 x_178; +x_178 = !lean::is_exclusive(x_9); +if (x_178 == 0) { return x_9; } else { -obj* x_174; obj* x_175; obj* x_176; -x_174 = lean::cnstr_get(x_9, 0); -x_175 = lean::cnstr_get(x_9, 1); -lean::inc(x_175); -lean::inc(x_174); +obj* x_179; obj* x_180; obj* x_181; +x_179 = lean::cnstr_get(x_9, 0); +x_180 = lean::cnstr_get(x_9, 1); +lean::inc(x_180); +lean::inc(x_179); lean::dec(x_9); -x_176 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_176, 0, x_174); -lean::cnstr_set(x_176, 1, x_175); -return x_176; +x_181 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_181, 0, x_179); +lean::cnstr_set(x_181, 1, x_180); +return x_181; } } } @@ -2784,7 +2849,7 @@ obj* x_5; obj* x_6; obj* x_7; x_5 = lean::cnstr_get(x_3, 1); x_6 = lean::cnstr_get(x_3, 0); lean::dec(x_6); -x_7 = lean::cnstr_get(x_5, 4); +x_7 = lean::cnstr_get(x_5, 5); lean::inc(x_7); if (lean::obj_tag(x_7) == 0) { @@ -2794,7 +2859,7 @@ x_8 = !lean::is_exclusive(x_5); if (x_8 == 0) { obj* x_9; obj* x_10; -x_9 = lean::cnstr_get(x_5, 4); +x_9 = lean::cnstr_get(x_5, 5); lean::dec(x_9); x_10 = lean::box(0); lean::cnstr_set(x_3, 0, x_10); @@ -2802,215 +2867,229 @@ return x_3; } else { -obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; +obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; x_11 = lean::cnstr_get(x_5, 0); x_12 = lean::cnstr_get(x_5, 1); x_13 = lean::cnstr_get(x_5, 2); x_14 = lean::cnstr_get(x_5, 3); +x_15 = lean::cnstr_get(x_5, 4); +lean::inc(x_15); lean::inc(x_14); lean::inc(x_13); lean::inc(x_12); lean::inc(x_11); lean::dec(x_5); -x_15 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_15, 0, x_11); -lean::cnstr_set(x_15, 1, x_12); -lean::cnstr_set(x_15, 2, x_13); -lean::cnstr_set(x_15, 3, x_14); -lean::cnstr_set(x_15, 4, x_7); -x_16 = lean::box(0); -lean::cnstr_set(x_3, 1, x_15); -lean::cnstr_set(x_3, 0, x_16); +x_16 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_16, 0, x_11); +lean::cnstr_set(x_16, 1, x_12); +lean::cnstr_set(x_16, 2, x_13); +lean::cnstr_set(x_16, 3, x_14); +lean::cnstr_set(x_16, 4, x_15); +lean::cnstr_set(x_16, 5, x_7); +x_17 = lean::box(0); +lean::cnstr_set(x_3, 1, x_16); +lean::cnstr_set(x_3, 0, x_17); return x_3; } } else { -uint8 x_17; -x_17 = !lean::is_exclusive(x_5); -if (x_17 == 0) +uint8 x_18; +x_18 = !lean::is_exclusive(x_5); +if (x_18 == 0) { -obj* x_18; uint8 x_19; -x_18 = lean::cnstr_get(x_5, 4); -lean::dec(x_18); -x_19 = !lean::is_exclusive(x_7); -if (x_19 == 0) +obj* x_19; uint8 x_20; +x_19 = lean::cnstr_get(x_5, 5); +lean::dec(x_19); +x_20 = !lean::is_exclusive(x_7); +if (x_20 == 0) { -obj* x_20; obj* x_21; obj* x_22; -x_20 = lean::cnstr_get(x_7, 0); -x_21 = lean::apply_1(x_1, x_20); -lean::cnstr_set(x_7, 0, x_21); -x_22 = lean::box(0); -lean::cnstr_set(x_3, 0, x_22); +obj* x_21; obj* x_22; obj* x_23; +x_21 = lean::cnstr_get(x_7, 0); +x_22 = lean::apply_1(x_1, x_21); +lean::cnstr_set(x_7, 0, x_22); +x_23 = lean::box(0); +lean::cnstr_set(x_3, 0, x_23); return x_3; } else { -obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; -x_23 = lean::cnstr_get(x_7, 0); -x_24 = lean::cnstr_get(x_7, 1); +obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; +x_24 = lean::cnstr_get(x_7, 0); +x_25 = lean::cnstr_get(x_7, 1); +lean::inc(x_25); lean::inc(x_24); -lean::inc(x_23); lean::dec(x_7); -x_25 = lean::apply_1(x_1, x_23); -x_26 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_24); -lean::cnstr_set(x_5, 4, x_26); -x_27 = lean::box(0); -lean::cnstr_set(x_3, 0, x_27); +x_26 = lean::apply_1(x_1, x_24); +x_27 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_25); +lean::cnstr_set(x_5, 5, x_27); +x_28 = lean::box(0); +lean::cnstr_set(x_3, 0, x_28); return x_3; } } else { -obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; -x_28 = lean::cnstr_get(x_5, 0); -x_29 = lean::cnstr_get(x_5, 1); -x_30 = lean::cnstr_get(x_5, 2); -x_31 = lean::cnstr_get(x_5, 3); +obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; obj* x_39; obj* x_40; +x_29 = lean::cnstr_get(x_5, 0); +x_30 = lean::cnstr_get(x_5, 1); +x_31 = lean::cnstr_get(x_5, 2); +x_32 = lean::cnstr_get(x_5, 3); +x_33 = lean::cnstr_get(x_5, 4); +lean::inc(x_33); +lean::inc(x_32); lean::inc(x_31); lean::inc(x_30); lean::inc(x_29); -lean::inc(x_28); lean::dec(x_5); -x_32 = lean::cnstr_get(x_7, 0); -lean::inc(x_32); -x_33 = lean::cnstr_get(x_7, 1); -lean::inc(x_33); +x_34 = lean::cnstr_get(x_7, 0); +lean::inc(x_34); +x_35 = lean::cnstr_get(x_7, 1); +lean::inc(x_35); if (lean::is_exclusive(x_7)) { lean::cnstr_release(x_7, 0); lean::cnstr_release(x_7, 1); - x_34 = x_7; + x_36 = x_7; } else { lean::dec_ref(x_7); - x_34 = lean::box(0); + x_36 = lean::box(0); } -x_35 = lean::apply_1(x_1, x_32); -if (lean::is_scalar(x_34)) { - x_36 = lean::alloc_cnstr(1, 2, 0); +x_37 = lean::apply_1(x_1, x_34); +if (lean::is_scalar(x_36)) { + x_38 = lean::alloc_cnstr(1, 2, 0); } else { - x_36 = x_34; + x_38 = x_36; } -lean::cnstr_set(x_36, 0, x_35); -lean::cnstr_set(x_36, 1, x_33); -x_37 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_37, 0, x_28); -lean::cnstr_set(x_37, 1, x_29); -lean::cnstr_set(x_37, 2, x_30); -lean::cnstr_set(x_37, 3, x_31); -lean::cnstr_set(x_37, 4, x_36); -x_38 = lean::box(0); -lean::cnstr_set(x_3, 1, x_37); -lean::cnstr_set(x_3, 0, x_38); +lean::cnstr_set(x_38, 0, x_37); +lean::cnstr_set(x_38, 1, x_35); +x_39 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_39, 0, x_29); +lean::cnstr_set(x_39, 1, x_30); +lean::cnstr_set(x_39, 2, x_31); +lean::cnstr_set(x_39, 3, x_32); +lean::cnstr_set(x_39, 4, x_33); +lean::cnstr_set(x_39, 5, x_38); +x_40 = lean::box(0); +lean::cnstr_set(x_3, 1, x_39); +lean::cnstr_set(x_3, 0, x_40); return x_3; } } } else { -obj* x_39; obj* x_40; -x_39 = lean::cnstr_get(x_3, 1); -lean::inc(x_39); -lean::dec(x_3); -x_40 = lean::cnstr_get(x_39, 4); -lean::inc(x_40); -if (lean::obj_tag(x_40) == 0) -{ -obj* x_41; obj* x_42; obj* x_43; obj* x_44; obj* x_45; obj* x_46; obj* x_47; obj* x_48; -lean::dec(x_1); -x_41 = lean::cnstr_get(x_39, 0); +obj* x_41; obj* x_42; +x_41 = lean::cnstr_get(x_3, 1); lean::inc(x_41); -x_42 = lean::cnstr_get(x_39, 1); +lean::dec(x_3); +x_42 = lean::cnstr_get(x_41, 5); lean::inc(x_42); -x_43 = lean::cnstr_get(x_39, 2); +if (lean::obj_tag(x_42) == 0) +{ +obj* x_43; obj* x_44; obj* x_45; obj* x_46; obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; +lean::dec(x_1); +x_43 = lean::cnstr_get(x_41, 0); lean::inc(x_43); -x_44 = lean::cnstr_get(x_39, 3); +x_44 = lean::cnstr_get(x_41, 1); lean::inc(x_44); -if (lean::is_exclusive(x_39)) { - lean::cnstr_release(x_39, 0); - lean::cnstr_release(x_39, 1); - lean::cnstr_release(x_39, 2); - lean::cnstr_release(x_39, 3); - lean::cnstr_release(x_39, 4); - x_45 = x_39; +x_45 = lean::cnstr_get(x_41, 2); +lean::inc(x_45); +x_46 = lean::cnstr_get(x_41, 3); +lean::inc(x_46); +x_47 = lean::cnstr_get(x_41, 4); +lean::inc(x_47); +if (lean::is_exclusive(x_41)) { + lean::cnstr_release(x_41, 0); + lean::cnstr_release(x_41, 1); + lean::cnstr_release(x_41, 2); + lean::cnstr_release(x_41, 3); + lean::cnstr_release(x_41, 4); + lean::cnstr_release(x_41, 5); + x_48 = x_41; } else { - lean::dec_ref(x_39); - x_45 = lean::box(0); + lean::dec_ref(x_41); + x_48 = lean::box(0); } -if (lean::is_scalar(x_45)) { - x_46 = lean::alloc_cnstr(0, 5, 0); +if (lean::is_scalar(x_48)) { + x_49 = lean::alloc_cnstr(0, 6, 0); } else { - x_46 = x_45; + x_49 = x_48; } -lean::cnstr_set(x_46, 0, x_41); -lean::cnstr_set(x_46, 1, x_42); -lean::cnstr_set(x_46, 2, x_43); -lean::cnstr_set(x_46, 3, x_44); -lean::cnstr_set(x_46, 4, x_40); -x_47 = lean::box(0); -x_48 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_48, 0, x_47); -lean::cnstr_set(x_48, 1, x_46); -return x_48; +lean::cnstr_set(x_49, 0, x_43); +lean::cnstr_set(x_49, 1, x_44); +lean::cnstr_set(x_49, 2, x_45); +lean::cnstr_set(x_49, 3, x_46); +lean::cnstr_set(x_49, 4, x_47); +lean::cnstr_set(x_49, 5, x_42); +x_50 = lean::box(0); +x_51 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_51, 0, x_50); +lean::cnstr_set(x_51, 1, x_49); +return x_51; } else { -obj* x_49; obj* x_50; obj* x_51; obj* x_52; obj* x_53; obj* x_54; obj* x_55; obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; -x_49 = lean::cnstr_get(x_39, 0); -lean::inc(x_49); -x_50 = lean::cnstr_get(x_39, 1); -lean::inc(x_50); -x_51 = lean::cnstr_get(x_39, 2); -lean::inc(x_51); -x_52 = lean::cnstr_get(x_39, 3); +obj* x_52; obj* x_53; obj* x_54; obj* x_55; obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; +x_52 = lean::cnstr_get(x_41, 0); lean::inc(x_52); -if (lean::is_exclusive(x_39)) { - lean::cnstr_release(x_39, 0); - lean::cnstr_release(x_39, 1); - lean::cnstr_release(x_39, 2); - lean::cnstr_release(x_39, 3); - lean::cnstr_release(x_39, 4); - x_53 = x_39; -} else { - lean::dec_ref(x_39); - x_53 = lean::box(0); -} -x_54 = lean::cnstr_get(x_40, 0); +x_53 = lean::cnstr_get(x_41, 1); +lean::inc(x_53); +x_54 = lean::cnstr_get(x_41, 2); lean::inc(x_54); -x_55 = lean::cnstr_get(x_40, 1); +x_55 = lean::cnstr_get(x_41, 3); lean::inc(x_55); -if (lean::is_exclusive(x_40)) { - lean::cnstr_release(x_40, 0); - lean::cnstr_release(x_40, 1); - x_56 = x_40; +x_56 = lean::cnstr_get(x_41, 4); +lean::inc(x_56); +if (lean::is_exclusive(x_41)) { + lean::cnstr_release(x_41, 0); + lean::cnstr_release(x_41, 1); + lean::cnstr_release(x_41, 2); + lean::cnstr_release(x_41, 3); + lean::cnstr_release(x_41, 4); + lean::cnstr_release(x_41, 5); + x_57 = x_41; } else { - lean::dec_ref(x_40); - x_56 = lean::box(0); + lean::dec_ref(x_41); + x_57 = lean::box(0); } -x_57 = lean::apply_1(x_1, x_54); -if (lean::is_scalar(x_56)) { - x_58 = lean::alloc_cnstr(1, 2, 0); +x_58 = lean::cnstr_get(x_42, 0); +lean::inc(x_58); +x_59 = lean::cnstr_get(x_42, 1); +lean::inc(x_59); +if (lean::is_exclusive(x_42)) { + lean::cnstr_release(x_42, 0); + lean::cnstr_release(x_42, 1); + x_60 = x_42; } else { - x_58 = x_56; + lean::dec_ref(x_42); + x_60 = lean::box(0); } -lean::cnstr_set(x_58, 0, x_57); -lean::cnstr_set(x_58, 1, x_55); -if (lean::is_scalar(x_53)) { - x_59 = lean::alloc_cnstr(0, 5, 0); +x_61 = lean::apply_1(x_1, x_58); +if (lean::is_scalar(x_60)) { + x_62 = lean::alloc_cnstr(1, 2, 0); } else { - x_59 = x_53; + x_62 = x_60; } -lean::cnstr_set(x_59, 0, x_49); -lean::cnstr_set(x_59, 1, x_50); -lean::cnstr_set(x_59, 2, x_51); -lean::cnstr_set(x_59, 3, x_52); -lean::cnstr_set(x_59, 4, x_58); -x_60 = lean::box(0); -x_61 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_61, 0, x_60); -lean::cnstr_set(x_61, 1, x_59); -return x_61; +lean::cnstr_set(x_62, 0, x_61); +lean::cnstr_set(x_62, 1, x_59); +if (lean::is_scalar(x_57)) { + x_63 = lean::alloc_cnstr(0, 6, 0); +} else { + x_63 = x_57; +} +lean::cnstr_set(x_63, 0, x_52); +lean::cnstr_set(x_63, 1, x_53); +lean::cnstr_set(x_63, 2, x_54); +lean::cnstr_set(x_63, 3, x_55); +lean::cnstr_set(x_63, 4, x_56); +lean::cnstr_set(x_63, 5, x_62); +x_64 = lean::box(0); +x_65 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_65, 0, x_64); +lean::cnstr_set(x_65, 1, x_63); +return x_65; } } } @@ -3035,7 +3114,7 @@ obj* x_5; obj* x_6; obj* x_7; x_5 = lean::cnstr_get(x_3, 1); x_6 = lean::cnstr_get(x_3, 0); lean::dec(x_6); -x_7 = lean::cnstr_get(x_5, 4); +x_7 = lean::cnstr_get(x_5, 5); lean::inc(x_7); if (lean::obj_tag(x_7) == 0) { @@ -3045,7 +3124,7 @@ x_8 = !lean::is_exclusive(x_5); if (x_8 == 0) { obj* x_9; obj* x_10; -x_9 = lean::cnstr_get(x_5, 4); +x_9 = lean::cnstr_get(x_5, 5); lean::dec(x_9); x_10 = lean::box(0); lean::cnstr_set(x_3, 0, x_10); @@ -3053,385 +3132,399 @@ return x_3; } else { -obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; +obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; x_11 = lean::cnstr_get(x_5, 0); x_12 = lean::cnstr_get(x_5, 1); x_13 = lean::cnstr_get(x_5, 2); x_14 = lean::cnstr_get(x_5, 3); +x_15 = lean::cnstr_get(x_5, 4); +lean::inc(x_15); lean::inc(x_14); lean::inc(x_13); lean::inc(x_12); lean::inc(x_11); lean::dec(x_5); -x_15 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_15, 0, x_11); -lean::cnstr_set(x_15, 1, x_12); -lean::cnstr_set(x_15, 2, x_13); -lean::cnstr_set(x_15, 3, x_14); -lean::cnstr_set(x_15, 4, x_7); -x_16 = lean::box(0); -lean::cnstr_set(x_3, 1, x_15); -lean::cnstr_set(x_3, 0, x_16); +x_16 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_16, 0, x_11); +lean::cnstr_set(x_16, 1, x_12); +lean::cnstr_set(x_16, 2, x_13); +lean::cnstr_set(x_16, 3, x_14); +lean::cnstr_set(x_16, 4, x_15); +lean::cnstr_set(x_16, 5, x_7); +x_17 = lean::box(0); +lean::cnstr_set(x_3, 1, x_16); +lean::cnstr_set(x_3, 0, x_17); return x_3; } } else { -obj* x_17; uint8 x_18; -x_17 = lean::cnstr_get(x_7, 0); -lean::inc(x_17); -x_18 = !lean::is_exclusive(x_5); -if (x_18 == 0) +obj* x_18; uint8 x_19; +x_18 = lean::cnstr_get(x_7, 0); +lean::inc(x_18); +x_19 = !lean::is_exclusive(x_5); +if (x_19 == 0) { -obj* x_19; uint8 x_20; -x_19 = lean::cnstr_get(x_5, 4); -lean::dec(x_19); -x_20 = !lean::is_exclusive(x_7); -if (x_20 == 0) +obj* x_20; uint8 x_21; +x_20 = lean::cnstr_get(x_5, 5); +lean::dec(x_20); +x_21 = !lean::is_exclusive(x_7); +if (x_21 == 0) { -obj* x_21; obj* x_22; uint8 x_23; -x_21 = lean::cnstr_get(x_7, 1); -x_22 = lean::cnstr_get(x_7, 0); -lean::dec(x_22); -x_23 = !lean::is_exclusive(x_17); -if (x_23 == 0) +obj* x_22; obj* x_23; uint8 x_24; +x_22 = lean::cnstr_get(x_7, 1); +x_23 = lean::cnstr_get(x_7, 0); +lean::dec(x_23); +x_24 = !lean::is_exclusive(x_18); +if (x_24 == 0) { -obj* x_24; obj* x_25; obj* x_26; -x_24 = lean::cnstr_get(x_17, 4); -lean::cnstr_set(x_7, 1, x_24); +obj* x_25; obj* x_26; obj* x_27; +x_25 = lean::cnstr_get(x_18, 4); +lean::cnstr_set(x_7, 1, x_25); lean::cnstr_set(x_7, 0, x_1); -lean::cnstr_set(x_17, 4, x_7); -x_25 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_25, 0, x_17); -lean::cnstr_set(x_25, 1, x_21); -lean::cnstr_set(x_5, 4, x_25); -x_26 = lean::box(0); -lean::cnstr_set(x_3, 0, x_26); +lean::cnstr_set(x_18, 4, x_7); +x_26 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_26, 0, x_18); +lean::cnstr_set(x_26, 1, x_22); +lean::cnstr_set(x_5, 5, x_26); +x_27 = lean::box(0); +lean::cnstr_set(x_3, 0, x_27); return x_3; } else { -obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; -x_27 = lean::cnstr_get(x_17, 0); -x_28 = lean::cnstr_get(x_17, 1); -x_29 = lean::cnstr_get(x_17, 2); -x_30 = lean::cnstr_get(x_17, 3); -x_31 = lean::cnstr_get(x_17, 4); -x_32 = lean::cnstr_get(x_17, 5); -x_33 = lean::cnstr_get(x_17, 6); +obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; +x_28 = lean::cnstr_get(x_18, 0); +x_29 = lean::cnstr_get(x_18, 1); +x_30 = lean::cnstr_get(x_18, 2); +x_31 = lean::cnstr_get(x_18, 3); +x_32 = lean::cnstr_get(x_18, 4); +x_33 = lean::cnstr_get(x_18, 5); +x_34 = lean::cnstr_get(x_18, 6); +lean::inc(x_34); lean::inc(x_33); lean::inc(x_32); lean::inc(x_31); lean::inc(x_30); lean::inc(x_29); lean::inc(x_28); -lean::inc(x_27); -lean::dec(x_17); -lean::cnstr_set(x_7, 1, x_31); +lean::dec(x_18); +lean::cnstr_set(x_7, 1, x_32); lean::cnstr_set(x_7, 0, x_1); -x_34 = lean::alloc_cnstr(0, 7, 0); -lean::cnstr_set(x_34, 0, x_27); -lean::cnstr_set(x_34, 1, x_28); -lean::cnstr_set(x_34, 2, x_29); -lean::cnstr_set(x_34, 3, x_30); -lean::cnstr_set(x_34, 4, x_7); -lean::cnstr_set(x_34, 5, x_32); -lean::cnstr_set(x_34, 6, x_33); -x_35 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_35, 0, x_34); -lean::cnstr_set(x_35, 1, x_21); -lean::cnstr_set(x_5, 4, x_35); -x_36 = lean::box(0); -lean::cnstr_set(x_3, 0, x_36); +x_35 = lean::alloc_cnstr(0, 7, 0); +lean::cnstr_set(x_35, 0, x_28); +lean::cnstr_set(x_35, 1, x_29); +lean::cnstr_set(x_35, 2, x_30); +lean::cnstr_set(x_35, 3, x_31); +lean::cnstr_set(x_35, 4, x_7); +lean::cnstr_set(x_35, 5, x_33); +lean::cnstr_set(x_35, 6, x_34); +x_36 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_36, 0, x_35); +lean::cnstr_set(x_36, 1, x_22); +lean::cnstr_set(x_5, 5, x_36); +x_37 = lean::box(0); +lean::cnstr_set(x_3, 0, x_37); return x_3; } } else { -obj* x_37; obj* x_38; obj* x_39; obj* x_40; obj* x_41; obj* x_42; obj* x_43; obj* x_44; obj* x_45; obj* x_46; obj* x_47; obj* x_48; obj* x_49; -x_37 = lean::cnstr_get(x_7, 1); -lean::inc(x_37); -lean::dec(x_7); -x_38 = lean::cnstr_get(x_17, 0); +obj* x_38; obj* x_39; obj* x_40; obj* x_41; obj* x_42; obj* x_43; obj* x_44; obj* x_45; obj* x_46; obj* x_47; obj* x_48; obj* x_49; obj* x_50; +x_38 = lean::cnstr_get(x_7, 1); lean::inc(x_38); -x_39 = lean::cnstr_get(x_17, 1); +lean::dec(x_7); +x_39 = lean::cnstr_get(x_18, 0); lean::inc(x_39); -x_40 = lean::cnstr_get(x_17, 2); +x_40 = lean::cnstr_get(x_18, 1); lean::inc(x_40); -x_41 = lean::cnstr_get(x_17, 3); +x_41 = lean::cnstr_get(x_18, 2); lean::inc(x_41); -x_42 = lean::cnstr_get(x_17, 4); +x_42 = lean::cnstr_get(x_18, 3); lean::inc(x_42); -x_43 = lean::cnstr_get(x_17, 5); +x_43 = lean::cnstr_get(x_18, 4); lean::inc(x_43); -x_44 = lean::cnstr_get(x_17, 6); +x_44 = lean::cnstr_get(x_18, 5); lean::inc(x_44); -if (lean::is_exclusive(x_17)) { - lean::cnstr_release(x_17, 0); - lean::cnstr_release(x_17, 1); - lean::cnstr_release(x_17, 2); - lean::cnstr_release(x_17, 3); - lean::cnstr_release(x_17, 4); - lean::cnstr_release(x_17, 5); - lean::cnstr_release(x_17, 6); - x_45 = x_17; +x_45 = lean::cnstr_get(x_18, 6); +lean::inc(x_45); +if (lean::is_exclusive(x_18)) { + lean::cnstr_release(x_18, 0); + lean::cnstr_release(x_18, 1); + lean::cnstr_release(x_18, 2); + lean::cnstr_release(x_18, 3); + lean::cnstr_release(x_18, 4); + lean::cnstr_release(x_18, 5); + lean::cnstr_release(x_18, 6); + x_46 = x_18; } else { - lean::dec_ref(x_17); - x_45 = lean::box(0); + lean::dec_ref(x_18); + x_46 = lean::box(0); } -x_46 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_46, 0, x_1); -lean::cnstr_set(x_46, 1, x_42); -if (lean::is_scalar(x_45)) { - x_47 = lean::alloc_cnstr(0, 7, 0); +x_47 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_47, 0, x_1); +lean::cnstr_set(x_47, 1, x_43); +if (lean::is_scalar(x_46)) { + x_48 = lean::alloc_cnstr(0, 7, 0); } else { - x_47 = x_45; + x_48 = x_46; } -lean::cnstr_set(x_47, 0, x_38); -lean::cnstr_set(x_47, 1, x_39); -lean::cnstr_set(x_47, 2, x_40); -lean::cnstr_set(x_47, 3, x_41); -lean::cnstr_set(x_47, 4, x_46); -lean::cnstr_set(x_47, 5, x_43); -lean::cnstr_set(x_47, 6, x_44); -x_48 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_48, 0, x_47); -lean::cnstr_set(x_48, 1, x_37); -lean::cnstr_set(x_5, 4, x_48); -x_49 = lean::box(0); -lean::cnstr_set(x_3, 0, x_49); +lean::cnstr_set(x_48, 0, x_39); +lean::cnstr_set(x_48, 1, x_40); +lean::cnstr_set(x_48, 2, x_41); +lean::cnstr_set(x_48, 3, x_42); +lean::cnstr_set(x_48, 4, x_47); +lean::cnstr_set(x_48, 5, x_44); +lean::cnstr_set(x_48, 6, x_45); +x_49 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_49, 0, x_48); +lean::cnstr_set(x_49, 1, x_38); +lean::cnstr_set(x_5, 5, x_49); +x_50 = lean::box(0); +lean::cnstr_set(x_3, 0, x_50); return x_3; } } else { -obj* x_50; obj* x_51; obj* x_52; obj* x_53; obj* x_54; obj* x_55; obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; -x_50 = lean::cnstr_get(x_5, 0); -x_51 = lean::cnstr_get(x_5, 1); -x_52 = lean::cnstr_get(x_5, 2); -x_53 = lean::cnstr_get(x_5, 3); +obj* x_51; obj* x_52; obj* x_53; obj* x_54; obj* x_55; obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; +x_51 = lean::cnstr_get(x_5, 0); +x_52 = lean::cnstr_get(x_5, 1); +x_53 = lean::cnstr_get(x_5, 2); +x_54 = lean::cnstr_get(x_5, 3); +x_55 = lean::cnstr_get(x_5, 4); +lean::inc(x_55); +lean::inc(x_54); lean::inc(x_53); lean::inc(x_52); lean::inc(x_51); -lean::inc(x_50); lean::dec(x_5); -x_54 = lean::cnstr_get(x_7, 1); -lean::inc(x_54); +x_56 = lean::cnstr_get(x_7, 1); +lean::inc(x_56); if (lean::is_exclusive(x_7)) { lean::cnstr_release(x_7, 0); lean::cnstr_release(x_7, 1); - x_55 = x_7; + x_57 = x_7; } else { lean::dec_ref(x_7); - x_55 = lean::box(0); + x_57 = lean::box(0); } -x_56 = lean::cnstr_get(x_17, 0); -lean::inc(x_56); -x_57 = lean::cnstr_get(x_17, 1); -lean::inc(x_57); -x_58 = lean::cnstr_get(x_17, 2); +x_58 = lean::cnstr_get(x_18, 0); lean::inc(x_58); -x_59 = lean::cnstr_get(x_17, 3); +x_59 = lean::cnstr_get(x_18, 1); lean::inc(x_59); -x_60 = lean::cnstr_get(x_17, 4); +x_60 = lean::cnstr_get(x_18, 2); lean::inc(x_60); -x_61 = lean::cnstr_get(x_17, 5); +x_61 = lean::cnstr_get(x_18, 3); lean::inc(x_61); -x_62 = lean::cnstr_get(x_17, 6); +x_62 = lean::cnstr_get(x_18, 4); lean::inc(x_62); -if (lean::is_exclusive(x_17)) { - lean::cnstr_release(x_17, 0); - lean::cnstr_release(x_17, 1); - lean::cnstr_release(x_17, 2); - lean::cnstr_release(x_17, 3); - lean::cnstr_release(x_17, 4); - lean::cnstr_release(x_17, 5); - lean::cnstr_release(x_17, 6); - x_63 = x_17; +x_63 = lean::cnstr_get(x_18, 5); +lean::inc(x_63); +x_64 = lean::cnstr_get(x_18, 6); +lean::inc(x_64); +if (lean::is_exclusive(x_18)) { + lean::cnstr_release(x_18, 0); + lean::cnstr_release(x_18, 1); + lean::cnstr_release(x_18, 2); + lean::cnstr_release(x_18, 3); + lean::cnstr_release(x_18, 4); + lean::cnstr_release(x_18, 5); + lean::cnstr_release(x_18, 6); + x_65 = x_18; } else { - lean::dec_ref(x_17); - x_63 = lean::box(0); + lean::dec_ref(x_18); + x_65 = lean::box(0); } -if (lean::is_scalar(x_55)) { - x_64 = lean::alloc_cnstr(1, 2, 0); +if (lean::is_scalar(x_57)) { + x_66 = lean::alloc_cnstr(1, 2, 0); } else { - x_64 = x_55; + x_66 = x_57; } -lean::cnstr_set(x_64, 0, x_1); -lean::cnstr_set(x_64, 1, x_60); -if (lean::is_scalar(x_63)) { - x_65 = lean::alloc_cnstr(0, 7, 0); +lean::cnstr_set(x_66, 0, x_1); +lean::cnstr_set(x_66, 1, x_62); +if (lean::is_scalar(x_65)) { + x_67 = lean::alloc_cnstr(0, 7, 0); } else { - x_65 = x_63; + x_67 = x_65; } -lean::cnstr_set(x_65, 0, x_56); -lean::cnstr_set(x_65, 1, x_57); -lean::cnstr_set(x_65, 2, x_58); -lean::cnstr_set(x_65, 3, x_59); -lean::cnstr_set(x_65, 4, x_64); -lean::cnstr_set(x_65, 5, x_61); -lean::cnstr_set(x_65, 6, x_62); -x_66 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_66, 0, x_65); -lean::cnstr_set(x_66, 1, x_54); -x_67 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_67, 0, x_50); -lean::cnstr_set(x_67, 1, x_51); -lean::cnstr_set(x_67, 2, x_52); -lean::cnstr_set(x_67, 3, x_53); +lean::cnstr_set(x_67, 0, x_58); +lean::cnstr_set(x_67, 1, x_59); +lean::cnstr_set(x_67, 2, x_60); +lean::cnstr_set(x_67, 3, x_61); lean::cnstr_set(x_67, 4, x_66); -x_68 = lean::box(0); -lean::cnstr_set(x_3, 1, x_67); -lean::cnstr_set(x_3, 0, x_68); +lean::cnstr_set(x_67, 5, x_63); +lean::cnstr_set(x_67, 6, x_64); +x_68 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_68, 0, x_67); +lean::cnstr_set(x_68, 1, x_56); +x_69 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_69, 0, x_51); +lean::cnstr_set(x_69, 1, x_52); +lean::cnstr_set(x_69, 2, x_53); +lean::cnstr_set(x_69, 3, x_54); +lean::cnstr_set(x_69, 4, x_55); +lean::cnstr_set(x_69, 5, x_68); +x_70 = lean::box(0); +lean::cnstr_set(x_3, 1, x_69); +lean::cnstr_set(x_3, 0, x_70); return x_3; } } } else { -obj* x_69; obj* x_70; -x_69 = lean::cnstr_get(x_3, 1); -lean::inc(x_69); -lean::dec(x_3); -x_70 = lean::cnstr_get(x_69, 4); -lean::inc(x_70); -if (lean::obj_tag(x_70) == 0) -{ -obj* x_71; obj* x_72; obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; -lean::dec(x_1); -x_71 = lean::cnstr_get(x_69, 0); +obj* x_71; obj* x_72; +x_71 = lean::cnstr_get(x_3, 1); lean::inc(x_71); -x_72 = lean::cnstr_get(x_69, 1); +lean::dec(x_3); +x_72 = lean::cnstr_get(x_71, 5); lean::inc(x_72); -x_73 = lean::cnstr_get(x_69, 2); +if (lean::obj_tag(x_72) == 0) +{ +obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; obj* x_79; obj* x_80; obj* x_81; +lean::dec(x_1); +x_73 = lean::cnstr_get(x_71, 0); lean::inc(x_73); -x_74 = lean::cnstr_get(x_69, 3); +x_74 = lean::cnstr_get(x_71, 1); lean::inc(x_74); -if (lean::is_exclusive(x_69)) { - lean::cnstr_release(x_69, 0); - lean::cnstr_release(x_69, 1); - lean::cnstr_release(x_69, 2); - lean::cnstr_release(x_69, 3); - lean::cnstr_release(x_69, 4); - x_75 = x_69; +x_75 = lean::cnstr_get(x_71, 2); +lean::inc(x_75); +x_76 = lean::cnstr_get(x_71, 3); +lean::inc(x_76); +x_77 = lean::cnstr_get(x_71, 4); +lean::inc(x_77); +if (lean::is_exclusive(x_71)) { + lean::cnstr_release(x_71, 0); + lean::cnstr_release(x_71, 1); + lean::cnstr_release(x_71, 2); + lean::cnstr_release(x_71, 3); + lean::cnstr_release(x_71, 4); + lean::cnstr_release(x_71, 5); + x_78 = x_71; } else { - lean::dec_ref(x_69); - x_75 = lean::box(0); + lean::dec_ref(x_71); + x_78 = lean::box(0); } -if (lean::is_scalar(x_75)) { - x_76 = lean::alloc_cnstr(0, 5, 0); +if (lean::is_scalar(x_78)) { + x_79 = lean::alloc_cnstr(0, 6, 0); } else { - x_76 = x_75; + x_79 = x_78; } -lean::cnstr_set(x_76, 0, x_71); -lean::cnstr_set(x_76, 1, x_72); -lean::cnstr_set(x_76, 2, x_73); -lean::cnstr_set(x_76, 3, x_74); -lean::cnstr_set(x_76, 4, x_70); -x_77 = lean::box(0); -x_78 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_78, 0, x_77); -lean::cnstr_set(x_78, 1, x_76); -return x_78; +lean::cnstr_set(x_79, 0, x_73); +lean::cnstr_set(x_79, 1, x_74); +lean::cnstr_set(x_79, 2, x_75); +lean::cnstr_set(x_79, 3, x_76); +lean::cnstr_set(x_79, 4, x_77); +lean::cnstr_set(x_79, 5, x_72); +x_80 = lean::box(0); +x_81 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_81, 0, x_80); +lean::cnstr_set(x_81, 1, x_79); +return x_81; } else { -obj* x_79; obj* x_80; obj* x_81; obj* x_82; obj* x_83; obj* x_84; obj* x_85; obj* x_86; obj* x_87; obj* x_88; obj* x_89; obj* x_90; obj* x_91; obj* x_92; obj* x_93; obj* x_94; obj* x_95; obj* x_96; obj* x_97; obj* x_98; obj* x_99; obj* x_100; -x_79 = lean::cnstr_get(x_70, 0); -lean::inc(x_79); -x_80 = lean::cnstr_get(x_69, 0); -lean::inc(x_80); -x_81 = lean::cnstr_get(x_69, 1); -lean::inc(x_81); -x_82 = lean::cnstr_get(x_69, 2); +obj* x_82; obj* x_83; obj* x_84; obj* x_85; obj* x_86; obj* x_87; obj* x_88; obj* x_89; obj* x_90; obj* x_91; obj* x_92; obj* x_93; obj* x_94; obj* x_95; obj* x_96; obj* x_97; obj* x_98; obj* x_99; obj* x_100; obj* x_101; obj* x_102; obj* x_103; obj* x_104; +x_82 = lean::cnstr_get(x_72, 0); lean::inc(x_82); -x_83 = lean::cnstr_get(x_69, 3); +x_83 = lean::cnstr_get(x_71, 0); lean::inc(x_83); -if (lean::is_exclusive(x_69)) { - lean::cnstr_release(x_69, 0); - lean::cnstr_release(x_69, 1); - lean::cnstr_release(x_69, 2); - lean::cnstr_release(x_69, 3); - lean::cnstr_release(x_69, 4); - x_84 = x_69; -} else { - lean::dec_ref(x_69); - x_84 = lean::box(0); -} -x_85 = lean::cnstr_get(x_70, 1); +x_84 = lean::cnstr_get(x_71, 1); +lean::inc(x_84); +x_85 = lean::cnstr_get(x_71, 2); lean::inc(x_85); -if (lean::is_exclusive(x_70)) { - lean::cnstr_release(x_70, 0); - lean::cnstr_release(x_70, 1); - x_86 = x_70; -} else { - lean::dec_ref(x_70); - x_86 = lean::box(0); -} -x_87 = lean::cnstr_get(x_79, 0); +x_86 = lean::cnstr_get(x_71, 3); +lean::inc(x_86); +x_87 = lean::cnstr_get(x_71, 4); lean::inc(x_87); -x_88 = lean::cnstr_get(x_79, 1); -lean::inc(x_88); -x_89 = lean::cnstr_get(x_79, 2); +if (lean::is_exclusive(x_71)) { + lean::cnstr_release(x_71, 0); + lean::cnstr_release(x_71, 1); + lean::cnstr_release(x_71, 2); + lean::cnstr_release(x_71, 3); + lean::cnstr_release(x_71, 4); + lean::cnstr_release(x_71, 5); + x_88 = x_71; +} else { + lean::dec_ref(x_71); + x_88 = lean::box(0); +} +x_89 = lean::cnstr_get(x_72, 1); lean::inc(x_89); -x_90 = lean::cnstr_get(x_79, 3); -lean::inc(x_90); -x_91 = lean::cnstr_get(x_79, 4); +if (lean::is_exclusive(x_72)) { + lean::cnstr_release(x_72, 0); + lean::cnstr_release(x_72, 1); + x_90 = x_72; +} else { + lean::dec_ref(x_72); + x_90 = lean::box(0); +} +x_91 = lean::cnstr_get(x_82, 0); lean::inc(x_91); -x_92 = lean::cnstr_get(x_79, 5); +x_92 = lean::cnstr_get(x_82, 1); lean::inc(x_92); -x_93 = lean::cnstr_get(x_79, 6); +x_93 = lean::cnstr_get(x_82, 2); lean::inc(x_93); -if (lean::is_exclusive(x_79)) { - lean::cnstr_release(x_79, 0); - lean::cnstr_release(x_79, 1); - lean::cnstr_release(x_79, 2); - lean::cnstr_release(x_79, 3); - lean::cnstr_release(x_79, 4); - lean::cnstr_release(x_79, 5); - lean::cnstr_release(x_79, 6); - x_94 = x_79; +x_94 = lean::cnstr_get(x_82, 3); +lean::inc(x_94); +x_95 = lean::cnstr_get(x_82, 4); +lean::inc(x_95); +x_96 = lean::cnstr_get(x_82, 5); +lean::inc(x_96); +x_97 = lean::cnstr_get(x_82, 6); +lean::inc(x_97); +if (lean::is_exclusive(x_82)) { + lean::cnstr_release(x_82, 0); + lean::cnstr_release(x_82, 1); + lean::cnstr_release(x_82, 2); + lean::cnstr_release(x_82, 3); + lean::cnstr_release(x_82, 4); + lean::cnstr_release(x_82, 5); + lean::cnstr_release(x_82, 6); + x_98 = x_82; } else { - lean::dec_ref(x_79); - x_94 = lean::box(0); + lean::dec_ref(x_82); + x_98 = lean::box(0); } -if (lean::is_scalar(x_86)) { - x_95 = lean::alloc_cnstr(1, 2, 0); +if (lean::is_scalar(x_90)) { + x_99 = lean::alloc_cnstr(1, 2, 0); } else { - x_95 = x_86; + x_99 = x_90; } -lean::cnstr_set(x_95, 0, x_1); -lean::cnstr_set(x_95, 1, x_91); -if (lean::is_scalar(x_94)) { - x_96 = lean::alloc_cnstr(0, 7, 0); +lean::cnstr_set(x_99, 0, x_1); +lean::cnstr_set(x_99, 1, x_95); +if (lean::is_scalar(x_98)) { + x_100 = lean::alloc_cnstr(0, 7, 0); } else { - x_96 = x_94; + x_100 = x_98; } -lean::cnstr_set(x_96, 0, x_87); -lean::cnstr_set(x_96, 1, x_88); -lean::cnstr_set(x_96, 2, x_89); -lean::cnstr_set(x_96, 3, x_90); -lean::cnstr_set(x_96, 4, x_95); -lean::cnstr_set(x_96, 5, x_92); -lean::cnstr_set(x_96, 6, x_93); -x_97 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_97, 0, x_96); -lean::cnstr_set(x_97, 1, x_85); -if (lean::is_scalar(x_84)) { - x_98 = lean::alloc_cnstr(0, 5, 0); +lean::cnstr_set(x_100, 0, x_91); +lean::cnstr_set(x_100, 1, x_92); +lean::cnstr_set(x_100, 2, x_93); +lean::cnstr_set(x_100, 3, x_94); +lean::cnstr_set(x_100, 4, x_99); +lean::cnstr_set(x_100, 5, x_96); +lean::cnstr_set(x_100, 6, x_97); +x_101 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_101, 0, x_100); +lean::cnstr_set(x_101, 1, x_89); +if (lean::is_scalar(x_88)) { + x_102 = lean::alloc_cnstr(0, 6, 0); } else { - x_98 = x_84; + x_102 = x_88; } -lean::cnstr_set(x_98, 0, x_80); -lean::cnstr_set(x_98, 1, x_81); -lean::cnstr_set(x_98, 2, x_82); -lean::cnstr_set(x_98, 3, x_83); -lean::cnstr_set(x_98, 4, x_97); -x_99 = lean::box(0); -x_100 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_100, 0, x_99); -lean::cnstr_set(x_100, 1, x_98); -return x_100; +lean::cnstr_set(x_102, 0, x_83); +lean::cnstr_set(x_102, 1, x_84); +lean::cnstr_set(x_102, 2, x_85); +lean::cnstr_set(x_102, 3, x_86); +lean::cnstr_set(x_102, 4, x_87); +lean::cnstr_set(x_102, 5, x_101); +x_103 = lean::box(0); +x_104 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_104, 0, x_103); +lean::cnstr_set(x_104, 1, x_102); +return x_104; } } } @@ -3753,7 +3846,7 @@ x_14 = lean::array_fget(x_3, x_4); x_15 = l_Lean_Syntax_getId___rarg(x_14); lean::inc(x_15); x_16 = l_Lean_Name_append___main(x_1, x_15); -x_17 = l_Lean_getEnv___rarg(x_7); +x_17 = l_Lean_Elab_getEnv___rarg(x_7); if (lean::obj_tag(x_17) == 0) { uint8 x_18; @@ -3770,7 +3863,7 @@ if (x_21 == 0) { obj* x_22; lean::dec(x_15); -x_22 = l_Lean_logUnknownDecl(x_14, x_16, x_6, x_17); +x_22 = l_Lean_Elab_logUnknownDecl___rarg(x_14, x_16, x_6, x_17); lean::dec(x_14); if (lean::obj_tag(x_22) == 0) { @@ -3917,7 +4010,7 @@ if (x_55 == 0) { obj* x_56; lean::dec(x_15); -x_56 = l_Lean_logUnknownDecl(x_14, x_16, x_6, x_54); +x_56 = l_Lean_Elab_logUnknownDecl___rarg(x_14, x_16, x_6, x_54); lean::dec(x_14); if (lean::obj_tag(x_56) == 0) { @@ -4212,7 +4305,7 @@ if (x_18 == 0) { obj* x_19; lean::dec(x_16); -x_19 = l_Lean_logUnknownDecl(x_15, x_17, x_7, x_8); +x_19 = l_Lean_Elab_logUnknownDecl___rarg(x_15, x_17, x_7, x_8); lean::dec(x_15); if (lean::obj_tag(x_19) == 0) { @@ -4340,7 +4433,7 @@ obj* x_11; obj* x_12; obj* x_13; x_11 = lean::cnstr_get(x_9, 0); x_12 = lean::box(0); lean::cnstr_set(x_9, 0, x_12); -x_13 = l_Lean_getEnv___rarg(x_9); +x_13 = l_Lean_Elab_getEnv___rarg(x_9); if (lean::obj_tag(x_13) == 0) { uint8 x_14; @@ -4527,7 +4620,7 @@ x_60 = lean::box(0); x_61 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_61, 0, x_60); lean::cnstr_set(x_61, 1, x_59); -x_62 = l_Lean_getEnv___rarg(x_61); +x_62 = l_Lean_Elab_getEnv___rarg(x_61); if (lean::obj_tag(x_62) == 0) { obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; @@ -4729,7 +4822,7 @@ x_16 = l_Lean_Syntax_getIdAt___rarg(x_14, x_15); x_17 = lean::mk_nat_obj(2u); x_18 = l_Lean_Syntax_getIdAt___rarg(x_14, x_17); x_19 = l_Lean_Name_append___main(x_1, x_16); -x_20 = l_Lean_getEnv___rarg(x_7); +x_20 = l_Lean_Elab_getEnv___rarg(x_7); if (lean::obj_tag(x_20) == 0) { uint8 x_21; @@ -4746,7 +4839,7 @@ if (x_24 == 0) { obj* x_25; lean::dec(x_18); -x_25 = l_Lean_logUnknownDecl(x_14, x_19, x_6, x_20); +x_25 = l_Lean_Elab_logUnknownDecl___rarg(x_14, x_19, x_6, x_20); lean::dec(x_14); if (lean::obj_tag(x_25) == 0) { @@ -4893,7 +4986,7 @@ if (x_58 == 0) { obj* x_59; lean::dec(x_18); -x_59 = l_Lean_logUnknownDecl(x_14, x_19, x_6, x_57); +x_59 = l_Lean_Elab_logUnknownDecl___rarg(x_14, x_19, x_6, x_57); lean::dec(x_14); if (lean::obj_tag(x_59) == 0) { @@ -5259,7 +5352,7 @@ obj* x_5; obj* x_6; obj* x_7; x_5 = lean::cnstr_get(x_3, 1); x_6 = lean::cnstr_get(x_3, 0); lean::dec(x_6); -x_7 = lean::cnstr_get(x_5, 4); +x_7 = lean::cnstr_get(x_5, 5); lean::inc(x_7); if (lean::obj_tag(x_7) == 0) { @@ -5269,7 +5362,7 @@ x_8 = !lean::is_exclusive(x_5); if (x_8 == 0) { obj* x_9; obj* x_10; -x_9 = lean::cnstr_get(x_5, 4); +x_9 = lean::cnstr_get(x_5, 5); lean::dec(x_9); x_10 = lean::box(0); lean::cnstr_set(x_3, 0, x_10); @@ -5277,385 +5370,399 @@ return x_3; } else { -obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; +obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; x_11 = lean::cnstr_get(x_5, 0); x_12 = lean::cnstr_get(x_5, 1); x_13 = lean::cnstr_get(x_5, 2); x_14 = lean::cnstr_get(x_5, 3); +x_15 = lean::cnstr_get(x_5, 4); +lean::inc(x_15); lean::inc(x_14); lean::inc(x_13); lean::inc(x_12); lean::inc(x_11); lean::dec(x_5); -x_15 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_15, 0, x_11); -lean::cnstr_set(x_15, 1, x_12); -lean::cnstr_set(x_15, 2, x_13); -lean::cnstr_set(x_15, 3, x_14); -lean::cnstr_set(x_15, 4, x_7); -x_16 = lean::box(0); -lean::cnstr_set(x_3, 1, x_15); -lean::cnstr_set(x_3, 0, x_16); +x_16 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_16, 0, x_11); +lean::cnstr_set(x_16, 1, x_12); +lean::cnstr_set(x_16, 2, x_13); +lean::cnstr_set(x_16, 3, x_14); +lean::cnstr_set(x_16, 4, x_15); +lean::cnstr_set(x_16, 5, x_7); +x_17 = lean::box(0); +lean::cnstr_set(x_3, 1, x_16); +lean::cnstr_set(x_3, 0, x_17); return x_3; } } else { -obj* x_17; uint8 x_18; -x_17 = lean::cnstr_get(x_7, 0); -lean::inc(x_17); -x_18 = !lean::is_exclusive(x_5); -if (x_18 == 0) +obj* x_18; uint8 x_19; +x_18 = lean::cnstr_get(x_7, 0); +lean::inc(x_18); +x_19 = !lean::is_exclusive(x_5); +if (x_19 == 0) { -obj* x_19; uint8 x_20; -x_19 = lean::cnstr_get(x_5, 4); -lean::dec(x_19); -x_20 = !lean::is_exclusive(x_7); -if (x_20 == 0) +obj* x_20; uint8 x_21; +x_20 = lean::cnstr_get(x_5, 5); +lean::dec(x_20); +x_21 = !lean::is_exclusive(x_7); +if (x_21 == 0) { -obj* x_21; obj* x_22; uint8 x_23; -x_21 = lean::cnstr_get(x_7, 1); -x_22 = lean::cnstr_get(x_7, 0); -lean::dec(x_22); -x_23 = !lean::is_exclusive(x_17); -if (x_23 == 0) +obj* x_22; obj* x_23; uint8 x_24; +x_22 = lean::cnstr_get(x_7, 1); +x_23 = lean::cnstr_get(x_7, 0); +lean::dec(x_23); +x_24 = !lean::is_exclusive(x_18); +if (x_24 == 0) { -obj* x_24; obj* x_25; obj* x_26; -x_24 = lean::cnstr_get(x_17, 5); -lean::cnstr_set(x_7, 1, x_24); +obj* x_25; obj* x_26; obj* x_27; +x_25 = lean::cnstr_get(x_18, 5); +lean::cnstr_set(x_7, 1, x_25); lean::cnstr_set(x_7, 0, x_1); -lean::cnstr_set(x_17, 5, x_7); -x_25 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_25, 0, x_17); -lean::cnstr_set(x_25, 1, x_21); -lean::cnstr_set(x_5, 4, x_25); -x_26 = lean::box(0); -lean::cnstr_set(x_3, 0, x_26); +lean::cnstr_set(x_18, 5, x_7); +x_26 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_26, 0, x_18); +lean::cnstr_set(x_26, 1, x_22); +lean::cnstr_set(x_5, 5, x_26); +x_27 = lean::box(0); +lean::cnstr_set(x_3, 0, x_27); return x_3; } else { -obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; -x_27 = lean::cnstr_get(x_17, 0); -x_28 = lean::cnstr_get(x_17, 1); -x_29 = lean::cnstr_get(x_17, 2); -x_30 = lean::cnstr_get(x_17, 3); -x_31 = lean::cnstr_get(x_17, 4); -x_32 = lean::cnstr_get(x_17, 5); -x_33 = lean::cnstr_get(x_17, 6); +obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; +x_28 = lean::cnstr_get(x_18, 0); +x_29 = lean::cnstr_get(x_18, 1); +x_30 = lean::cnstr_get(x_18, 2); +x_31 = lean::cnstr_get(x_18, 3); +x_32 = lean::cnstr_get(x_18, 4); +x_33 = lean::cnstr_get(x_18, 5); +x_34 = lean::cnstr_get(x_18, 6); +lean::inc(x_34); lean::inc(x_33); lean::inc(x_32); lean::inc(x_31); lean::inc(x_30); lean::inc(x_29); lean::inc(x_28); -lean::inc(x_27); -lean::dec(x_17); -lean::cnstr_set(x_7, 1, x_32); +lean::dec(x_18); +lean::cnstr_set(x_7, 1, x_33); lean::cnstr_set(x_7, 0, x_1); -x_34 = lean::alloc_cnstr(0, 7, 0); -lean::cnstr_set(x_34, 0, x_27); -lean::cnstr_set(x_34, 1, x_28); -lean::cnstr_set(x_34, 2, x_29); -lean::cnstr_set(x_34, 3, x_30); -lean::cnstr_set(x_34, 4, x_31); -lean::cnstr_set(x_34, 5, x_7); -lean::cnstr_set(x_34, 6, x_33); -x_35 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_35, 0, x_34); -lean::cnstr_set(x_35, 1, x_21); -lean::cnstr_set(x_5, 4, x_35); -x_36 = lean::box(0); -lean::cnstr_set(x_3, 0, x_36); +x_35 = lean::alloc_cnstr(0, 7, 0); +lean::cnstr_set(x_35, 0, x_28); +lean::cnstr_set(x_35, 1, x_29); +lean::cnstr_set(x_35, 2, x_30); +lean::cnstr_set(x_35, 3, x_31); +lean::cnstr_set(x_35, 4, x_32); +lean::cnstr_set(x_35, 5, x_7); +lean::cnstr_set(x_35, 6, x_34); +x_36 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_36, 0, x_35); +lean::cnstr_set(x_36, 1, x_22); +lean::cnstr_set(x_5, 5, x_36); +x_37 = lean::box(0); +lean::cnstr_set(x_3, 0, x_37); return x_3; } } else { -obj* x_37; obj* x_38; obj* x_39; obj* x_40; obj* x_41; obj* x_42; obj* x_43; obj* x_44; obj* x_45; obj* x_46; obj* x_47; obj* x_48; obj* x_49; -x_37 = lean::cnstr_get(x_7, 1); -lean::inc(x_37); -lean::dec(x_7); -x_38 = lean::cnstr_get(x_17, 0); +obj* x_38; obj* x_39; obj* x_40; obj* x_41; obj* x_42; obj* x_43; obj* x_44; obj* x_45; obj* x_46; obj* x_47; obj* x_48; obj* x_49; obj* x_50; +x_38 = lean::cnstr_get(x_7, 1); lean::inc(x_38); -x_39 = lean::cnstr_get(x_17, 1); +lean::dec(x_7); +x_39 = lean::cnstr_get(x_18, 0); lean::inc(x_39); -x_40 = lean::cnstr_get(x_17, 2); +x_40 = lean::cnstr_get(x_18, 1); lean::inc(x_40); -x_41 = lean::cnstr_get(x_17, 3); +x_41 = lean::cnstr_get(x_18, 2); lean::inc(x_41); -x_42 = lean::cnstr_get(x_17, 4); +x_42 = lean::cnstr_get(x_18, 3); lean::inc(x_42); -x_43 = lean::cnstr_get(x_17, 5); +x_43 = lean::cnstr_get(x_18, 4); lean::inc(x_43); -x_44 = lean::cnstr_get(x_17, 6); +x_44 = lean::cnstr_get(x_18, 5); lean::inc(x_44); -if (lean::is_exclusive(x_17)) { - lean::cnstr_release(x_17, 0); - lean::cnstr_release(x_17, 1); - lean::cnstr_release(x_17, 2); - lean::cnstr_release(x_17, 3); - lean::cnstr_release(x_17, 4); - lean::cnstr_release(x_17, 5); - lean::cnstr_release(x_17, 6); - x_45 = x_17; +x_45 = lean::cnstr_get(x_18, 6); +lean::inc(x_45); +if (lean::is_exclusive(x_18)) { + lean::cnstr_release(x_18, 0); + lean::cnstr_release(x_18, 1); + lean::cnstr_release(x_18, 2); + lean::cnstr_release(x_18, 3); + lean::cnstr_release(x_18, 4); + lean::cnstr_release(x_18, 5); + lean::cnstr_release(x_18, 6); + x_46 = x_18; } else { - lean::dec_ref(x_17); - x_45 = lean::box(0); + lean::dec_ref(x_18); + x_46 = lean::box(0); } -x_46 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_46, 0, x_1); -lean::cnstr_set(x_46, 1, x_43); -if (lean::is_scalar(x_45)) { - x_47 = lean::alloc_cnstr(0, 7, 0); +x_47 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_47, 0, x_1); +lean::cnstr_set(x_47, 1, x_44); +if (lean::is_scalar(x_46)) { + x_48 = lean::alloc_cnstr(0, 7, 0); } else { - x_47 = x_45; + x_48 = x_46; } -lean::cnstr_set(x_47, 0, x_38); -lean::cnstr_set(x_47, 1, x_39); -lean::cnstr_set(x_47, 2, x_40); -lean::cnstr_set(x_47, 3, x_41); -lean::cnstr_set(x_47, 4, x_42); -lean::cnstr_set(x_47, 5, x_46); -lean::cnstr_set(x_47, 6, x_44); -x_48 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_48, 0, x_47); -lean::cnstr_set(x_48, 1, x_37); -lean::cnstr_set(x_5, 4, x_48); -x_49 = lean::box(0); -lean::cnstr_set(x_3, 0, x_49); +lean::cnstr_set(x_48, 0, x_39); +lean::cnstr_set(x_48, 1, x_40); +lean::cnstr_set(x_48, 2, x_41); +lean::cnstr_set(x_48, 3, x_42); +lean::cnstr_set(x_48, 4, x_43); +lean::cnstr_set(x_48, 5, x_47); +lean::cnstr_set(x_48, 6, x_45); +x_49 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_49, 0, x_48); +lean::cnstr_set(x_49, 1, x_38); +lean::cnstr_set(x_5, 5, x_49); +x_50 = lean::box(0); +lean::cnstr_set(x_3, 0, x_50); return x_3; } } else { -obj* x_50; obj* x_51; obj* x_52; obj* x_53; obj* x_54; obj* x_55; obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; -x_50 = lean::cnstr_get(x_5, 0); -x_51 = lean::cnstr_get(x_5, 1); -x_52 = lean::cnstr_get(x_5, 2); -x_53 = lean::cnstr_get(x_5, 3); +obj* x_51; obj* x_52; obj* x_53; obj* x_54; obj* x_55; obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; +x_51 = lean::cnstr_get(x_5, 0); +x_52 = lean::cnstr_get(x_5, 1); +x_53 = lean::cnstr_get(x_5, 2); +x_54 = lean::cnstr_get(x_5, 3); +x_55 = lean::cnstr_get(x_5, 4); +lean::inc(x_55); +lean::inc(x_54); lean::inc(x_53); lean::inc(x_52); lean::inc(x_51); -lean::inc(x_50); lean::dec(x_5); -x_54 = lean::cnstr_get(x_7, 1); -lean::inc(x_54); +x_56 = lean::cnstr_get(x_7, 1); +lean::inc(x_56); if (lean::is_exclusive(x_7)) { lean::cnstr_release(x_7, 0); lean::cnstr_release(x_7, 1); - x_55 = x_7; + x_57 = x_7; } else { lean::dec_ref(x_7); - x_55 = lean::box(0); + x_57 = lean::box(0); } -x_56 = lean::cnstr_get(x_17, 0); -lean::inc(x_56); -x_57 = lean::cnstr_get(x_17, 1); -lean::inc(x_57); -x_58 = lean::cnstr_get(x_17, 2); +x_58 = lean::cnstr_get(x_18, 0); lean::inc(x_58); -x_59 = lean::cnstr_get(x_17, 3); +x_59 = lean::cnstr_get(x_18, 1); lean::inc(x_59); -x_60 = lean::cnstr_get(x_17, 4); +x_60 = lean::cnstr_get(x_18, 2); lean::inc(x_60); -x_61 = lean::cnstr_get(x_17, 5); +x_61 = lean::cnstr_get(x_18, 3); lean::inc(x_61); -x_62 = lean::cnstr_get(x_17, 6); +x_62 = lean::cnstr_get(x_18, 4); lean::inc(x_62); -if (lean::is_exclusive(x_17)) { - lean::cnstr_release(x_17, 0); - lean::cnstr_release(x_17, 1); - lean::cnstr_release(x_17, 2); - lean::cnstr_release(x_17, 3); - lean::cnstr_release(x_17, 4); - lean::cnstr_release(x_17, 5); - lean::cnstr_release(x_17, 6); - x_63 = x_17; +x_63 = lean::cnstr_get(x_18, 5); +lean::inc(x_63); +x_64 = lean::cnstr_get(x_18, 6); +lean::inc(x_64); +if (lean::is_exclusive(x_18)) { + lean::cnstr_release(x_18, 0); + lean::cnstr_release(x_18, 1); + lean::cnstr_release(x_18, 2); + lean::cnstr_release(x_18, 3); + lean::cnstr_release(x_18, 4); + lean::cnstr_release(x_18, 5); + lean::cnstr_release(x_18, 6); + x_65 = x_18; } else { - lean::dec_ref(x_17); - x_63 = lean::box(0); + lean::dec_ref(x_18); + x_65 = lean::box(0); } -if (lean::is_scalar(x_55)) { - x_64 = lean::alloc_cnstr(1, 2, 0); +if (lean::is_scalar(x_57)) { + x_66 = lean::alloc_cnstr(1, 2, 0); } else { - x_64 = x_55; + x_66 = x_57; } -lean::cnstr_set(x_64, 0, x_1); -lean::cnstr_set(x_64, 1, x_61); -if (lean::is_scalar(x_63)) { - x_65 = lean::alloc_cnstr(0, 7, 0); +lean::cnstr_set(x_66, 0, x_1); +lean::cnstr_set(x_66, 1, x_63); +if (lean::is_scalar(x_65)) { + x_67 = lean::alloc_cnstr(0, 7, 0); } else { - x_65 = x_63; + x_67 = x_65; } -lean::cnstr_set(x_65, 0, x_56); -lean::cnstr_set(x_65, 1, x_57); -lean::cnstr_set(x_65, 2, x_58); -lean::cnstr_set(x_65, 3, x_59); -lean::cnstr_set(x_65, 4, x_60); -lean::cnstr_set(x_65, 5, x_64); -lean::cnstr_set(x_65, 6, x_62); -x_66 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_66, 0, x_65); -lean::cnstr_set(x_66, 1, x_54); -x_67 = lean::alloc_cnstr(0, 5, 0); -lean::cnstr_set(x_67, 0, x_50); -lean::cnstr_set(x_67, 1, x_51); -lean::cnstr_set(x_67, 2, x_52); -lean::cnstr_set(x_67, 3, x_53); -lean::cnstr_set(x_67, 4, x_66); -x_68 = lean::box(0); -lean::cnstr_set(x_3, 1, x_67); -lean::cnstr_set(x_3, 0, x_68); +lean::cnstr_set(x_67, 0, x_58); +lean::cnstr_set(x_67, 1, x_59); +lean::cnstr_set(x_67, 2, x_60); +lean::cnstr_set(x_67, 3, x_61); +lean::cnstr_set(x_67, 4, x_62); +lean::cnstr_set(x_67, 5, x_66); +lean::cnstr_set(x_67, 6, x_64); +x_68 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_68, 0, x_67); +lean::cnstr_set(x_68, 1, x_56); +x_69 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_69, 0, x_51); +lean::cnstr_set(x_69, 1, x_52); +lean::cnstr_set(x_69, 2, x_53); +lean::cnstr_set(x_69, 3, x_54); +lean::cnstr_set(x_69, 4, x_55); +lean::cnstr_set(x_69, 5, x_68); +x_70 = lean::box(0); +lean::cnstr_set(x_3, 1, x_69); +lean::cnstr_set(x_3, 0, x_70); return x_3; } } } else { -obj* x_69; obj* x_70; -x_69 = lean::cnstr_get(x_3, 1); -lean::inc(x_69); -lean::dec(x_3); -x_70 = lean::cnstr_get(x_69, 4); -lean::inc(x_70); -if (lean::obj_tag(x_70) == 0) -{ -obj* x_71; obj* x_72; obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; -lean::dec(x_1); -x_71 = lean::cnstr_get(x_69, 0); +obj* x_71; obj* x_72; +x_71 = lean::cnstr_get(x_3, 1); lean::inc(x_71); -x_72 = lean::cnstr_get(x_69, 1); +lean::dec(x_3); +x_72 = lean::cnstr_get(x_71, 5); lean::inc(x_72); -x_73 = lean::cnstr_get(x_69, 2); +if (lean::obj_tag(x_72) == 0) +{ +obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; obj* x_79; obj* x_80; obj* x_81; +lean::dec(x_1); +x_73 = lean::cnstr_get(x_71, 0); lean::inc(x_73); -x_74 = lean::cnstr_get(x_69, 3); +x_74 = lean::cnstr_get(x_71, 1); lean::inc(x_74); -if (lean::is_exclusive(x_69)) { - lean::cnstr_release(x_69, 0); - lean::cnstr_release(x_69, 1); - lean::cnstr_release(x_69, 2); - lean::cnstr_release(x_69, 3); - lean::cnstr_release(x_69, 4); - x_75 = x_69; +x_75 = lean::cnstr_get(x_71, 2); +lean::inc(x_75); +x_76 = lean::cnstr_get(x_71, 3); +lean::inc(x_76); +x_77 = lean::cnstr_get(x_71, 4); +lean::inc(x_77); +if (lean::is_exclusive(x_71)) { + lean::cnstr_release(x_71, 0); + lean::cnstr_release(x_71, 1); + lean::cnstr_release(x_71, 2); + lean::cnstr_release(x_71, 3); + lean::cnstr_release(x_71, 4); + lean::cnstr_release(x_71, 5); + x_78 = x_71; } else { - lean::dec_ref(x_69); - x_75 = lean::box(0); + lean::dec_ref(x_71); + x_78 = lean::box(0); } -if (lean::is_scalar(x_75)) { - x_76 = lean::alloc_cnstr(0, 5, 0); +if (lean::is_scalar(x_78)) { + x_79 = lean::alloc_cnstr(0, 6, 0); } else { - x_76 = x_75; + x_79 = x_78; } -lean::cnstr_set(x_76, 0, x_71); -lean::cnstr_set(x_76, 1, x_72); -lean::cnstr_set(x_76, 2, x_73); -lean::cnstr_set(x_76, 3, x_74); -lean::cnstr_set(x_76, 4, x_70); -x_77 = lean::box(0); -x_78 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_78, 0, x_77); -lean::cnstr_set(x_78, 1, x_76); -return x_78; +lean::cnstr_set(x_79, 0, x_73); +lean::cnstr_set(x_79, 1, x_74); +lean::cnstr_set(x_79, 2, x_75); +lean::cnstr_set(x_79, 3, x_76); +lean::cnstr_set(x_79, 4, x_77); +lean::cnstr_set(x_79, 5, x_72); +x_80 = lean::box(0); +x_81 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_81, 0, x_80); +lean::cnstr_set(x_81, 1, x_79); +return x_81; } else { -obj* x_79; obj* x_80; obj* x_81; obj* x_82; obj* x_83; obj* x_84; obj* x_85; obj* x_86; obj* x_87; obj* x_88; obj* x_89; obj* x_90; obj* x_91; obj* x_92; obj* x_93; obj* x_94; obj* x_95; obj* x_96; obj* x_97; obj* x_98; obj* x_99; obj* x_100; -x_79 = lean::cnstr_get(x_70, 0); -lean::inc(x_79); -x_80 = lean::cnstr_get(x_69, 0); -lean::inc(x_80); -x_81 = lean::cnstr_get(x_69, 1); -lean::inc(x_81); -x_82 = lean::cnstr_get(x_69, 2); +obj* x_82; obj* x_83; obj* x_84; obj* x_85; obj* x_86; obj* x_87; obj* x_88; obj* x_89; obj* x_90; obj* x_91; obj* x_92; obj* x_93; obj* x_94; obj* x_95; obj* x_96; obj* x_97; obj* x_98; obj* x_99; obj* x_100; obj* x_101; obj* x_102; obj* x_103; obj* x_104; +x_82 = lean::cnstr_get(x_72, 0); lean::inc(x_82); -x_83 = lean::cnstr_get(x_69, 3); +x_83 = lean::cnstr_get(x_71, 0); lean::inc(x_83); -if (lean::is_exclusive(x_69)) { - lean::cnstr_release(x_69, 0); - lean::cnstr_release(x_69, 1); - lean::cnstr_release(x_69, 2); - lean::cnstr_release(x_69, 3); - lean::cnstr_release(x_69, 4); - x_84 = x_69; -} else { - lean::dec_ref(x_69); - x_84 = lean::box(0); -} -x_85 = lean::cnstr_get(x_70, 1); +x_84 = lean::cnstr_get(x_71, 1); +lean::inc(x_84); +x_85 = lean::cnstr_get(x_71, 2); lean::inc(x_85); -if (lean::is_exclusive(x_70)) { - lean::cnstr_release(x_70, 0); - lean::cnstr_release(x_70, 1); - x_86 = x_70; -} else { - lean::dec_ref(x_70); - x_86 = lean::box(0); -} -x_87 = lean::cnstr_get(x_79, 0); +x_86 = lean::cnstr_get(x_71, 3); +lean::inc(x_86); +x_87 = lean::cnstr_get(x_71, 4); lean::inc(x_87); -x_88 = lean::cnstr_get(x_79, 1); -lean::inc(x_88); -x_89 = lean::cnstr_get(x_79, 2); +if (lean::is_exclusive(x_71)) { + lean::cnstr_release(x_71, 0); + lean::cnstr_release(x_71, 1); + lean::cnstr_release(x_71, 2); + lean::cnstr_release(x_71, 3); + lean::cnstr_release(x_71, 4); + lean::cnstr_release(x_71, 5); + x_88 = x_71; +} else { + lean::dec_ref(x_71); + x_88 = lean::box(0); +} +x_89 = lean::cnstr_get(x_72, 1); lean::inc(x_89); -x_90 = lean::cnstr_get(x_79, 3); -lean::inc(x_90); -x_91 = lean::cnstr_get(x_79, 4); +if (lean::is_exclusive(x_72)) { + lean::cnstr_release(x_72, 0); + lean::cnstr_release(x_72, 1); + x_90 = x_72; +} else { + lean::dec_ref(x_72); + x_90 = lean::box(0); +} +x_91 = lean::cnstr_get(x_82, 0); lean::inc(x_91); -x_92 = lean::cnstr_get(x_79, 5); +x_92 = lean::cnstr_get(x_82, 1); lean::inc(x_92); -x_93 = lean::cnstr_get(x_79, 6); +x_93 = lean::cnstr_get(x_82, 2); lean::inc(x_93); -if (lean::is_exclusive(x_79)) { - lean::cnstr_release(x_79, 0); - lean::cnstr_release(x_79, 1); - lean::cnstr_release(x_79, 2); - lean::cnstr_release(x_79, 3); - lean::cnstr_release(x_79, 4); - lean::cnstr_release(x_79, 5); - lean::cnstr_release(x_79, 6); - x_94 = x_79; +x_94 = lean::cnstr_get(x_82, 3); +lean::inc(x_94); +x_95 = lean::cnstr_get(x_82, 4); +lean::inc(x_95); +x_96 = lean::cnstr_get(x_82, 5); +lean::inc(x_96); +x_97 = lean::cnstr_get(x_82, 6); +lean::inc(x_97); +if (lean::is_exclusive(x_82)) { + lean::cnstr_release(x_82, 0); + lean::cnstr_release(x_82, 1); + lean::cnstr_release(x_82, 2); + lean::cnstr_release(x_82, 3); + lean::cnstr_release(x_82, 4); + lean::cnstr_release(x_82, 5); + lean::cnstr_release(x_82, 6); + x_98 = x_82; } else { - lean::dec_ref(x_79); - x_94 = lean::box(0); + lean::dec_ref(x_82); + x_98 = lean::box(0); } -if (lean::is_scalar(x_86)) { - x_95 = lean::alloc_cnstr(1, 2, 0); +if (lean::is_scalar(x_90)) { + x_99 = lean::alloc_cnstr(1, 2, 0); } else { - x_95 = x_86; + x_99 = x_90; } -lean::cnstr_set(x_95, 0, x_1); -lean::cnstr_set(x_95, 1, x_92); -if (lean::is_scalar(x_94)) { - x_96 = lean::alloc_cnstr(0, 7, 0); +lean::cnstr_set(x_99, 0, x_1); +lean::cnstr_set(x_99, 1, x_96); +if (lean::is_scalar(x_98)) { + x_100 = lean::alloc_cnstr(0, 7, 0); } else { - x_96 = x_94; + x_100 = x_98; } -lean::cnstr_set(x_96, 0, x_87); -lean::cnstr_set(x_96, 1, x_88); -lean::cnstr_set(x_96, 2, x_89); -lean::cnstr_set(x_96, 3, x_90); -lean::cnstr_set(x_96, 4, x_91); -lean::cnstr_set(x_96, 5, x_95); -lean::cnstr_set(x_96, 6, x_93); -x_97 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_97, 0, x_96); -lean::cnstr_set(x_97, 1, x_85); -if (lean::is_scalar(x_84)) { - x_98 = lean::alloc_cnstr(0, 5, 0); +lean::cnstr_set(x_100, 0, x_91); +lean::cnstr_set(x_100, 1, x_92); +lean::cnstr_set(x_100, 2, x_93); +lean::cnstr_set(x_100, 3, x_94); +lean::cnstr_set(x_100, 4, x_95); +lean::cnstr_set(x_100, 5, x_99); +lean::cnstr_set(x_100, 6, x_97); +x_101 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_101, 0, x_100); +lean::cnstr_set(x_101, 1, x_89); +if (lean::is_scalar(x_88)) { + x_102 = lean::alloc_cnstr(0, 6, 0); } else { - x_98 = x_84; + x_102 = x_88; } -lean::cnstr_set(x_98, 0, x_80); -lean::cnstr_set(x_98, 1, x_81); -lean::cnstr_set(x_98, 2, x_82); -lean::cnstr_set(x_98, 3, x_83); -lean::cnstr_set(x_98, 4, x_97); -x_99 = lean::box(0); -x_100 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_100, 0, x_99); -lean::cnstr_set(x_100, 1, x_98); -return x_100; +lean::cnstr_set(x_102, 0, x_83); +lean::cnstr_set(x_102, 1, x_84); +lean::cnstr_set(x_102, 2, x_85); +lean::cnstr_set(x_102, 3, x_86); +lean::cnstr_set(x_102, 4, x_87); +lean::cnstr_set(x_102, 5, x_101); +x_103 = lean::box(0); +x_104 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_104, 0, x_103); +lean::cnstr_set(x_104, 1, x_102); +return x_104; } } } @@ -5710,7 +5817,7 @@ x_14 = lean::string_append(x_13, x_12); lean::dec(x_12); x_15 = l_Lean_Elab_addUniverse___closed__2; x_16 = lean::string_append(x_14, x_15); -x_17 = l_Lean_logError(x_1, x_16, x_2, x_5); +x_17 = l_Lean_Elab_logError___rarg(x_1, x_16, x_2, x_5); return x_17; } } @@ -5744,7 +5851,7 @@ x_27 = lean::string_append(x_26, x_25); lean::dec(x_25); x_28 = l_Lean_Elab_addUniverse___closed__2; x_29 = lean::string_append(x_27, x_28); -x_30 = l_Lean_logError(x_1, x_29, x_2, x_21); +x_30 = l_Lean_Elab_logError___rarg(x_1, x_29, x_2, x_21); return x_30; } } @@ -6034,7 +6141,7 @@ obj* l_Lean_Elab_elabInitQuot___rarg(obj* x_1, obj* x_2) { _start: { obj* x_3; -x_3 = l_Lean_getEnv___rarg(x_2); +x_3 = l_Lean_Elab_getEnv___rarg(x_2); if (lean::obj_tag(x_3) == 0) { uint8 x_4; @@ -6055,7 +6162,7 @@ lean::inc(x_9); lean::dec(x_8); x_10 = lean::alloc_cnstr(2, 1, 0); lean::cnstr_set(x_10, 0, x_9); -x_11 = l_Lean_logElabException(x_10, x_1, x_3); +x_11 = l_Lean_Elab_logElabException(x_10, x_1, x_3); return x_11; } else @@ -6064,7 +6171,7 @@ obj* x_12; obj* x_13; x_12 = lean::cnstr_get(x_8, 0); lean::inc(x_12); lean::dec(x_8); -x_13 = l_Lean_setEnv(x_12, x_1, x_3); +x_13 = l_Lean_Elab_setEnv(x_12, x_1, x_3); return x_13; } } @@ -6090,7 +6197,7 @@ lean::inc(x_20); lean::dec(x_19); x_21 = lean::alloc_cnstr(2, 1, 0); lean::cnstr_set(x_21, 0, x_20); -x_22 = l_Lean_logElabException(x_21, x_1, x_17); +x_22 = l_Lean_Elab_logElabException(x_21, x_1, x_17); return x_22; } else @@ -6099,7 +6206,7 @@ obj* x_23; obj* x_24; x_23 = lean::cnstr_get(x_19, 0); lean::inc(x_23); lean::dec(x_19); -x_24 = l_Lean_setEnv(x_23, x_1, x_17); +x_24 = l_Lean_Elab_setEnv(x_23, x_1, x_17); return x_24; } } @@ -6322,7 +6429,7 @@ x_11 = lean::cnstr_get(x_9, 0); x_12 = lean::box(0); lean::cnstr_set(x_9, 0, x_12); x_13 = lean::box(0); -x_14 = l_Lean_getPosition(x_13, x_2, x_9); +x_14 = l_Lean_Elab_getPosition(x_13, x_2, x_9); if (lean::obj_tag(x_14) == 0) { uint8 x_15; @@ -6523,7 +6630,7 @@ x_76 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_76, 0, x_75); lean::cnstr_set(x_76, 1, x_74); x_77 = lean::box(0); -x_78 = l_Lean_getPosition(x_77, x_2, x_76); +x_78 = l_Lean_Elab_getPosition(x_77, x_2, x_76); if (lean::obj_tag(x_78) == 0) { obj* x_79; obj* x_80; obj* x_81; obj* x_82; obj* x_83; obj* x_84; obj* x_85; obj* x_86; obj* x_87; obj* x_88; obj* x_89; obj* x_90; obj* x_91; obj* x_92; obj* x_93; obj* x_94; obj* x_95; obj* x_96; obj* x_97; obj* x_98; obj* x_99; @@ -6728,163 +6835,164 @@ return x_5; obj* l_Lean_Elab_elabPreTerm(obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; +obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; x_4 = lean::cnstr_get(x_1, 1); x_5 = lean::box(0); x_6 = lean::mk_nat_obj(1u); x_7 = lean::array_get(x_5, x_4, x_6); +x_8 = x_7; lean::inc(x_2); -x_8 = l_Lean_Elab_toPreTerm(x_7, x_2, x_3); -if (lean::obj_tag(x_8) == 0) +x_9 = l_Lean_Elab_toPreTerm(x_8, x_2, x_3); +if (lean::obj_tag(x_9) == 0) { -uint8 x_9; -x_9 = !lean::is_exclusive(x_8); -if (x_9 == 0) +uint8 x_10; +x_10 = !lean::is_exclusive(x_9); +if (x_10 == 0) { -obj* x_10; obj* x_11; obj* x_12; obj* x_13; obj* x_14; -x_10 = lean::cnstr_get(x_8, 0); -x_11 = lean::box(0); -lean::cnstr_set(x_8, 0, x_11); -x_12 = lean_expr_dbg_to_string(x_10); -lean::dec(x_10); -x_13 = lean::alloc_closure(reinterpret_cast(l_IO_println___at_HasRepr_HasEval___spec__1___boxed), 2, 1); -lean::closure_set(x_13, 0, x_12); -x_14 = l_Lean_Elab_runIOUnsafe___rarg(x_13, x_2, x_8); +obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; +x_11 = lean::cnstr_get(x_9, 0); +x_12 = lean::box(0); +lean::cnstr_set(x_9, 0, x_12); +x_13 = lean_expr_dbg_to_string(x_11); +lean::dec(x_11); +x_14 = lean::alloc_closure(reinterpret_cast(l_IO_println___at_HasRepr_HasEval___spec__1___boxed), 2, 1); +lean::closure_set(x_14, 0, x_13); +x_15 = l_Lean_Elab_runIOUnsafe___rarg(x_14, x_2, x_9); lean::dec(x_2); -if (lean::obj_tag(x_14) == 0) +if (lean::obj_tag(x_15) == 0) { -uint8 x_15; -x_15 = !lean::is_exclusive(x_14); -if (x_15 == 0) +uint8 x_16; +x_16 = !lean::is_exclusive(x_15); +if (x_16 == 0) { -obj* x_16; -x_16 = lean::cnstr_get(x_14, 0); -lean::dec(x_16); -lean::cnstr_set(x_14, 0, x_11); -return x_14; +obj* x_17; +x_17 = lean::cnstr_get(x_15, 0); +lean::dec(x_17); +lean::cnstr_set(x_15, 0, x_12); +return x_15; } else { -obj* x_17; obj* x_18; -x_17 = lean::cnstr_get(x_14, 1); -lean::inc(x_17); -lean::dec(x_14); -x_18 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_18, 0, x_11); -lean::cnstr_set(x_18, 1, x_17); -return x_18; +obj* x_18; obj* x_19; +x_18 = lean::cnstr_get(x_15, 1); +lean::inc(x_18); +lean::dec(x_15); +x_19 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_19, 0, x_12); +lean::cnstr_set(x_19, 1, x_18); +return x_19; } } else { -uint8 x_19; -x_19 = !lean::is_exclusive(x_14); -if (x_19 == 0) +uint8 x_20; +x_20 = !lean::is_exclusive(x_15); +if (x_20 == 0) { -return x_14; +return x_15; } else { -obj* x_20; obj* x_21; obj* x_22; -x_20 = lean::cnstr_get(x_14, 0); -x_21 = lean::cnstr_get(x_14, 1); +obj* x_21; obj* x_22; obj* x_23; +x_21 = lean::cnstr_get(x_15, 0); +x_22 = lean::cnstr_get(x_15, 1); +lean::inc(x_22); lean::inc(x_21); -lean::inc(x_20); -lean::dec(x_14); -x_22 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_22, 0, x_20); -lean::cnstr_set(x_22, 1, x_21); -return x_22; +lean::dec(x_15); +x_23 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_23, 0, x_21); +lean::cnstr_set(x_23, 1, x_22); +return x_23; } } } else { -obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; -x_23 = lean::cnstr_get(x_8, 0); -x_24 = lean::cnstr_get(x_8, 1); +obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; +x_24 = lean::cnstr_get(x_9, 0); +x_25 = lean::cnstr_get(x_9, 1); +lean::inc(x_25); lean::inc(x_24); -lean::inc(x_23); -lean::dec(x_8); -x_25 = lean::box(0); -x_26 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_26, 0, x_25); -lean::cnstr_set(x_26, 1, x_24); -x_27 = lean_expr_dbg_to_string(x_23); -lean::dec(x_23); -x_28 = lean::alloc_closure(reinterpret_cast(l_IO_println___at_HasRepr_HasEval___spec__1___boxed), 2, 1); -lean::closure_set(x_28, 0, x_27); -x_29 = l_Lean_Elab_runIOUnsafe___rarg(x_28, x_2, x_26); +lean::dec(x_9); +x_26 = lean::box(0); +x_27 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_27, 0, x_26); +lean::cnstr_set(x_27, 1, x_25); +x_28 = lean_expr_dbg_to_string(x_24); +lean::dec(x_24); +x_29 = lean::alloc_closure(reinterpret_cast(l_IO_println___at_HasRepr_HasEval___spec__1___boxed), 2, 1); +lean::closure_set(x_29, 0, x_28); +x_30 = l_Lean_Elab_runIOUnsafe___rarg(x_29, x_2, x_27); lean::dec(x_2); -if (lean::obj_tag(x_29) == 0) +if (lean::obj_tag(x_30) == 0) { -obj* x_30; obj* x_31; obj* x_32; -x_30 = lean::cnstr_get(x_29, 1); -lean::inc(x_30); -if (lean::is_exclusive(x_29)) { - lean::cnstr_release(x_29, 0); - lean::cnstr_release(x_29, 1); - x_31 = x_29; +obj* x_31; obj* x_32; obj* x_33; +x_31 = lean::cnstr_get(x_30, 1); +lean::inc(x_31); +if (lean::is_exclusive(x_30)) { + lean::cnstr_release(x_30, 0); + lean::cnstr_release(x_30, 1); + x_32 = x_30; } else { - lean::dec_ref(x_29); - x_31 = lean::box(0); + lean::dec_ref(x_30); + x_32 = lean::box(0); } -if (lean::is_scalar(x_31)) { - x_32 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_32)) { + x_33 = lean::alloc_cnstr(0, 2, 0); } else { - x_32 = x_31; + x_33 = x_32; } -lean::cnstr_set(x_32, 0, x_25); -lean::cnstr_set(x_32, 1, x_30); -return x_32; +lean::cnstr_set(x_33, 0, x_26); +lean::cnstr_set(x_33, 1, x_31); +return x_33; } else { -obj* x_33; obj* x_34; obj* x_35; obj* x_36; -x_33 = lean::cnstr_get(x_29, 0); -lean::inc(x_33); -x_34 = lean::cnstr_get(x_29, 1); +obj* x_34; obj* x_35; obj* x_36; obj* x_37; +x_34 = lean::cnstr_get(x_30, 0); lean::inc(x_34); -if (lean::is_exclusive(x_29)) { - lean::cnstr_release(x_29, 0); - lean::cnstr_release(x_29, 1); - x_35 = x_29; +x_35 = lean::cnstr_get(x_30, 1); +lean::inc(x_35); +if (lean::is_exclusive(x_30)) { + lean::cnstr_release(x_30, 0); + lean::cnstr_release(x_30, 1); + x_36 = x_30; } else { - lean::dec_ref(x_29); - x_35 = lean::box(0); + lean::dec_ref(x_30); + x_36 = lean::box(0); } -if (lean::is_scalar(x_35)) { - x_36 = lean::alloc_cnstr(1, 2, 0); +if (lean::is_scalar(x_36)) { + x_37 = lean::alloc_cnstr(1, 2, 0); } else { - x_36 = x_35; + x_37 = x_36; } -lean::cnstr_set(x_36, 0, x_33); -lean::cnstr_set(x_36, 1, x_34); -return x_36; +lean::cnstr_set(x_37, 0, x_34); +lean::cnstr_set(x_37, 1, x_35); +return x_37; } } } else { -uint8 x_37; +uint8 x_38; lean::dec(x_2); -x_37 = !lean::is_exclusive(x_8); -if (x_37 == 0) +x_38 = !lean::is_exclusive(x_9); +if (x_38 == 0) { -return x_8; +return x_9; } else { -obj* x_38; obj* x_39; obj* x_40; -x_38 = lean::cnstr_get(x_8, 0); -x_39 = lean::cnstr_get(x_8, 1); +obj* x_39; obj* x_40; obj* x_41; +x_39 = lean::cnstr_get(x_9, 0); +x_40 = lean::cnstr_get(x_9, 1); +lean::inc(x_40); lean::inc(x_39); -lean::inc(x_38); -lean::dec(x_8); -x_40 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_40, 0, x_38); -lean::cnstr_set(x_40, 1, x_39); -return x_40; +lean::dec(x_9); +x_41 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_41, 0, x_39); +lean::cnstr_set(x_41, 1, x_40); +return x_41; } } } diff --git a/src/stage0/init/lean/elaborator/default.cpp b/src/stage0/init/lean/elaborator/default.cpp index 740e2dd604..10d9b0d003 100644 --- a/src/stage0/init/lean/elaborator/default.cpp +++ b/src/stage0/init/lean/elaborator/default.cpp @@ -1,6 +1,6 @@ // Lean compiler output // Module: init.lean.elaborator.default -// Imports: init.lean.elaborator.basic init.lean.elaborator.elabstrategyattrs init.lean.elaborator.command init.lean.elaborator.preterm +// Imports: init.lean.elaborator.basic init.lean.elaborator.elabstrategyattrs init.lean.elaborator.command init.lean.elaborator.preterm init.lean.elaborator.term #include "runtime/object.h" #include "runtime/apply.h" typedef lean::object obj; typedef lean::usize usize; @@ -18,6 +18,7 @@ obj* initialize_init_lean_elaborator_basic(obj*); obj* initialize_init_lean_elaborator_elabstrategyattrs(obj*); obj* initialize_init_lean_elaborator_command(obj*); obj* initialize_init_lean_elaborator_preterm(obj*); +obj* initialize_init_lean_elaborator_term(obj*); static bool _G_initialized = false; obj* initialize_init_lean_elaborator_default(obj* w) { if (_G_initialized) return w; @@ -31,5 +32,7 @@ w = initialize_init_lean_elaborator_command(w); if (io_result_is_error(w)) return w; w = initialize_init_lean_elaborator_preterm(w); if (io_result_is_error(w)) return w; +w = initialize_init_lean_elaborator_term(w); +if (io_result_is_error(w)) return w; return w; } diff --git a/src/stage0/init/lean/elaborator/preterm.cpp b/src/stage0/init/lean/elaborator/preterm.cpp index 998a6aa423..edf128c559 100644 --- a/src/stage0/init/lean/elaborator/preterm.cpp +++ b/src/stage0/init/lean/elaborator/preterm.cpp @@ -26,6 +26,7 @@ extern "C" uint8 lean_name_dec_eq(obj*, obj*); extern "C" obj* lean_expr_mk_sort(obj*); obj* l_Lean_Syntax_getKind___rarg(obj*); obj* l_HashMapImp_find___at_Lean_Elab_toPreTerm___spec__1(obj*, obj*); +obj* l_Lean_Format_pretty(obj*, obj*); obj* l___regBuiltinTermElab_Lean_Elab_convertHole(obj*); obj* l_Lean_Elab_runIOUnsafe___rarg(obj*, obj*, obj*); obj* l_Array_mkArray(obj*, obj*, obj*); @@ -49,12 +50,12 @@ obj* l_Lean_Elab_convertProp___rarg(obj*); obj* l___regBuiltinTermElab_Lean_Elab_convertSort___closed__3; obj* l_Lean_registerAttribute(obj*, obj*); obj* l___private_init_lean_elaborator_preterm_2__setPos___closed__1; +obj* l_Lean_Elab_logError___rarg(obj*, obj*, obj*, obj*); obj* l___regBuiltinTermElab_Lean_Elab_convertSortApp___closed__2; extern "C" obj* level_mk_mvar(obj*); obj* l___regBuiltinTermElab_Lean_Elab_convertSortApp___closed__1; obj* l_Lean_registerBuiltinPreTermElabAttr___closed__7; extern "C" obj* lean_expr_mk_app(obj*, obj*); -obj* l_Lean_logError(obj*, obj*, obj*, obj*); obj* l_Lean_Elab_convertSort___boxed(obj*, obj*); obj* l___regBuiltinTermElab_Lean_Elab_convertType___closed__5; obj* l_Lean_KVMap_setNat(obj*, obj*, obj*); @@ -87,6 +88,7 @@ obj* l_Lean_declareBuiltinPreTermElab___closed__1; obj* l_mkHashMap___at_Lean_mkBuiltinPreTermElabTable___spec__1(obj*); obj* l_Lean_Elab_convertHole(obj*, obj*); extern obj* l_Lean_AttributeImpl_inhabited___closed__4; +obj* l_Lean_oldElaborateAux___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_registerTagAttribute___lambda__5___boxed(obj*, obj*, obj*, obj*, obj*); obj* l___private_init_lean_elaborator_preterm_1__dummy; obj* l_Lean_registerBuiltinPreTermElabAttr___closed__1; @@ -96,6 +98,7 @@ extern "C" obj* lean_expr_mk_const(obj*, obj*); obj* l_Lean_Elab_convertSort(obj*, obj*); extern "C" usize lean_name_hash_usize(obj*); obj* l_Lean_Elab_toPreTerm___closed__1; +extern "C" obj* lean_old_elaborate(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Syntax_getArg___rarg(obj*, obj*); obj* l_Array_miterateAux___main___at_Lean_Elab_toLevel___main___spec__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Elab_toLevel___main___closed__2; @@ -206,15 +209,19 @@ obj* l_Lean_Syntax_getPos___rarg(obj*); extern obj* l_Lean_Parser_Level_imax___elambda__1___closed__1; obj* l___regBuiltinTermElab_Lean_Elab_convertHole___closed__2; obj* l_Lean_Elab_convertProp(obj*, obj*); +obj* l_Lean_Elab_getScope___rarg(obj*); obj* l_AssocList_replace___main___at_Lean_addBuiltinPreTermElab___spec__7(obj*, obj*, obj*); obj* l_Lean_Elab_convertProp___boxed(obj*, obj*); obj* l_Lean_FileMap_toPosition(obj*, obj*); obj* l_Lean_declareBuiltinElab(obj*, obj*, obj*, obj*, obj*); +obj* l_Lean_Elab_logErrorAndThrow___rarg(obj*, obj*, obj*, obj*); obj* l_Lean_Elab_convertSorry(obj*, obj*); obj* l_Lean_Elab_convertSortApp___boxed(obj*, obj*, obj*); obj* l___regBuiltinTermElab_Lean_Elab_convertProp___closed__2; +obj* l_Lean_Elab_logMessage(obj*, obj*, obj*); obj* l_Lean_Elab_toLevel___main___closed__3; obj* l_Lean_Elab_toLevel___main___boxed(obj*, obj*, obj*); +obj* l_Lean_Elab_oldElaborate(obj*, obj*, obj*); obj* l___private_init_lean_elaborator_preterm_2__setPos___closed__3; namespace lean { obj* nat_mul(obj*, obj*); @@ -232,9 +239,17 @@ obj* l_Lean_registerBuiltinPreTermElabAttr___lambda__1___closed__5; obj* l___private_init_lean_elaborator_preterm_2__setPos___boxed(obj*, obj*, obj*, obj*); obj* l___regBuiltinTermElab_Lean_Elab_convertProp___closed__3; obj* l_Lean_declareBuiltinPreTermElab(obj*, obj*, obj*, obj*); -obj* l_Lean_logErrorAndThrow___rarg(obj*, obj*, obj*, obj*); obj* l_Lean_registerTagAttribute___lambda__6___boxed(obj*, obj*, obj*, obj*, obj*); +extern obj* l_String_splitAux___main___closed__1; obj* l_Lean_Elab_toPreTerm___closed__4; +obj* l_Lean_oldElaborateAux___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { +_start: +{ +obj* x_6; +x_6 = lean_old_elaborate(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} obj* l_mkHashMap___at_Lean_mkBuiltinPreTermElabTable___spec__1(obj* x_1) { _start: { @@ -1944,7 +1959,7 @@ x_56 = lean::string_append(x_55, x_54); lean::dec(x_54); x_57 = l_Char_HasRepr___closed__1; x_58 = lean::string_append(x_56, x_57); -x_59 = l_Lean_logError(x_1, x_58, x_2, x_47); +x_59 = l_Lean_Elab_logError___rarg(x_1, x_58, x_2, x_47); lean::dec(x_1); if (lean::obj_tag(x_59) == 0) { @@ -2033,7 +2048,7 @@ x_80 = lean::string_append(x_79, x_78); lean::dec(x_78); x_81 = l_Char_HasRepr___closed__1; x_82 = lean::string_append(x_80, x_81); -x_83 = l_Lean_logError(x_1, x_82, x_2, x_75); +x_83 = l_Lean_Elab_logError___rarg(x_1, x_82, x_2, x_75); lean::dec(x_1); if (lean::obj_tag(x_83) == 0) { @@ -2678,7 +2693,7 @@ x_16 = lean::string_append(x_15, x_14); lean::dec(x_14); x_17 = l_Char_HasRepr___closed__1; x_18 = lean::string_append(x_16, x_17); -x_19 = l_Lean_logErrorAndThrow___rarg(x_1, x_18, x_2, x_9); +x_19 = l_Lean_Elab_logErrorAndThrow___rarg(x_1, x_18, x_2, x_9); lean::dec(x_2); lean::dec(x_1); return x_19; @@ -2773,7 +2788,7 @@ x_40 = lean::string_append(x_39, x_38); lean::dec(x_38); x_41 = l_Char_HasRepr___closed__1; x_42 = lean::string_append(x_40, x_41); -x_43 = l_Lean_logErrorAndThrow___rarg(x_1, x_42, x_2, x_35); +x_43 = l_Lean_Elab_logErrorAndThrow___rarg(x_1, x_42, x_2, x_35); lean::dec(x_2); lean::dec(x_1); return x_43; @@ -2916,7 +2931,7 @@ x_72 = lean::string_append(x_71, x_70); lean::dec(x_70); x_73 = l_Char_HasRepr___closed__1; x_74 = lean::string_append(x_72, x_73); -x_75 = l_Lean_logErrorAndThrow___rarg(x_1, x_74, x_2, x_67); +x_75 = l_Lean_Elab_logErrorAndThrow___rarg(x_1, x_74, x_2, x_67); lean::dec(x_2); lean::dec(x_1); return x_75; @@ -4072,6 +4087,811 @@ x_5 = l_Lean_addBuiltinPreTermElab(x_2, x_3, x_4, x_1); return x_5; } } +obj* l_Lean_Elab_oldElaborate(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +lean::inc(x_2); +lean::inc(x_1); +x_4 = l_Lean_Elab_toPreTerm(x_1, x_2, x_3); +if (lean::obj_tag(x_4) == 0) +{ +uint8 x_5; +x_5 = !lean::is_exclusive(x_4); +if (x_5 == 0) +{ +obj* x_6; obj* x_7; obj* x_8; +x_6 = lean::cnstr_get(x_4, 0); +x_7 = lean::box(0); +lean::cnstr_set(x_4, 0, x_7); +x_8 = l_Lean_Elab_getScope___rarg(x_4); +if (lean::obj_tag(x_8) == 0) +{ +uint8 x_9; +x_9 = !lean::is_exclusive(x_8); +if (x_9 == 0) +{ +obj* x_10; obj* x_11; uint8 x_12; +x_10 = lean::cnstr_get(x_8, 0); +x_11 = lean::cnstr_get(x_8, 1); +lean::inc(x_11); +lean::cnstr_set(x_8, 0, x_7); +x_12 = !lean::is_exclusive(x_11); +if (x_12 == 0) +{ +obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; obj* x_21; +x_13 = lean::cnstr_get(x_11, 0); +x_14 = lean::cnstr_get(x_11, 1); +x_15 = lean::cnstr_get(x_11, 2); +x_16 = lean::cnstr_get(x_11, 3); +x_17 = lean::cnstr_get(x_11, 4); +x_18 = lean::cnstr_get(x_11, 5); +x_19 = lean::cnstr_get(x_10, 2); +lean::inc(x_19); +x_20 = lean::cnstr_get(x_10, 6); +lean::inc(x_20); +lean::dec(x_10); +lean::inc(x_19); +x_21 = lean_old_elaborate(x_13, x_19, x_17, x_20, x_6); +if (lean::obj_tag(x_21) == 0) +{ +obj* x_22; obj* x_23; +lean::free_heap_obj(x_11); +lean::dec(x_18); +lean::dec(x_16); +lean::dec(x_15); +lean::dec(x_14); +x_22 = lean::cnstr_get(x_21, 0); +lean::inc(x_22); +lean::dec(x_21); +x_23 = lean::cnstr_get(x_22, 0); +lean::inc(x_23); +if (lean::obj_tag(x_23) == 0) +{ +obj* x_24; obj* x_25; obj* x_26; +x_24 = lean::cnstr_get(x_22, 1); +lean::inc(x_24); +lean::dec(x_22); +x_25 = l_Lean_Format_pretty(x_24, x_19); +lean::dec(x_19); +x_26 = l_Lean_Elab_logErrorAndThrow___rarg(x_1, x_25, x_2, x_8); +lean::dec(x_2); +lean::dec(x_1); +return x_26; +} +else +{ +obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; uint8 x_32; obj* x_33; obj* x_34; obj* x_35; +lean::dec(x_1); +x_27 = lean::cnstr_get(x_22, 1); +lean::inc(x_27); +lean::dec(x_22); +x_28 = lean::cnstr_get(x_23, 0); +lean::inc(x_28); +lean::dec(x_23); +x_29 = lean::cnstr_get(x_2, 0); +lean::inc(x_29); +x_30 = lean::box(0); +x_31 = l_Lean_Format_pretty(x_27, x_19); +lean::dec(x_19); +x_32 = 2; +x_33 = l_String_splitAux___main___closed__1; +x_34 = lean::alloc_cnstr(0, 5, 1); +lean::cnstr_set(x_34, 0, x_29); +lean::cnstr_set(x_34, 1, x_28); +lean::cnstr_set(x_34, 2, x_30); +lean::cnstr_set(x_34, 3, x_33); +lean::cnstr_set(x_34, 4, x_31); +lean::cnstr_set_scalar(x_34, sizeof(void*)*5, x_32); +x_35 = l_Lean_Elab_logMessage(x_34, x_2, x_8); +lean::dec(x_2); +if (lean::obj_tag(x_35) == 0) +{ +uint8 x_36; +x_36 = !lean::is_exclusive(x_35); +if (x_36 == 0) +{ +obj* x_37; obj* x_38; +x_37 = lean::cnstr_get(x_35, 0); +lean::dec(x_37); +x_38 = lean::box(4); +lean::cnstr_set_tag(x_35, 1); +lean::cnstr_set(x_35, 0, x_38); +return x_35; +} +else +{ +obj* x_39; obj* x_40; obj* x_41; +x_39 = lean::cnstr_get(x_35, 1); +lean::inc(x_39); +lean::dec(x_35); +x_40 = lean::box(4); +x_41 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_41, 0, x_40); +lean::cnstr_set(x_41, 1, x_39); +return x_41; +} +} +else +{ +uint8 x_42; +x_42 = !lean::is_exclusive(x_35); +if (x_42 == 0) +{ +return x_35; +} +else +{ +obj* x_43; obj* x_44; obj* x_45; +x_43 = lean::cnstr_get(x_35, 0); +x_44 = lean::cnstr_get(x_35, 1); +lean::inc(x_44); +lean::inc(x_43); +lean::dec(x_35); +x_45 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_45, 0, x_43); +lean::cnstr_set(x_45, 1, x_44); +return x_45; +} +} +} +} +else +{ +obj* x_46; obj* x_47; obj* x_48; obj* x_49; obj* x_50; obj* x_51; +lean::dec(x_19); +lean::dec(x_8); +lean::dec(x_2); +lean::dec(x_1); +x_46 = lean::cnstr_get(x_21, 0); +lean::inc(x_46); +lean::dec(x_21); +x_47 = lean::cnstr_get(x_46, 1); +lean::inc(x_47); +x_48 = lean::cnstr_get(x_46, 0); +lean::inc(x_48); +lean::dec(x_46); +x_49 = lean::cnstr_get(x_47, 0); +lean::inc(x_49); +x_50 = lean::cnstr_get(x_47, 1); +lean::inc(x_50); +lean::dec(x_47); +lean::cnstr_set(x_11, 4, x_49); +lean::cnstr_set(x_11, 0, x_48); +x_51 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_51, 0, x_50); +lean::cnstr_set(x_51, 1, x_11); +return x_51; +} +} +else +{ +obj* x_52; obj* x_53; obj* x_54; obj* x_55; obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; +x_52 = lean::cnstr_get(x_11, 0); +x_53 = lean::cnstr_get(x_11, 1); +x_54 = lean::cnstr_get(x_11, 2); +x_55 = lean::cnstr_get(x_11, 3); +x_56 = lean::cnstr_get(x_11, 4); +x_57 = lean::cnstr_get(x_11, 5); +lean::inc(x_57); +lean::inc(x_56); +lean::inc(x_55); +lean::inc(x_54); +lean::inc(x_53); +lean::inc(x_52); +lean::dec(x_11); +x_58 = lean::cnstr_get(x_10, 2); +lean::inc(x_58); +x_59 = lean::cnstr_get(x_10, 6); +lean::inc(x_59); +lean::dec(x_10); +lean::inc(x_58); +x_60 = lean_old_elaborate(x_52, x_58, x_56, x_59, x_6); +if (lean::obj_tag(x_60) == 0) +{ +obj* x_61; obj* x_62; +lean::dec(x_57); +lean::dec(x_55); +lean::dec(x_54); +lean::dec(x_53); +x_61 = lean::cnstr_get(x_60, 0); +lean::inc(x_61); +lean::dec(x_60); +x_62 = lean::cnstr_get(x_61, 0); +lean::inc(x_62); +if (lean::obj_tag(x_62) == 0) +{ +obj* x_63; obj* x_64; obj* x_65; +x_63 = lean::cnstr_get(x_61, 1); +lean::inc(x_63); +lean::dec(x_61); +x_64 = l_Lean_Format_pretty(x_63, x_58); +lean::dec(x_58); +x_65 = l_Lean_Elab_logErrorAndThrow___rarg(x_1, x_64, x_2, x_8); +lean::dec(x_2); +lean::dec(x_1); +return x_65; +} +else +{ +obj* x_66; obj* x_67; obj* x_68; obj* x_69; obj* x_70; uint8 x_71; obj* x_72; obj* x_73; obj* x_74; +lean::dec(x_1); +x_66 = lean::cnstr_get(x_61, 1); +lean::inc(x_66); +lean::dec(x_61); +x_67 = lean::cnstr_get(x_62, 0); +lean::inc(x_67); +lean::dec(x_62); +x_68 = lean::cnstr_get(x_2, 0); +lean::inc(x_68); +x_69 = lean::box(0); +x_70 = l_Lean_Format_pretty(x_66, x_58); +lean::dec(x_58); +x_71 = 2; +x_72 = l_String_splitAux___main___closed__1; +x_73 = lean::alloc_cnstr(0, 5, 1); +lean::cnstr_set(x_73, 0, x_68); +lean::cnstr_set(x_73, 1, x_67); +lean::cnstr_set(x_73, 2, x_69); +lean::cnstr_set(x_73, 3, x_72); +lean::cnstr_set(x_73, 4, x_70); +lean::cnstr_set_scalar(x_73, sizeof(void*)*5, x_71); +x_74 = l_Lean_Elab_logMessage(x_73, x_2, x_8); +lean::dec(x_2); +if (lean::obj_tag(x_74) == 0) +{ +obj* x_75; obj* x_76; obj* x_77; obj* x_78; +x_75 = lean::cnstr_get(x_74, 1); +lean::inc(x_75); +if (lean::is_exclusive(x_74)) { + lean::cnstr_release(x_74, 0); + lean::cnstr_release(x_74, 1); + x_76 = x_74; +} else { + lean::dec_ref(x_74); + x_76 = lean::box(0); +} +x_77 = lean::box(4); +if (lean::is_scalar(x_76)) { + x_78 = lean::alloc_cnstr(1, 2, 0); +} else { + x_78 = x_76; + lean::cnstr_set_tag(x_78, 1); +} +lean::cnstr_set(x_78, 0, x_77); +lean::cnstr_set(x_78, 1, x_75); +return x_78; +} +else +{ +obj* x_79; obj* x_80; obj* x_81; obj* x_82; +x_79 = lean::cnstr_get(x_74, 0); +lean::inc(x_79); +x_80 = lean::cnstr_get(x_74, 1); +lean::inc(x_80); +if (lean::is_exclusive(x_74)) { + lean::cnstr_release(x_74, 0); + lean::cnstr_release(x_74, 1); + x_81 = x_74; +} else { + lean::dec_ref(x_74); + x_81 = lean::box(0); +} +if (lean::is_scalar(x_81)) { + x_82 = lean::alloc_cnstr(1, 2, 0); +} else { + x_82 = x_81; +} +lean::cnstr_set(x_82, 0, x_79); +lean::cnstr_set(x_82, 1, x_80); +return x_82; +} +} +} +else +{ +obj* x_83; obj* x_84; obj* x_85; obj* x_86; obj* x_87; obj* x_88; obj* x_89; +lean::dec(x_58); +lean::dec(x_8); +lean::dec(x_2); +lean::dec(x_1); +x_83 = lean::cnstr_get(x_60, 0); +lean::inc(x_83); +lean::dec(x_60); +x_84 = lean::cnstr_get(x_83, 1); +lean::inc(x_84); +x_85 = lean::cnstr_get(x_83, 0); +lean::inc(x_85); +lean::dec(x_83); +x_86 = lean::cnstr_get(x_84, 0); +lean::inc(x_86); +x_87 = lean::cnstr_get(x_84, 1); +lean::inc(x_87); +lean::dec(x_84); +x_88 = lean::alloc_cnstr(0, 6, 0); +lean::cnstr_set(x_88, 0, x_85); +lean::cnstr_set(x_88, 1, x_53); +lean::cnstr_set(x_88, 2, x_54); +lean::cnstr_set(x_88, 3, x_55); +lean::cnstr_set(x_88, 4, x_86); +lean::cnstr_set(x_88, 5, x_57); +x_89 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_89, 0, x_87); +lean::cnstr_set(x_89, 1, x_88); +return x_89; +} +} +} +else +{ +obj* x_90; obj* x_91; obj* x_92; obj* x_93; obj* x_94; obj* x_95; obj* x_96; obj* x_97; obj* x_98; obj* x_99; obj* x_100; obj* x_101; obj* x_102; +x_90 = lean::cnstr_get(x_8, 0); +x_91 = lean::cnstr_get(x_8, 1); +lean::inc(x_91); +lean::inc(x_90); +lean::dec(x_8); +lean::inc(x_91); +x_92 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_92, 0, x_7); +lean::cnstr_set(x_92, 1, x_91); +x_93 = lean::cnstr_get(x_91, 0); +lean::inc(x_93); +x_94 = lean::cnstr_get(x_91, 1); +lean::inc(x_94); +x_95 = lean::cnstr_get(x_91, 2); +lean::inc(x_95); +x_96 = lean::cnstr_get(x_91, 3); +lean::inc(x_96); +x_97 = lean::cnstr_get(x_91, 4); +lean::inc(x_97); +x_98 = lean::cnstr_get(x_91, 5); +lean::inc(x_98); +if (lean::is_exclusive(x_91)) { + lean::cnstr_release(x_91, 0); + lean::cnstr_release(x_91, 1); + lean::cnstr_release(x_91, 2); + lean::cnstr_release(x_91, 3); + lean::cnstr_release(x_91, 4); + lean::cnstr_release(x_91, 5); + x_99 = x_91; +} else { + lean::dec_ref(x_91); + x_99 = lean::box(0); +} +x_100 = lean::cnstr_get(x_90, 2); +lean::inc(x_100); +x_101 = lean::cnstr_get(x_90, 6); +lean::inc(x_101); +lean::dec(x_90); +lean::inc(x_100); +x_102 = lean_old_elaborate(x_93, x_100, x_97, x_101, x_6); +if (lean::obj_tag(x_102) == 0) +{ +obj* x_103; obj* x_104; +lean::dec(x_99); +lean::dec(x_98); +lean::dec(x_96); +lean::dec(x_95); +lean::dec(x_94); +x_103 = lean::cnstr_get(x_102, 0); +lean::inc(x_103); +lean::dec(x_102); +x_104 = lean::cnstr_get(x_103, 0); +lean::inc(x_104); +if (lean::obj_tag(x_104) == 0) +{ +obj* x_105; obj* x_106; obj* x_107; +x_105 = lean::cnstr_get(x_103, 1); +lean::inc(x_105); +lean::dec(x_103); +x_106 = l_Lean_Format_pretty(x_105, x_100); +lean::dec(x_100); +x_107 = l_Lean_Elab_logErrorAndThrow___rarg(x_1, x_106, x_2, x_92); +lean::dec(x_2); +lean::dec(x_1); +return x_107; +} +else +{ +obj* x_108; obj* x_109; obj* x_110; obj* x_111; obj* x_112; uint8 x_113; obj* x_114; obj* x_115; obj* x_116; +lean::dec(x_1); +x_108 = lean::cnstr_get(x_103, 1); +lean::inc(x_108); +lean::dec(x_103); +x_109 = lean::cnstr_get(x_104, 0); +lean::inc(x_109); +lean::dec(x_104); +x_110 = lean::cnstr_get(x_2, 0); +lean::inc(x_110); +x_111 = lean::box(0); +x_112 = l_Lean_Format_pretty(x_108, x_100); +lean::dec(x_100); +x_113 = 2; +x_114 = l_String_splitAux___main___closed__1; +x_115 = lean::alloc_cnstr(0, 5, 1); +lean::cnstr_set(x_115, 0, x_110); +lean::cnstr_set(x_115, 1, x_109); +lean::cnstr_set(x_115, 2, x_111); +lean::cnstr_set(x_115, 3, x_114); +lean::cnstr_set(x_115, 4, x_112); +lean::cnstr_set_scalar(x_115, sizeof(void*)*5, x_113); +x_116 = l_Lean_Elab_logMessage(x_115, x_2, x_92); +lean::dec(x_2); +if (lean::obj_tag(x_116) == 0) +{ +obj* x_117; obj* x_118; obj* x_119; obj* x_120; +x_117 = lean::cnstr_get(x_116, 1); +lean::inc(x_117); +if (lean::is_exclusive(x_116)) { + lean::cnstr_release(x_116, 0); + lean::cnstr_release(x_116, 1); + x_118 = x_116; +} else { + lean::dec_ref(x_116); + x_118 = lean::box(0); +} +x_119 = lean::box(4); +if (lean::is_scalar(x_118)) { + x_120 = lean::alloc_cnstr(1, 2, 0); +} else { + x_120 = x_118; + lean::cnstr_set_tag(x_120, 1); +} +lean::cnstr_set(x_120, 0, x_119); +lean::cnstr_set(x_120, 1, x_117); +return x_120; +} +else +{ +obj* x_121; obj* x_122; obj* x_123; obj* x_124; +x_121 = lean::cnstr_get(x_116, 0); +lean::inc(x_121); +x_122 = lean::cnstr_get(x_116, 1); +lean::inc(x_122); +if (lean::is_exclusive(x_116)) { + lean::cnstr_release(x_116, 0); + lean::cnstr_release(x_116, 1); + x_123 = x_116; +} else { + lean::dec_ref(x_116); + x_123 = lean::box(0); +} +if (lean::is_scalar(x_123)) { + x_124 = lean::alloc_cnstr(1, 2, 0); +} else { + x_124 = x_123; +} +lean::cnstr_set(x_124, 0, x_121); +lean::cnstr_set(x_124, 1, x_122); +return x_124; +} +} +} +else +{ +obj* x_125; obj* x_126; obj* x_127; obj* x_128; obj* x_129; obj* x_130; obj* x_131; +lean::dec(x_100); +lean::dec(x_92); +lean::dec(x_2); +lean::dec(x_1); +x_125 = lean::cnstr_get(x_102, 0); +lean::inc(x_125); +lean::dec(x_102); +x_126 = lean::cnstr_get(x_125, 1); +lean::inc(x_126); +x_127 = lean::cnstr_get(x_125, 0); +lean::inc(x_127); +lean::dec(x_125); +x_128 = lean::cnstr_get(x_126, 0); +lean::inc(x_128); +x_129 = lean::cnstr_get(x_126, 1); +lean::inc(x_129); +lean::dec(x_126); +if (lean::is_scalar(x_99)) { + x_130 = lean::alloc_cnstr(0, 6, 0); +} else { + x_130 = x_99; +} +lean::cnstr_set(x_130, 0, x_127); +lean::cnstr_set(x_130, 1, x_94); +lean::cnstr_set(x_130, 2, x_95); +lean::cnstr_set(x_130, 3, x_96); +lean::cnstr_set(x_130, 4, x_128); +lean::cnstr_set(x_130, 5, x_98); +x_131 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_131, 0, x_129); +lean::cnstr_set(x_131, 1, x_130); +return x_131; +} +} +} +else +{ +uint8 x_132; +lean::dec(x_6); +lean::dec(x_2); +lean::dec(x_1); +x_132 = !lean::is_exclusive(x_8); +if (x_132 == 0) +{ +return x_8; +} +else +{ +obj* x_133; obj* x_134; obj* x_135; +x_133 = lean::cnstr_get(x_8, 0); +x_134 = lean::cnstr_get(x_8, 1); +lean::inc(x_134); +lean::inc(x_133); +lean::dec(x_8); +x_135 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_135, 0, x_133); +lean::cnstr_set(x_135, 1, x_134); +return x_135; +} +} +} +else +{ +obj* x_136; obj* x_137; obj* x_138; obj* x_139; obj* x_140; +x_136 = lean::cnstr_get(x_4, 0); +x_137 = lean::cnstr_get(x_4, 1); +lean::inc(x_137); +lean::inc(x_136); +lean::dec(x_4); +x_138 = lean::box(0); +x_139 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_139, 0, x_138); +lean::cnstr_set(x_139, 1, x_137); +x_140 = l_Lean_Elab_getScope___rarg(x_139); +if (lean::obj_tag(x_140) == 0) +{ +obj* x_141; obj* x_142; obj* x_143; obj* x_144; obj* x_145; obj* x_146; obj* x_147; obj* x_148; obj* x_149; obj* x_150; obj* x_151; obj* x_152; obj* x_153; obj* x_154; +x_141 = lean::cnstr_get(x_140, 0); +lean::inc(x_141); +x_142 = lean::cnstr_get(x_140, 1); +lean::inc(x_142); +if (lean::is_exclusive(x_140)) { + lean::cnstr_release(x_140, 0); + lean::cnstr_release(x_140, 1); + x_143 = x_140; +} else { + lean::dec_ref(x_140); + x_143 = lean::box(0); +} +lean::inc(x_142); +if (lean::is_scalar(x_143)) { + x_144 = lean::alloc_cnstr(0, 2, 0); +} else { + x_144 = x_143; +} +lean::cnstr_set(x_144, 0, x_138); +lean::cnstr_set(x_144, 1, x_142); +x_145 = lean::cnstr_get(x_142, 0); +lean::inc(x_145); +x_146 = lean::cnstr_get(x_142, 1); +lean::inc(x_146); +x_147 = lean::cnstr_get(x_142, 2); +lean::inc(x_147); +x_148 = lean::cnstr_get(x_142, 3); +lean::inc(x_148); +x_149 = lean::cnstr_get(x_142, 4); +lean::inc(x_149); +x_150 = lean::cnstr_get(x_142, 5); +lean::inc(x_150); +if (lean::is_exclusive(x_142)) { + lean::cnstr_release(x_142, 0); + lean::cnstr_release(x_142, 1); + lean::cnstr_release(x_142, 2); + lean::cnstr_release(x_142, 3); + lean::cnstr_release(x_142, 4); + lean::cnstr_release(x_142, 5); + x_151 = x_142; +} else { + lean::dec_ref(x_142); + x_151 = lean::box(0); +} +x_152 = lean::cnstr_get(x_141, 2); +lean::inc(x_152); +x_153 = lean::cnstr_get(x_141, 6); +lean::inc(x_153); +lean::dec(x_141); +lean::inc(x_152); +x_154 = lean_old_elaborate(x_145, x_152, x_149, x_153, x_136); +if (lean::obj_tag(x_154) == 0) +{ +obj* x_155; obj* x_156; +lean::dec(x_151); +lean::dec(x_150); +lean::dec(x_148); +lean::dec(x_147); +lean::dec(x_146); +x_155 = lean::cnstr_get(x_154, 0); +lean::inc(x_155); +lean::dec(x_154); +x_156 = lean::cnstr_get(x_155, 0); +lean::inc(x_156); +if (lean::obj_tag(x_156) == 0) +{ +obj* x_157; obj* x_158; obj* x_159; +x_157 = lean::cnstr_get(x_155, 1); +lean::inc(x_157); +lean::dec(x_155); +x_158 = l_Lean_Format_pretty(x_157, x_152); +lean::dec(x_152); +x_159 = l_Lean_Elab_logErrorAndThrow___rarg(x_1, x_158, x_2, x_144); +lean::dec(x_2); +lean::dec(x_1); +return x_159; +} +else +{ +obj* x_160; obj* x_161; obj* x_162; obj* x_163; obj* x_164; uint8 x_165; obj* x_166; obj* x_167; obj* x_168; +lean::dec(x_1); +x_160 = lean::cnstr_get(x_155, 1); +lean::inc(x_160); +lean::dec(x_155); +x_161 = lean::cnstr_get(x_156, 0); +lean::inc(x_161); +lean::dec(x_156); +x_162 = lean::cnstr_get(x_2, 0); +lean::inc(x_162); +x_163 = lean::box(0); +x_164 = l_Lean_Format_pretty(x_160, x_152); +lean::dec(x_152); +x_165 = 2; +x_166 = l_String_splitAux___main___closed__1; +x_167 = lean::alloc_cnstr(0, 5, 1); +lean::cnstr_set(x_167, 0, x_162); +lean::cnstr_set(x_167, 1, x_161); +lean::cnstr_set(x_167, 2, x_163); +lean::cnstr_set(x_167, 3, x_166); +lean::cnstr_set(x_167, 4, x_164); +lean::cnstr_set_scalar(x_167, sizeof(void*)*5, x_165); +x_168 = l_Lean_Elab_logMessage(x_167, x_2, x_144); +lean::dec(x_2); +if (lean::obj_tag(x_168) == 0) +{ +obj* x_169; obj* x_170; obj* x_171; obj* x_172; +x_169 = lean::cnstr_get(x_168, 1); +lean::inc(x_169); +if (lean::is_exclusive(x_168)) { + lean::cnstr_release(x_168, 0); + lean::cnstr_release(x_168, 1); + x_170 = x_168; +} else { + lean::dec_ref(x_168); + x_170 = lean::box(0); +} +x_171 = lean::box(4); +if (lean::is_scalar(x_170)) { + x_172 = lean::alloc_cnstr(1, 2, 0); +} else { + x_172 = x_170; + lean::cnstr_set_tag(x_172, 1); +} +lean::cnstr_set(x_172, 0, x_171); +lean::cnstr_set(x_172, 1, x_169); +return x_172; +} +else +{ +obj* x_173; obj* x_174; obj* x_175; obj* x_176; +x_173 = lean::cnstr_get(x_168, 0); +lean::inc(x_173); +x_174 = lean::cnstr_get(x_168, 1); +lean::inc(x_174); +if (lean::is_exclusive(x_168)) { + lean::cnstr_release(x_168, 0); + lean::cnstr_release(x_168, 1); + x_175 = x_168; +} else { + lean::dec_ref(x_168); + x_175 = lean::box(0); +} +if (lean::is_scalar(x_175)) { + x_176 = lean::alloc_cnstr(1, 2, 0); +} else { + x_176 = x_175; +} +lean::cnstr_set(x_176, 0, x_173); +lean::cnstr_set(x_176, 1, x_174); +return x_176; +} +} +} +else +{ +obj* x_177; obj* x_178; obj* x_179; obj* x_180; obj* x_181; obj* x_182; obj* x_183; +lean::dec(x_152); +lean::dec(x_144); +lean::dec(x_2); +lean::dec(x_1); +x_177 = lean::cnstr_get(x_154, 0); +lean::inc(x_177); +lean::dec(x_154); +x_178 = lean::cnstr_get(x_177, 1); +lean::inc(x_178); +x_179 = lean::cnstr_get(x_177, 0); +lean::inc(x_179); +lean::dec(x_177); +x_180 = lean::cnstr_get(x_178, 0); +lean::inc(x_180); +x_181 = lean::cnstr_get(x_178, 1); +lean::inc(x_181); +lean::dec(x_178); +if (lean::is_scalar(x_151)) { + x_182 = lean::alloc_cnstr(0, 6, 0); +} else { + x_182 = x_151; +} +lean::cnstr_set(x_182, 0, x_179); +lean::cnstr_set(x_182, 1, x_146); +lean::cnstr_set(x_182, 2, x_147); +lean::cnstr_set(x_182, 3, x_148); +lean::cnstr_set(x_182, 4, x_180); +lean::cnstr_set(x_182, 5, x_150); +x_183 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_183, 0, x_181); +lean::cnstr_set(x_183, 1, x_182); +return x_183; +} +} +else +{ +obj* x_184; obj* x_185; obj* x_186; obj* x_187; +lean::dec(x_136); +lean::dec(x_2); +lean::dec(x_1); +x_184 = lean::cnstr_get(x_140, 0); +lean::inc(x_184); +x_185 = lean::cnstr_get(x_140, 1); +lean::inc(x_185); +if (lean::is_exclusive(x_140)) { + lean::cnstr_release(x_140, 0); + lean::cnstr_release(x_140, 1); + x_186 = x_140; +} else { + lean::dec_ref(x_140); + x_186 = lean::box(0); +} +if (lean::is_scalar(x_186)) { + x_187 = lean::alloc_cnstr(1, 2, 0); +} else { + x_187 = x_186; +} +lean::cnstr_set(x_187, 0, x_184); +lean::cnstr_set(x_187, 1, x_185); +return x_187; +} +} +} +else +{ +uint8 x_188; +lean::dec(x_2); +lean::dec(x_1); +x_188 = !lean::is_exclusive(x_4); +if (x_188 == 0) +{ +return x_4; +} +else +{ +obj* x_189; obj* x_190; obj* x_191; +x_189 = lean::cnstr_get(x_4, 0); +x_190 = lean::cnstr_get(x_4, 1); +lean::inc(x_190); +lean::inc(x_189); +lean::dec(x_4); +x_191 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_191, 0, x_189); +lean::cnstr_set(x_191, 1, x_190); +return x_191; +} +} +} +} obj* initialize_init_lean_elaborator_basic(obj*); static bool _G_initialized = false; obj* initialize_init_lean_elaborator_preterm(obj* w) { diff --git a/src/stage0/init/lean/elaborator/resolvename.cpp b/src/stage0/init/lean/elaborator/resolvename.cpp index e78f625878..b7875c2339 100644 --- a/src/stage0/init/lean/elaborator/resolvename.cpp +++ b/src/stage0/init/lean/elaborator/resolvename.cpp @@ -45,7 +45,6 @@ extern obj* l_Lean_Elab_rootNamespace; obj* l___private_init_lean_elaborator_resolvename_5__resolveNameAux___main(obj*, obj*, obj*, obj*, obj*); obj* l_Array_ummapAux___main___at___private_init_lean_elaborator_resolvename_6__preresolveNamesAux___main___spec__1___rarg(obj*, obj*, obj*, obj*, obj*); obj* l___private_init_lean_elaborator_resolvename_5__resolveNameAux(obj*, obj*, obj*, obj*, obj*); -obj* l_Lean_getEnv___rarg(obj*); obj* l_Lean_Elab_resolveName(obj*, obj*, obj*); obj* l___private_init_lean_elaborator_resolvename_5__resolveNameAux___main___boxed(obj*, obj*, obj*, obj*, obj*); obj* l___private_init_lean_elaborator_resolvename_3__resolveExact(obj*, obj*); @@ -61,6 +60,7 @@ obj* l___private_init_lean_elaborator_resolvename_6__preresolveNamesAux(obj*); namespace lean { uint8 is_protected_core(obj*, obj*); } +obj* l_Lean_Elab_getEnv___rarg(obj*); obj* l_Array_size(obj*, obj*); obj* l_Array_fset(obj*, obj*, obj*, obj*); obj* l___private_init_lean_elaborator_resolvename_1__resolveQualifiedName___boxed(obj*, obj*, obj*); @@ -600,7 +600,7 @@ obj* l_Lean_Elab_resolveName(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_Lean_getEnv___rarg(x_3); +x_4 = l_Lean_Elab_getEnv___rarg(x_3); if (lean::obj_tag(x_4) == 0) { uint8 x_5; @@ -1107,7 +1107,7 @@ obj* l_Lean_Elab_preresolveNames___rarg(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; -x_4 = l_Lean_getEnv___rarg(x_3); +x_4 = l_Lean_Elab_getEnv___rarg(x_3); if (lean::obj_tag(x_4) == 0) { uint8 x_5; diff --git a/src/stage0/init/lean/elaborator/term.cpp b/src/stage0/init/lean/elaborator/term.cpp new file mode 100644 index 0000000000..5123393e4e --- /dev/null +++ b/src/stage0/init/lean/elaborator/term.cpp @@ -0,0 +1,332 @@ +// Lean compiler output +// Module: init.lean.elaborator.term +// Imports: init.lean.elaborator.alias init.lean.elaborator.basic +#include "runtime/object.h" +#include "runtime/apply.h" +typedef lean::object obj; typedef lean::usize usize; +typedef lean::uint8 uint8; typedef lean::uint16 uint16; +typedef lean::uint32 uint32; typedef lean::uint64 uint64; +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wunused-parameter" +#pragma clang diagnostic ignored "-Wunused-label" +#elif defined(__GNUC__) && !defined(__CLANG__) +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wunused-label" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif +extern "C" uint8 lean_name_dec_eq(obj*, obj*); +obj* l_Lean_Elab_elabTerm___closed__2; +obj* l_HashMapImp_find___at_Lean_Elab_elabTerm___spec__2(obj*, obj*); +obj* l_Array_uget(obj*, obj*, usize, obj*); +obj* l_Lean_Name_toStringWithSep___main(obj*, obj*); +extern obj* l_Lean_termElabAttribute; +obj* l_HashMapImp_find___at_Lean_Elab_elabTerm___spec__2___boxed(obj*, obj*); +extern "C" usize lean_name_hash_usize(obj*); +obj* l_Lean_PersistentEnvExtension_getState___rarg(obj*, obj*); +obj* l_Lean_Elab_elabTerm___closed__1; +namespace lean { +obj* string_append(obj*, obj*); +} +obj* l_Lean_SMap_find___at_Lean_Elab_elabTerm___spec__1___boxed(obj*, obj*); +obj* l_RBNode_find___main___at_Lean_addBuiltinTermElab___spec__4(obj*, obj*); +extern obj* l_Char_HasRepr___closed__1; +obj* l_Lean_SMap_find___at_Lean_Elab_elabTerm___spec__1(obj*, obj*); +obj* l_Lean_Elab_elabTerm___closed__3; +obj* l_AssocList_find___main___at_Lean_Elab_elabTerm___spec__3___boxed(obj*, obj*); +namespace lean { +usize usize_modn(usize, obj*); +} +obj* l_Array_size(obj*, obj*); +obj* l_Lean_Elab_elabTerm(obj*, obj*, obj*); +extern obj* l_Lean_Name_toString___closed__1; +obj* l_Lean_Elab_logErrorAndThrow___rarg(obj*, obj*, obj*, obj*); +obj* l_AssocList_find___main___at_Lean_Elab_elabTerm___spec__3(obj*, obj*); +obj* l_AssocList_find___main___at_Lean_Elab_elabTerm___spec__3(obj* x_1, obj* x_2) { +_start: +{ +if (lean::obj_tag(x_2) == 0) +{ +obj* x_3; +x_3 = lean::box(0); +return x_3; +} +else +{ +obj* x_4; obj* x_5; obj* x_6; uint8 x_7; +x_4 = lean::cnstr_get(x_2, 0); +x_5 = lean::cnstr_get(x_2, 1); +x_6 = lean::cnstr_get(x_2, 2); +x_7 = lean_name_dec_eq(x_4, x_1); +if (x_7 == 0) +{ +x_2 = x_6; +goto _start; +} +else +{ +obj* x_9; +lean::inc(x_5); +x_9 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_9, 0, x_5); +return x_9; +} +} +} +} +obj* l_HashMapImp_find___at_Lean_Elab_elabTerm___spec__2(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; obj* x_4; usize x_5; usize x_6; obj* x_7; usize x_8; obj* x_9; obj* x_10; +x_3 = lean::cnstr_get(x_1, 1); +x_4 = lean::array_get_size(x_3); +x_5 = lean_name_hash_usize(x_2); +x_6 = lean::usize_modn(x_5, x_4); +lean::dec(x_4); +x_7 = lean::box_size_t(x_6); +x_8 = lean::unbox_size_t(x_7); +lean::dec(x_7); +x_9 = lean::array_uget(x_3, x_8); +x_10 = l_AssocList_find___main___at_Lean_Elab_elabTerm___spec__3(x_2, x_9); +lean::dec(x_9); +return x_10; +} +} +obj* l_Lean_SMap_find___at_Lean_Elab_elabTerm___spec__1(obj* x_1, obj* x_2) { +_start: +{ +uint8 x_3; +x_3 = lean::cnstr_get_scalar(x_1, sizeof(void*)*2); +if (x_3 == 0) +{ +obj* x_4; obj* x_5; obj* x_6; +x_4 = lean::cnstr_get(x_1, 0); +x_5 = lean::cnstr_get(x_1, 1); +x_6 = l_RBNode_find___main___at_Lean_addBuiltinTermElab___spec__4(x_5, x_2); +if (lean::obj_tag(x_6) == 0) +{ +obj* x_7; +x_7 = l_HashMapImp_find___at_Lean_Elab_elabTerm___spec__2(x_4, x_2); +return x_7; +} +else +{ +return x_6; +} +} +else +{ +obj* x_8; obj* x_9; +x_8 = lean::cnstr_get(x_1, 0); +x_9 = l_HashMapImp_find___at_Lean_Elab_elabTerm___spec__2(x_8, x_2); +return x_9; +} +} +} +obj* _init_l_Lean_Elab_elabTerm___closed__1() { +_start: +{ +obj* x_1; +x_1 = lean::mk_string("term elaborator failed, unexpected syntax"); +return x_1; +} +} +obj* _init_l_Lean_Elab_elabTerm___closed__2() { +_start: +{ +obj* x_1; obj* x_2; +x_1 = l_Lean_Elab_elabTerm___closed__1; +x_2 = lean::alloc_cnstr(3, 1, 0); +lean::cnstr_set(x_2, 0, x_1); +return x_2; +} +} +obj* _init_l_Lean_Elab_elabTerm___closed__3() { +_start: +{ +obj* x_1; +x_1 = lean::mk_string("term elaborator failed, no support for syntax '"); +return x_1; +} +} +obj* l_Lean_Elab_elabTerm(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +if (lean::obj_tag(x_1) == 1) +{ +obj* x_4; uint8 x_5; +x_4 = lean::cnstr_get(x_1, 0); +lean::inc(x_4); +x_5 = !lean::is_exclusive(x_3); +if (x_5 == 0) +{ +obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; obj* x_11; obj* x_12; obj* x_13; +x_6 = lean::cnstr_get(x_3, 1); +x_7 = lean::cnstr_get(x_3, 0); +lean::dec(x_7); +x_8 = lean::box(0); +lean::inc(x_6); +lean::cnstr_set(x_3, 0, x_8); +x_9 = l_Lean_termElabAttribute; +x_10 = lean::cnstr_get(x_9, 1); +lean::inc(x_10); +x_11 = lean::cnstr_get(x_6, 0); +lean::inc(x_11); +lean::dec(x_6); +x_12 = l_Lean_PersistentEnvExtension_getState___rarg(x_10, x_11); +lean::dec(x_11); +x_13 = l_Lean_SMap_find___at_Lean_Elab_elabTerm___spec__1(x_12, x_4); +lean::dec(x_12); +if (lean::obj_tag(x_13) == 0) +{ +obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; +x_14 = l_Lean_Name_toString___closed__1; +x_15 = l_Lean_Name_toStringWithSep___main(x_14, x_4); +x_16 = l_Lean_Elab_elabTerm___closed__3; +x_17 = lean::string_append(x_16, x_15); +lean::dec(x_15); +x_18 = l_Char_HasRepr___closed__1; +x_19 = lean::string_append(x_17, x_18); +x_20 = l_Lean_Elab_logErrorAndThrow___rarg(x_1, x_19, x_2, x_3); +lean::dec(x_2); +lean::dec(x_1); +return x_20; +} +else +{ +obj* x_21; obj* x_22; +lean::dec(x_4); +x_21 = lean::cnstr_get(x_13, 0); +lean::inc(x_21); +lean::dec(x_13); +x_22 = lean::apply_3(x_21, x_1, x_2, x_3); +return x_22; +} +} +else +{ +obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; +x_23 = lean::cnstr_get(x_3, 1); +lean::inc(x_23); +lean::dec(x_3); +x_24 = lean::box(0); +lean::inc(x_23); +x_25 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_25, 0, x_24); +lean::cnstr_set(x_25, 1, x_23); +x_26 = l_Lean_termElabAttribute; +x_27 = lean::cnstr_get(x_26, 1); +lean::inc(x_27); +x_28 = lean::cnstr_get(x_23, 0); +lean::inc(x_28); +lean::dec(x_23); +x_29 = l_Lean_PersistentEnvExtension_getState___rarg(x_27, x_28); +lean::dec(x_28); +x_30 = l_Lean_SMap_find___at_Lean_Elab_elabTerm___spec__1(x_29, x_4); +lean::dec(x_29); +if (lean::obj_tag(x_30) == 0) +{ +obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; +x_31 = l_Lean_Name_toString___closed__1; +x_32 = l_Lean_Name_toStringWithSep___main(x_31, x_4); +x_33 = l_Lean_Elab_elabTerm___closed__3; +x_34 = lean::string_append(x_33, x_32); +lean::dec(x_32); +x_35 = l_Char_HasRepr___closed__1; +x_36 = lean::string_append(x_34, x_35); +x_37 = l_Lean_Elab_logErrorAndThrow___rarg(x_1, x_36, x_2, x_25); +lean::dec(x_2); +lean::dec(x_1); +return x_37; +} +else +{ +obj* x_38; obj* x_39; +lean::dec(x_4); +x_38 = lean::cnstr_get(x_30, 0); +lean::inc(x_38); +lean::dec(x_30); +x_39 = lean::apply_3(x_38, x_1, x_2, x_25); +return x_39; +} +} +} +else +{ +uint8 x_40; +lean::dec(x_2); +lean::dec(x_1); +x_40 = !lean::is_exclusive(x_3); +if (x_40 == 0) +{ +obj* x_41; obj* x_42; +x_41 = lean::cnstr_get(x_3, 0); +lean::dec(x_41); +x_42 = l_Lean_Elab_elabTerm___closed__2; +lean::cnstr_set_tag(x_3, 1); +lean::cnstr_set(x_3, 0, x_42); +return x_3; +} +else +{ +obj* x_43; obj* x_44; obj* x_45; +x_43 = lean::cnstr_get(x_3, 1); +lean::inc(x_43); +lean::dec(x_3); +x_44 = l_Lean_Elab_elabTerm___closed__2; +x_45 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_45, 0, x_44); +lean::cnstr_set(x_45, 1, x_43); +return x_45; +} +} +} +} +obj* l_AssocList_find___main___at_Lean_Elab_elabTerm___spec__3___boxed(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; +x_3 = l_AssocList_find___main___at_Lean_Elab_elabTerm___spec__3(x_1, x_2); +lean::dec(x_2); +lean::dec(x_1); +return x_3; +} +} +obj* l_HashMapImp_find___at_Lean_Elab_elabTerm___spec__2___boxed(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; +x_3 = l_HashMapImp_find___at_Lean_Elab_elabTerm___spec__2(x_1, x_2); +lean::dec(x_2); +lean::dec(x_1); +return x_3; +} +} +obj* l_Lean_SMap_find___at_Lean_Elab_elabTerm___spec__1___boxed(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; +x_3 = l_Lean_SMap_find___at_Lean_Elab_elabTerm___spec__1(x_1, x_2); +lean::dec(x_2); +lean::dec(x_1); +return x_3; +} +} +obj* initialize_init_lean_elaborator_alias(obj*); +obj* initialize_init_lean_elaborator_basic(obj*); +static bool _G_initialized = false; +obj* initialize_init_lean_elaborator_term(obj* w) { +if (_G_initialized) return w; +_G_initialized = true; +if (io_result_is_error(w)) return w; +w = initialize_init_lean_elaborator_alias(w); +if (io_result_is_error(w)) return w; +w = initialize_init_lean_elaborator_basic(w); +if (io_result_is_error(w)) return w; +l_Lean_Elab_elabTerm___closed__1 = _init_l_Lean_Elab_elabTerm___closed__1(); +lean::mark_persistent(l_Lean_Elab_elabTerm___closed__1); +l_Lean_Elab_elabTerm___closed__2 = _init_l_Lean_Elab_elabTerm___closed__2(); +lean::mark_persistent(l_Lean_Elab_elabTerm___closed__2); +l_Lean_Elab_elabTerm___closed__3 = _init_l_Lean_Elab_elabTerm___closed__3(); +lean::mark_persistent(l_Lean_Elab_elabTerm___closed__3); +return w; +} diff --git a/src/stage0/init/lean/parser/command.cpp b/src/stage0/init/lean/parser/command.cpp index 3e45ddc373..64099d2531 100644 --- a/src/stage0/init/lean/parser/command.cpp +++ b/src/stage0/init/lean/parser/command.cpp @@ -26,6 +26,7 @@ obj* l_Lean_Parser_Command_attrInstance___elambda__1___closed__2; obj* l___private_init_lean_parser_parser_2__sepByFnAux___main___at_Lean_Parser_Command_declId___elambda__1___spec__2___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_Command_constant___elambda__1___closed__7; obj* l_Lean_Parser_Command_axiom___closed__1; +obj* l_Lean_Parser_Command_elab; obj* l_Lean_Parser_Command_constant___closed__1; extern obj* l_Lean_Parser_Term_haveAssign___closed__1; obj* l_Lean_Parser_Command_constant___elambda__1___closed__4; @@ -240,6 +241,7 @@ extern obj* l_Lean_Parser_Level_paren___elambda__1___rarg___closed__12; obj* l_Lean_Parser_Command_private___elambda__1___rarg___closed__6; extern obj* l_Lean_Parser_Term_matchAlt___elambda__1___closed__4; obj* l_Lean_Parser_Command_quotedSymbolPrec___closed__1; +obj* l_Lean_Parser_Command_elab___elambda__1___rarg___closed__2; obj* l_Lean_Parser_Command_structure___closed__13; obj* l_Lean_Parser_Command_relaxedInferMod___closed__4; obj* l_Lean_Parser_Command_reserve___elambda__1___closed__4; @@ -259,6 +261,7 @@ obj* l_Lean_Parser_Command_declId___closed__1; obj* l_Lean_Parser_Command_openRenamingItem___closed__3; obj* l_Lean_Parser_Command_mixfixSymbol; obj* l_Lean_Parser_Command_declModifiers___closed__10; +obj* l_Lean_Parser_Command_elab___closed__5; obj* l_Lean_Parser_Command_infixr___elambda__1___rarg___closed__1; obj* l_Lean_Parser_Command_declValSimple___elambda__1___rarg(obj*, obj*); obj* l_Lean_Parser_Command_axiom___elambda__1(obj*, obj*, obj*); @@ -306,6 +309,7 @@ obj* l_Lean_Parser_Command_universes___closed__4; obj* l_Lean_Parser_Command_postfix___elambda__1___rarg___closed__6; obj* l_Lean_Parser_Command_structureTk___closed__3; obj* l_Lean_Parser_Command_optDeclSig; +obj* l_Lean_Parser_Command_elab___closed__2; obj* l_Lean_Parser_Command_universes___elambda__1___closed__1; obj* l_Lean_Parser_Command_export___closed__4; obj* l_Lean_Parser_Command_declaration___closed__3; @@ -354,6 +358,7 @@ obj* l_Lean_Parser_Command_open___closed__5; obj* l_Lean_Parser_Command_openRenamingItem___closed__1; obj* l_Lean_Parser_Command_partial___elambda__1___rarg___closed__7; obj* l_Lean_Parser_Command_postfix___elambda__1(obj*); +obj* l_Lean_Parser_Command_elab___elambda__1___rarg___closed__6; obj* l_Lean_Parser_Command_openRenamingItem___elambda__1___rarg___closed__7; obj* l_Lean_Parser_Command_openRenamingItem___closed__5; obj* l_Lean_Parser_Command_section___closed__3; @@ -368,6 +373,7 @@ obj* l_Lean_Parser_Command_declSig___closed__1; obj* l_Lean_Parser_sepBy1Fn___at_Lean_Parser_Command_openRenaming___elambda__1___spec__1(uint8, uint8, obj*, obj*, obj*); obj* l_Lean_Parser_Command_introRule___closed__2; obj* l_Lean_Parser_Command_constant___elambda__1___closed__2; +obj* l_Lean_Parser_Command_elab___elambda__1___rarg(obj*, obj*); obj* l_Lean_Parser_Command_open___closed__7; obj* l_Lean_Parser_Command_classInductive___elambda__1___closed__3; obj* l_Lean_Parser_Command_postfix; @@ -390,6 +396,7 @@ obj* l_Lean_Parser_Command_resolve__name___closed__5; obj* l_Lean_Parser_Command_instance___closed__1; obj* l_Lean_Parser_Command_noncomputable___elambda__1___rarg___closed__3; obj* l_Lean_Parser_Command_postfix___elambda__1___rarg(obj*, obj*); +obj* l_Lean_Parser_Command_elab___elambda__1___rarg___closed__4; obj* l_Lean_Parser_Command_structureTk___elambda__1___rarg(obj*, obj*); obj* l_Lean_Parser_Command_unsafe___elambda__1___rarg___closed__4; obj* l_Lean_Parser_Command_structImplicitBinder___closed__5; @@ -451,6 +458,7 @@ obj* l_Lean_Parser_Command_declModifiers___closed__1; obj* l_Lean_Parser_Command_docComment___elambda__1___closed__8; obj* l_Lean_Parser_Command_inferMod___elambda__1___rarg(obj*, obj*); obj* l_Lean_Parser_Command_exit___elambda__1___rarg___closed__4; +obj* l_Lean_Parser_Command_elab___elambda__1___rarg___closed__3; obj* l_Lean_Parser_Command_inductive___elambda__1___closed__1; obj* l_Lean_Parser_manyAux___main___at_Lean_Parser_Command_declValEqns___spec__1___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_Command_resolve__name___elambda__1___rarg(obj*, obj*); @@ -702,6 +710,7 @@ obj* l_Lean_Parser_Command_prefix___closed__2; obj* l_Lean_Parser_Command_infixr___elambda__1___rarg___closed__3; obj* l_Lean_Parser_Command_theorem___closed__1; obj* l_Lean_Parser_Command_attrInstance___closed__5; +obj* l_Lean_Parser_Command_elab___closed__4; obj* l_Lean_Parser_Command_universes___elambda__1___boxed(obj*, obj*, obj*); extern obj* l_Lean_Parser_ident___closed__1; obj* l_Lean_Parser_Command_structCtor___closed__1; @@ -714,6 +723,7 @@ obj* l_Lean_Parser_Command_resolve__name___elambda__1___rarg___closed__7; obj* l_Lean_Parser_Command_structFields___elambda__1___closed__1; obj* l_Lean_Parser_quotedSymbol(uint8); obj* l_Lean_Parser_Command_namespace___elambda__1(obj*); +obj* l_Lean_Parser_Command_elab___elambda__1(obj*); obj* l_Lean_Parser_Command_structExplicitBinder___closed__4; obj* l_Lean_Parser_Command_classInductive___elambda__1___closed__5; obj* l___regBuiltinParser_Lean_Parser_Command_universe(obj*); @@ -763,6 +773,7 @@ obj* l_Lean_Parser_Command_openRenamingItem; obj* l_Lean_Parser_Command_mixfix___elambda__1(obj*, obj*, obj*); obj* l_Lean_Parser_Command_unsafe___closed__2; extern obj* l_Lean_Parser_Term_typeAscription___elambda__1___rarg___closed__7; +obj* l_Lean_Parser_Command_elab___closed__3; obj* l_Lean_Parser_Command_abbrev___elambda__1___closed__1; obj* l_Lean_Parser_Command_variables___elambda__1___closed__3; extern obj* l_Lean_Parser_Term_letIdLhs___closed__1; @@ -810,6 +821,7 @@ obj* l_Lean_Parser_Command_namespace___elambda__1___rarg___closed__3; obj* l_Lean_Parser_Command_strictInferMod___closed__2; obj* l_Lean_Parser_Command_classInductive; obj* l_Lean_Parser_optionaInfo(obj*); +obj* l_Lean_Parser_Command_elab___elambda__1___boxed(obj*); obj* l_Lean_Parser_Command_attribute___closed__1; obj* l_Lean_Parser_Command_postfix___elambda__1___rarg___closed__2; obj* l_Lean_Parser_Command_exit___elambda__1___rarg___closed__7; @@ -833,6 +845,7 @@ obj* l_Lean_Parser_Command_introRule___elambda__1___closed__1; obj* l_Lean_Parser_Command_check___elambda__1(obj*); obj* l_Lean_Parser_Command_section___elambda__1___rarg(obj*, obj*); obj* l_Lean_Parser_Command_namespace___closed__3; +obj* l_Lean_Parser_Command_elab___elambda__1___rarg___closed__7; obj* l_Lean_Parser_Command_resolve__name___closed__2; obj* l_Lean_Parser_manyAux___main___at_Lean_Parser_Command_notation___elambda__1___spec__1___boxed(obj*, obj*, obj*, obj*); obj* l_Lean_Parser_Command_partial___elambda__1___boxed(obj*); @@ -880,6 +893,7 @@ obj* l_Lean_Parser_Command_constant___closed__7; obj* l_Lean_Parser_Command_infixl___elambda__1___rarg___closed__2; obj* l_Lean_Parser_Command_quotedSymbolPrec___closed__3; obj* l_Lean_Parser_Command_strictInferMod___elambda__1___rarg(obj*, obj*); +obj* l_Lean_Parser_Command_elab___closed__1; obj* l_Lean_Parser_Command_preterm___closed__1; obj* l_Lean_Parser_Command_openRenaming___elambda__1___closed__6; obj* l_Lean_Parser_Command_attribute___closed__9; @@ -937,6 +951,7 @@ obj* l_Lean_Parser_Command_attribute___elambda__1(obj*, obj*, obj*); obj* l_Lean_Parser_Command_attributes___elambda__1___closed__7; obj* l_Lean_Parser_Command_structure___closed__11; obj* l_Lean_Parser_Command_check___elambda__1___rarg___closed__6; +obj* l_Lean_Parser_Command_elab___elambda__1___rarg___closed__1; obj* l_Lean_Parser_Command_def; obj* l_Lean_Parser_Command_structCtor___closed__6; obj* l_Lean_Parser_Command_openRenamingItem___elambda__1___rarg___closed__11; @@ -1072,6 +1087,7 @@ uint8 nat_dec_le(obj*, obj*); } obj* l_Lean_Parser_Command_set__option___elambda__1(obj*); obj* l_Lean_Parser_Command_noncomputable___elambda__1___rarg___closed__4; +obj* l___regBuiltinParser_Lean_Parser_Command_elab(obj*); obj* l_Lean_Parser_Command_introRule___elambda__1___closed__2; obj* l_Lean_Parser_Command_maxPrec___elambda__1___rarg(obj*, obj*); obj* l_Lean_Parser_Command_openOnly___closed__4; @@ -1105,6 +1121,7 @@ obj* l_Lean_Parser_Command_attribute___closed__2; obj* l_Lean_Parser_Command_init__quot___elambda__1___rarg___closed__2; obj* l_Lean_Parser_Command_classInductive___elambda__1___closed__1; obj* l_Lean_Parser_Command_attributes___closed__4; +obj* l_Lean_Parser_Command_elab___elambda__1___rarg___closed__5; obj* l_Lean_Parser_Command_example___elambda__1___closed__3; obj* l_Lean_Parser_Command_noncomputable___elambda__1___rarg___closed__5; obj* l_Lean_Parser_Command_optDeclSig___elambda__1(obj*, obj*, obj*); @@ -16184,6 +16201,250 @@ x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); return x_5; } } +obj* _init_l_Lean_Parser_Command_elab___elambda__1___rarg___closed__1() { +_start: +{ +obj* x_1; +x_1 = lean::mk_string("elab"); +return x_1; +} +} +obj* _init_l_Lean_Parser_Command_elab___elambda__1___rarg___closed__2() { +_start: +{ +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_docComment___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_elab___elambda__1___rarg___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +obj* _init_l_Lean_Parser_Command_elab___elambda__1___rarg___closed__3() { +_start: +{ +obj* x_1; +x_1 = lean::mk_string("#elab "); +return x_1; +} +} +obj* _init_l_Lean_Parser_Command_elab___elambda__1___rarg___closed__4() { +_start: +{ +obj* x_1; obj* x_2; +x_1 = l_Lean_Parser_Command_elab___elambda__1___rarg___closed__3; +x_2 = l_String_trim(x_1); +return x_2; +} +} +obj* _init_l_Lean_Parser_Command_elab___elambda__1___rarg___closed__5() { +_start: +{ +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Char_HasRepr___closed__1; +x_2 = l_Lean_Parser_Command_elab___elambda__1___rarg___closed__4; +x_3 = lean::string_append(x_1, x_2); +return x_3; +} +} +obj* _init_l_Lean_Parser_Command_elab___elambda__1___rarg___closed__6() { +_start: +{ +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_elab___elambda__1___rarg___closed__5; +x_2 = l_Char_HasRepr___closed__1; +x_3 = lean::string_append(x_1, x_2); +return x_3; +} +} +obj* _init_l_Lean_Parser_Command_elab___elambda__1___rarg___closed__7() { +_start: +{ +obj* x_1; obj* x_2; obj* x_3; +x_1 = lean::box(0); +x_2 = l_Lean_Parser_Command_elab___elambda__1___rarg___closed__6; +x_3 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_3, 0, x_2); +lean::cnstr_set(x_3, 1, x_1); +return x_3; +} +} +obj* l_Lean_Parser_Command_elab___elambda__1___rarg(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; obj* x_4; obj* x_5; obj* x_15; obj* x_16; obj* x_17; +x_3 = lean::cnstr_get(x_2, 0); +lean::inc(x_3); +x_4 = lean::array_get_size(x_3); +lean::dec(x_3); +x_15 = lean::cnstr_get(x_2, 1); +lean::inc(x_15); +lean::inc(x_1); +x_16 = l_Lean_Parser_tokenFn(x_1, x_2); +x_17 = lean::cnstr_get(x_16, 3); +lean::inc(x_17); +if (lean::obj_tag(x_17) == 0) +{ +obj* x_18; obj* x_19; +x_18 = lean::cnstr_get(x_16, 0); +lean::inc(x_18); +x_19 = l_Array_back___at___private_init_lean_parser_parser_6__updateCache___spec__1(x_18); +lean::dec(x_18); +if (lean::obj_tag(x_19) == 2) +{ +obj* x_20; obj* x_21; uint8 x_22; +x_20 = lean::cnstr_get(x_19, 1); +lean::inc(x_20); +lean::dec(x_19); +x_21 = l_Lean_Parser_Command_elab___elambda__1___rarg___closed__4; +x_22 = lean::string_dec_eq(x_20, x_21); +lean::dec(x_20); +if (x_22 == 0) +{ +obj* x_23; obj* x_24; +x_23 = l_Lean_Parser_Command_elab___elambda__1___rarg___closed__7; +x_24 = l_Lean_Parser_ParserState_mkErrorsAt(x_16, x_23, x_15); +x_5 = x_24; +goto block_14; +} +else +{ +lean::dec(x_15); +x_5 = x_16; +goto block_14; +} +} +else +{ +obj* x_25; obj* x_26; +lean::dec(x_19); +x_25 = l_Lean_Parser_Command_elab___elambda__1___rarg___closed__7; +x_26 = l_Lean_Parser_ParserState_mkErrorsAt(x_16, x_25, x_15); +x_5 = x_26; +goto block_14; +} +} +else +{ +obj* x_27; obj* x_28; +lean::dec(x_17); +x_27 = l_Lean_Parser_Command_elab___elambda__1___rarg___closed__7; +x_28 = l_Lean_Parser_ParserState_mkErrorsAt(x_16, x_27, x_15); +x_5 = x_28; +goto block_14; +} +block_14: +{ +obj* x_6; +x_6 = lean::cnstr_get(x_5, 3); +lean::inc(x_6); +if (lean::obj_tag(x_6) == 0) +{ +obj* x_7; obj* x_8; obj* x_9; obj* x_10; obj* x_11; +x_7 = l_Lean_Parser_termParserAttribute; +x_8 = lean::mk_nat_obj(0u); +x_9 = l_Lean_Parser_ParserAttribute_runParser(x_7, x_8, x_1, x_5); +x_10 = l_Lean_Parser_Command_elab___elambda__1___rarg___closed__2; +x_11 = l_Lean_Parser_ParserState_mkNode(x_9, x_10, x_4); +return x_11; +} +else +{ +obj* x_12; obj* x_13; +lean::dec(x_6); +lean::dec(x_1); +x_12 = l_Lean_Parser_Command_elab___elambda__1___rarg___closed__2; +x_13 = l_Lean_Parser_ParserState_mkNode(x_5, x_12, x_4); +return x_13; +} +} +} +} +obj* l_Lean_Parser_Command_elab___elambda__1(obj* x_1) { +_start: +{ +obj* x_2; +x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_Command_elab___elambda__1___rarg), 2, 0); +return x_2; +} +} +obj* _init_l_Lean_Parser_Command_elab___closed__1() { +_start: +{ +obj* x_1; obj* x_2; obj* x_3; +x_1 = lean::box(0); +x_2 = l_Lean_Parser_Command_elab___elambda__1___rarg___closed__4; +x_3 = l_Lean_Parser_symbolInfo(x_2, x_1); +return x_3; +} +} +obj* _init_l_Lean_Parser_Command_elab___closed__2() { +_start: +{ +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_elab___closed__1; +x_2 = l_Lean_Parser_Parser_inhabited___closed__1; +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); +return x_3; +} +} +obj* _init_l_Lean_Parser_Command_elab___closed__3() { +_start: +{ +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_elab___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_elab___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; +} +} +obj* _init_l_Lean_Parser_Command_elab___closed__4() { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_Command_elab___elambda__1___boxed), 1, 0); +return x_1; +} +} +obj* _init_l_Lean_Parser_Command_elab___closed__5() { +_start: +{ +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_elab___closed__3; +x_2 = l_Lean_Parser_Command_elab___closed__4; +x_3 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_3, 0, x_1); +lean::cnstr_set(x_3, 1, x_2); +return x_3; +} +} +obj* _init_l_Lean_Parser_Command_elab() { +_start: +{ +obj* x_1; +x_1 = l_Lean_Parser_Command_elab___closed__5; +return x_1; +} +} +obj* l_Lean_Parser_Command_elab___elambda__1___boxed(obj* x_1) { +_start: +{ +obj* x_2; +x_2 = l_Lean_Parser_Command_elab___elambda__1(x_1); +lean::dec(x_1); +return x_2; +} +} +obj* l___regBuiltinParser_Lean_Parser_Command_elab(obj* x_1) { +_start: +{ +obj* x_2; obj* x_3; obj* x_4; obj* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_elab___elambda__1___rarg___closed__2; +x_4 = l_Lean_Parser_Command_elab; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; +} +} obj* _init_l_Lean_Parser_Command_init__quot___elambda__1___rarg___closed__1() { _start: { @@ -24450,6 +24711,34 @@ l_Lean_Parser_Command_preterm = _init_l_Lean_Parser_Command_preterm(); lean::mark_persistent(l_Lean_Parser_Command_preterm); w = l___regBuiltinParser_Lean_Parser_Command_preterm(w); if (io_result_is_error(w)) return w; +l_Lean_Parser_Command_elab___elambda__1___rarg___closed__1 = _init_l_Lean_Parser_Command_elab___elambda__1___rarg___closed__1(); +lean::mark_persistent(l_Lean_Parser_Command_elab___elambda__1___rarg___closed__1); +l_Lean_Parser_Command_elab___elambda__1___rarg___closed__2 = _init_l_Lean_Parser_Command_elab___elambda__1___rarg___closed__2(); +lean::mark_persistent(l_Lean_Parser_Command_elab___elambda__1___rarg___closed__2); +l_Lean_Parser_Command_elab___elambda__1___rarg___closed__3 = _init_l_Lean_Parser_Command_elab___elambda__1___rarg___closed__3(); +lean::mark_persistent(l_Lean_Parser_Command_elab___elambda__1___rarg___closed__3); +l_Lean_Parser_Command_elab___elambda__1___rarg___closed__4 = _init_l_Lean_Parser_Command_elab___elambda__1___rarg___closed__4(); +lean::mark_persistent(l_Lean_Parser_Command_elab___elambda__1___rarg___closed__4); +l_Lean_Parser_Command_elab___elambda__1___rarg___closed__5 = _init_l_Lean_Parser_Command_elab___elambda__1___rarg___closed__5(); +lean::mark_persistent(l_Lean_Parser_Command_elab___elambda__1___rarg___closed__5); +l_Lean_Parser_Command_elab___elambda__1___rarg___closed__6 = _init_l_Lean_Parser_Command_elab___elambda__1___rarg___closed__6(); +lean::mark_persistent(l_Lean_Parser_Command_elab___elambda__1___rarg___closed__6); +l_Lean_Parser_Command_elab___elambda__1___rarg___closed__7 = _init_l_Lean_Parser_Command_elab___elambda__1___rarg___closed__7(); +lean::mark_persistent(l_Lean_Parser_Command_elab___elambda__1___rarg___closed__7); +l_Lean_Parser_Command_elab___closed__1 = _init_l_Lean_Parser_Command_elab___closed__1(); +lean::mark_persistent(l_Lean_Parser_Command_elab___closed__1); +l_Lean_Parser_Command_elab___closed__2 = _init_l_Lean_Parser_Command_elab___closed__2(); +lean::mark_persistent(l_Lean_Parser_Command_elab___closed__2); +l_Lean_Parser_Command_elab___closed__3 = _init_l_Lean_Parser_Command_elab___closed__3(); +lean::mark_persistent(l_Lean_Parser_Command_elab___closed__3); +l_Lean_Parser_Command_elab___closed__4 = _init_l_Lean_Parser_Command_elab___closed__4(); +lean::mark_persistent(l_Lean_Parser_Command_elab___closed__4); +l_Lean_Parser_Command_elab___closed__5 = _init_l_Lean_Parser_Command_elab___closed__5(); +lean::mark_persistent(l_Lean_Parser_Command_elab___closed__5); +l_Lean_Parser_Command_elab = _init_l_Lean_Parser_Command_elab(); +lean::mark_persistent(l_Lean_Parser_Command_elab); +w = l___regBuiltinParser_Lean_Parser_Command_elab(w); +if (io_result_is_error(w)) return w; l_Lean_Parser_Command_init__quot___elambda__1___rarg___closed__1 = _init_l_Lean_Parser_Command_init__quot___elambda__1___rarg___closed__1(); lean::mark_persistent(l_Lean_Parser_Command_init__quot___elambda__1___rarg___closed__1); l_Lean_Parser_Command_init__quot___elambda__1___rarg___closed__2 = _init_l_Lean_Parser_Command_init__quot___elambda__1___rarg___closed__2(); diff --git a/src/stage0/init/lean/syntax.cpp b/src/stage0/init/lean/syntax.cpp index 87637c06b6..d5802bfa50 100644 --- a/src/stage0/init/lean/syntax.cpp +++ b/src/stage0/init/lean/syntax.cpp @@ -53,6 +53,7 @@ obj* l_Lean_Syntax_reprint___main___rarg(obj*); obj* l_Lean_Syntax_formatStx___main___rarg(obj*); obj* l_Lean_Syntax_asNode___rarg___boxed(obj*); obj* l_Lean_Syntax_isNatLitAux___rarg___boxed(obj*, obj*); +obj* l_Lean_Syntax_lift___boxed(obj*, obj*); obj* l_Function_comp___rarg(obj*, obj*, obj*); obj* l_Lean_Syntax_reprint___main(obj*); obj* l_Lean_nullKind___closed__1; @@ -97,6 +98,7 @@ obj* l_Array_mfindRevAux___main___at_Lean_Syntax_getTailInfo___main___spec__1(ob obj* l_Lean_SourceInfo_updateTrailing(obj*, obj*); obj* l_Lean_Syntax_getTailInfo___main___rarg(obj*); obj* l_Array_toList___rarg(obj*); +obj* l_Lean_Syntax_lift(obj*, obj*); obj* l_Nat_repr(obj*); obj* l_Lean_Syntax_mreplace___main___rarg___lambda__3(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Syntax_formatStx___main___rarg___closed__3; @@ -1053,6 +1055,14 @@ x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_SyntaxNode_modifyArgs__ return x_2; } } +obj* l_Lean_Syntax_lift___boxed(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; +x_3 = x_2; +return x_3; +} +} obj* l_Lean_Syntax_setAtomVal___rarg(obj* x_1, obj* x_2) { _start: {