From dac6f273b597ee8a5d2edfd4374c66b8337043fd Mon Sep 17 00:00:00 2001 From: Sebastian Ullrich Date: Sat, 9 Nov 2019 17:53:10 +0100 Subject: [PATCH] feat: simplistic linter framework --- library/Init/Lean/Default.lean | 1 + library/Init/Lean/Linter.lean | 28 + src/stage0/CMakeLists.txt | 2 +- src/stage0/Init/Lean/Default.c | 6 +- src/stage0/Init/Lean/Expr.c | 33 +- src/stage0/Init/Lean/Linter.c | 106 + src/stage0/Init/Lean/LocalContext.c | 82 +- src/stage0/Init/Lean/Meta.c | 5609 +++++++++++++++------- src/stage0/Init/Lean/MetavarContext.c | 1341 +++--- src/stage0/Init/Lean/TypeClass/Context.c | 4 +- 10 files changed, 4678 insertions(+), 2534 deletions(-) create mode 100644 library/Init/Lean/Linter.lean create mode 100644 src/stage0/Init/Lean/Linter.c diff --git a/library/Init/Lean/Default.lean b/library/Init/Lean/Default.lean index dec3671c7c..8f38bf3915 100644 --- a/library/Init/Lean/Default.lean +++ b/library/Init/Lean/Default.lean @@ -21,3 +21,4 @@ import Init.Lean.MetavarContext import Init.Lean.TypeClass import Init.Lean.Trace import Init.Lean.AuxRecursor +import Init.Lean.Linter diff --git a/library/Init/Lean/Linter.lean b/library/Init/Lean/Linter.lean new file mode 100644 index 0000000000..edb5015655 --- /dev/null +++ b/library/Init/Lean/Linter.lean @@ -0,0 +1,28 @@ +/- +Copyright (c) 2019 Microsoft Corporation. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Sebastian Ullrich +-/ +prelude +import Init.System.IO +import Init.Lean.Attributes +import Init.Lean.Message +import Init.Lean.Syntax + +namespace Lean + +def Linter := Environment → Name → /-Syntax → -/IO MessageLog + +def mkLintersRef : IO (IO.Ref (Array Linter)) := +IO.mkRef #[] + +/- Linters should be loadable as plugins, so store in a global IO ref instead of an attribute managed by the + environment (which only contains `import`ed objects). -/ +@[init mkLintersRef, export lean_linters_ref] +constant lintersRef : IO.Ref (Array Linter) := arbitrary _ + +def addLinter (l : Linter) : IO Unit := do + ls ← lintersRef.get; + lintersRef.set (ls.push l) + +end Lean diff --git a/src/stage0/CMakeLists.txt b/src/stage0/CMakeLists.txt index 2f6acfefb4..2662ad1696 100644 --- a/src/stage0/CMakeLists.txt +++ b/src/stage0/CMakeLists.txt @@ -1 +1 @@ -add_library (stage0 OBJECT ./Init/Coe.c ./Init/Control/Alternative.c ./Init/Control/Applicative.c ./Init/Control/Conditional.c ./Init/Control/Default.c ./Init/Control/EState.c ./Init/Control/Except.c ./Init/Control/Functor.c ./Init/Control/Id.c ./Init/Control/Lift.c ./Init/Control/Monad.c ./Init/Control/MonadFail.c ./Init/Control/Option.c ./Init/Control/Reader.c ./Init/Control/State.c ./Init/Core.c ./Init/Data/Array/Basic.c ./Init/Data/Array/BinSearch.c ./Init/Data/Array/Default.c ./Init/Data/Array/QSort.c ./Init/Data/AssocList.c ./Init/Data/Basic.c ./Init/Data/BinomialHeap/Basic.c ./Init/Data/BinomialHeap/Default.c ./Init/Data/ByteArray/Basic.c ./Init/Data/ByteArray/Default.c ./Init/Data/Char/Basic.c ./Init/Data/Char/Default.c ./Init/Data/DList.c ./Init/Data/Default.c ./Init/Data/Fin/Basic.c ./Init/Data/Fin/Default.c ./Init/Data/HashMap/Basic.c ./Init/Data/HashMap/Default.c ./Init/Data/HashSet.c ./Init/Data/Hashable.c ./Init/Data/Int/Basic.c ./Init/Data/Int/Default.c ./Init/Data/List/Basic.c ./Init/Data/List/BasicAux.c ./Init/Data/List/Control.c ./Init/Data/List/Default.c ./Init/Data/List/Instances.c ./Init/Data/Nat/Basic.c ./Init/Data/Nat/Bitwise.c ./Init/Data/Nat/Control.c ./Init/Data/Nat/Default.c ./Init/Data/Nat/Div.c ./Init/Data/Option/Basic.c ./Init/Data/Option/BasicAux.c ./Init/Data/Option/Default.c ./Init/Data/Option/Instances.c ./Init/Data/PersistentArray/Basic.c ./Init/Data/PersistentArray/Default.c ./Init/Data/PersistentHashMap/Basic.c ./Init/Data/PersistentHashMap/Default.c ./Init/Data/PersistentHashSet.c ./Init/Data/Queue/Basic.c ./Init/Data/Queue/Default.c ./Init/Data/RBMap/Basic.c ./Init/Data/RBMap/BasicAux.c ./Init/Data/RBMap/Default.c ./Init/Data/RBTree/Basic.c ./Init/Data/RBTree/Default.c ./Init/Data/Random.c ./Init/Data/Repr.c ./Init/Data/Stack/Basic.c ./Init/Data/Stack/Default.c ./Init/Data/String/Basic.c ./Init/Data/String/Default.c ./Init/Data/ToString.c ./Init/Data/UInt.c ./Init/Default.c ./Init/Fix.c ./Init/Lean/Attributes.c ./Init/Lean/AuxRecursor.c ./Init/Lean/Class.c ./Init/Lean/Compiler/ClosedTermCache.c ./Init/Lean/Compiler/ConstFolding.c ./Init/Lean/Compiler/Default.c ./Init/Lean/Compiler/ExportAttr.c ./Init/Lean/Compiler/ExternAttr.c ./Init/Lean/Compiler/IR/Basic.c ./Init/Lean/Compiler/IR/Borrow.c ./Init/Lean/Compiler/IR/Boxing.c ./Init/Lean/Compiler/IR/Checker.c ./Init/Lean/Compiler/IR/CompilerM.c ./Init/Lean/Compiler/IR/CtorLayout.c ./Init/Lean/Compiler/IR/Default.c ./Init/Lean/Compiler/IR/ElimDeadBranches.c ./Init/Lean/Compiler/IR/ElimDeadVars.c ./Init/Lean/Compiler/IR/EmitC.c ./Init/Lean/Compiler/IR/EmitUtil.c ./Init/Lean/Compiler/IR/ExpandResetReuse.c ./Init/Lean/Compiler/IR/Format.c ./Init/Lean/Compiler/IR/FreeVars.c ./Init/Lean/Compiler/IR/LiveVars.c ./Init/Lean/Compiler/IR/NormIds.c ./Init/Lean/Compiler/IR/PushProj.c ./Init/Lean/Compiler/IR/RC.c ./Init/Lean/Compiler/IR/ResetReuse.c ./Init/Lean/Compiler/IR/SimpCase.c ./Init/Lean/Compiler/IR/UnboxResult.c ./Init/Lean/Compiler/ImplementedByAttr.c ./Init/Lean/Compiler/InitAttr.c ./Init/Lean/Compiler/InlineAttrs.c ./Init/Lean/Compiler/NameMangling.c ./Init/Lean/Compiler/NeverExtractAttr.c ./Init/Lean/Compiler/Specialize.c ./Init/Lean/Compiler/Util.c ./Init/Lean/Declaration.c ./Init/Lean/Default.c ./Init/Lean/Elaborator/Alias.c ./Init/Lean/Elaborator/Basic.c ./Init/Lean/Elaborator/Command.c ./Init/Lean/Elaborator/Default.c ./Init/Lean/Elaborator/ElabStrategyAttrs.c ./Init/Lean/Elaborator/PreTerm.c ./Init/Lean/Elaborator/ResolveName.c ./Init/Lean/Elaborator/Term.c ./Init/Lean/Environment.c ./Init/Lean/EqnCompiler/Default.c ./Init/Lean/EqnCompiler/MatchPattern.c ./Init/Lean/Expr.c ./Init/Lean/Format.c ./Init/Lean/KVMap.c ./Init/Lean/LBool.c ./Init/Lean/LOption.c ./Init/Lean/Level.c ./Init/Lean/LocalContext.c ./Init/Lean/Message.c ./Init/Lean/Meta.c ./Init/Lean/MetavarContext.c ./Init/Lean/Modifiers.c ./Init/Lean/MonadCache.c ./Init/Lean/Name.c ./Init/Lean/NameGenerator.c ./Init/Lean/Options.c ./Init/Lean/Parser/Command.c ./Init/Lean/Parser/Default.c ./Init/Lean/Parser/Identifier.c ./Init/Lean/Parser/Level.c ./Init/Lean/Parser/Module.c ./Init/Lean/Parser/Parser.c ./Init/Lean/Parser/Term.c ./Init/Lean/Parser/Transform.c ./Init/Lean/Parser/Trie.c ./Init/Lean/Path.c ./Init/Lean/Position.c ./Init/Lean/ProjFns.c ./Init/Lean/ReducibilityAttrs.c ./Init/Lean/Runtime.c ./Init/Lean/SMap.c ./Init/Lean/Scopes.c ./Init/Lean/Syntax.c ./Init/Lean/ToExpr.c ./Init/Lean/Trace.c ./Init/Lean/TypeClass/Basic.c ./Init/Lean/TypeClass/Context.c ./Init/Lean/TypeClass/Default.c ./Init/Lean/TypeClass/Synth.c ./Init/Lean/Util.c ./Init/Lean/WHNF.c ./Init/System/Default.c ./Init/System/FilePath.c ./Init/System/IO.c ./Init/System/Platform.c ./Init/Util.c ./Init/WF.c) +add_library (stage0 OBJECT ./Init/Coe.c ./Init/Control/Alternative.c ./Init/Control/Applicative.c ./Init/Control/Conditional.c ./Init/Control/Default.c ./Init/Control/EState.c ./Init/Control/Except.c ./Init/Control/Functor.c ./Init/Control/Id.c ./Init/Control/Lift.c ./Init/Control/Monad.c ./Init/Control/MonadFail.c ./Init/Control/Option.c ./Init/Control/Reader.c ./Init/Control/State.c ./Init/Core.c ./Init/Data/Array/Basic.c ./Init/Data/Array/BinSearch.c ./Init/Data/Array/Default.c ./Init/Data/Array/QSort.c ./Init/Data/AssocList.c ./Init/Data/Basic.c ./Init/Data/BinomialHeap/Basic.c ./Init/Data/BinomialHeap/Default.c ./Init/Data/ByteArray/Basic.c ./Init/Data/ByteArray/Default.c ./Init/Data/Char/Basic.c ./Init/Data/Char/Default.c ./Init/Data/DList.c ./Init/Data/Default.c ./Init/Data/Fin/Basic.c ./Init/Data/Fin/Default.c ./Init/Data/HashMap/Basic.c ./Init/Data/HashMap/Default.c ./Init/Data/HashSet.c ./Init/Data/Hashable.c ./Init/Data/Int/Basic.c ./Init/Data/Int/Default.c ./Init/Data/List/Basic.c ./Init/Data/List/BasicAux.c ./Init/Data/List/Control.c ./Init/Data/List/Default.c ./Init/Data/List/Instances.c ./Init/Data/Nat/Basic.c ./Init/Data/Nat/Bitwise.c ./Init/Data/Nat/Control.c ./Init/Data/Nat/Default.c ./Init/Data/Nat/Div.c ./Init/Data/Option/Basic.c ./Init/Data/Option/BasicAux.c ./Init/Data/Option/Default.c ./Init/Data/Option/Instances.c ./Init/Data/PersistentArray/Basic.c ./Init/Data/PersistentArray/Default.c ./Init/Data/PersistentHashMap/Basic.c ./Init/Data/PersistentHashMap/Default.c ./Init/Data/PersistentHashSet.c ./Init/Data/Queue/Basic.c ./Init/Data/Queue/Default.c ./Init/Data/RBMap/Basic.c ./Init/Data/RBMap/BasicAux.c ./Init/Data/RBMap/Default.c ./Init/Data/RBTree/Basic.c ./Init/Data/RBTree/Default.c ./Init/Data/Random.c ./Init/Data/Repr.c ./Init/Data/Stack/Basic.c ./Init/Data/Stack/Default.c ./Init/Data/String/Basic.c ./Init/Data/String/Default.c ./Init/Data/ToString.c ./Init/Data/UInt.c ./Init/Default.c ./Init/Fix.c ./Init/Lean/Attributes.c ./Init/Lean/AuxRecursor.c ./Init/Lean/Class.c ./Init/Lean/Compiler/ClosedTermCache.c ./Init/Lean/Compiler/ConstFolding.c ./Init/Lean/Compiler/Default.c ./Init/Lean/Compiler/ExportAttr.c ./Init/Lean/Compiler/ExternAttr.c ./Init/Lean/Compiler/IR/Basic.c ./Init/Lean/Compiler/IR/Borrow.c ./Init/Lean/Compiler/IR/Boxing.c ./Init/Lean/Compiler/IR/Checker.c ./Init/Lean/Compiler/IR/CompilerM.c ./Init/Lean/Compiler/IR/CtorLayout.c ./Init/Lean/Compiler/IR/Default.c ./Init/Lean/Compiler/IR/ElimDeadBranches.c ./Init/Lean/Compiler/IR/ElimDeadVars.c ./Init/Lean/Compiler/IR/EmitC.c ./Init/Lean/Compiler/IR/EmitUtil.c ./Init/Lean/Compiler/IR/ExpandResetReuse.c ./Init/Lean/Compiler/IR/Format.c ./Init/Lean/Compiler/IR/FreeVars.c ./Init/Lean/Compiler/IR/LiveVars.c ./Init/Lean/Compiler/IR/NormIds.c ./Init/Lean/Compiler/IR/PushProj.c ./Init/Lean/Compiler/IR/RC.c ./Init/Lean/Compiler/IR/ResetReuse.c ./Init/Lean/Compiler/IR/SimpCase.c ./Init/Lean/Compiler/IR/UnboxResult.c ./Init/Lean/Compiler/ImplementedByAttr.c ./Init/Lean/Compiler/InitAttr.c ./Init/Lean/Compiler/InlineAttrs.c ./Init/Lean/Compiler/NameMangling.c ./Init/Lean/Compiler/NeverExtractAttr.c ./Init/Lean/Compiler/Specialize.c ./Init/Lean/Compiler/Util.c ./Init/Lean/Declaration.c ./Init/Lean/Default.c ./Init/Lean/Elaborator/Alias.c ./Init/Lean/Elaborator/Basic.c ./Init/Lean/Elaborator/Command.c ./Init/Lean/Elaborator/Default.c ./Init/Lean/Elaborator/ElabStrategyAttrs.c ./Init/Lean/Elaborator/PreTerm.c ./Init/Lean/Elaborator/ResolveName.c ./Init/Lean/Elaborator/Term.c ./Init/Lean/Environment.c ./Init/Lean/EqnCompiler/Default.c ./Init/Lean/EqnCompiler/MatchPattern.c ./Init/Lean/Expr.c ./Init/Lean/Format.c ./Init/Lean/KVMap.c ./Init/Lean/LBool.c ./Init/Lean/LOption.c ./Init/Lean/Level.c ./Init/Lean/Linter.c ./Init/Lean/LocalContext.c ./Init/Lean/Message.c ./Init/Lean/Meta.c ./Init/Lean/MetavarContext.c ./Init/Lean/Modifiers.c ./Init/Lean/MonadCache.c ./Init/Lean/Name.c ./Init/Lean/NameGenerator.c ./Init/Lean/Options.c ./Init/Lean/Parser/Command.c ./Init/Lean/Parser/Default.c ./Init/Lean/Parser/Identifier.c ./Init/Lean/Parser/Level.c ./Init/Lean/Parser/Module.c ./Init/Lean/Parser/Parser.c ./Init/Lean/Parser/Term.c ./Init/Lean/Parser/Transform.c ./Init/Lean/Parser/Trie.c ./Init/Lean/Path.c ./Init/Lean/Position.c ./Init/Lean/ProjFns.c ./Init/Lean/ReducibilityAttrs.c ./Init/Lean/Runtime.c ./Init/Lean/SMap.c ./Init/Lean/Scopes.c ./Init/Lean/Syntax.c ./Init/Lean/ToExpr.c ./Init/Lean/Trace.c ./Init/Lean/TypeClass/Basic.c ./Init/Lean/TypeClass/Context.c ./Init/Lean/TypeClass/Default.c ./Init/Lean/TypeClass/Synth.c ./Init/Lean/Util.c ./Init/Lean/WHNF.c ./Init/System/Default.c ./Init/System/FilePath.c ./Init/System/IO.c ./Init/System/Platform.c ./Init/Util.c ./Init/WF.c) diff --git a/src/stage0/Init/Lean/Default.c b/src/stage0/Init/Lean/Default.c index fc53e0df04..6f9253e8a2 100644 --- a/src/stage0/Init/Lean/Default.c +++ b/src/stage0/Init/Lean/Default.c @@ -1,6 +1,6 @@ // Lean compiler output // Module: Init.Lean.Default -// Imports: Init.Lean.Path Init.Lean.Compiler.Default Init.Lean.Environment Init.Lean.Modifiers Init.Lean.ProjFns Init.Lean.Runtime Init.Lean.Attributes Init.Lean.Parser.Default Init.Lean.ReducibilityAttrs Init.Lean.Elaborator.Default Init.Lean.EqnCompiler.Default Init.Lean.Class Init.Lean.LocalContext Init.Lean.MetavarContext Init.Lean.TypeClass.Default Init.Lean.Trace Init.Lean.AuxRecursor +// Imports: Init.Lean.Path Init.Lean.Compiler.Default Init.Lean.Environment Init.Lean.Modifiers Init.Lean.ProjFns Init.Lean.Runtime Init.Lean.Attributes Init.Lean.Parser.Default Init.Lean.ReducibilityAttrs Init.Lean.Elaborator.Default Init.Lean.EqnCompiler.Default Init.Lean.Class Init.Lean.LocalContext Init.Lean.MetavarContext Init.Lean.TypeClass.Default Init.Lean.Trace Init.Lean.AuxRecursor Init.Lean.Linter #include "runtime/lean.h" #if defined(__clang__) #pragma clang diagnostic ignored "-Wunused-parameter" @@ -30,6 +30,7 @@ lean_object* initialize_Init_Lean_MetavarContext(lean_object*); lean_object* initialize_Init_Lean_TypeClass_Default(lean_object*); lean_object* initialize_Init_Lean_Trace(lean_object*); lean_object* initialize_Init_Lean_AuxRecursor(lean_object*); +lean_object* initialize_Init_Lean_Linter(lean_object*); static bool _G_initialized = false; lean_object* initialize_Init_Lean_Default(lean_object* w) { lean_object * res; @@ -86,6 +87,9 @@ lean_dec_ref(res); res = initialize_Init_Lean_AuxRecursor(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = initialize_Init_Lean_Linter(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); return lean_mk_io_result(lean_box(0)); } #ifdef __cplusplus diff --git a/src/stage0/Init/Lean/Expr.c b/src/stage0/Init/Lean/Expr.c index cbf3485586..ae438d96c2 100644 --- a/src/stage0/Init/Lean/Expr.c +++ b/src/stage0/Init/Lean/Expr.c @@ -65,6 +65,7 @@ size_t lean_expr_hash(lean_object*); lean_object* l_Lean_Expr_appFn_x21___boxed(lean_object*); extern lean_object* l_List_get_x21___main___rarg___closed__2; lean_object* l_Lean_Expr_updateLambda_x21___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Expr_hasLooseBVar___boxed(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Expr_5__mkAppRevRangeAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_panicWithPos___at_Lean_Expr_constLevels_x21___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_ExprStructEq_Hashable; @@ -117,6 +118,7 @@ lean_object* l___private_Init_Lean_Expr_4__withAppRevAux___main(lean_object*); lean_object* l_Lean_ExprStructEq_HasToString(lean_object*); lean_object* l_Lean_mkAppRev(lean_object*, lean_object*); lean_object* l_Lean_Expr_constLevels_x21(lean_object*); +uint8_t lean_expr_has_loose_bvar(lean_object*, lean_object*); lean_object* l_Lean_mkAppRange___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_updateMData_x21(lean_object*, lean_object*); lean_object* lean_expr_mk_fvar(lean_object*); @@ -2609,6 +2611,17 @@ x_3 = lean_box(x_2); return x_3; } } +lean_object* l_Lean_Expr_hasLooseBVar___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = lean_expr_has_loose_bvar(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +x_4 = lean_box(x_3); +return x_4; +} +} lean_object* l_Lean_Expr_instantiate___boxed(lean_object* x_1, lean_object* x_2) { _start: { @@ -3168,7 +3181,7 @@ lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); x_5 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_6 = lean_unsigned_to_nat(464u); +x_6 = lean_unsigned_to_nat(467u); x_7 = lean_unsigned_to_nat(16u); x_8 = l_Lean_Expr_appFn_x21___closed__1; x_9 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_5, x_6, x_7, x_8); @@ -3199,7 +3212,7 @@ lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_obj lean_dec(x_2); lean_dec(x_1); x_4 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_5 = lean_unsigned_to_nat(473u); +x_5 = lean_unsigned_to_nat(476u); x_6 = lean_unsigned_to_nat(16u); x_7 = l_Lean_Expr_constName_x21___closed__1; x_8 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_4, x_5, x_6, x_7); @@ -3238,7 +3251,7 @@ lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_obj lean_dec(x_2); lean_dec(x_1); x_4 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_5 = lean_unsigned_to_nat(482u); +x_5 = lean_unsigned_to_nat(485u); x_6 = lean_unsigned_to_nat(12u); x_7 = l_Lean_Expr_updateSort_x21___closed__1; x_8 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_4, x_5, x_6, x_7); @@ -3285,7 +3298,7 @@ lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_obj lean_dec(x_2); lean_dec(x_1); x_4 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_5 = lean_unsigned_to_nat(499u); +x_5 = lean_unsigned_to_nat(502u); x_6 = lean_unsigned_to_nat(15u); x_7 = l_Lean_Expr_updateMData_x21___closed__1; x_8 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_4, x_5, x_6, x_7); @@ -3316,7 +3329,7 @@ lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_obj lean_dec(x_2); lean_dec(x_1); x_4 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_5 = lean_unsigned_to_nat(504u); +x_5 = lean_unsigned_to_nat(507u); x_6 = lean_unsigned_to_nat(16u); x_7 = l_Lean_Expr_updateProj_x21___closed__1; x_8 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_4, x_5, x_6, x_7); @@ -3358,7 +3371,7 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); x_6 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_7 = lean_unsigned_to_nat(513u); +x_7 = lean_unsigned_to_nat(516u); x_8 = lean_unsigned_to_nat(22u); x_9 = l_Lean_Expr_updateForall_x21___closed__1; x_10 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_6, x_7, x_8, x_9); @@ -3393,7 +3406,7 @@ lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); x_6 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_7 = lean_unsigned_to_nat(518u); +x_7 = lean_unsigned_to_nat(521u); x_8 = lean_unsigned_to_nat(22u); x_9 = l_Lean_Expr_updateForall_x21___closed__1; x_10 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_6, x_7, x_8, x_9); @@ -3435,7 +3448,7 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); x_6 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_7 = lean_unsigned_to_nat(527u); +x_7 = lean_unsigned_to_nat(530u); x_8 = lean_unsigned_to_nat(18u); x_9 = l_Lean_Expr_updateLambda_x21___closed__1; x_10 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_6, x_7, x_8, x_9); @@ -3470,7 +3483,7 @@ lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); x_6 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_7 = lean_unsigned_to_nat(532u); +x_7 = lean_unsigned_to_nat(535u); x_8 = lean_unsigned_to_nat(18u); x_9 = l_Lean_Expr_updateLambda_x21___closed__1; x_10 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_6, x_7, x_8, x_9); @@ -3503,7 +3516,7 @@ lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); x_6 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_7 = lean_unsigned_to_nat(541u); +x_7 = lean_unsigned_to_nat(544u); x_8 = lean_unsigned_to_nat(18u); x_9 = l_Lean_Expr_letName_x21___closed__1; x_10 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_6, x_7, x_8, x_9); diff --git a/src/stage0/Init/Lean/Linter.c b/src/stage0/Init/Lean/Linter.c new file mode 100644 index 0000000000..6d890e9323 --- /dev/null +++ b/src/stage0/Init/Lean/Linter.c @@ -0,0 +1,106 @@ +// Lean compiler output +// Module: Init.Lean.Linter +// Imports: Init.System.IO Init.Lean.Attributes Init.Lean.Message Init.Lean.Syntax +#include "runtime/lean.h" +#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 +#ifdef __cplusplus +extern "C" { +#endif +extern lean_object* l_Array_empty___closed__1; +lean_object* lean_linters_ref; +lean_object* lean_io_ref_set(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_addLinter(lean_object*, lean_object*); +lean_object* l_Lean_mkLintersRef(lean_object*); +lean_object* lean_array_push(lean_object*, lean_object*); +lean_object* lean_io_mk_ref(lean_object*, lean_object*); +lean_object* lean_io_ref_get(lean_object*, lean_object*); +lean_object* l_Lean_mkLintersRef(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; +x_2 = l_Array_empty___closed__1; +x_3 = lean_io_mk_ref(x_2, x_1); +return x_3; +} +} +lean_object* l_Lean_addLinter(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; +x_3 = lean_linters_ref; +x_4 = lean_io_ref_get(x_3, x_2); +if (lean_obj_tag(x_4) == 0) +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; +x_5 = lean_ctor_get(x_4, 0); +lean_inc(x_5); +x_6 = lean_ctor_get(x_4, 1); +lean_inc(x_6); +lean_dec(x_4); +x_7 = lean_array_push(x_5, x_1); +x_8 = lean_io_ref_set(x_3, x_7, x_6); +return x_8; +} +else +{ +uint8_t x_9; +lean_dec(x_1); +x_9 = !lean_is_exclusive(x_4); +if (x_9 == 0) +{ +return x_4; +} +else +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = lean_ctor_get(x_4, 0); +x_11 = lean_ctor_get(x_4, 1); +lean_inc(x_11); +lean_inc(x_10); +lean_dec(x_4); +x_12 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_12, 0, x_10); +lean_ctor_set(x_12, 1, x_11); +return x_12; +} +} +} +} +lean_object* initialize_Init_System_IO(lean_object*); +lean_object* initialize_Init_Lean_Attributes(lean_object*); +lean_object* initialize_Init_Lean_Message(lean_object*); +lean_object* initialize_Init_Lean_Syntax(lean_object*); +static bool _G_initialized = false; +lean_object* initialize_Init_Lean_Linter(lean_object* w) { +lean_object * res; +if (_G_initialized) return lean_mk_io_result(lean_box(0)); +_G_initialized = true; +res = initialize_Init_System_IO(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Lean_Attributes(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Lean_Message(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Init_Lean_Syntax(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = l_Lean_mkLintersRef(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_linters_ref = lean_io_result_get_value(res); +lean_mark_persistent(lean_linters_ref); +lean_dec_ref(res); +return lean_mk_io_result(lean_box(0)); +} +#ifdef __cplusplus +} +#endif diff --git a/src/stage0/Init/Lean/LocalContext.c b/src/stage0/Init/Lean/LocalContext.c index 08a701e959..f0b6cf4cd5 100644 --- a/src/stage0/Init/Lean/LocalContext.c +++ b/src/stage0/Init/Lean/LocalContext.c @@ -148,6 +148,7 @@ lean_object* l_Array_anyMAux___main___at_Lean_LocalContext_anyM___spec__4___rarg lean_object* l___private_Init_Lean_LocalContext_1__popTailNoneAux(lean_object*); lean_object* l_PersistentHashMap_erase___at_Lean_LocalContext_erase___spec__1(lean_object*, lean_object*); lean_object* l_PersistentHashMap_insert___at_Lean_LocalContext_mkLocalDecl___spec__1(lean_object*, lean_object*, lean_object*); +uint8_t lean_expr_has_loose_bvar(lean_object*, lean_object*); lean_object* lean_expr_mk_fvar(lean_object*); lean_object* lean_local_ctx_mk_local_decl(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t); lean_object* l_PersistentArray_set___rarg(lean_object*, lean_object*, lean_object*); @@ -6931,7 +6932,7 @@ if (lean_obj_tag(x_12) == 0) lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_dec(x_5); x_13 = l_Lean_LocalDecl_value___closed__1; -x_14 = lean_unsigned_to_nat(256u); +x_14 = lean_unsigned_to_nat(259u); x_15 = lean_unsigned_to_nat(12u); x_16 = l_Nat_foldRevAux___main___at_Lean_LocalContext_mkBinding___spec__1___closed__1; x_17 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_13, x_14, x_15, x_16); @@ -6975,7 +6976,7 @@ goto _start; } else { -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; +lean_object* x_28; lean_object* x_29; lean_object* x_30; uint8_t x_31; x_28 = lean_ctor_get(x_19, 2); lean_inc(x_28); x_29 = lean_ctor_get(x_19, 3); @@ -6983,15 +6984,28 @@ lean_inc(x_29); x_30 = lean_ctor_get(x_19, 4); lean_inc(x_30); lean_dec(x_19); -x_31 = lean_expr_abstract_range(x_29, x_9, x_3); -lean_dec(x_29); -x_32 = lean_expr_abstract_range(x_30, x_9, x_3); +x_31 = lean_expr_has_loose_bvar(x_5, x_6); +if (x_31 == 0) +{ lean_dec(x_30); -x_33 = lean_expr_mk_let(x_28, x_31, x_32, x_5); +lean_dec(x_29); +lean_dec(x_28); x_4 = x_9; -x_5 = x_33; goto _start; } +else +{ +lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_33 = lean_expr_abstract_range(x_29, x_9, x_3); +lean_dec(x_29); +x_34 = lean_expr_abstract_range(x_30, x_9, x_3); +lean_dec(x_30); +x_35 = lean_expr_mk_let(x_28, x_33, x_34, x_5); +x_4 = x_9; +x_5 = x_35; +goto _start; +} +} } } else @@ -7057,7 +7071,7 @@ if (lean_obj_tag(x_11) == 0) lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_dec(x_4); x_12 = l_Lean_LocalDecl_value___closed__1; -x_13 = lean_unsigned_to_nat(256u); +x_13 = lean_unsigned_to_nat(259u); x_14 = lean_unsigned_to_nat(12u); x_15 = l_Nat_foldRevAux___main___at_Lean_LocalContext_mkBinding___spec__1___closed__1; x_16 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_12, x_13, x_14, x_15); @@ -7089,7 +7103,7 @@ goto _start; } else { -lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; +lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; x_25 = lean_ctor_get(x_18, 2); lean_inc(x_25); x_26 = lean_ctor_get(x_18, 3); @@ -7097,15 +7111,28 @@ lean_inc(x_26); x_27 = lean_ctor_get(x_18, 4); lean_inc(x_27); lean_dec(x_18); -x_28 = lean_expr_abstract_range(x_26, x_8, x_2); -lean_dec(x_26); -x_29 = lean_expr_abstract_range(x_27, x_8, x_2); +x_28 = lean_expr_has_loose_bvar(x_4, x_5); +if (x_28 == 0) +{ lean_dec(x_27); -x_30 = lean_expr_mk_let(x_25, x_28, x_29, x_4); +lean_dec(x_26); +lean_dec(x_25); x_3 = x_8; -x_4 = x_30; goto _start; } +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_expr_abstract_range(x_26, x_8, x_2); +lean_dec(x_26); +x_31 = lean_expr_abstract_range(x_27, x_8, x_2); +lean_dec(x_27); +x_32 = lean_expr_mk_let(x_25, x_30, x_31, x_4); +x_3 = x_8; +x_4 = x_32; +goto _start; +} +} } } else @@ -7167,7 +7194,7 @@ if (lean_obj_tag(x_11) == 0) lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_dec(x_4); x_12 = l_Lean_LocalDecl_value___closed__1; -x_13 = lean_unsigned_to_nat(256u); +x_13 = lean_unsigned_to_nat(259u); x_14 = lean_unsigned_to_nat(12u); x_15 = l_Nat_foldRevAux___main___at_Lean_LocalContext_mkBinding___spec__1___closed__1; x_16 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_12, x_13, x_14, x_15); @@ -7199,7 +7226,7 @@ goto _start; } else { -lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; +lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; x_25 = lean_ctor_get(x_18, 2); lean_inc(x_25); x_26 = lean_ctor_get(x_18, 3); @@ -7207,15 +7234,28 @@ lean_inc(x_26); x_27 = lean_ctor_get(x_18, 4); lean_inc(x_27); lean_dec(x_18); -x_28 = lean_expr_abstract_range(x_26, x_8, x_2); -lean_dec(x_26); -x_29 = lean_expr_abstract_range(x_27, x_8, x_2); +x_28 = lean_expr_has_loose_bvar(x_4, x_5); +if (x_28 == 0) +{ lean_dec(x_27); -x_30 = lean_expr_mk_let(x_25, x_28, x_29, x_4); +lean_dec(x_26); +lean_dec(x_25); x_3 = x_8; -x_4 = x_30; goto _start; } +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_expr_abstract_range(x_26, x_8, x_2); +lean_dec(x_26); +x_31 = lean_expr_abstract_range(x_27, x_8, x_2); +lean_dec(x_27); +x_32 = lean_expr_mk_let(x_25, x_30, x_31, x_4); +x_3 = x_8; +x_4 = x_32; +goto _start; +} +} } } else diff --git a/src/stage0/Init/Lean/Meta.c b/src/stage0/Init/Lean/Meta.c index 66e4b6f4eb..7c1a958345 100644 --- a/src/stage0/Init/Lean/Meta.c +++ b/src/stage0/Init/Lean/Meta.c @@ -14,67 +14,70 @@ extern "C" { #endif uint8_t l_Lean_isReducible(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_37__inferMVarType___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__9___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_18__isAuxDef_x3f___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_33__withLocalDecl___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_40__inferTypeAux___main___closed__2; +lean_object* l_PersistentHashMap_findAtAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__11(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_ConstantInfo_name(lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__3___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_9__deltaBetaDefinition___at___private_Init_Lean_Meta_22__whnfAux___main___spec__26(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_3__getEnv(lean_object*); -lean_object* l___private_Init_Lean_Meta_32__inferForallType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_8__deltaDefinition___at___private_Init_Lean_Meta_22__whnfAux___main___spec__12(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_9__deltaBetaDefinition___at___private_Init_Lean_Meta_22__whnfAux___main___spec__13(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_PersistentHashMap_findAtAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_30__inferProjType___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_33__withLocalDecl(lean_object*); -lean_object* l___private_Init_Lean_Meta_37__inferTypeAux___main___closed__2; +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main(lean_object*); size_t l_USize_mul(size_t, size_t); lean_object* l_Lean_Expr_betaRev(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Meta_21__cacheWHNF___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_whnfEasyCases___main___at___private_Init_Lean_Meta_22__whnfAux___main___spec__21(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_expr_mk_sort(lean_object*); lean_object* l_PersistentHashMap_findAtAux___main___at___private_Init_Lean_Meta_20__getCachedWHNF___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_24__forallTelescopeAux___main___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_11__getOptions___boxed(lean_object*, lean_object*); extern lean_object* l_Array_empty___closed__1; lean_object* lean_nat_sub(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_31__getLevel___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__5(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Expr_3__getAppRevArgsAux___main(lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_9__deltaBetaDefinition___at___private_Init_Lean_Meta_22__whnfAux___main___spec__30(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); -lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__10(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_30__inferProjType___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__9(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_31__inferAppType___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_24__isClassQuick(lean_object*, lean_object*, lean_object*); lean_object* lean_mk_array(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_3__getEnv___rarg(lean_object*); size_t lean_expr_hash(lean_object*); uint8_t l_Array_anyMAux___main___at___private_Init_Lean_WHNF_5__toCtorWhenK___spec__1(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_24__forallTelescopeAux___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_35__inferForallType___spec__2___closed__1; lean_object* l___private_Init_Lean_Meta_9__reduceReducibleOnly_x3f___boxed(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_15__assignExprMVar(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_monadInhabited___rarg(lean_object*, lean_object*); lean_object* l_List_lengthAux___main___rarg(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_37__inferTypeAux(lean_object*, lean_object*, lean_object*, lean_object*); size_t l_USize_shift__right(size_t, size_t); -lean_object* l___private_Init_Lean_Meta_36__checkInferTypeCache(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_whnfEasyCases___main___at___private_Init_Lean_Meta_22__whnfAux___main___spec__9___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_smartUnfoldingSuffix; +lean_object* l_PersistentHashMap_findAtAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_byUnfoldingReducibleOnly___rarg(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_7__mkFreshId(lean_object*); lean_object* l___private_Init_Lean_Meta_8__reduceAll_x3f(lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_5__toCtorWhenK___at___private_Init_Lean_Meta_22__whnfAux___main___spec__20(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_20__getCachedWHNF___spec__2(lean_object*, size_t, lean_object*); +lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_9__deltaBetaDefinition___at___private_Init_Lean_Meta_22__whnfAux___main___spec__31(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_9__deltaBetaDefinition___at___private_Init_Lean_Meta_22__whnfAux___main___spec__27(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_whnfEasyCases___main___at___private_Init_Lean_Meta_22__whnfAux___main___spec__9___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_panicWithPos___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_reduceRec___at___private_Init_Lean_Meta_22__whnfAux___main___spec__5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_isRecStuck___at___private_Init_Lean_Meta_22__whnfAux___main___spec__25(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_PersistentHashMap_find___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Meta_TransparencyMode_beq___boxed(lean_object*, lean_object*); lean_object* l_panicWithPos___at___private_Init_Lean_Meta_22__whnfAux___main___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_35__inferForallType___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_40__inferTypeAux___main___closed__1; lean_object* l_Lean_isQuotRecStuck___at___private_Init_Lean_Meta_22__whnfAux___main___spec__24(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_35__inferForallType___spec__4___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Expr_1__mkAppRangeAux___main(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Prod_Hashable___rarg___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_26__isClassExpensive(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_2__getMCtx___rarg(lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_PersistentHashMap_find___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__1___boxed(lean_object*, lean_object*); uint8_t l_Lean_TagDeclarationExtension_isTagged(lean_object*, lean_object*, lean_object*); lean_object* lean_level_mk_mvar(lean_object*); lean_object* l___private_Init_Lean_Meta_12__isReadOnlyOrSyntheticMVar(lean_object*, lean_object*, lean_object*); @@ -82,29 +85,32 @@ lean_object* lean_expr_instantiate_rev_range(lean_object*, lean_object*, lean_ob lean_object* l_Lean_whnfEasyCases___main___at___private_Init_Lean_Meta_22__whnfAux___main___spec__21___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_expr_mk_app(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_12__isReadOnlyOrSyntheticMVar___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_24__forallTelescopeAux___main___at___private_Init_Lean_Meta_26__isClassExpensive___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_4__throwEx(lean_object*); +lean_object* l_ReaderT_bind___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__1(lean_object*, lean_object*); uint8_t l_Lean_Meta_TransparencyMode_Inhabited; +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances(lean_object*); size_t l_USize_sub(size_t, size_t); +lean_object* l___private_Init_Lean_Meta_28__forallTelescopeAux___at_Lean_Meta_forallTelescope___spec__1(lean_object*); lean_object* lean_expr_instantiate1(lean_object*, lean_object*); lean_object* l_PersistentHashMap_find___at___private_Init_Lean_Meta_20__getCachedWHNF___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Expr_getAppFn___main(lean_object*); lean_object* l___private_Init_Lean_Meta_6__whenDebugging(lean_object*); lean_object* l___private_Init_Lean_WHNF_5__toCtorWhenK___at___private_Init_Lean_Meta_22__whnfAux___main___spec__6___closed__1; uint8_t l_Lean_Expr_hasLooseBVars(lean_object*); -lean_object* l___private_Init_Lean_Meta_28__inferAppType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_38__inferFVarType(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_34__getLevel___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__4(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_3__toCtorIfLit(lean_object*); lean_object* l___private_Init_Lean_Meta_22__whnfAux___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l___private_Init_Lean_WHNF_6__isIdRhsApp(lean_object*); lean_object* l___private_Init_Lean_WHNF_4__getRecRuleFor(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_24__forallTelescopeAux___main(lean_object*); lean_object* l_Lean_Literal_type(lean_object*); lean_object* l_Lean_reduceQuotRec___at___private_Init_Lean_Meta_22__whnfAux___main___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_getAppNumArgsAux___main(lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_9__deltaBetaDefinition___at___private_Init_Lean_Meta_22__whnfAux___main___spec__32(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_13__isExprAssigned___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_metavar_ctx_get_expr_assignment(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_33__withLocalDecl___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_15__assignExprMVar___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_getCollisionNodeSize___rarg(lean_object*); lean_object* l_Lean_reduceRec___at___private_Init_Lean_Meta_22__whnfAux___main___spec__19(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -115,174 +121,201 @@ lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* l_Lean_Meta_tracer___closed__2; extern lean_object* l_Lean_noConfusionExt; lean_object* l_PersistentHashMap_insert___at___private_Init_Lean_Meta_21__cacheWHNF___spec__1___closed__1; +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_panicWithPos___at___private_Init_Lean_Meta_22__whnfAux___main___spec__22(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_7__extractIdRhs(lean_object*); lean_object* l_panicWithPos___at___private_Init_Lean_Meta_22__whnfAux___main___spec__10___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_10__getTransparency___boxed(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_25__isClassQuick(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_ConstantInfo_lparams(lean_object*); -lean_object* l___private_Init_Lean_Meta_25__isClassQuick___main___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at_Lean_Meta_forallTelescope___spec__3(lean_object*); +lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_33__inferProjType___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at_Lean_Meta_forallTelescope___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_25__resettingTypeClassCache(lean_object*); +lean_object* l___private_Init_Lean_Meta_25__resettingTypeClassCache___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Nat_repr(lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__7(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__7(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_33__inferProjType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_mkCollisionNode___rarg(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_30__inferProjType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_instantiateMVars___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_32__inferForallType___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_11__getOptions(lean_object*, lean_object*); lean_object* l_Lean_Meta_isReducible___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_expr_mk_proj(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_MetaM_inhabited___boxed(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_panicWithPos___rarg___closed__3; lean_object* lean_expr_mk_const(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_mkApp___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_24__forallTelescopeAux(lean_object*); +lean_object* l___private_Init_Lean_Meta_36__withLocalDecl(lean_object*); lean_object* l_Lean_Meta_tracer___lambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_ReaderT_Monad___rarg(lean_object*); lean_object* l_Lean_isRecStuck___at___private_Init_Lean_Meta_22__whnfAux___main___spec__25___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_expr_eqv(lean_object*, lean_object*); lean_object* l_Lean_Meta_forallTelescope___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_35__inferFVarType(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_28__forallTelescopeAux(lean_object*); lean_object* l___private_Init_Lean_WHNF_9__deltaBetaDefinition___at___private_Init_Lean_Meta_22__whnfAux___main___spec__29(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_1__getLCtx(lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_5__toCtorWhenK___at___private_Init_Lean_Meta_22__whnfAux___main___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_2__mkNullaryCtor___at___private_Init_Lean_Meta_22__whnfAux___main___spec__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_25__isClassQuick___main(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_36__withLocalDecl___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Exception_inhabited; +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_35__inferForallType___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_unreachable_x21___rarg___closed__1; lean_object* lean_string_append(lean_object*, lean_object*); -lean_object* l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_26__isClassExpensive___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_9__deltaBetaDefinition___at___private_Init_Lean_Meta_22__whnfAux___main___spec__17___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_9__deltaBetaDefinition___at___private_Init_Lean_Meta_22__whnfAux___main___spec__28(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_21__cacheWHNF___spec__2(lean_object*, size_t, size_t, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_21__cacheWHNF___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_24__forallTelescopeAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__8(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_23__withCacheScope___rarg(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_5__throwBug___rarg(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_22__whnfAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t l_USize_add(size_t, size_t); +lean_object* l___private_Init_Lean_Meta_32__inferConstType___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_find___at___private_Init_Lean_Meta_20__getCachedWHNF___spec__1___boxed(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_35__inferForallType___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_panicWithPos___at___private_Init_Lean_Meta_22__whnfAux___main___spec__2___closed__2; uint8_t l_Lean_Expr_isForall(lean_object*); -lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__5(lean_object*, size_t, size_t, lean_object*, lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); -lean_object* l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__2(lean_object*, size_t, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at_Lean_Meta_forallTelescope___spec__3___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_1__getFirstCtor___at___private_Init_Lean_Meta_22__whnfAux___main___spec__8(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_PersistentHashMap_find___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__1(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_31__getLevel___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__4(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_32__inferForallType___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_4__throwEx___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_isClassQuickConst(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_8__reduceAll_x3f___boxed(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_29__isClassExpensive(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__9(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_9__deltaBetaDefinition___at___private_Init_Lean_Meta_22__whnfAux___main___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_10__whnfCoreUnstuck___main___at___private_Init_Lean_Meta_22__whnfAux___main___spec__15(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_31__getLevel(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_reduceQuotRec___at___private_Init_Lean_Meta_22__whnfAux___main___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_29__inferConstType(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_name_mk_string(lean_object*, lean_object*); lean_object* l_Lean_reduceRec___at___private_Init_Lean_Meta_22__whnfAux___main___spec__19___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_instantiate_value_lparams(lean_object*, lean_object*); +lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_33__inferProjType___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_31__inferAppType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_35__inferForallType___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_16__getTraceState___boxed(lean_object*); lean_object* l___private_Init_Lean_Meta_13__isExprAssigned(lean_object*, lean_object*, lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); +lean_object* l_Lean_Meta_byUnfoldingReducibleOnly(lean_object*); lean_object* l___private_Init_Lean_Meta_7__mkFreshId___boxed(lean_object*); -lean_object* l___private_Init_Lean_Meta_29__inferConstType___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_metavar_ctx_assign_expr(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Expr_2__getAppArgsAux___main(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); -lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_27__getForallResultType___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_RecursorVal_getInduct(lean_object*); lean_object* l___private_Init_Lean_Meta_7__mkFreshId___rarg(lean_object*); +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at_Lean_Meta_forallTelescope___spec__2(lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_32__inferConstType(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_PersistentHashMap_find___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__1(lean_object*, lean_object*); extern lean_object* l_panicWithPos___rarg___closed__1; extern lean_object* l_unreachable_x21___rarg___closed__2; lean_object* l___private_Init_Lean_Meta_9__reduceReducibleOnly_x3f(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_35__inferForallType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_tracer; -lean_object* l___private_Init_Lean_Meta_24__forallTelescopeAux___main___at___private_Init_Lean_Meta_32__inferForallType___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_level_mk_imax(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_35__inferForallType___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__3(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_39__checkInferTypeCache(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_panicWithPos___at___private_Init_Lean_Meta_22__whnfAux___main___spec__22___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_40__inferTypeAux(lean_object*, lean_object*, lean_object*, lean_object*); extern size_t l_PersistentHashMap_insertAux___main___rarg___closed__2; +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__2___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_17__getConst___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_MetavarContext_instantiateMVars(lean_object*, lean_object*); lean_object* l_Lean_RecursorVal_getMajorIdx(lean_object*); lean_object* l_Lean_whnfEasyCases___main___at___private_Init_Lean_Meta_22__whnfAux___main___spec__21___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_9__deltaBetaDefinition___at___private_Init_Lean_Meta_22__whnfAux___main___spec__17(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__2___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_20__getCachedWHNF___spec__2___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_9__deltaBetaDefinition___at___private_Init_Lean_Meta_22__whnfAux___main___spec__14(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Expr_fvarId_x21(lean_object*); +lean_object* l___private_Init_Lean_Meta_37__inferMVarType(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Expr_inhabited; lean_object* l_Lean_Meta_isClass(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_LocalDecl_type(lean_object*); lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_21__cacheWHNF___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_2__getMCtx(lean_object*); -lean_object* l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__7(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_27__getForallResultType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__10___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_instantiate_lparams(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_whnfEasyCases___main___at___private_Init_Lean_Meta_22__whnfAux___main___spec__9(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_37__inferTypeAux___main___closed__1; +lean_object* l___private_Init_Lean_Meta_36__withLocalDecl___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Meta_TransparencyMode_beq(uint8_t, uint8_t); lean_object* lean_level_mk_succ(lean_object*); lean_object* l_Array_shrink___main___rarg(lean_object*, lean_object*); lean_object* l_panic(lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_insert___at___private_Init_Lean_Meta_21__cacheWHNF___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Meta_21__cacheWHNF___spec__3(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at_Lean_Meta_forallTelescope___spec__3___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_whnfCore___main___at___private_Init_Lean_Meta_22__whnfAux___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__2(lean_object*); lean_object* l___private_Init_Lean_Meta_2__getMCtx___boxed(lean_object*); lean_object* lean_instantiate_type_lparams(lean_object*, lean_object*); lean_object* l_panicWithPos___at___private_Init_Lean_Meta_22__whnfAux___main___spec__10(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__3___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_name_mk_numeral(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_25__isClassQuick___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_34__getLevel(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_reduceQuotRec___at___private_Init_Lean_Meta_22__whnfAux___main___spec__18(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_environment_find(lean_object*, lean_object*); size_t lean_usize_mix_hash(size_t, size_t); lean_object* l_Lean_Meta_tracer___closed__1; lean_object* l_Lean_Meta_forallTelescope(lean_object*); uint8_t lean_is_class(lean_object*, lean_object*); +lean_object* l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__2(lean_object*, size_t, lean_object*); +lean_object* l___private_Init_Lean_Meta_34__getLevel___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__5(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__9___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_whnfEasyCases___main___at___private_Init_Lean_Meta_22__whnfAux___main___spec__9___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_23__withCacheScope(lean_object*); -lean_object* l_PersistentHashMap_insert___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__4(lean_object*, lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__6(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_PersistentHashMap_insert___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__4(lean_object*, lean_object*, lean_object*); +lean_object* l_panicWithPos___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_3__getEnv___boxed(lean_object*); lean_object* l___private_Init_Lean_Meta_1__getLCtx___boxed(lean_object*, lean_object*); extern lean_object* l_PersistentHashMap_insertAux___main___rarg___closed__3; +lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__11___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); lean_object* l_Lean_LocalDecl_valueOpt(lean_object*); +lean_object* l___private_Init_Lean_Meta_24__isClassQuick___main___boxed(lean_object*, lean_object*, lean_object*); extern lean_object* l_EIO_Monad___closed__1; -lean_object* l___private_Init_Lean_Meta_32__inferForallType___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__3(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_insert___at___private_Init_Lean_Meta_21__cacheWHNF___spec__1___closed__2; uint8_t lean_metavar_ctx_is_expr_assigned(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_5__throwBug___rarg___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); +lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__6(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_local_ctx_find(lean_object*, lean_object*); +lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__5(lean_object*, size_t, size_t, lean_object*, lean_object*); uint8_t l_Lean_Expr_isConstOf(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_18__isAuxDef_x3f(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_16__getTraceState___rarg(lean_object*); lean_object* l_Lean_Expr_getRevArgD___main(lean_object*, lean_object*, lean_object*); lean_object* lean_metavar_ctx_find_decl(lean_object*, lean_object*); lean_object* l_Lean_Meta_tracer___closed__4; +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at___private_Init_Lean_Meta_35__inferForallType___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_panicWithPos___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_5__throwBug(lean_object*); lean_object* l___private_Init_Lean_Meta_20__getCachedWHNF___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_PersistentHashMap_findAtAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_tracer___lambda__1___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__2___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at_Lean_Meta_forallTelescope___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_reduceRec___at___private_Init_Lean_Meta_22__whnfAux___main___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_MetaM_inhabited(lean_object*, lean_object*); lean_object* l_Lean_Meta_TransparencyMode_Hashable___closed__1; +lean_object* l___private_Init_Lean_Meta_28__forallTelescopeAux___at_Lean_Meta_forallTelescope___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Expr_inhabited___closed__1; -lean_object* l___private_Init_Lean_Meta_37__inferTypeAux___main(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_34__inferMVarType(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_30__getForallResultType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Meta_21__cacheWHNF___spec__4(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_whnfEasyCases___main___at___private_Init_Lean_Meta_22__whnfAux___main___spec__33(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_updateFn___main(lean_object*, lean_object*); +lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_30__getForallResultType___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_23__savingCache___rarg(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_WHNF_2__mkNullaryCtor___at___private_Init_Lean_Meta_22__whnfAux___main___spec__7(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_24__isClassQuick___main(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_TransparencyMode_hash___boxed(lean_object*); uint8_t l_USize_decLe(size_t, size_t); lean_object* l_Lean_whnfCore___main___at___private_Init_Lean_Meta_22__whnfAux___main___spec__16(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__8(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_panicWithPos___rarg___closed__2; extern lean_object* l_Lean_Expr_HasBeq; lean_object* l___private_Init_Lean_WHNF_9__deltaBetaDefinition___at___private_Init_Lean_Meta_22__whnfAux___main___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_reduceQuotRec___at___private_Init_Lean_Meta_22__whnfAux___main___spec__18___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_panicWithPos___at___private_Init_Lean_Meta_22__whnfAux___main___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_6__whenDebugging___rarg(lean_object*, lean_object*, lean_object*); @@ -292,6 +325,9 @@ extern lean_object* l_Lean_Expr_Hashable; lean_object* l_Prod_HasBeq___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_tracer___closed__3; +lean_object* l___private_Init_Lean_Meta_24__isClassQuick___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux(lean_object*); +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main(lean_object*); lean_object* l_Lean_isQuotRecStuck___at___private_Init_Lean_Meta_22__whnfAux___main___spec__24___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_14__getMVarAssignment___boxed(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_17__getConst(lean_object*, lean_object*, lean_object*); @@ -299,35 +335,37 @@ size_t l_Lean_Meta_TransparencyMode_hash(uint8_t); lean_object* l_Lean_unfoldDefinition___at___private_Init_Lean_Meta_22__whnfAux___main___spec__11(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t l_USize_land(size_t, size_t); lean_object* l_Lean_Meta_isClassQuickConst___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_27__getForallResultType___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_TransparencyMode_HasBeq; lean_object* l_Lean_Meta_TransparencyMode_Hashable; lean_object* lean_usize_to_nat(size_t); lean_object* l_Lean_Meta_TransparencyMode_HasBeq___closed__1; -lean_object* l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_32__inferForallType___spec__2___closed__1; +lean_object* l___private_Init_Lean_Meta_29__isClassExpensive___main(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Exception_inhabited___closed__1; lean_object* l_Lean_getStuckMVar___main___at___private_Init_Lean_Meta_22__whnfAux___main___spec__23(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_4__throwEx___rarg___boxed(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_19__getLocalDecl(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_whnfEasyCases___main___at___private_Init_Lean_Meta_22__whnfAux___main___spec__21___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_panicWithPos___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__1___closed__1; +lean_object* l_ReaderT_bind___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_23__savingCache(lean_object*); lean_object* l_Lean_Meta_isReducible(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_16__getTraceState(lean_object*); -lean_object* l___private_Init_Lean_Meta_28__inferAppType___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_panicWithPos___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__1___closed__1; +lean_object* l___private_Init_Lean_Meta_33__inferProjType___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__10(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__7(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_40__inferTypeAux___main(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_findAtAux___main___at___private_Init_Lean_Meta_20__getCachedWHNF___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Meta_34__inferMVarType___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_panicWithPos___at___private_Init_Lean_Meta_22__whnfAux___main___spec__2___closed__1; +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_35__inferForallType___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_21__cacheWHNF(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_MetaM_inhabited___rarg(lean_object*); lean_object* l_Lean_Meta_instantiateMVars(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_32__inferForallType___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Meta_28__forallTelescopeAux___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_14__getMVarAssignment(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Meta_20__getCachedWHNF(lean_object*, lean_object*, lean_object*); uint8_t lean_expr_has_level_mvar(lean_object*); +lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_30__getForallResultType___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Expr_isLambda(lean_object*); extern lean_object* l_String_splitAux___main___closed__1; -lean_object* l_panicWithPos___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_30__inferProjType___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t _init_l_Lean_Meta_TransparencyMode_Inhabited() { _start: { @@ -1001,6 +1039,99 @@ lean_dec(x_2); return x_4; } } +lean_object* l_Lean_Meta_byUnfoldingReducibleOnly___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; +x_4 = !lean_is_exclusive(x_2); +if (x_4 == 0) +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_ctor_get(x_2, 0); +x_6 = !lean_is_exclusive(x_5); +if (x_6 == 0) +{ +uint8_t x_7; lean_object* x_8; +x_7 = 2; +lean_ctor_set_uint8(x_5, sizeof(void*)*1 + 4, x_7); +x_8 = lean_apply_2(x_1, x_2, x_3); +return x_8; +} +else +{ +lean_object* x_9; uint8_t x_10; uint8_t x_11; uint8_t x_12; uint8_t x_13; uint8_t x_14; lean_object* x_15; lean_object* x_16; +x_9 = lean_ctor_get(x_5, 0); +x_10 = lean_ctor_get_uint8(x_5, sizeof(void*)*1); +x_11 = lean_ctor_get_uint8(x_5, sizeof(void*)*1 + 1); +x_12 = lean_ctor_get_uint8(x_5, sizeof(void*)*1 + 2); +x_13 = lean_ctor_get_uint8(x_5, sizeof(void*)*1 + 3); +lean_inc(x_9); +lean_dec(x_5); +x_14 = 2; +x_15 = lean_alloc_ctor(0, 1, 5); +lean_ctor_set(x_15, 0, x_9); +lean_ctor_set_uint8(x_15, sizeof(void*)*1, x_10); +lean_ctor_set_uint8(x_15, sizeof(void*)*1 + 1, x_11); +lean_ctor_set_uint8(x_15, sizeof(void*)*1 + 2, x_12); +lean_ctor_set_uint8(x_15, sizeof(void*)*1 + 3, x_13); +lean_ctor_set_uint8(x_15, sizeof(void*)*1 + 4, x_14); +lean_ctor_set(x_2, 0, x_15); +x_16 = lean_apply_2(x_1, x_2, x_3); +return x_16; +} +} +else +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; uint8_t x_22; uint8_t x_23; uint8_t x_24; lean_object* x_25; uint8_t x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_17 = lean_ctor_get(x_2, 0); +x_18 = lean_ctor_get(x_2, 1); +x_19 = lean_ctor_get(x_2, 2); +lean_inc(x_19); +lean_inc(x_18); +lean_inc(x_17); +lean_dec(x_2); +x_20 = lean_ctor_get(x_17, 0); +lean_inc(x_20); +x_21 = lean_ctor_get_uint8(x_17, sizeof(void*)*1); +x_22 = lean_ctor_get_uint8(x_17, sizeof(void*)*1 + 1); +x_23 = lean_ctor_get_uint8(x_17, sizeof(void*)*1 + 2); +x_24 = lean_ctor_get_uint8(x_17, sizeof(void*)*1 + 3); +if (lean_is_exclusive(x_17)) { + lean_ctor_release(x_17, 0); + x_25 = x_17; +} else { + lean_dec_ref(x_17); + x_25 = lean_box(0); +} +x_26 = 2; +if (lean_is_scalar(x_25)) { + x_27 = lean_alloc_ctor(0, 1, 5); +} else { + x_27 = x_25; +} +lean_ctor_set(x_27, 0, x_20); +lean_ctor_set_uint8(x_27, sizeof(void*)*1, x_21); +lean_ctor_set_uint8(x_27, sizeof(void*)*1 + 1, x_22); +lean_ctor_set_uint8(x_27, sizeof(void*)*1 + 2, x_23); +lean_ctor_set_uint8(x_27, sizeof(void*)*1 + 3, x_24); +lean_ctor_set_uint8(x_27, sizeof(void*)*1 + 4, x_26); +x_28 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_18); +lean_ctor_set(x_28, 2, x_19); +x_29 = lean_apply_2(x_1, x_28, x_3); +return x_29; +} +} +} +lean_object* l_Lean_Meta_byUnfoldingReducibleOnly(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_byUnfoldingReducibleOnly___rarg), 3, 0); +return x_2; +} +} lean_object* l___private_Init_Lean_Meta_12__isReadOnlyOrSyntheticMVar(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { @@ -14253,7 +14384,7 @@ x_7 = l_Lean_whnfEasyCases___main___at___private_Init_Lean_Meta_22__whnfAux___ma return x_7; } } -lean_object* l___private_Init_Lean_Meta_23__withCacheScope___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Meta_23__savingCache___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; @@ -14440,489 +14571,11 @@ return x_45; } } } -lean_object* l___private_Init_Lean_Meta_23__withCacheScope(lean_object* x_1) { +lean_object* l___private_Init_Lean_Meta_23__savingCache(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_23__withCacheScope___rarg), 3, 0); -return x_2; -} -} -lean_object* l___private_Init_Lean_Meta_24__forallTelescopeAux___main___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { -_start: -{ -lean_object* x_9; -if (lean_obj_tag(x_6) == 7) -{ -lean_object* x_38; uint8_t x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; -x_38 = lean_ctor_get(x_6, 0); -lean_inc(x_38); -x_39 = lean_ctor_get_uint8(x_6, sizeof(void*)*3); -x_40 = lean_ctor_get(x_6, 1); -lean_inc(x_40); -x_41 = lean_ctor_get(x_6, 2); -lean_inc(x_41); -lean_dec(x_6); -x_42 = lean_array_get_size(x_4); -lean_inc(x_4); -x_43 = lean_expr_instantiate_rev_range(x_40, x_5, x_42, x_4); -lean_dec(x_42); -lean_dec(x_40); -x_44 = l___private_Init_Lean_Meta_7__mkFreshId___rarg(x_8); -x_45 = lean_ctor_get(x_44, 0); -lean_inc(x_45); -x_46 = lean_ctor_get(x_44, 1); -lean_inc(x_46); -lean_dec(x_44); -lean_inc(x_45); -x_47 = lean_local_ctx_mk_local_decl(x_3, x_45, x_38, x_43, x_39); -x_48 = lean_expr_mk_fvar(x_45); -x_49 = lean_array_push(x_4, x_48); -x_3 = x_47; -x_4 = x_49; -x_6 = x_41; -x_8 = x_46; -goto _start; -} -else -{ -lean_object* x_51; -x_51 = lean_box(0); -x_9 = x_51; -goto block_37; -} -block_37: -{ -lean_object* x_10; lean_object* x_11; uint8_t x_12; -lean_dec(x_9); -x_10 = lean_array_get_size(x_4); -lean_inc(x_4); -x_11 = lean_expr_instantiate_rev_range(x_6, x_5, x_10, x_4); -lean_dec(x_5); -lean_dec(x_6); -x_12 = !lean_is_exclusive(x_7); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; -x_13 = lean_ctor_get(x_7, 1); -lean_dec(x_13); -lean_inc(x_3); -lean_ctor_set(x_7, 1, x_3); -lean_inc(x_1); -lean_inc(x_7); -lean_inc(x_11); -x_14 = lean_apply_3(x_1, x_11, x_7, x_8); -if (lean_obj_tag(x_14) == 0) -{ -lean_object* x_15; lean_object* x_16; uint8_t x_17; -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_14, 1); -lean_inc(x_16); -lean_dec(x_14); -x_17 = l_Lean_Expr_isForall(x_15); -lean_dec(x_15); -if (x_17 == 0) -{ -lean_object* x_18; -lean_dec(x_10); -lean_dec(x_3); -lean_dec(x_1); -x_18 = lean_apply_4(x_2, x_4, x_11, x_7, x_16); -return x_18; -} -else -{ -x_5 = x_10; -x_6 = x_11; -x_8 = x_16; -goto _start; -} -} -else -{ -uint8_t x_20; -lean_dec(x_7); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_20 = !lean_is_exclusive(x_14); -if (x_20 == 0) -{ -return x_14; -} -else -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_14, 0); -x_22 = lean_ctor_get(x_14, 1); -lean_inc(x_22); -lean_inc(x_21); -lean_dec(x_14); -x_23 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_23, 0, x_21); -lean_ctor_set(x_23, 1, x_22); -return x_23; -} -} -} -else -{ -lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_24 = lean_ctor_get(x_7, 0); -x_25 = lean_ctor_get(x_7, 2); -lean_inc(x_25); -lean_inc(x_24); -lean_dec(x_7); -lean_inc(x_3); -x_26 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_26, 0, x_24); -lean_ctor_set(x_26, 1, x_3); -lean_ctor_set(x_26, 2, x_25); -lean_inc(x_1); -lean_inc(x_26); -lean_inc(x_11); -x_27 = lean_apply_3(x_1, x_11, x_26, x_8); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; uint8_t x_30; -x_28 = lean_ctor_get(x_27, 0); -lean_inc(x_28); -x_29 = lean_ctor_get(x_27, 1); -lean_inc(x_29); -lean_dec(x_27); -x_30 = l_Lean_Expr_isForall(x_28); -lean_dec(x_28); -if (x_30 == 0) -{ -lean_object* x_31; -lean_dec(x_10); -lean_dec(x_3); -lean_dec(x_1); -x_31 = lean_apply_4(x_2, x_4, x_11, x_26, x_29); -return x_31; -} -else -{ -x_5 = x_10; -x_6 = x_11; -x_7 = x_26; -x_8 = x_29; -goto _start; -} -} -else -{ -lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; -lean_dec(x_26); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_33 = lean_ctor_get(x_27, 0); -lean_inc(x_33); -x_34 = lean_ctor_get(x_27, 1); -lean_inc(x_34); -if (lean_is_exclusive(x_27)) { - lean_ctor_release(x_27, 0); - lean_ctor_release(x_27, 1); - x_35 = x_27; -} else { - lean_dec_ref(x_27); - x_35 = lean_box(0); -} -if (lean_is_scalar(x_35)) { - x_36 = lean_alloc_ctor(1, 2, 0); -} else { - x_36 = x_35; -} -lean_ctor_set(x_36, 0, x_33); -lean_ctor_set(x_36, 1, x_34); -return x_36; -} -} -} -} -} -lean_object* l___private_Init_Lean_Meta_24__forallTelescopeAux___main(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_24__forallTelescopeAux___main___rarg), 8, 0); -return x_2; -} -} -lean_object* l___private_Init_Lean_Meta_24__forallTelescopeAux___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { -_start: -{ -lean_object* x_9; -x_9 = l___private_Init_Lean_Meta_24__forallTelescopeAux___main___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_9; -} -} -lean_object* l___private_Init_Lean_Meta_24__forallTelescopeAux(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_24__forallTelescopeAux___rarg), 8, 0); -return x_2; -} -} -lean_object* l_Lean_Meta_forallTelescope___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; -lean_inc(x_1); -lean_inc(x_4); -lean_inc(x_2); -x_6 = lean_apply_3(x_1, x_2, x_4, x_5); -if (lean_obj_tag(x_6) == 0) -{ -lean_object* x_7; lean_object* x_8; uint8_t x_9; -x_7 = lean_ctor_get(x_6, 0); -lean_inc(x_7); -x_8 = lean_ctor_get(x_6, 1); -lean_inc(x_8); -lean_dec(x_6); -x_9 = l_Lean_Expr_isForall(x_7); -if (x_9 == 0) -{ -lean_object* x_10; lean_object* x_11; -lean_dec(x_7); -lean_dec(x_1); -x_10 = l_Array_empty___closed__1; -x_11 = lean_apply_4(x_3, x_10, x_2, x_4, x_8); -return x_11; -} -else -{ -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; -lean_dec(x_2); -x_12 = lean_ctor_get(x_8, 2); -lean_inc(x_12); -x_13 = lean_ctor_get(x_4, 1); -lean_inc(x_13); -x_14 = l_Array_empty___closed__1; -x_15 = lean_unsigned_to_nat(0u); -x_16 = l___private_Init_Lean_Meta_24__forallTelescopeAux___main___rarg(x_1, x_3, x_13, x_14, x_15, x_7, x_4, x_8); -if (lean_obj_tag(x_16) == 0) -{ -uint8_t x_17; -x_17 = !lean_is_exclusive(x_16); -if (x_17 == 0) -{ -lean_object* x_18; uint8_t x_19; -x_18 = lean_ctor_get(x_16, 1); -x_19 = !lean_is_exclusive(x_18); -if (x_19 == 0) -{ -lean_object* x_20; -x_20 = lean_ctor_get(x_18, 2); -lean_dec(x_20); -lean_ctor_set(x_18, 2, x_12); -return x_16; -} -else -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_21 = lean_ctor_get(x_18, 0); -x_22 = lean_ctor_get(x_18, 1); -x_23 = lean_ctor_get(x_18, 3); -x_24 = lean_ctor_get(x_18, 4); -x_25 = lean_ctor_get(x_18, 5); -lean_inc(x_25); -lean_inc(x_24); -lean_inc(x_23); -lean_inc(x_22); -lean_inc(x_21); -lean_dec(x_18); -x_26 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_26, 0, x_21); -lean_ctor_set(x_26, 1, x_22); -lean_ctor_set(x_26, 2, x_12); -lean_ctor_set(x_26, 3, x_23); -lean_ctor_set(x_26, 4, x_24); -lean_ctor_set(x_26, 5, x_25); -lean_ctor_set(x_16, 1, x_26); -return x_16; -} -} -else -{ -lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; -x_27 = lean_ctor_get(x_16, 1); -x_28 = lean_ctor_get(x_16, 0); -lean_inc(x_27); -lean_inc(x_28); -lean_dec(x_16); -x_29 = lean_ctor_get(x_27, 0); -lean_inc(x_29); -x_30 = lean_ctor_get(x_27, 1); -lean_inc(x_30); -x_31 = lean_ctor_get(x_27, 3); -lean_inc(x_31); -x_32 = lean_ctor_get(x_27, 4); -lean_inc(x_32); -x_33 = lean_ctor_get(x_27, 5); -lean_inc(x_33); -if (lean_is_exclusive(x_27)) { - lean_ctor_release(x_27, 0); - lean_ctor_release(x_27, 1); - lean_ctor_release(x_27, 2); - lean_ctor_release(x_27, 3); - lean_ctor_release(x_27, 4); - lean_ctor_release(x_27, 5); - x_34 = x_27; -} else { - lean_dec_ref(x_27); - x_34 = lean_box(0); -} -if (lean_is_scalar(x_34)) { - x_35 = lean_alloc_ctor(0, 6, 0); -} else { - x_35 = x_34; -} -lean_ctor_set(x_35, 0, x_29); -lean_ctor_set(x_35, 1, x_30); -lean_ctor_set(x_35, 2, x_12); -lean_ctor_set(x_35, 3, x_31); -lean_ctor_set(x_35, 4, x_32); -lean_ctor_set(x_35, 5, x_33); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_28); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -else -{ -uint8_t x_37; -x_37 = !lean_is_exclusive(x_16); -if (x_37 == 0) -{ -lean_object* x_38; uint8_t x_39; -x_38 = lean_ctor_get(x_16, 1); -x_39 = !lean_is_exclusive(x_38); -if (x_39 == 0) -{ -lean_object* x_40; -x_40 = lean_ctor_get(x_38, 2); -lean_dec(x_40); -lean_ctor_set(x_38, 2, x_12); -return x_16; -} -else -{ -lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; -x_41 = lean_ctor_get(x_38, 0); -x_42 = lean_ctor_get(x_38, 1); -x_43 = lean_ctor_get(x_38, 3); -x_44 = lean_ctor_get(x_38, 4); -x_45 = lean_ctor_get(x_38, 5); -lean_inc(x_45); -lean_inc(x_44); -lean_inc(x_43); -lean_inc(x_42); -lean_inc(x_41); -lean_dec(x_38); -x_46 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_46, 0, x_41); -lean_ctor_set(x_46, 1, x_42); -lean_ctor_set(x_46, 2, x_12); -lean_ctor_set(x_46, 3, x_43); -lean_ctor_set(x_46, 4, x_44); -lean_ctor_set(x_46, 5, x_45); -lean_ctor_set(x_16, 1, x_46); -return x_16; -} -} -else -{ -lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; -x_47 = lean_ctor_get(x_16, 1); -x_48 = lean_ctor_get(x_16, 0); -lean_inc(x_47); -lean_inc(x_48); -lean_dec(x_16); -x_49 = lean_ctor_get(x_47, 0); -lean_inc(x_49); -x_50 = lean_ctor_get(x_47, 1); -lean_inc(x_50); -x_51 = lean_ctor_get(x_47, 3); -lean_inc(x_51); -x_52 = lean_ctor_get(x_47, 4); -lean_inc(x_52); -x_53 = lean_ctor_get(x_47, 5); -lean_inc(x_53); -if (lean_is_exclusive(x_47)) { - lean_ctor_release(x_47, 0); - lean_ctor_release(x_47, 1); - lean_ctor_release(x_47, 2); - lean_ctor_release(x_47, 3); - lean_ctor_release(x_47, 4); - lean_ctor_release(x_47, 5); - x_54 = x_47; -} else { - lean_dec_ref(x_47); - x_54 = lean_box(0); -} -if (lean_is_scalar(x_54)) { - x_55 = lean_alloc_ctor(0, 6, 0); -} else { - x_55 = x_54; -} -lean_ctor_set(x_55, 0, x_49); -lean_ctor_set(x_55, 1, x_50); -lean_ctor_set(x_55, 2, x_12); -lean_ctor_set(x_55, 3, x_51); -lean_ctor_set(x_55, 4, x_52); -lean_ctor_set(x_55, 5, x_53); -x_56 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_56, 0, x_48); -lean_ctor_set(x_56, 1, x_55); -return x_56; -} -} -} -} -else -{ -uint8_t x_57; -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_57 = !lean_is_exclusive(x_6); -if (x_57 == 0) -{ -return x_6; -} -else -{ -lean_object* x_58; lean_object* x_59; lean_object* x_60; -x_58 = lean_ctor_get(x_6, 0); -x_59 = lean_ctor_get(x_6, 1); -lean_inc(x_59); -lean_inc(x_58); -lean_dec(x_6); -x_60 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_60, 0, x_58); -lean_ctor_set(x_60, 1, x_59); -return x_60; -} -} -} -} -lean_object* l_Lean_Meta_forallTelescope(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Meta_forallTelescope___rarg), 5, 0); +x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_23__savingCache___rarg), 3, 0); return x_2; } } @@ -15041,7 +14694,7 @@ lean_dec(x_2); return x_4; } } -lean_object* l___private_Init_Lean_Meta_25__isClassQuick___main(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Meta_24__isClassQuick___main(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { switch (lean_obj_tag(x_1)) { @@ -15173,84 +14826,1561 @@ return x_30; } } } -lean_object* l___private_Init_Lean_Meta_25__isClassQuick___main___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Meta_24__isClassQuick___main___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Init_Lean_Meta_25__isClassQuick___main(x_1, x_2, x_3); +x_4 = l___private_Init_Lean_Meta_24__isClassQuick___main(x_1, x_2, x_3); lean_dec(x_2); return x_4; } } -lean_object* l___private_Init_Lean_Meta_25__isClassQuick(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Meta_24__isClassQuick(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Init_Lean_Meta_25__isClassQuick___main(x_1, x_2, x_3); +x_4 = l___private_Init_Lean_Meta_24__isClassQuick___main(x_1, x_2, x_3); return x_4; } } -lean_object* l___private_Init_Lean_Meta_25__isClassQuick___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Meta_24__isClassQuick___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Init_Lean_Meta_25__isClassQuick(x_1, x_2, x_3); +x_4 = l___private_Init_Lean_Meta_24__isClassQuick(x_1, x_2, x_3); lean_dec(x_2); return x_4; } } -lean_object* l___private_Init_Lean_Meta_24__forallTelescopeAux___main___at___private_Init_Lean_Meta_26__isClassExpensive___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +lean_object* l___private_Init_Lean_Meta_25__resettingTypeClassCache___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = lean_apply_2(x_1, x_2, x_3); +return x_4; +} +} +lean_object* l___private_Init_Lean_Meta_25__resettingTypeClassCache(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_25__resettingTypeClassCache___rarg), 3, 0); +return x_2; +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; uint8_t x_8; +x_7 = lean_array_get_size(x_2); +x_8 = lean_nat_dec_lt(x_3, x_7); +lean_dec(x_7); +if (x_8 == 0) +{ +lean_object* x_9; +lean_dec(x_3); +lean_dec(x_1); +x_9 = lean_apply_2(x_4, x_5, x_6); +return x_9; +} +else +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = lean_array_fget(x_2, x_3); +x_11 = l_Lean_Expr_fvarId_x21(x_10); +lean_inc(x_5); +x_12 = l___private_Init_Lean_Meta_19__getLocalDecl(x_11, x_5, x_6); +if (lean_obj_tag(x_12) == 0) +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); +lean_dec(x_12); +x_15 = l_Lean_LocalDecl_type(x_13); +lean_dec(x_13); +lean_inc(x_15); +x_16 = l___private_Init_Lean_Meta_24__isClassQuick___main(x_15, x_5, x_14); +if (lean_obj_tag(x_16) == 0) +{ +lean_object* x_17; +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +switch (lean_obj_tag(x_17)) { +case 0: +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_dec(x_15); +lean_dec(x_10); +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = lean_unsigned_to_nat(1u); +x_20 = lean_nat_add(x_3, x_19); +lean_dec(x_3); +x_3 = x_20; +x_6 = x_18; +goto _start; +} +case 1: +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; uint8_t x_26; +lean_dec(x_15); +x_22 = lean_ctor_get(x_16, 1); +lean_inc(x_22); +lean_dec(x_16); +x_23 = lean_ctor_get(x_17, 0); +lean_inc(x_23); +lean_dec(x_17); +x_24 = lean_unsigned_to_nat(1u); +x_25 = lean_nat_add(x_3, x_24); +lean_dec(x_3); +x_26 = !lean_is_exclusive(x_5); +if (x_26 == 0) +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_27 = lean_ctor_get(x_5, 2); +x_28 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_28, 0, x_23); +lean_ctor_set(x_28, 1, x_10); +x_29 = lean_array_push(x_27, x_28); +lean_ctor_set(x_5, 2, x_29); +x_3 = x_25; +x_6 = x_22; +goto _start; +} +else +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_31 = lean_ctor_get(x_5, 0); +x_32 = lean_ctor_get(x_5, 1); +x_33 = lean_ctor_get(x_5, 2); +lean_inc(x_33); +lean_inc(x_32); +lean_inc(x_31); +lean_dec(x_5); +x_34 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_34, 0, x_23); +lean_ctor_set(x_34, 1, x_10); +x_35 = lean_array_push(x_33, x_34); +x_36 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_36, 0, x_31); +lean_ctor_set(x_36, 1, x_32); +lean_ctor_set(x_36, 2, x_35); +x_3 = x_25; +x_5 = x_36; +x_6 = x_22; +goto _start; +} +} +default: +{ +lean_object* x_38; lean_object* x_39; +x_38 = lean_ctor_get(x_16, 1); +lean_inc(x_38); +lean_dec(x_16); +lean_inc(x_1); +lean_inc(x_5); +x_39 = lean_apply_3(x_1, x_15, x_5, x_38); +if (lean_obj_tag(x_39) == 0) +{ +lean_object* x_40; +x_40 = lean_ctor_get(x_39, 0); +lean_inc(x_40); +if (lean_obj_tag(x_40) == 0) +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +lean_dec(x_10); +x_41 = lean_ctor_get(x_39, 1); +lean_inc(x_41); +lean_dec(x_39); +x_42 = lean_unsigned_to_nat(1u); +x_43 = lean_nat_add(x_3, x_42); +lean_dec(x_3); +x_3 = x_43; +x_6 = x_41; +goto _start; +} +else +{ +lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; uint8_t x_49; +x_45 = lean_ctor_get(x_39, 1); +lean_inc(x_45); +lean_dec(x_39); +x_46 = lean_ctor_get(x_40, 0); +lean_inc(x_46); +lean_dec(x_40); +x_47 = lean_unsigned_to_nat(1u); +x_48 = lean_nat_add(x_3, x_47); +lean_dec(x_3); +x_49 = !lean_is_exclusive(x_5); +if (x_49 == 0) +{ +lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_50 = lean_ctor_get(x_5, 2); +x_51 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_51, 0, x_46); +lean_ctor_set(x_51, 1, x_10); +x_52 = lean_array_push(x_50, x_51); +lean_ctor_set(x_5, 2, x_52); +x_3 = x_48; +x_6 = x_45; +goto _start; +} +else +{ +lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_54 = lean_ctor_get(x_5, 0); +x_55 = lean_ctor_get(x_5, 1); +x_56 = lean_ctor_get(x_5, 2); +lean_inc(x_56); +lean_inc(x_55); +lean_inc(x_54); +lean_dec(x_5); +x_57 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_57, 0, x_46); +lean_ctor_set(x_57, 1, x_10); +x_58 = lean_array_push(x_56, x_57); +x_59 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_59, 0, x_54); +lean_ctor_set(x_59, 1, x_55); +lean_ctor_set(x_59, 2, x_58); +x_3 = x_48; +x_5 = x_59; +x_6 = x_45; +goto _start; +} +} +} +else +{ +uint8_t x_61; +lean_dec(x_10); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_61 = !lean_is_exclusive(x_39); +if (x_61 == 0) +{ +return x_39; +} +else +{ +lean_object* x_62; lean_object* x_63; lean_object* x_64; +x_62 = lean_ctor_get(x_39, 0); +x_63 = lean_ctor_get(x_39, 1); +lean_inc(x_63); +lean_inc(x_62); +lean_dec(x_39); +x_64 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_64, 0, x_62); +lean_ctor_set(x_64, 1, x_63); +return x_64; +} +} +} +} +} +else +{ +uint8_t x_65; +lean_dec(x_15); +lean_dec(x_10); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_65 = !lean_is_exclusive(x_16); +if (x_65 == 0) +{ +return x_16; +} +else +{ +lean_object* x_66; lean_object* x_67; lean_object* x_68; +x_66 = lean_ctor_get(x_16, 0); +x_67 = lean_ctor_get(x_16, 1); +lean_inc(x_67); +lean_inc(x_66); +lean_dec(x_16); +x_68 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_68, 0, x_66); +lean_ctor_set(x_68, 1, x_67); +return x_68; +} +} +} +else +{ +uint8_t x_69; +lean_dec(x_10); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_69 = !lean_is_exclusive(x_12); +if (x_69 == 0) +{ +return x_12; +} +else +{ +lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_70 = lean_ctor_get(x_12, 0); +x_71 = lean_ctor_get(x_12, 1); +lean_inc(x_71); +lean_inc(x_70); +lean_dec(x_12); +x_72 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_72, 0, x_70); +lean_ctor_set(x_72, 1, x_71); +return x_72; +} +} +} +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_26__withNewLocalInstances___main___rarg___boxed), 6, 0); +return x_2; +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; +x_7 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___rarg(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_2); +return x_7; +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; +x_7 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___rarg(x_1, x_2, x_3, x_4, x_5, x_6); +return x_7; +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_26__withNewLocalInstances___rarg___boxed), 6, 0); +return x_2; +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; +x_7 = l___private_Init_Lean_Meta_26__withNewLocalInstances___rarg(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_2); +return x_7; +} +} +lean_object* l_ReaderT_bind___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; +lean_inc(x_3); +x_5 = lean_apply_2(x_1, x_3, x_4); +if (lean_obj_tag(x_5) == 0) +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +x_6 = lean_ctor_get(x_5, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_5, 1); +lean_inc(x_7); +lean_dec(x_5); +x_8 = lean_apply_3(x_2, x_6, x_3, x_7); +return x_8; +} +else +{ +uint8_t x_9; +lean_dec(x_3); +lean_dec(x_2); +x_9 = !lean_is_exclusive(x_5); +if (x_9 == 0) +{ +return x_5; +} +else +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = lean_ctor_get(x_5, 0); +x_11 = lean_ctor_get(x_5, 1); +lean_inc(x_11); +lean_inc(x_10); +lean_dec(x_5); +x_12 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_12, 0, x_10); +lean_ctor_set(x_12, 1, x_11); +return x_12; +} +} +} +} +lean_object* l_ReaderT_bind___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_ReaderT_bind___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__1___rarg), 4, 0); +return x_3; +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__2___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { +_start: +{ +uint8_t x_11; +x_11 = l_Lean_Expr_isForall(x_8); +if (x_11 == 0) +{ +lean_object* x_12; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_12 = lean_apply_4(x_1, x_2, x_3, x_9, x_10); +return x_12; +} +else +{ +lean_object* x_13; +lean_dec(x_3); +x_13 = l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___rarg(x_4, x_5, x_1, x_6, x_2, x_7, x_8, x_9, x_10); +return x_13; +} +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13) { +_start: +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +lean_inc(x_1); +lean_inc(x_9); +x_14 = lean_apply_1(x_1, x_9); +lean_inc(x_8); +lean_inc(x_4); +lean_inc(x_2); +lean_inc(x_1); +lean_inc(x_9); +lean_inc(x_5); +lean_inc(x_3); +x_15 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__2___rarg___lambda__1), 10, 7); +lean_closure_set(x_15, 0, x_3); +lean_closure_set(x_15, 1, x_5); +lean_closure_set(x_15, 2, x_9); +lean_closure_set(x_15, 3, x_1); +lean_closure_set(x_15, 4, x_2); +lean_closure_set(x_15, 5, x_4); +lean_closure_set(x_15, 6, x_8); +x_16 = lean_array_get_size(x_10); +x_17 = lean_nat_dec_lt(x_11, x_16); +lean_dec(x_16); +if (x_17 == 0) +{ +lean_object* x_18; +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_18 = l_ReaderT_bind___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__1___rarg(x_14, x_15, x_12, x_13); +return x_18; +} +else +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +lean_dec(x_15); +lean_dec(x_14); +x_19 = lean_array_fget(x_10, x_11); +x_20 = l_Lean_Expr_fvarId_x21(x_19); +lean_inc(x_12); +x_21 = l___private_Init_Lean_Meta_19__getLocalDecl(x_20, x_12, x_13); +if (lean_obj_tag(x_21) == 0) +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_21, 1); +lean_inc(x_23); +lean_dec(x_21); +x_24 = l_Lean_LocalDecl_type(x_22); +lean_dec(x_22); +lean_inc(x_24); +x_25 = l___private_Init_Lean_Meta_24__isClassQuick___main(x_24, x_12, x_23); +if (lean_obj_tag(x_25) == 0) +{ +lean_object* x_26; +x_26 = lean_ctor_get(x_25, 0); +lean_inc(x_26); +switch (lean_obj_tag(x_26)) { +case 0: +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; +lean_dec(x_24); +lean_dec(x_19); +x_27 = lean_ctor_get(x_25, 1); +lean_inc(x_27); +lean_dec(x_25); +x_28 = lean_unsigned_to_nat(1u); +x_29 = lean_nat_add(x_11, x_28); +lean_dec(x_11); +x_11 = x_29; +x_13 = x_27; +goto _start; +} +case 1: +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; +lean_dec(x_24); +x_31 = lean_ctor_get(x_25, 1); +lean_inc(x_31); +lean_dec(x_25); +x_32 = lean_ctor_get(x_26, 0); +lean_inc(x_32); +lean_dec(x_26); +x_33 = lean_unsigned_to_nat(1u); +x_34 = lean_nat_add(x_11, x_33); +lean_dec(x_11); +x_35 = !lean_is_exclusive(x_12); +if (x_35 == 0) +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_36 = lean_ctor_get(x_12, 2); +x_37 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_37, 0, x_32); +lean_ctor_set(x_37, 1, x_19); +x_38 = lean_array_push(x_36, x_37); +lean_ctor_set(x_12, 2, x_38); +x_11 = x_34; +x_13 = x_31; +goto _start; +} +else +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; +x_40 = lean_ctor_get(x_12, 0); +x_41 = lean_ctor_get(x_12, 1); +x_42 = lean_ctor_get(x_12, 2); +lean_inc(x_42); +lean_inc(x_41); +lean_inc(x_40); +lean_dec(x_12); +x_43 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_43, 0, x_32); +lean_ctor_set(x_43, 1, x_19); +x_44 = lean_array_push(x_42, x_43); +x_45 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_45, 0, x_40); +lean_ctor_set(x_45, 1, x_41); +lean_ctor_set(x_45, 2, x_44); +x_11 = x_34; +x_12 = x_45; +x_13 = x_31; +goto _start; +} +} +default: +{ +lean_object* x_47; lean_object* x_48; +x_47 = lean_ctor_get(x_25, 1); +lean_inc(x_47); +lean_dec(x_25); +lean_inc(x_2); +lean_inc(x_12); +x_48 = lean_apply_3(x_2, x_24, x_12, x_47); +if (lean_obj_tag(x_48) == 0) +{ +lean_object* x_49; +x_49 = lean_ctor_get(x_48, 0); +lean_inc(x_49); +if (lean_obj_tag(x_49) == 0) +{ +lean_object* x_50; lean_object* x_51; lean_object* x_52; +lean_dec(x_19); +x_50 = lean_ctor_get(x_48, 1); +lean_inc(x_50); +lean_dec(x_48); +x_51 = lean_unsigned_to_nat(1u); +x_52 = lean_nat_add(x_11, x_51); +lean_dec(x_11); +x_11 = x_52; +x_13 = x_50; +goto _start; +} +else +{ +lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; uint8_t x_58; +x_54 = lean_ctor_get(x_48, 1); +lean_inc(x_54); +lean_dec(x_48); +x_55 = lean_ctor_get(x_49, 0); +lean_inc(x_55); +lean_dec(x_49); +x_56 = lean_unsigned_to_nat(1u); +x_57 = lean_nat_add(x_11, x_56); +lean_dec(x_11); +x_58 = !lean_is_exclusive(x_12); +if (x_58 == 0) +{ +lean_object* x_59; lean_object* x_60; lean_object* x_61; +x_59 = lean_ctor_get(x_12, 2); +x_60 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_60, 0, x_55); +lean_ctor_set(x_60, 1, x_19); +x_61 = lean_array_push(x_59, x_60); +lean_ctor_set(x_12, 2, x_61); +x_11 = x_57; +x_13 = x_54; +goto _start; +} +else +{ +lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; +x_63 = lean_ctor_get(x_12, 0); +x_64 = lean_ctor_get(x_12, 1); +x_65 = lean_ctor_get(x_12, 2); +lean_inc(x_65); +lean_inc(x_64); +lean_inc(x_63); +lean_dec(x_12); +x_66 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_66, 0, x_55); +lean_ctor_set(x_66, 1, x_19); +x_67 = lean_array_push(x_65, x_66); +x_68 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_68, 0, x_63); +lean_ctor_set(x_68, 1, x_64); +lean_ctor_set(x_68, 2, x_67); +x_11 = x_57; +x_12 = x_68; +x_13 = x_54; +goto _start; +} +} +} +else +{ +uint8_t x_70; +lean_dec(x_19); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_70 = !lean_is_exclusive(x_48); +if (x_70 == 0) +{ +return x_48; +} +else +{ +lean_object* x_71; lean_object* x_72; lean_object* x_73; +x_71 = lean_ctor_get(x_48, 0); +x_72 = lean_ctor_get(x_48, 1); +lean_inc(x_72); +lean_inc(x_71); +lean_dec(x_48); +x_73 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_73, 0, x_71); +lean_ctor_set(x_73, 1, x_72); +return x_73; +} +} +} +} +} +else +{ +uint8_t x_74; +lean_dec(x_24); +lean_dec(x_19); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_74 = !lean_is_exclusive(x_25); +if (x_74 == 0) +{ +return x_25; +} +else +{ +lean_object* x_75; lean_object* x_76; lean_object* x_77; +x_75 = lean_ctor_get(x_25, 0); +x_76 = lean_ctor_get(x_25, 1); +lean_inc(x_76); +lean_inc(x_75); +lean_dec(x_25); +x_77 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_77, 0, x_75); +lean_ctor_set(x_77, 1, x_76); +return x_77; +} +} +} +else +{ +uint8_t x_78; +lean_dec(x_19); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_78 = !lean_is_exclusive(x_21); +if (x_78 == 0) +{ +return x_21; +} +else +{ +lean_object* x_79; lean_object* x_80; lean_object* x_81; +x_79 = lean_ctor_get(x_21, 0); +x_80 = lean_ctor_get(x_21, 1); +lean_inc(x_80); +lean_inc(x_79); +lean_dec(x_21); +x_81 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_81, 0, x_79); +lean_ctor_set(x_81, 1, x_80); +return x_81; +} +} +} +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__2___rarg___boxed), 13, 0); +return x_2; +} +} +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +_start: +{ +lean_object* x_10; +if (lean_obj_tag(x_7) == 7) +{ +lean_object* x_21; uint8_t x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_21 = lean_ctor_get(x_7, 0); +lean_inc(x_21); +x_22 = lean_ctor_get_uint8(x_7, sizeof(void*)*3); +x_23 = lean_ctor_get(x_7, 1); +lean_inc(x_23); +x_24 = lean_ctor_get(x_7, 2); +lean_inc(x_24); +lean_dec(x_7); +x_25 = lean_array_get_size(x_5); +lean_inc(x_5); +x_26 = lean_expr_instantiate_rev_range(x_23, x_6, x_25, x_5); +lean_dec(x_25); +lean_dec(x_23); +x_27 = l___private_Init_Lean_Meta_7__mkFreshId___rarg(x_9); +x_28 = lean_ctor_get(x_27, 0); +lean_inc(x_28); +x_29 = lean_ctor_get(x_27, 1); +lean_inc(x_29); +lean_dec(x_27); +lean_inc(x_28); +x_30 = lean_local_ctx_mk_local_decl(x_4, x_28, x_21, x_26, x_22); +x_31 = lean_expr_mk_fvar(x_28); +x_32 = lean_array_push(x_5, x_31); +x_4 = x_30; +x_5 = x_32; +x_7 = x_24; +x_9 = x_29; +goto _start; +} +else +{ +lean_object* x_34; +x_34 = lean_box(0); +x_10 = x_34; +goto block_20; +} +block_20: +{ +lean_object* x_11; lean_object* x_12; uint8_t x_13; +lean_dec(x_10); +x_11 = lean_array_get_size(x_5); +lean_inc(x_5); +x_12 = lean_expr_instantiate_rev_range(x_7, x_6, x_11, x_5); +x_13 = !lean_is_exclusive(x_8); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; +x_14 = lean_ctor_get(x_8, 1); +lean_dec(x_14); +lean_inc(x_4); +lean_ctor_set(x_8, 1, x_4); +lean_inc(x_6); +lean_inc(x_5); +x_15 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__2___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_11, x_12, x_5, x_6, x_8, x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +return x_15; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; +x_16 = lean_ctor_get(x_8, 0); +x_17 = lean_ctor_get(x_8, 2); +lean_inc(x_17); +lean_inc(x_16); +lean_dec(x_8); +lean_inc(x_4); +x_18 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_18, 0, x_16); +lean_ctor_set(x_18, 1, x_4); +lean_ctor_set(x_18, 2, x_17); +lean_inc(x_6); +lean_inc(x_5); +x_19 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__2___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_11, x_12, x_5, x_6, x_18, x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +return x_19; +} +} +} +} +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___rarg), 9, 0); +return x_2; +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__2___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13) { +_start: +{ +lean_object* x_14; +x_14 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__2___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +lean_dec(x_10); +lean_dec(x_7); +lean_dec(x_6); +return x_14; +} +} +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +_start: +{ +lean_object* x_10; +x_10 = l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_10; +} +} +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___rarg), 9, 0); +return x_2; +} +} +lean_object* l___private_Init_Lean_Meta_28__forallTelescopeAux___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; +lean_inc(x_1); +lean_inc(x_5); +lean_inc(x_3); +x_7 = lean_apply_3(x_1, x_3, x_5, x_6); +if (lean_obj_tag(x_7) == 0) +{ +lean_object* x_8; lean_object* x_9; uint8_t x_10; +x_8 = lean_ctor_get(x_7, 0); +lean_inc(x_8); +x_9 = lean_ctor_get(x_7, 1); +lean_inc(x_9); +lean_dec(x_7); +x_10 = l_Lean_Expr_isForall(x_8); +if (x_10 == 0) +{ +lean_object* x_11; lean_object* x_12; +lean_dec(x_8); +lean_dec(x_2); +lean_dec(x_1); +x_11 = l_Array_empty___closed__1; +x_12 = lean_apply_4(x_4, x_11, x_3, x_5, x_9); +return x_12; +} +else +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +lean_dec(x_3); +x_13 = lean_ctor_get(x_9, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_5, 1); +lean_inc(x_14); +x_15 = l_Array_empty___closed__1; +x_16 = lean_unsigned_to_nat(0u); +x_17 = l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___rarg(x_1, x_2, x_4, x_14, x_15, x_16, x_8, x_5, x_9); +if (lean_obj_tag(x_17) == 0) +{ +uint8_t x_18; +x_18 = !lean_is_exclusive(x_17); +if (x_18 == 0) +{ +lean_object* x_19; uint8_t x_20; +x_19 = lean_ctor_get(x_17, 1); +x_20 = !lean_is_exclusive(x_19); +if (x_20 == 0) +{ +lean_object* x_21; +x_21 = lean_ctor_get(x_19, 2); +lean_dec(x_21); +lean_ctor_set(x_19, 2, x_13); +return x_17; +} +else +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_22 = lean_ctor_get(x_19, 0); +x_23 = lean_ctor_get(x_19, 1); +x_24 = lean_ctor_get(x_19, 3); +x_25 = lean_ctor_get(x_19, 4); +x_26 = lean_ctor_get(x_19, 5); +lean_inc(x_26); +lean_inc(x_25); +lean_inc(x_24); +lean_inc(x_23); +lean_inc(x_22); +lean_dec(x_19); +x_27 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_27, 0, x_22); +lean_ctor_set(x_27, 1, x_23); +lean_ctor_set(x_27, 2, x_13); +lean_ctor_set(x_27, 3, x_24); +lean_ctor_set(x_27, 4, x_25); +lean_ctor_set(x_27, 5, x_26); +lean_ctor_set(x_17, 1, x_27); +return x_17; +} +} +else +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_28 = lean_ctor_get(x_17, 1); +x_29 = lean_ctor_get(x_17, 0); +lean_inc(x_28); +lean_inc(x_29); +lean_dec(x_17); +x_30 = lean_ctor_get(x_28, 0); +lean_inc(x_30); +x_31 = lean_ctor_get(x_28, 1); +lean_inc(x_31); +x_32 = lean_ctor_get(x_28, 3); +lean_inc(x_32); +x_33 = lean_ctor_get(x_28, 4); +lean_inc(x_33); +x_34 = lean_ctor_get(x_28, 5); +lean_inc(x_34); +if (lean_is_exclusive(x_28)) { + lean_ctor_release(x_28, 0); + lean_ctor_release(x_28, 1); + lean_ctor_release(x_28, 2); + lean_ctor_release(x_28, 3); + lean_ctor_release(x_28, 4); + lean_ctor_release(x_28, 5); + x_35 = x_28; +} else { + lean_dec_ref(x_28); + x_35 = lean_box(0); +} +if (lean_is_scalar(x_35)) { + x_36 = lean_alloc_ctor(0, 6, 0); +} else { + x_36 = x_35; +} +lean_ctor_set(x_36, 0, x_30); +lean_ctor_set(x_36, 1, x_31); +lean_ctor_set(x_36, 2, x_13); +lean_ctor_set(x_36, 3, x_32); +lean_ctor_set(x_36, 4, x_33); +lean_ctor_set(x_36, 5, x_34); +x_37 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_37, 0, x_29); +lean_ctor_set(x_37, 1, x_36); +return x_37; +} +} +else +{ +uint8_t x_38; +x_38 = !lean_is_exclusive(x_17); +if (x_38 == 0) +{ +lean_object* x_39; uint8_t x_40; +x_39 = lean_ctor_get(x_17, 1); +x_40 = !lean_is_exclusive(x_39); +if (x_40 == 0) +{ +lean_object* x_41; +x_41 = lean_ctor_get(x_39, 2); +lean_dec(x_41); +lean_ctor_set(x_39, 2, x_13); +return x_17; +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_42 = lean_ctor_get(x_39, 0); +x_43 = lean_ctor_get(x_39, 1); +x_44 = lean_ctor_get(x_39, 3); +x_45 = lean_ctor_get(x_39, 4); +x_46 = lean_ctor_get(x_39, 5); +lean_inc(x_46); +lean_inc(x_45); +lean_inc(x_44); +lean_inc(x_43); +lean_inc(x_42); +lean_dec(x_39); +x_47 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_47, 0, x_42); +lean_ctor_set(x_47, 1, x_43); +lean_ctor_set(x_47, 2, x_13); +lean_ctor_set(x_47, 3, x_44); +lean_ctor_set(x_47, 4, x_45); +lean_ctor_set(x_47, 5, x_46); +lean_ctor_set(x_17, 1, x_47); +return x_17; +} +} +else +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; +x_48 = lean_ctor_get(x_17, 1); +x_49 = lean_ctor_get(x_17, 0); +lean_inc(x_48); +lean_inc(x_49); +lean_dec(x_17); +x_50 = lean_ctor_get(x_48, 0); +lean_inc(x_50); +x_51 = lean_ctor_get(x_48, 1); +lean_inc(x_51); +x_52 = lean_ctor_get(x_48, 3); +lean_inc(x_52); +x_53 = lean_ctor_get(x_48, 4); +lean_inc(x_53); +x_54 = lean_ctor_get(x_48, 5); +lean_inc(x_54); +if (lean_is_exclusive(x_48)) { + lean_ctor_release(x_48, 0); + lean_ctor_release(x_48, 1); + lean_ctor_release(x_48, 2); + lean_ctor_release(x_48, 3); + lean_ctor_release(x_48, 4); + lean_ctor_release(x_48, 5); + x_55 = x_48; +} else { + lean_dec_ref(x_48); + x_55 = lean_box(0); +} +if (lean_is_scalar(x_55)) { + x_56 = lean_alloc_ctor(0, 6, 0); +} else { + x_56 = x_55; +} +lean_ctor_set(x_56, 0, x_50); +lean_ctor_set(x_56, 1, x_51); +lean_ctor_set(x_56, 2, x_13); +lean_ctor_set(x_56, 3, x_52); +lean_ctor_set(x_56, 4, x_53); +lean_ctor_set(x_56, 5, x_54); +x_57 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_57, 0, x_49); +lean_ctor_set(x_57, 1, x_56); +return x_57; +} +} +} +} +else +{ +uint8_t x_58; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_58 = !lean_is_exclusive(x_7); +if (x_58 == 0) +{ +return x_7; +} +else +{ +lean_object* x_59; lean_object* x_60; lean_object* x_61; +x_59 = lean_ctor_get(x_7, 0); +x_60 = lean_ctor_get(x_7, 1); +lean_inc(x_60); +lean_inc(x_59); +lean_dec(x_7); +x_61 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_61, 0, x_59); +lean_ctor_set(x_61, 1, x_60); +return x_61; +} +} +} +} +lean_object* l___private_Init_Lean_Meta_28__forallTelescopeAux(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_28__forallTelescopeAux___rarg), 6, 0); +return x_2; +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__3___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +uint8_t x_9; +x_9 = l_Lean_Expr_isForall(x_6); +if (x_9 == 0) +{ +lean_object* x_10; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_10 = l_Lean_Expr_getAppFn___main(x_1); +if (lean_obj_tag(x_10) == 4) +{ +lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +lean_dec(x_10); +x_12 = lean_ctor_get(x_8, 0); +lean_inc(x_12); +lean_inc(x_11); +x_13 = lean_is_class(x_12, x_11); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; +lean_dec(x_11); +x_14 = lean_box(0); +x_15 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_15, 0, x_14); +lean_ctor_set(x_15, 1, x_8); +return x_15; +} +else +{ +lean_object* x_16; lean_object* x_17; +x_16 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_16, 0, x_11); +x_17 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_17, 0, x_16); +lean_ctor_set(x_17, 1, x_8); +return x_17; +} +} +else +{ +lean_object* x_18; lean_object* x_19; +lean_dec(x_10); +x_18 = lean_box(0); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_8); +return x_19; +} +} +else +{ +lean_object* x_20; +x_20 = l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__2(x_2, x_3, x_4, x_5, x_6, x_7, x_8); +return x_20; +} +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { +_start: +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +lean_inc(x_1); +lean_inc(x_7); +x_12 = lean_apply_1(x_1, x_7); +lean_inc(x_6); +lean_inc(x_3); +lean_inc(x_2); +lean_inc(x_1); +lean_inc(x_7); +x_13 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__3___lambda__1___boxed), 8, 5); +lean_closure_set(x_13, 0, x_7); +lean_closure_set(x_13, 1, x_1); +lean_closure_set(x_13, 2, x_2); +lean_closure_set(x_13, 3, x_3); +lean_closure_set(x_13, 4, x_6); +x_14 = lean_array_get_size(x_8); +x_15 = lean_nat_dec_lt(x_9, x_14); +lean_dec(x_14); +if (x_15 == 0) +{ +lean_object* x_16; +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_16 = l_ReaderT_bind___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__1___rarg(x_12, x_13, x_10, x_11); +return x_16; +} +else +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; +lean_dec(x_13); +lean_dec(x_12); +x_17 = lean_array_fget(x_8, x_9); +x_18 = l_Lean_Expr_fvarId_x21(x_17); +lean_inc(x_10); +x_19 = l___private_Init_Lean_Meta_19__getLocalDecl(x_18, x_10, x_11); +if (lean_obj_tag(x_19) == 0) +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +x_21 = lean_ctor_get(x_19, 1); +lean_inc(x_21); +lean_dec(x_19); +x_22 = l_Lean_LocalDecl_type(x_20); +lean_dec(x_20); +lean_inc(x_22); +x_23 = l___private_Init_Lean_Meta_24__isClassQuick___main(x_22, x_10, x_21); +if (lean_obj_tag(x_23) == 0) +{ +lean_object* x_24; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +switch (lean_obj_tag(x_24)) { +case 0: +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +lean_dec(x_22); +lean_dec(x_17); +x_25 = lean_ctor_get(x_23, 1); +lean_inc(x_25); +lean_dec(x_23); +x_26 = lean_unsigned_to_nat(1u); +x_27 = lean_nat_add(x_9, x_26); +lean_dec(x_9); +x_9 = x_27; +x_11 = x_25; +goto _start; +} +case 1: +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; +lean_dec(x_22); +x_29 = lean_ctor_get(x_23, 1); +lean_inc(x_29); +lean_dec(x_23); +x_30 = lean_ctor_get(x_24, 0); +lean_inc(x_30); +lean_dec(x_24); +x_31 = lean_unsigned_to_nat(1u); +x_32 = lean_nat_add(x_9, x_31); +lean_dec(x_9); +x_33 = !lean_is_exclusive(x_10); +if (x_33 == 0) +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_10, 2); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_30); +lean_ctor_set(x_35, 1, x_17); +x_36 = lean_array_push(x_34, x_35); +lean_ctor_set(x_10, 2, x_36); +x_9 = x_32; +x_11 = x_29; +goto _start; +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_38 = lean_ctor_get(x_10, 0); +x_39 = lean_ctor_get(x_10, 1); +x_40 = lean_ctor_get(x_10, 2); +lean_inc(x_40); +lean_inc(x_39); +lean_inc(x_38); +lean_dec(x_10); +x_41 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_41, 0, x_30); +lean_ctor_set(x_41, 1, x_17); +x_42 = lean_array_push(x_40, x_41); +x_43 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_43, 0, x_38); +lean_ctor_set(x_43, 1, x_39); +lean_ctor_set(x_43, 2, x_42); +x_9 = x_32; +x_10 = x_43; +x_11 = x_29; +goto _start; +} +} +default: +{ +lean_object* x_45; lean_object* x_46; +x_45 = lean_ctor_get(x_23, 1); +lean_inc(x_45); +lean_dec(x_23); +lean_inc(x_10); +lean_inc(x_1); +x_46 = l___private_Init_Lean_Meta_29__isClassExpensive___main(x_1, x_22, x_10, x_45); +if (lean_obj_tag(x_46) == 0) +{ +lean_object* x_47; +x_47 = lean_ctor_get(x_46, 0); +lean_inc(x_47); +if (lean_obj_tag(x_47) == 0) +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; +lean_dec(x_17); +x_48 = lean_ctor_get(x_46, 1); +lean_inc(x_48); +lean_dec(x_46); +x_49 = lean_unsigned_to_nat(1u); +x_50 = lean_nat_add(x_9, x_49); +lean_dec(x_9); +x_9 = x_50; +x_11 = x_48; +goto _start; +} +else +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; uint8_t x_56; +x_52 = lean_ctor_get(x_46, 1); +lean_inc(x_52); +lean_dec(x_46); +x_53 = lean_ctor_get(x_47, 0); +lean_inc(x_53); +lean_dec(x_47); +x_54 = lean_unsigned_to_nat(1u); +x_55 = lean_nat_add(x_9, x_54); +lean_dec(x_9); +x_56 = !lean_is_exclusive(x_10); +if (x_56 == 0) +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_57 = lean_ctor_get(x_10, 2); +x_58 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_58, 0, x_53); +lean_ctor_set(x_58, 1, x_17); +x_59 = lean_array_push(x_57, x_58); +lean_ctor_set(x_10, 2, x_59); +x_9 = x_55; +x_11 = x_52; +goto _start; +} +else +{ +lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; +x_61 = lean_ctor_get(x_10, 0); +x_62 = lean_ctor_get(x_10, 1); +x_63 = lean_ctor_get(x_10, 2); +lean_inc(x_63); +lean_inc(x_62); +lean_inc(x_61); +lean_dec(x_10); +x_64 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_64, 0, x_53); +lean_ctor_set(x_64, 1, x_17); +x_65 = lean_array_push(x_63, x_64); +x_66 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_66, 0, x_61); +lean_ctor_set(x_66, 1, x_62); +lean_ctor_set(x_66, 2, x_65); +x_9 = x_55; +x_10 = x_66; +x_11 = x_52; +goto _start; +} +} +} +else +{ +uint8_t x_68; +lean_dec(x_17); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_68 = !lean_is_exclusive(x_46); +if (x_68 == 0) +{ +return x_46; +} +else +{ +lean_object* x_69; lean_object* x_70; lean_object* x_71; +x_69 = lean_ctor_get(x_46, 0); +x_70 = lean_ctor_get(x_46, 1); +lean_inc(x_70); +lean_inc(x_69); +lean_dec(x_46); +x_71 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_71, 0, x_69); +lean_ctor_set(x_71, 1, x_70); +return x_71; +} +} +} +} +} +else +{ +uint8_t x_72; +lean_dec(x_22); +lean_dec(x_17); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_72 = !lean_is_exclusive(x_23); +if (x_72 == 0) +{ +return x_23; +} +else +{ +lean_object* x_73; lean_object* x_74; lean_object* x_75; +x_73 = lean_ctor_get(x_23, 0); +x_74 = lean_ctor_get(x_23, 1); +lean_inc(x_74); +lean_inc(x_73); +lean_dec(x_23); +x_75 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_74); +return x_75; +} +} +} +else +{ +uint8_t x_76; +lean_dec(x_17); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_76 = !lean_is_exclusive(x_19); +if (x_76 == 0) +{ +return x_19; +} +else +{ +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_19, 0); +x_78 = lean_ctor_get(x_19, 1); +lean_inc(x_78); +lean_inc(x_77); +lean_dec(x_19); +x_79 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_79, 0, x_77); +lean_ctor_set(x_79, 1, x_78); +return x_79; +} +} +} +} +} +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { _start: { lean_object* x_8; if (lean_obj_tag(x_5) == 7) { -lean_object* x_68; uint8_t x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; -x_68 = lean_ctor_get(x_5, 0); -lean_inc(x_68); -x_69 = lean_ctor_get_uint8(x_5, sizeof(void*)*3); -x_70 = lean_ctor_get(x_5, 1); -lean_inc(x_70); -x_71 = lean_ctor_get(x_5, 2); -lean_inc(x_71); +lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_19 = lean_ctor_get(x_5, 0); +lean_inc(x_19); +x_20 = lean_ctor_get_uint8(x_5, sizeof(void*)*3); +x_21 = lean_ctor_get(x_5, 1); +lean_inc(x_21); +x_22 = lean_ctor_get(x_5, 2); +lean_inc(x_22); lean_dec(x_5); -x_72 = lean_array_get_size(x_3); +x_23 = lean_array_get_size(x_3); lean_inc(x_3); -x_73 = lean_expr_instantiate_rev_range(x_70, x_4, x_72, x_3); -lean_dec(x_72); -lean_dec(x_70); -x_74 = l___private_Init_Lean_Meta_7__mkFreshId___rarg(x_7); -x_75 = lean_ctor_get(x_74, 0); -lean_inc(x_75); -x_76 = lean_ctor_get(x_74, 1); -lean_inc(x_76); -lean_dec(x_74); -lean_inc(x_75); -x_77 = lean_local_ctx_mk_local_decl(x_2, x_75, x_68, x_73, x_69); -x_78 = lean_expr_mk_fvar(x_75); -x_79 = lean_array_push(x_3, x_78); -x_2 = x_77; -x_3 = x_79; -x_5 = x_71; -x_7 = x_76; +x_24 = lean_expr_instantiate_rev_range(x_21, x_4, x_23, x_3); +lean_dec(x_23); +lean_dec(x_21); +x_25 = l___private_Init_Lean_Meta_7__mkFreshId___rarg(x_7); +x_26 = lean_ctor_get(x_25, 0); +lean_inc(x_26); +x_27 = lean_ctor_get(x_25, 1); +lean_inc(x_27); +lean_dec(x_25); +lean_inc(x_26); +x_28 = lean_local_ctx_mk_local_decl(x_2, x_26, x_19, x_24, x_20); +x_29 = lean_expr_mk_fvar(x_26); +x_30 = lean_array_push(x_3, x_29); +x_2 = x_28; +x_3 = x_30; +x_5 = x_22; +x_7 = x_27; goto _start; } else { -lean_object* x_81; -x_81 = lean_box(0); -x_8 = x_81; -goto block_67; +lean_object* x_32; +x_32 = lean_box(0); +x_8 = x_32; +goto block_18; } -block_67: +block_18: { lean_object* x_9; lean_object* x_10; uint8_t x_11; lean_dec(x_8); x_9 = lean_array_get_size(x_3); lean_inc(x_3); x_10 = lean_expr_instantiate_rev_range(x_5, x_4, x_9, x_3); -lean_dec(x_4); -lean_dec(x_5); x_11 = !lean_is_exclusive(x_6); if (x_11 == 0) { @@ -15259,319 +16389,39 @@ x_12 = lean_ctor_get(x_6, 1); lean_dec(x_12); lean_inc(x_2); lean_ctor_set(x_6, 1, x_2); -lean_inc(x_1); -lean_inc(x_6); -lean_inc(x_10); -x_13 = lean_apply_3(x_1, x_10, x_6, x_7); -if (lean_obj_tag(x_13) == 0) -{ -uint8_t x_14; -x_14 = !lean_is_exclusive(x_13); -if (x_14 == 0) -{ -lean_object* x_15; lean_object* x_16; uint8_t x_17; -x_15 = lean_ctor_get(x_13, 0); -x_16 = lean_ctor_get(x_13, 1); -x_17 = l_Lean_Expr_isForall(x_15); -lean_dec(x_15); -if (x_17 == 0) -{ -lean_object* x_18; -lean_dec(x_6); -lean_dec(x_9); +lean_inc(x_4); +lean_inc(x_3); +x_13 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__3(x_1, x_2, x_3, x_4, x_5, x_9, x_10, x_3, x_4, x_6, x_7); +lean_dec(x_5); +lean_dec(x_4); lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_18 = l_Lean_Expr_getAppFn___main(x_10); -lean_dec(x_10); -if (lean_obj_tag(x_18) == 4) -{ -lean_object* x_19; lean_object* x_20; uint8_t x_21; -x_19 = lean_ctor_get(x_18, 0); -lean_inc(x_19); -lean_dec(x_18); -x_20 = lean_ctor_get(x_16, 0); -lean_inc(x_20); -lean_inc(x_19); -x_21 = lean_is_class(x_20, x_19); -if (x_21 == 0) -{ -lean_object* x_22; -lean_dec(x_19); -x_22 = lean_box(0); -lean_ctor_set(x_13, 0, x_22); return x_13; } else { -lean_object* x_23; -x_23 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_23, 0, x_19); -lean_ctor_set(x_13, 0, x_23); -return x_13; -} -} -else -{ -lean_object* x_24; -lean_dec(x_18); -x_24 = lean_box(0); -lean_ctor_set(x_13, 0, x_24); -return x_13; -} -} -else -{ -lean_free_object(x_13); -x_4 = x_9; -x_5 = x_10; -x_7 = x_16; -goto _start; -} -} -else -{ -lean_object* x_26; lean_object* x_27; uint8_t x_28; -x_26 = lean_ctor_get(x_13, 0); -x_27 = lean_ctor_get(x_13, 1); -lean_inc(x_27); -lean_inc(x_26); -lean_dec(x_13); -x_28 = l_Lean_Expr_isForall(x_26); -lean_dec(x_26); -if (x_28 == 0) -{ -lean_object* x_29; -lean_dec(x_6); -lean_dec(x_9); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_29 = l_Lean_Expr_getAppFn___main(x_10); -lean_dec(x_10); -if (lean_obj_tag(x_29) == 4) -{ -lean_object* x_30; lean_object* x_31; uint8_t x_32; -x_30 = lean_ctor_get(x_29, 0); -lean_inc(x_30); -lean_dec(x_29); -x_31 = lean_ctor_get(x_27, 0); -lean_inc(x_31); -lean_inc(x_30); -x_32 = lean_is_class(x_31, x_30); -if (x_32 == 0) -{ -lean_object* x_33; lean_object* x_34; -lean_dec(x_30); -x_33 = lean_box(0); -x_34 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_34, 0, x_33); -lean_ctor_set(x_34, 1, x_27); -return x_34; -} -else -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_35, 0, x_30); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_35); -lean_ctor_set(x_36, 1, x_27); -return x_36; -} -} -else -{ -lean_object* x_37; lean_object* x_38; -lean_dec(x_29); -x_37 = lean_box(0); -x_38 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_38, 0, x_37); -lean_ctor_set(x_38, 1, x_27); -return x_38; -} -} -else -{ -x_4 = x_9; -x_5 = x_10; -x_7 = x_27; -goto _start; -} -} -} -else -{ -uint8_t x_40; -lean_dec(x_6); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_40 = !lean_is_exclusive(x_13); -if (x_40 == 0) -{ -return x_13; -} -else -{ -lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_41 = lean_ctor_get(x_13, 0); -x_42 = lean_ctor_get(x_13, 1); -lean_inc(x_42); -lean_inc(x_41); -lean_dec(x_13); -x_43 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_43, 0, x_41); -lean_ctor_set(x_43, 1, x_42); -return x_43; -} -} -} -else -{ -lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; -x_44 = lean_ctor_get(x_6, 0); -x_45 = lean_ctor_get(x_6, 2); -lean_inc(x_45); -lean_inc(x_44); +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_14 = lean_ctor_get(x_6, 0); +x_15 = lean_ctor_get(x_6, 2); +lean_inc(x_15); +lean_inc(x_14); lean_dec(x_6); lean_inc(x_2); -x_46 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_46, 0, x_44); -lean_ctor_set(x_46, 1, x_2); -lean_ctor_set(x_46, 2, x_45); -lean_inc(x_1); -lean_inc(x_46); -lean_inc(x_10); -x_47 = lean_apply_3(x_1, x_10, x_46, x_7); -if (lean_obj_tag(x_47) == 0) -{ -lean_object* x_48; lean_object* x_49; lean_object* x_50; uint8_t x_51; -x_48 = lean_ctor_get(x_47, 0); -lean_inc(x_48); -x_49 = lean_ctor_get(x_47, 1); -lean_inc(x_49); -if (lean_is_exclusive(x_47)) { - lean_ctor_release(x_47, 0); - lean_ctor_release(x_47, 1); - x_50 = x_47; -} else { - lean_dec_ref(x_47); - x_50 = lean_box(0); -} -x_51 = l_Lean_Expr_isForall(x_48); -lean_dec(x_48); -if (x_51 == 0) -{ -lean_object* x_52; -lean_dec(x_46); -lean_dec(x_9); +x_16 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_16, 0, x_14); +lean_ctor_set(x_16, 1, x_2); +lean_ctor_set(x_16, 2, x_15); +lean_inc(x_4); +lean_inc(x_3); +x_17 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__3(x_1, x_2, x_3, x_4, x_5, x_9, x_10, x_3, x_4, x_16, x_7); +lean_dec(x_5); +lean_dec(x_4); lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_52 = l_Lean_Expr_getAppFn___main(x_10); -lean_dec(x_10); -if (lean_obj_tag(x_52) == 4) -{ -lean_object* x_53; lean_object* x_54; uint8_t x_55; -x_53 = lean_ctor_get(x_52, 0); -lean_inc(x_53); -lean_dec(x_52); -x_54 = lean_ctor_get(x_49, 0); -lean_inc(x_54); -lean_inc(x_53); -x_55 = lean_is_class(x_54, x_53); -if (x_55 == 0) -{ -lean_object* x_56; lean_object* x_57; -lean_dec(x_53); -x_56 = lean_box(0); -if (lean_is_scalar(x_50)) { - x_57 = lean_alloc_ctor(0, 2, 0); -} else { - x_57 = x_50; -} -lean_ctor_set(x_57, 0, x_56); -lean_ctor_set(x_57, 1, x_49); -return x_57; -} -else -{ -lean_object* x_58; lean_object* x_59; -x_58 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_58, 0, x_53); -if (lean_is_scalar(x_50)) { - x_59 = lean_alloc_ctor(0, 2, 0); -} else { - x_59 = x_50; -} -lean_ctor_set(x_59, 0, x_58); -lean_ctor_set(x_59, 1, x_49); -return x_59; -} -} -else -{ -lean_object* x_60; lean_object* x_61; -lean_dec(x_52); -x_60 = lean_box(0); -if (lean_is_scalar(x_50)) { - x_61 = lean_alloc_ctor(0, 2, 0); -} else { - x_61 = x_50; -} -lean_ctor_set(x_61, 0, x_60); -lean_ctor_set(x_61, 1, x_49); -return x_61; -} -} -else -{ -lean_dec(x_50); -x_4 = x_9; -x_5 = x_10; -x_6 = x_46; -x_7 = x_49; -goto _start; -} -} -else -{ -lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; -lean_dec(x_46); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_63 = lean_ctor_get(x_47, 0); -lean_inc(x_63); -x_64 = lean_ctor_get(x_47, 1); -lean_inc(x_64); -if (lean_is_exclusive(x_47)) { - lean_ctor_release(x_47, 0); - lean_ctor_release(x_47, 1); - x_65 = x_47; -} else { - lean_dec_ref(x_47); - x_65 = lean_box(0); -} -if (lean_is_scalar(x_65)) { - x_66 = lean_alloc_ctor(1, 2, 0); -} else { - x_66 = x_65; -} -lean_ctor_set(x_66, 0, x_63); -lean_ctor_set(x_66, 1, x_64); -return x_66; +return x_17; } } } } -} -lean_object* l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_26__isClassExpensive___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; @@ -15644,7 +16494,7 @@ x_18 = lean_ctor_get(x_3, 1); lean_inc(x_18); x_19 = l_Array_empty___closed__1; x_20 = lean_unsigned_to_nat(0u); -x_21 = l___private_Init_Lean_Meta_24__forallTelescopeAux___main___at___private_Init_Lean_Meta_26__isClassExpensive___spec__2(x_1, x_18, x_19, x_20, x_7, x_3, x_8); +x_21 = l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__2(x_1, x_18, x_19, x_20, x_7, x_3, x_8); if (lean_obj_tag(x_21) == 0) { uint8_t x_22; @@ -15894,7 +16744,7 @@ x_76 = lean_ctor_get(x_3, 1); lean_inc(x_76); x_77 = l_Array_empty___closed__1; x_78 = lean_unsigned_to_nat(0u); -x_79 = l___private_Init_Lean_Meta_24__forallTelescopeAux___main___at___private_Init_Lean_Meta_26__isClassExpensive___spec__2(x_1, x_76, x_77, x_78, x_62, x_3, x_63); +x_79 = l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__2(x_1, x_76, x_77, x_78, x_62, x_3, x_63); if (lean_obj_tag(x_79) == 0) { lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; @@ -16039,20 +16889,844 @@ return x_105; } } } -lean_object* l___private_Init_Lean_Meta_26__isClassExpensive(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Init_Lean_Meta_29__isClassExpensive___main(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +uint8_t x_5; +x_5 = !lean_is_exclusive(x_3); +if (x_5 == 0) +{ +lean_object* x_6; uint8_t x_7; +x_6 = lean_ctor_get(x_3, 0); +x_7 = !lean_is_exclusive(x_6); +if (x_7 == 0) +{ +uint8_t x_8; lean_object* x_9; +x_8 = 2; +lean_ctor_set_uint8(x_6, sizeof(void*)*1 + 4, x_8); +x_9 = l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__1(x_1, x_2, x_3, x_4); +return x_9; +} +else +{ +lean_object* x_10; uint8_t x_11; uint8_t x_12; uint8_t x_13; uint8_t x_14; uint8_t x_15; lean_object* x_16; lean_object* x_17; +x_10 = lean_ctor_get(x_6, 0); +x_11 = lean_ctor_get_uint8(x_6, sizeof(void*)*1); +x_12 = lean_ctor_get_uint8(x_6, sizeof(void*)*1 + 1); +x_13 = lean_ctor_get_uint8(x_6, sizeof(void*)*1 + 2); +x_14 = lean_ctor_get_uint8(x_6, sizeof(void*)*1 + 3); +lean_inc(x_10); +lean_dec(x_6); +x_15 = 2; +x_16 = lean_alloc_ctor(0, 1, 5); +lean_ctor_set(x_16, 0, x_10); +lean_ctor_set_uint8(x_16, sizeof(void*)*1, x_11); +lean_ctor_set_uint8(x_16, sizeof(void*)*1 + 1, x_12); +lean_ctor_set_uint8(x_16, sizeof(void*)*1 + 2, x_13); +lean_ctor_set_uint8(x_16, sizeof(void*)*1 + 3, x_14); +lean_ctor_set_uint8(x_16, sizeof(void*)*1 + 4, x_15); +lean_ctor_set(x_3, 0, x_16); +x_17 = l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__1(x_1, x_2, x_3, x_4); +return x_17; +} +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; uint8_t x_22; uint8_t x_23; uint8_t x_24; uint8_t x_25; lean_object* x_26; uint8_t x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_18 = lean_ctor_get(x_3, 0); +x_19 = lean_ctor_get(x_3, 1); +x_20 = lean_ctor_get(x_3, 2); +lean_inc(x_20); +lean_inc(x_19); +lean_inc(x_18); +lean_dec(x_3); +x_21 = lean_ctor_get(x_18, 0); +lean_inc(x_21); +x_22 = lean_ctor_get_uint8(x_18, sizeof(void*)*1); +x_23 = lean_ctor_get_uint8(x_18, sizeof(void*)*1 + 1); +x_24 = lean_ctor_get_uint8(x_18, sizeof(void*)*1 + 2); +x_25 = lean_ctor_get_uint8(x_18, sizeof(void*)*1 + 3); +if (lean_is_exclusive(x_18)) { + lean_ctor_release(x_18, 0); + x_26 = x_18; +} else { + lean_dec_ref(x_18); + x_26 = lean_box(0); +} +x_27 = 2; +if (lean_is_scalar(x_26)) { + x_28 = lean_alloc_ctor(0, 1, 5); +} else { + x_28 = x_26; +} +lean_ctor_set(x_28, 0, x_21); +lean_ctor_set_uint8(x_28, sizeof(void*)*1, x_22); +lean_ctor_set_uint8(x_28, sizeof(void*)*1 + 1, x_23); +lean_ctor_set_uint8(x_28, sizeof(void*)*1 + 2, x_24); +lean_ctor_set_uint8(x_28, sizeof(void*)*1 + 3, x_25); +lean_ctor_set_uint8(x_28, sizeof(void*)*1 + 4, x_27); +x_29 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_29, 0, x_28); +lean_ctor_set(x_29, 1, x_19); +lean_ctor_set(x_29, 2, x_20); +x_30 = l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__1(x_1, x_2, x_29, x_4); +return x_30; +} +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__3___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +lean_object* x_9; +x_9 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__3___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_dec(x_1); +return x_9; +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { +_start: +{ +lean_object* x_12; +x_12 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_29__isClassExpensive___main___spec__3(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_4); +return x_12; +} +} +lean_object* l___private_Init_Lean_Meta_29__isClassExpensive(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_26__isClassExpensive___spec__1(x_1, x_2, x_3, x_4); +x_5 = l___private_Init_Lean_Meta_29__isClassExpensive___main(x_1, x_2, x_3, x_4); return x_5; } } +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at_Lean_Meta_forallTelescope___spec__3___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +_start: +{ +uint8_t x_10; +x_10 = l_Lean_Expr_isForall(x_7); +if (x_10 == 0) +{ +lean_object* x_11; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_11 = lean_apply_4(x_1, x_2, x_3, x_8, x_9); +return x_11; +} +else +{ +lean_object* x_12; +lean_dec(x_3); +x_12 = l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at_Lean_Meta_forallTelescope___spec__2___rarg(x_4, x_1, x_5, x_2, x_6, x_7, x_8, x_9); +return x_12; +} +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at_Lean_Meta_forallTelescope___spec__3___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12) { +_start: +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; +lean_inc(x_1); +lean_inc(x_8); +x_13 = lean_apply_1(x_1, x_8); +lean_inc(x_7); +lean_inc(x_3); +lean_inc(x_1); +lean_inc(x_8); +lean_inc(x_4); +lean_inc(x_2); +x_14 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at_Lean_Meta_forallTelescope___spec__3___rarg___lambda__1), 9, 6); +lean_closure_set(x_14, 0, x_2); +lean_closure_set(x_14, 1, x_4); +lean_closure_set(x_14, 2, x_8); +lean_closure_set(x_14, 3, x_1); +lean_closure_set(x_14, 4, x_3); +lean_closure_set(x_14, 5, x_7); +x_15 = lean_array_get_size(x_9); +x_16 = lean_nat_dec_lt(x_10, x_15); +lean_dec(x_15); +if (x_16 == 0) +{ +lean_object* x_17; +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_17 = l_ReaderT_bind___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__1___rarg(x_13, x_14, x_11, x_12); +return x_17; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_dec(x_14); +lean_dec(x_13); +x_18 = lean_array_fget(x_9, x_10); +x_19 = l_Lean_Expr_fvarId_x21(x_18); +lean_inc(x_11); +x_20 = l___private_Init_Lean_Meta_19__getLocalDecl(x_19, x_11, x_12); +if (lean_obj_tag(x_20) == 0) +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_21 = lean_ctor_get(x_20, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_20, 1); +lean_inc(x_22); +lean_dec(x_20); +x_23 = l_Lean_LocalDecl_type(x_21); +lean_dec(x_21); +lean_inc(x_23); +x_24 = l___private_Init_Lean_Meta_24__isClassQuick___main(x_23, x_11, x_22); +if (lean_obj_tag(x_24) == 0) +{ +lean_object* x_25; +x_25 = lean_ctor_get(x_24, 0); +lean_inc(x_25); +switch (lean_obj_tag(x_25)) { +case 0: +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; +lean_dec(x_23); +lean_dec(x_18); +x_26 = lean_ctor_get(x_24, 1); +lean_inc(x_26); +lean_dec(x_24); +x_27 = lean_unsigned_to_nat(1u); +x_28 = lean_nat_add(x_10, x_27); +lean_dec(x_10); +x_10 = x_28; +x_12 = x_26; +goto _start; +} +case 1: +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; +lean_dec(x_23); +x_30 = lean_ctor_get(x_24, 1); +lean_inc(x_30); +lean_dec(x_24); +x_31 = lean_ctor_get(x_25, 0); +lean_inc(x_31); +lean_dec(x_25); +x_32 = lean_unsigned_to_nat(1u); +x_33 = lean_nat_add(x_10, x_32); +lean_dec(x_10); +x_34 = !lean_is_exclusive(x_11); +if (x_34 == 0) +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_35 = lean_ctor_get(x_11, 2); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_31); +lean_ctor_set(x_36, 1, x_18); +x_37 = lean_array_push(x_35, x_36); +lean_ctor_set(x_11, 2, x_37); +x_10 = x_33; +x_12 = x_30; +goto _start; +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_39 = lean_ctor_get(x_11, 0); +x_40 = lean_ctor_get(x_11, 1); +x_41 = lean_ctor_get(x_11, 2); +lean_inc(x_41); +lean_inc(x_40); +lean_inc(x_39); +lean_dec(x_11); +x_42 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_42, 0, x_31); +lean_ctor_set(x_42, 1, x_18); +x_43 = lean_array_push(x_41, x_42); +x_44 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_44, 0, x_39); +lean_ctor_set(x_44, 1, x_40); +lean_ctor_set(x_44, 2, x_43); +x_10 = x_33; +x_11 = x_44; +x_12 = x_30; +goto _start; +} +} +default: +{ +lean_object* x_46; lean_object* x_47; +x_46 = lean_ctor_get(x_24, 1); +lean_inc(x_46); +lean_dec(x_24); +lean_inc(x_11); +lean_inc(x_1); +x_47 = l___private_Init_Lean_Meta_29__isClassExpensive___main(x_1, x_23, x_11, x_46); +if (lean_obj_tag(x_47) == 0) +{ +lean_object* x_48; +x_48 = lean_ctor_get(x_47, 0); +lean_inc(x_48); +if (lean_obj_tag(x_48) == 0) +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +lean_dec(x_18); +x_49 = lean_ctor_get(x_47, 1); +lean_inc(x_49); +lean_dec(x_47); +x_50 = lean_unsigned_to_nat(1u); +x_51 = lean_nat_add(x_10, x_50); +lean_dec(x_10); +x_10 = x_51; +x_12 = x_49; +goto _start; +} +else +{ +lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; uint8_t x_57; +x_53 = lean_ctor_get(x_47, 1); +lean_inc(x_53); +lean_dec(x_47); +x_54 = lean_ctor_get(x_48, 0); +lean_inc(x_54); +lean_dec(x_48); +x_55 = lean_unsigned_to_nat(1u); +x_56 = lean_nat_add(x_10, x_55); +lean_dec(x_10); +x_57 = !lean_is_exclusive(x_11); +if (x_57 == 0) +{ +lean_object* x_58; lean_object* x_59; lean_object* x_60; +x_58 = lean_ctor_get(x_11, 2); +x_59 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_59, 0, x_54); +lean_ctor_set(x_59, 1, x_18); +x_60 = lean_array_push(x_58, x_59); +lean_ctor_set(x_11, 2, x_60); +x_10 = x_56; +x_12 = x_53; +goto _start; +} +else +{ +lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; +x_62 = lean_ctor_get(x_11, 0); +x_63 = lean_ctor_get(x_11, 1); +x_64 = lean_ctor_get(x_11, 2); +lean_inc(x_64); +lean_inc(x_63); +lean_inc(x_62); +lean_dec(x_11); +x_65 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_65, 0, x_54); +lean_ctor_set(x_65, 1, x_18); +x_66 = lean_array_push(x_64, x_65); +x_67 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_67, 0, x_62); +lean_ctor_set(x_67, 1, x_63); +lean_ctor_set(x_67, 2, x_66); +x_10 = x_56; +x_11 = x_67; +x_12 = x_53; +goto _start; +} +} +} +else +{ +uint8_t x_69; +lean_dec(x_18); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_69 = !lean_is_exclusive(x_47); +if (x_69 == 0) +{ +return x_47; +} +else +{ +lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_70 = lean_ctor_get(x_47, 0); +x_71 = lean_ctor_get(x_47, 1); +lean_inc(x_71); +lean_inc(x_70); +lean_dec(x_47); +x_72 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_72, 0, x_70); +lean_ctor_set(x_72, 1, x_71); +return x_72; +} +} +} +} +} +else +{ +uint8_t x_73; +lean_dec(x_23); +lean_dec(x_18); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_73 = !lean_is_exclusive(x_24); +if (x_73 == 0) +{ +return x_24; +} +else +{ +lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_74 = lean_ctor_get(x_24, 0); +x_75 = lean_ctor_get(x_24, 1); +lean_inc(x_75); +lean_inc(x_74); +lean_dec(x_24); +x_76 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_76, 0, x_74); +lean_ctor_set(x_76, 1, x_75); +return x_76; +} +} +} +else +{ +uint8_t x_77; +lean_dec(x_18); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_77 = !lean_is_exclusive(x_20); +if (x_77 == 0) +{ +return x_20; +} +else +{ +lean_object* x_78; lean_object* x_79; lean_object* x_80; +x_78 = lean_ctor_get(x_20, 0); +x_79 = lean_ctor_get(x_20, 1); +lean_inc(x_79); +lean_inc(x_78); +lean_dec(x_20); +x_80 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_80, 0, x_78); +lean_ctor_set(x_80, 1, x_79); +return x_80; +} +} +} +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at_Lean_Meta_forallTelescope___spec__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at_Lean_Meta_forallTelescope___spec__3___rarg___boxed), 12, 0); +return x_2; +} +} +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at_Lean_Meta_forallTelescope___spec__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +lean_object* x_9; +if (lean_obj_tag(x_6) == 7) +{ +lean_object* x_20; uint8_t x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_20 = lean_ctor_get(x_6, 0); +lean_inc(x_20); +x_21 = lean_ctor_get_uint8(x_6, sizeof(void*)*3); +x_22 = lean_ctor_get(x_6, 1); +lean_inc(x_22); +x_23 = lean_ctor_get(x_6, 2); +lean_inc(x_23); +lean_dec(x_6); +x_24 = lean_array_get_size(x_4); +lean_inc(x_4); +x_25 = lean_expr_instantiate_rev_range(x_22, x_5, x_24, x_4); +lean_dec(x_24); +lean_dec(x_22); +x_26 = l___private_Init_Lean_Meta_7__mkFreshId___rarg(x_8); +x_27 = lean_ctor_get(x_26, 0); +lean_inc(x_27); +x_28 = lean_ctor_get(x_26, 1); +lean_inc(x_28); +lean_dec(x_26); +lean_inc(x_27); +x_29 = lean_local_ctx_mk_local_decl(x_3, x_27, x_20, x_25, x_21); +x_30 = lean_expr_mk_fvar(x_27); +x_31 = lean_array_push(x_4, x_30); +x_3 = x_29; +x_4 = x_31; +x_6 = x_23; +x_8 = x_28; +goto _start; +} +else +{ +lean_object* x_33; +x_33 = lean_box(0); +x_9 = x_33; +goto block_19; +} +block_19: +{ +lean_object* x_10; lean_object* x_11; uint8_t x_12; +lean_dec(x_9); +x_10 = lean_array_get_size(x_4); +lean_inc(x_4); +x_11 = lean_expr_instantiate_rev_range(x_6, x_5, x_10, x_4); +x_12 = !lean_is_exclusive(x_7); +if (x_12 == 0) +{ +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_7, 1); +lean_dec(x_13); +lean_inc(x_3); +lean_ctor_set(x_7, 1, x_3); +lean_inc(x_5); +lean_inc(x_4); +x_14 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at_Lean_Meta_forallTelescope___spec__3___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_10, x_11, x_4, x_5, x_7, x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +return x_14; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_15 = lean_ctor_get(x_7, 0); +x_16 = lean_ctor_get(x_7, 2); +lean_inc(x_16); +lean_inc(x_15); +lean_dec(x_7); +lean_inc(x_3); +x_17 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_17, 0, x_15); +lean_ctor_set(x_17, 1, x_3); +lean_ctor_set(x_17, 2, x_16); +lean_inc(x_5); +lean_inc(x_4); +x_18 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at_Lean_Meta_forallTelescope___spec__3___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_10, x_11, x_4, x_5, x_17, x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +return x_18; +} +} +} +} +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at_Lean_Meta_forallTelescope___spec__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at_Lean_Meta_forallTelescope___spec__2___rarg), 8, 0); +return x_2; +} +} +lean_object* l___private_Init_Lean_Meta_28__forallTelescopeAux___at_Lean_Meta_forallTelescope___spec__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; +lean_inc(x_1); +lean_inc(x_4); +lean_inc(x_3); +x_6 = lean_apply_3(x_1, x_3, x_4, x_5); +if (lean_obj_tag(x_6) == 0) +{ +lean_object* x_7; lean_object* x_8; uint8_t x_9; +x_7 = lean_ctor_get(x_6, 0); +lean_inc(x_7); +x_8 = lean_ctor_get(x_6, 1); +lean_inc(x_8); +lean_dec(x_6); +x_9 = l_Lean_Expr_isForall(x_7); +if (x_9 == 0) +{ +lean_object* x_10; lean_object* x_11; +lean_dec(x_7); +lean_dec(x_1); +x_10 = l_Array_empty___closed__1; +x_11 = lean_apply_4(x_2, x_10, x_3, x_4, x_8); +return x_11; +} +else +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +lean_dec(x_3); +x_12 = lean_ctor_get(x_8, 2); +lean_inc(x_12); +x_13 = lean_ctor_get(x_4, 1); +lean_inc(x_13); +x_14 = l_Array_empty___closed__1; +x_15 = lean_unsigned_to_nat(0u); +x_16 = l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at_Lean_Meta_forallTelescope___spec__2___rarg(x_1, x_2, x_13, x_14, x_15, x_7, x_4, x_8); +if (lean_obj_tag(x_16) == 0) +{ +uint8_t x_17; +x_17 = !lean_is_exclusive(x_16); +if (x_17 == 0) +{ +lean_object* x_18; uint8_t x_19; +x_18 = lean_ctor_get(x_16, 1); +x_19 = !lean_is_exclusive(x_18); +if (x_19 == 0) +{ +lean_object* x_20; +x_20 = lean_ctor_get(x_18, 2); +lean_dec(x_20); +lean_ctor_set(x_18, 2, x_12); +return x_16; +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_21 = lean_ctor_get(x_18, 0); +x_22 = lean_ctor_get(x_18, 1); +x_23 = lean_ctor_get(x_18, 3); +x_24 = lean_ctor_get(x_18, 4); +x_25 = lean_ctor_get(x_18, 5); +lean_inc(x_25); +lean_inc(x_24); +lean_inc(x_23); +lean_inc(x_22); +lean_inc(x_21); +lean_dec(x_18); +x_26 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_26, 0, x_21); +lean_ctor_set(x_26, 1, x_22); +lean_ctor_set(x_26, 2, x_12); +lean_ctor_set(x_26, 3, x_23); +lean_ctor_set(x_26, 4, x_24); +lean_ctor_set(x_26, 5, x_25); +lean_ctor_set(x_16, 1, x_26); +return x_16; +} +} +else +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_27 = lean_ctor_get(x_16, 1); +x_28 = lean_ctor_get(x_16, 0); +lean_inc(x_27); +lean_inc(x_28); +lean_dec(x_16); +x_29 = lean_ctor_get(x_27, 0); +lean_inc(x_29); +x_30 = lean_ctor_get(x_27, 1); +lean_inc(x_30); +x_31 = lean_ctor_get(x_27, 3); +lean_inc(x_31); +x_32 = lean_ctor_get(x_27, 4); +lean_inc(x_32); +x_33 = lean_ctor_get(x_27, 5); +lean_inc(x_33); +if (lean_is_exclusive(x_27)) { + lean_ctor_release(x_27, 0); + lean_ctor_release(x_27, 1); + lean_ctor_release(x_27, 2); + lean_ctor_release(x_27, 3); + lean_ctor_release(x_27, 4); + lean_ctor_release(x_27, 5); + x_34 = x_27; +} else { + lean_dec_ref(x_27); + x_34 = lean_box(0); +} +if (lean_is_scalar(x_34)) { + x_35 = lean_alloc_ctor(0, 6, 0); +} else { + x_35 = x_34; +} +lean_ctor_set(x_35, 0, x_29); +lean_ctor_set(x_35, 1, x_30); +lean_ctor_set(x_35, 2, x_12); +lean_ctor_set(x_35, 3, x_31); +lean_ctor_set(x_35, 4, x_32); +lean_ctor_set(x_35, 5, x_33); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_28); +lean_ctor_set(x_36, 1, x_35); +return x_36; +} +} +else +{ +uint8_t x_37; +x_37 = !lean_is_exclusive(x_16); +if (x_37 == 0) +{ +lean_object* x_38; uint8_t x_39; +x_38 = lean_ctor_get(x_16, 1); +x_39 = !lean_is_exclusive(x_38); +if (x_39 == 0) +{ +lean_object* x_40; +x_40 = lean_ctor_get(x_38, 2); +lean_dec(x_40); +lean_ctor_set(x_38, 2, x_12); +return x_16; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_41 = lean_ctor_get(x_38, 0); +x_42 = lean_ctor_get(x_38, 1); +x_43 = lean_ctor_get(x_38, 3); +x_44 = lean_ctor_get(x_38, 4); +x_45 = lean_ctor_get(x_38, 5); +lean_inc(x_45); +lean_inc(x_44); +lean_inc(x_43); +lean_inc(x_42); +lean_inc(x_41); +lean_dec(x_38); +x_46 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_46, 0, x_41); +lean_ctor_set(x_46, 1, x_42); +lean_ctor_set(x_46, 2, x_12); +lean_ctor_set(x_46, 3, x_43); +lean_ctor_set(x_46, 4, x_44); +lean_ctor_set(x_46, 5, x_45); +lean_ctor_set(x_16, 1, x_46); +return x_16; +} +} +else +{ +lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; +x_47 = lean_ctor_get(x_16, 1); +x_48 = lean_ctor_get(x_16, 0); +lean_inc(x_47); +lean_inc(x_48); +lean_dec(x_16); +x_49 = lean_ctor_get(x_47, 0); +lean_inc(x_49); +x_50 = lean_ctor_get(x_47, 1); +lean_inc(x_50); +x_51 = lean_ctor_get(x_47, 3); +lean_inc(x_51); +x_52 = lean_ctor_get(x_47, 4); +lean_inc(x_52); +x_53 = lean_ctor_get(x_47, 5); +lean_inc(x_53); +if (lean_is_exclusive(x_47)) { + lean_ctor_release(x_47, 0); + lean_ctor_release(x_47, 1); + lean_ctor_release(x_47, 2); + lean_ctor_release(x_47, 3); + lean_ctor_release(x_47, 4); + lean_ctor_release(x_47, 5); + x_54 = x_47; +} else { + lean_dec_ref(x_47); + x_54 = lean_box(0); +} +if (lean_is_scalar(x_54)) { + x_55 = lean_alloc_ctor(0, 6, 0); +} else { + x_55 = x_54; +} +lean_ctor_set(x_55, 0, x_49); +lean_ctor_set(x_55, 1, x_50); +lean_ctor_set(x_55, 2, x_12); +lean_ctor_set(x_55, 3, x_51); +lean_ctor_set(x_55, 4, x_52); +lean_ctor_set(x_55, 5, x_53); +x_56 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_56, 0, x_48); +lean_ctor_set(x_56, 1, x_55); +return x_56; +} +} +} +} +else +{ +uint8_t x_57; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_57 = !lean_is_exclusive(x_6); +if (x_57 == 0) +{ +return x_6; +} +else +{ +lean_object* x_58; lean_object* x_59; lean_object* x_60; +x_58 = lean_ctor_get(x_6, 0); +x_59 = lean_ctor_get(x_6, 1); +lean_inc(x_59); +lean_inc(x_58); +lean_dec(x_6); +x_60 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_60, 0, x_58); +lean_ctor_set(x_60, 1, x_59); +return x_60; +} +} +} +} +lean_object* l___private_Init_Lean_Meta_28__forallTelescopeAux___at_Lean_Meta_forallTelescope___spec__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_28__forallTelescopeAux___at_Lean_Meta_forallTelescope___spec__1___rarg), 5, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_forallTelescope___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; +x_6 = l___private_Init_Lean_Meta_28__forallTelescopeAux___at_Lean_Meta_forallTelescope___spec__1___rarg(x_1, x_3, x_2, x_4, x_5); +return x_6; +} +} +lean_object* l_Lean_Meta_forallTelescope(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_forallTelescope___rarg), 5, 0); +return x_2; +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at_Lean_Meta_forallTelescope___spec__3___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12) { +_start: +{ +lean_object* x_13; +x_13 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at_Lean_Meta_forallTelescope___spec__3___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_9); +lean_dec(x_6); +lean_dec(x_5); +return x_13; +} +} lean_object* l_Lean_Meta_isClass(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_inc(x_2); -x_5 = l___private_Init_Lean_Meta_25__isClassQuick___main(x_2, x_3, x_4); +x_5 = l___private_Init_Lean_Meta_24__isClassQuick___main(x_2, x_3, x_4); if (lean_obj_tag(x_5) == 0) { lean_object* x_6; @@ -16131,7 +17805,7 @@ lean_object* x_21; lean_object* x_22; x_21 = lean_ctor_get(x_5, 1); lean_inc(x_21); lean_dec(x_5); -x_22 = l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_26__isClassExpensive___spec__1(x_1, x_2, x_3, x_21); +x_22 = l___private_Init_Lean_Meta_29__isClassExpensive___main(x_1, x_2, x_3, x_21); return x_22; } } @@ -16163,7 +17837,7 @@ return x_26; } } } -lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_27__getForallResultType___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_30__getForallResultType___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { _start: { lean_object* x_9; uint8_t x_10; @@ -16426,7 +18100,7 @@ return x_63; } } } -lean_object* l___private_Init_Lean_Meta_27__getForallResultType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l___private_Init_Lean_Meta_30__getForallResultType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; @@ -16438,7 +18112,7 @@ lean_ctor_set(x_7, 1, x_2); x_8 = lean_array_get_size(x_3); lean_inc(x_8); lean_inc(x_3); -x_9 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_27__getForallResultType___spec__1(x_1, x_2, x_3, x_8, x_8, x_7, x_4, x_5); +x_9 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_30__getForallResultType___spec__1(x_1, x_2, x_3, x_8, x_8, x_7, x_4, x_5); if (lean_obj_tag(x_9) == 0) { uint8_t x_10; @@ -16508,16 +18182,16 @@ return x_24; } } } -lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_27__getForallResultType___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_30__getForallResultType___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { _start: { lean_object* x_9; -x_9 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_27__getForallResultType___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +x_9 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_30__getForallResultType___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); lean_dec(x_4); return x_9; } } -lean_object* l___private_Init_Lean_Meta_28__inferAppType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l___private_Init_Lean_Meta_31__inferAppType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { lean_object* x_7; @@ -16531,7 +18205,7 @@ lean_inc(x_8); x_9 = lean_ctor_get(x_7, 1); lean_inc(x_9); lean_dec(x_7); -x_10 = l___private_Init_Lean_Meta_27__getForallResultType(x_1, x_8, x_4, x_5, x_9); +x_10 = l___private_Init_Lean_Meta_30__getForallResultType(x_1, x_8, x_4, x_5, x_9); return x_10; } else @@ -16561,7 +18235,7 @@ return x_14; } } } -lean_object* l___private_Init_Lean_Meta_29__inferConstType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Init_Lean_Meta_32__inferConstType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; @@ -16638,16 +18312,16 @@ return x_23; } } } -lean_object* l___private_Init_Lean_Meta_29__inferConstType___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Init_Lean_Meta_32__inferConstType___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l___private_Init_Lean_Meta_29__inferConstType(x_1, x_2, x_3, x_4); +x_5 = l___private_Init_Lean_Meta_32__inferConstType(x_1, x_2, x_3, x_4); lean_dec(x_3); return x_5; } } -lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_30__inferProjType___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_33__inferProjType___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { _start: { lean_object* x_10; uint8_t x_11; @@ -16812,7 +18486,7 @@ return x_44; } } } -lean_object* l___private_Init_Lean_Meta_30__inferProjType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +lean_object* l___private_Init_Lean_Meta_33__inferProjType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { _start: { lean_object* x_8; @@ -17002,7 +18676,7 @@ lean_dec(x_45); x_50 = lean_instantiate_type_lparams(x_49, x_19); lean_inc(x_6); lean_inc(x_1); -x_51 = l___private_Init_Lean_Meta_27__getForallResultType(x_1, x_50, x_39, x_6, x_13); +x_51 = l___private_Init_Lean_Meta_30__getForallResultType(x_1, x_50, x_39, x_6, x_13); if (lean_obj_tag(x_51) == 0) { lean_object* x_52; lean_object* x_53; lean_object* x_54; @@ -17016,7 +18690,7 @@ lean_inc(x_5); lean_inc_n(x_4, 2); lean_inc(x_3); lean_inc(x_1); -x_54 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_30__inferProjType___spec__1(x_1, x_3, x_4, x_5, x_4, x_4, x_52, x_6, x_53); +x_54 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_33__inferProjType___spec__1(x_1, x_3, x_4, x_5, x_4, x_4, x_52, x_6, x_53); if (lean_obj_tag(x_54) == 0) { lean_object* x_55; lean_object* x_56; lean_object* x_57; @@ -17460,7 +19134,7 @@ lean_dec(x_136); x_142 = lean_instantiate_type_lparams(x_141, x_107); lean_inc(x_6); lean_inc(x_1); -x_143 = l___private_Init_Lean_Meta_27__getForallResultType(x_1, x_142, x_129, x_6, x_101); +x_143 = l___private_Init_Lean_Meta_30__getForallResultType(x_1, x_142, x_129, x_6, x_101); if (lean_obj_tag(x_143) == 0) { lean_object* x_144; lean_object* x_145; lean_object* x_146; @@ -17474,7 +19148,7 @@ lean_inc(x_5); lean_inc_n(x_4, 2); lean_inc(x_3); lean_inc(x_1); -x_146 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_30__inferProjType___spec__1(x_1, x_3, x_4, x_5, x_4, x_4, x_144, x_6, x_145); +x_146 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_33__inferProjType___spec__1(x_1, x_3, x_4, x_5, x_4, x_4, x_144, x_6, x_145); if (lean_obj_tag(x_146) == 0) { lean_object* x_147; lean_object* x_148; lean_object* x_149; @@ -17787,16 +19461,16 @@ return x_194; } } } -lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_30__inferProjType___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_33__inferProjType___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { _start: { lean_object* x_10; -x_10 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_30__inferProjType___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_10 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_33__inferProjType___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); lean_dec(x_5); return x_10; } } -lean_object* l___private_Init_Lean_Meta_31__getLevel(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l___private_Init_Lean_Meta_34__getLevel(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; @@ -18125,7 +19799,7 @@ return x_77; } } } -lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_32__inferForallType___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_35__inferForallType___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { _start: { lean_object* x_10; uint8_t x_11; @@ -18152,7 +19826,7 @@ lean_dec(x_15); lean_inc(x_8); lean_inc(x_2); lean_inc(x_1); -x_18 = l___private_Init_Lean_Meta_31__getLevel(x_1, x_2, x_16, x_8, x_17); +x_18 = l___private_Init_Lean_Meta_34__getLevel(x_1, x_2, x_16, x_8, x_17); if (lean_obj_tag(x_18) == 0) { lean_object* x_19; lean_object* x_20; lean_object* x_21; @@ -18238,58 +19912,515 @@ return x_31; } } } -lean_object* l___private_Init_Lean_Meta_24__forallTelescopeAux___main___at___private_Init_Lean_Meta_32__inferForallType___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_35__inferForallType___spec__4___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +_start: +{ +uint8_t x_10; +x_10 = l_Lean_Expr_isForall(x_7); +if (x_10 == 0) +{ +lean_object* x_11; +lean_dec(x_7); +lean_dec(x_6); +lean_inc(x_1); +lean_inc(x_8); +x_11 = lean_apply_3(x_1, x_2, x_8, x_9); +if (lean_obj_tag(x_11) == 0) +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_12 = lean_ctor_get(x_11, 0); +lean_inc(x_12); +x_13 = lean_ctor_get(x_11, 1); +lean_inc(x_13); +lean_dec(x_11); +lean_inc(x_8); +lean_inc(x_1); +lean_inc(x_3); +x_14 = l___private_Init_Lean_Meta_34__getLevel(x_3, x_1, x_12, x_8, x_13); +if (lean_obj_tag(x_14) == 0) +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); +x_16 = lean_ctor_get(x_14, 1); +lean_inc(x_16); +lean_dec(x_14); +x_17 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_35__inferForallType___spec__1(x_3, x_1, x_4, x_4, x_5, lean_box(0), x_15, x_8, x_16); +lean_dec(x_4); +if (lean_obj_tag(x_17) == 0) +{ +uint8_t x_18; +x_18 = !lean_is_exclusive(x_17); +if (x_18 == 0) +{ +lean_object* x_19; lean_object* x_20; +x_19 = lean_ctor_get(x_17, 0); +x_20 = lean_expr_mk_sort(x_19); +lean_ctor_set(x_17, 0, x_20); +return x_17; +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_21 = lean_ctor_get(x_17, 0); +x_22 = lean_ctor_get(x_17, 1); +lean_inc(x_22); +lean_inc(x_21); +lean_dec(x_17); +x_23 = lean_expr_mk_sort(x_21); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_22); +return x_24; +} +} +else +{ +uint8_t x_25; +x_25 = !lean_is_exclusive(x_17); +if (x_25 == 0) +{ +return x_17; +} +else +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_17, 0); +x_27 = lean_ctor_get(x_17, 1); +lean_inc(x_27); +lean_inc(x_26); +lean_dec(x_17); +x_28 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_28, 0, x_26); +lean_ctor_set(x_28, 1, x_27); +return x_28; +} +} +} +else +{ +uint8_t x_29; +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_29 = !lean_is_exclusive(x_14); +if (x_29 == 0) +{ +return x_14; +} +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_14, 0); +x_31 = lean_ctor_get(x_14, 1); +lean_inc(x_31); +lean_inc(x_30); +lean_dec(x_14); +x_32 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_32, 0, x_30); +lean_ctor_set(x_32, 1, x_31); +return x_32; +} +} +} +else +{ +uint8_t x_33; +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_33 = !lean_is_exclusive(x_11); +if (x_33 == 0) +{ +return x_11; +} +else +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_11, 0); +x_35 = lean_ctor_get(x_11, 1); +lean_inc(x_35); +lean_inc(x_34); +lean_dec(x_11); +x_36 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_36, 0, x_34); +lean_ctor_set(x_36, 1, x_35); +return x_36; +} +} +} +else +{ +lean_object* x_37; +lean_dec(x_2); +x_37 = l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at___private_Init_Lean_Meta_35__inferForallType___spec__3(x_3, x_1, x_6, x_4, x_5, x_7, x_8, x_9); +return x_37; +} +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_35__inferForallType___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12) { +_start: +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; +lean_inc(x_1); +lean_inc(x_8); +x_13 = lean_apply_1(x_1, x_8); +lean_inc(x_3); +lean_inc(x_7); +lean_inc(x_4); +lean_inc(x_1); +lean_inc(x_8); +lean_inc(x_2); +x_14 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_35__inferForallType___spec__4___lambda__1), 9, 6); +lean_closure_set(x_14, 0, x_2); +lean_closure_set(x_14, 1, x_8); +lean_closure_set(x_14, 2, x_1); +lean_closure_set(x_14, 3, x_4); +lean_closure_set(x_14, 4, x_7); +lean_closure_set(x_14, 5, x_3); +x_15 = lean_array_get_size(x_9); +x_16 = lean_nat_dec_lt(x_10, x_15); +lean_dec(x_15); +if (x_16 == 0) +{ +lean_object* x_17; +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_17 = l_ReaderT_bind___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__1___rarg(x_13, x_14, x_11, x_12); +return x_17; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_dec(x_14); +lean_dec(x_13); +x_18 = lean_array_fget(x_9, x_10); +x_19 = l_Lean_Expr_fvarId_x21(x_18); +lean_inc(x_11); +x_20 = l___private_Init_Lean_Meta_19__getLocalDecl(x_19, x_11, x_12); +if (lean_obj_tag(x_20) == 0) +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_21 = lean_ctor_get(x_20, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_20, 1); +lean_inc(x_22); +lean_dec(x_20); +x_23 = l_Lean_LocalDecl_type(x_21); +lean_dec(x_21); +lean_inc(x_23); +x_24 = l___private_Init_Lean_Meta_24__isClassQuick___main(x_23, x_11, x_22); +if (lean_obj_tag(x_24) == 0) +{ +lean_object* x_25; +x_25 = lean_ctor_get(x_24, 0); +lean_inc(x_25); +switch (lean_obj_tag(x_25)) { +case 0: +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; +lean_dec(x_23); +lean_dec(x_18); +x_26 = lean_ctor_get(x_24, 1); +lean_inc(x_26); +lean_dec(x_24); +x_27 = lean_unsigned_to_nat(1u); +x_28 = lean_nat_add(x_10, x_27); +lean_dec(x_10); +x_10 = x_28; +x_12 = x_26; +goto _start; +} +case 1: +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; +lean_dec(x_23); +x_30 = lean_ctor_get(x_24, 1); +lean_inc(x_30); +lean_dec(x_24); +x_31 = lean_ctor_get(x_25, 0); +lean_inc(x_31); +lean_dec(x_25); +x_32 = lean_unsigned_to_nat(1u); +x_33 = lean_nat_add(x_10, x_32); +lean_dec(x_10); +x_34 = !lean_is_exclusive(x_11); +if (x_34 == 0) +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_35 = lean_ctor_get(x_11, 2); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_31); +lean_ctor_set(x_36, 1, x_18); +x_37 = lean_array_push(x_35, x_36); +lean_ctor_set(x_11, 2, x_37); +x_10 = x_33; +x_12 = x_30; +goto _start; +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_39 = lean_ctor_get(x_11, 0); +x_40 = lean_ctor_get(x_11, 1); +x_41 = lean_ctor_get(x_11, 2); +lean_inc(x_41); +lean_inc(x_40); +lean_inc(x_39); +lean_dec(x_11); +x_42 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_42, 0, x_31); +lean_ctor_set(x_42, 1, x_18); +x_43 = lean_array_push(x_41, x_42); +x_44 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_44, 0, x_39); +lean_ctor_set(x_44, 1, x_40); +lean_ctor_set(x_44, 2, x_43); +x_10 = x_33; +x_11 = x_44; +x_12 = x_30; +goto _start; +} +} +default: +{ +lean_object* x_46; lean_object* x_47; +x_46 = lean_ctor_get(x_24, 1); +lean_inc(x_46); +lean_dec(x_24); +lean_inc(x_11); +lean_inc(x_1); +x_47 = l___private_Init_Lean_Meta_29__isClassExpensive___main(x_1, x_23, x_11, x_46); +if (lean_obj_tag(x_47) == 0) +{ +lean_object* x_48; +x_48 = lean_ctor_get(x_47, 0); +lean_inc(x_48); +if (lean_obj_tag(x_48) == 0) +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +lean_dec(x_18); +x_49 = lean_ctor_get(x_47, 1); +lean_inc(x_49); +lean_dec(x_47); +x_50 = lean_unsigned_to_nat(1u); +x_51 = lean_nat_add(x_10, x_50); +lean_dec(x_10); +x_10 = x_51; +x_12 = x_49; +goto _start; +} +else +{ +lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; uint8_t x_57; +x_53 = lean_ctor_get(x_47, 1); +lean_inc(x_53); +lean_dec(x_47); +x_54 = lean_ctor_get(x_48, 0); +lean_inc(x_54); +lean_dec(x_48); +x_55 = lean_unsigned_to_nat(1u); +x_56 = lean_nat_add(x_10, x_55); +lean_dec(x_10); +x_57 = !lean_is_exclusive(x_11); +if (x_57 == 0) +{ +lean_object* x_58; lean_object* x_59; lean_object* x_60; +x_58 = lean_ctor_get(x_11, 2); +x_59 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_59, 0, x_54); +lean_ctor_set(x_59, 1, x_18); +x_60 = lean_array_push(x_58, x_59); +lean_ctor_set(x_11, 2, x_60); +x_10 = x_56; +x_12 = x_53; +goto _start; +} +else +{ +lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; +x_62 = lean_ctor_get(x_11, 0); +x_63 = lean_ctor_get(x_11, 1); +x_64 = lean_ctor_get(x_11, 2); +lean_inc(x_64); +lean_inc(x_63); +lean_inc(x_62); +lean_dec(x_11); +x_65 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_65, 0, x_54); +lean_ctor_set(x_65, 1, x_18); +x_66 = lean_array_push(x_64, x_65); +x_67 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_67, 0, x_62); +lean_ctor_set(x_67, 1, x_63); +lean_ctor_set(x_67, 2, x_66); +x_10 = x_56; +x_11 = x_67; +x_12 = x_53; +goto _start; +} +} +} +else +{ +uint8_t x_69; +lean_dec(x_18); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_69 = !lean_is_exclusive(x_47); +if (x_69 == 0) +{ +return x_47; +} +else +{ +lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_70 = lean_ctor_get(x_47, 0); +x_71 = lean_ctor_get(x_47, 1); +lean_inc(x_71); +lean_inc(x_70); +lean_dec(x_47); +x_72 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_72, 0, x_70); +lean_ctor_set(x_72, 1, x_71); +return x_72; +} +} +} +} +} +else +{ +uint8_t x_73; +lean_dec(x_23); +lean_dec(x_18); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_73 = !lean_is_exclusive(x_24); +if (x_73 == 0) +{ +return x_24; +} +else +{ +lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_74 = lean_ctor_get(x_24, 0); +x_75 = lean_ctor_get(x_24, 1); +lean_inc(x_75); +lean_inc(x_74); +lean_dec(x_24); +x_76 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_76, 0, x_74); +lean_ctor_set(x_76, 1, x_75); +return x_76; +} +} +} +else +{ +uint8_t x_77; +lean_dec(x_18); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_77 = !lean_is_exclusive(x_20); +if (x_77 == 0) +{ +return x_20; +} +else +{ +lean_object* x_78; lean_object* x_79; lean_object* x_80; +x_78 = lean_ctor_get(x_20, 0); +x_79 = lean_ctor_get(x_20, 1); +lean_inc(x_79); +lean_inc(x_78); +lean_dec(x_20); +x_80 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_80, 0, x_78); +lean_ctor_set(x_80, 1, x_79); +return x_80; +} +} +} +} +} +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at___private_Init_Lean_Meta_35__inferForallType___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { _start: { lean_object* x_9; if (lean_obj_tag(x_6) == 7) { -lean_object* x_86; uint8_t x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; -x_86 = lean_ctor_get(x_6, 0); -lean_inc(x_86); -x_87 = lean_ctor_get_uint8(x_6, sizeof(void*)*3); -x_88 = lean_ctor_get(x_6, 1); -lean_inc(x_88); -x_89 = lean_ctor_get(x_6, 2); -lean_inc(x_89); +lean_object* x_20; uint8_t x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_20 = lean_ctor_get(x_6, 0); +lean_inc(x_20); +x_21 = lean_ctor_get_uint8(x_6, sizeof(void*)*3); +x_22 = lean_ctor_get(x_6, 1); +lean_inc(x_22); +x_23 = lean_ctor_get(x_6, 2); +lean_inc(x_23); lean_dec(x_6); -x_90 = lean_array_get_size(x_4); +x_24 = lean_array_get_size(x_4); lean_inc(x_4); -x_91 = lean_expr_instantiate_rev_range(x_88, x_5, x_90, x_4); -lean_dec(x_90); -lean_dec(x_88); -x_92 = l___private_Init_Lean_Meta_7__mkFreshId___rarg(x_8); -x_93 = lean_ctor_get(x_92, 0); -lean_inc(x_93); -x_94 = lean_ctor_get(x_92, 1); -lean_inc(x_94); -lean_dec(x_92); -lean_inc(x_93); -x_95 = lean_local_ctx_mk_local_decl(x_3, x_93, x_86, x_91, x_87); -x_96 = lean_expr_mk_fvar(x_93); -x_97 = lean_array_push(x_4, x_96); -x_3 = x_95; -x_4 = x_97; -x_6 = x_89; -x_8 = x_94; +x_25 = lean_expr_instantiate_rev_range(x_22, x_5, x_24, x_4); +lean_dec(x_24); +lean_dec(x_22); +x_26 = l___private_Init_Lean_Meta_7__mkFreshId___rarg(x_8); +x_27 = lean_ctor_get(x_26, 0); +lean_inc(x_27); +x_28 = lean_ctor_get(x_26, 1); +lean_inc(x_28); +lean_dec(x_26); +lean_inc(x_27); +x_29 = lean_local_ctx_mk_local_decl(x_3, x_27, x_20, x_25, x_21); +x_30 = lean_expr_mk_fvar(x_27); +x_31 = lean_array_push(x_4, x_30); +x_3 = x_29; +x_4 = x_31; +x_6 = x_23; +x_8 = x_28; goto _start; } else { -lean_object* x_99; -x_99 = lean_box(0); -x_9 = x_99; -goto block_85; +lean_object* x_33; +x_33 = lean_box(0); +x_9 = x_33; +goto block_19; } -block_85: +block_19: { lean_object* x_10; lean_object* x_11; uint8_t x_12; lean_dec(x_9); x_10 = lean_array_get_size(x_4); lean_inc(x_4); x_11 = lean_expr_instantiate_rev_range(x_6, x_5, x_10, x_4); -lean_dec(x_5); -lean_dec(x_6); x_12 = !lean_is_exclusive(x_7); if (x_12 == 0) { @@ -18298,404 +20429,39 @@ x_13 = lean_ctor_get(x_7, 1); lean_dec(x_13); lean_inc(x_3); lean_ctor_set(x_7, 1, x_3); -lean_inc(x_1); -lean_inc(x_7); -lean_inc(x_11); -x_14 = lean_apply_3(x_1, x_11, x_7, x_8); -if (lean_obj_tag(x_14) == 0) -{ -lean_object* x_15; lean_object* x_16; uint8_t x_17; -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_14, 1); -lean_inc(x_16); -lean_dec(x_14); -x_17 = l_Lean_Expr_isForall(x_15); -lean_dec(x_15); -if (x_17 == 0) -{ -lean_object* x_18; -lean_dec(x_3); -lean_inc(x_2); -lean_inc(x_7); -x_18 = lean_apply_3(x_2, x_11, x_7, x_16); -if (lean_obj_tag(x_18) == 0) -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_19 = lean_ctor_get(x_18, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_18, 1); -lean_inc(x_20); -lean_dec(x_18); -lean_inc(x_7); -lean_inc(x_2); -lean_inc(x_1); -x_21 = l___private_Init_Lean_Meta_31__getLevel(x_1, x_2, x_19, x_7, x_20); -if (lean_obj_tag(x_21) == 0) -{ -lean_object* x_22; lean_object* x_23; lean_object* x_24; -x_22 = lean_ctor_get(x_21, 0); -lean_inc(x_22); -x_23 = lean_ctor_get(x_21, 1); -lean_inc(x_23); -lean_dec(x_21); -x_24 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_32__inferForallType___spec__1(x_1, x_2, x_4, x_4, x_10, lean_box(0), x_22, x_7, x_23); +lean_inc(x_5); +lean_inc(x_4); +x_14 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_35__inferForallType___spec__4(x_1, x_2, x_3, x_4, x_5, x_6, x_10, x_11, x_4, x_5, x_7, x_8); +lean_dec(x_6); +lean_dec(x_5); lean_dec(x_4); -if (lean_obj_tag(x_24) == 0) -{ -uint8_t x_25; -x_25 = !lean_is_exclusive(x_24); -if (x_25 == 0) -{ -lean_object* x_26; lean_object* x_27; -x_26 = lean_ctor_get(x_24, 0); -x_27 = lean_expr_mk_sort(x_26); -lean_ctor_set(x_24, 0, x_27); -return x_24; -} -else -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_28 = lean_ctor_get(x_24, 0); -x_29 = lean_ctor_get(x_24, 1); -lean_inc(x_29); -lean_inc(x_28); -lean_dec(x_24); -x_30 = lean_expr_mk_sort(x_28); -x_31 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_31, 0, x_30); -lean_ctor_set(x_31, 1, x_29); -return x_31; -} -} -else -{ -uint8_t x_32; -x_32 = !lean_is_exclusive(x_24); -if (x_32 == 0) -{ -return x_24; -} -else -{ -lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_33 = lean_ctor_get(x_24, 0); -x_34 = lean_ctor_get(x_24, 1); -lean_inc(x_34); -lean_inc(x_33); -lean_dec(x_24); -x_35 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_35, 0, x_33); -lean_ctor_set(x_35, 1, x_34); -return x_35; -} -} -} -else -{ -uint8_t x_36; -lean_dec(x_7); -lean_dec(x_10); -lean_dec(x_4); -lean_dec(x_2); -lean_dec(x_1); -x_36 = !lean_is_exclusive(x_21); -if (x_36 == 0) -{ -return x_21; -} -else -{ -lean_object* x_37; lean_object* x_38; lean_object* x_39; -x_37 = lean_ctor_get(x_21, 0); -x_38 = lean_ctor_get(x_21, 1); -lean_inc(x_38); -lean_inc(x_37); -lean_dec(x_21); -x_39 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_39, 0, x_37); -lean_ctor_set(x_39, 1, x_38); -return x_39; -} -} -} -else -{ -uint8_t x_40; -lean_dec(x_7); -lean_dec(x_10); -lean_dec(x_4); -lean_dec(x_2); -lean_dec(x_1); -x_40 = !lean_is_exclusive(x_18); -if (x_40 == 0) -{ -return x_18; -} -else -{ -lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_41 = lean_ctor_get(x_18, 0); -x_42 = lean_ctor_get(x_18, 1); -lean_inc(x_42); -lean_inc(x_41); -lean_dec(x_18); -x_43 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_43, 0, x_41); -lean_ctor_set(x_43, 1, x_42); -return x_43; -} -} -} -else -{ -x_5 = x_10; -x_6 = x_11; -x_8 = x_16; -goto _start; -} -} -else -{ -uint8_t x_45; -lean_dec(x_7); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_45 = !lean_is_exclusive(x_14); -if (x_45 == 0) -{ return x_14; } else { -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_14, 0); -x_47 = lean_ctor_get(x_14, 1); -lean_inc(x_47); -lean_inc(x_46); -lean_dec(x_14); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; -} -} -} -else -{ -lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_49 = lean_ctor_get(x_7, 0); -x_50 = lean_ctor_get(x_7, 2); -lean_inc(x_50); -lean_inc(x_49); +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_15 = lean_ctor_get(x_7, 0); +x_16 = lean_ctor_get(x_7, 2); +lean_inc(x_16); +lean_inc(x_15); lean_dec(x_7); lean_inc(x_3); -x_51 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_51, 0, x_49); -lean_ctor_set(x_51, 1, x_3); -lean_ctor_set(x_51, 2, x_50); -lean_inc(x_1); -lean_inc(x_51); -lean_inc(x_11); -x_52 = lean_apply_3(x_1, x_11, x_51, x_8); -if (lean_obj_tag(x_52) == 0) -{ -lean_object* x_53; lean_object* x_54; uint8_t x_55; -x_53 = lean_ctor_get(x_52, 0); -lean_inc(x_53); -x_54 = lean_ctor_get(x_52, 1); -lean_inc(x_54); -lean_dec(x_52); -x_55 = l_Lean_Expr_isForall(x_53); -lean_dec(x_53); -if (x_55 == 0) -{ -lean_object* x_56; -lean_dec(x_3); -lean_inc(x_2); -lean_inc(x_51); -x_56 = lean_apply_3(x_2, x_11, x_51, x_54); -if (lean_obj_tag(x_56) == 0) -{ -lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_57 = lean_ctor_get(x_56, 0); -lean_inc(x_57); -x_58 = lean_ctor_get(x_56, 1); -lean_inc(x_58); -lean_dec(x_56); -lean_inc(x_51); -lean_inc(x_2); -lean_inc(x_1); -x_59 = l___private_Init_Lean_Meta_31__getLevel(x_1, x_2, x_57, x_51, x_58); -if (lean_obj_tag(x_59) == 0) -{ -lean_object* x_60; lean_object* x_61; lean_object* x_62; -x_60 = lean_ctor_get(x_59, 0); -lean_inc(x_60); -x_61 = lean_ctor_get(x_59, 1); -lean_inc(x_61); -lean_dec(x_59); -x_62 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_32__inferForallType___spec__1(x_1, x_2, x_4, x_4, x_10, lean_box(0), x_60, x_51, x_61); +x_17 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_17, 0, x_15); +lean_ctor_set(x_17, 1, x_3); +lean_ctor_set(x_17, 2, x_16); +lean_inc(x_5); +lean_inc(x_4); +x_18 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_35__inferForallType___spec__4(x_1, x_2, x_3, x_4, x_5, x_6, x_10, x_11, x_4, x_5, x_17, x_8); +lean_dec(x_6); +lean_dec(x_5); lean_dec(x_4); -if (lean_obj_tag(x_62) == 0) -{ -lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; -x_63 = lean_ctor_get(x_62, 0); -lean_inc(x_63); -x_64 = lean_ctor_get(x_62, 1); -lean_inc(x_64); -if (lean_is_exclusive(x_62)) { - lean_ctor_release(x_62, 0); - lean_ctor_release(x_62, 1); - x_65 = x_62; -} else { - lean_dec_ref(x_62); - x_65 = lean_box(0); -} -x_66 = lean_expr_mk_sort(x_63); -if (lean_is_scalar(x_65)) { - x_67 = lean_alloc_ctor(0, 2, 0); -} else { - x_67 = x_65; -} -lean_ctor_set(x_67, 0, x_66); -lean_ctor_set(x_67, 1, x_64); -return x_67; -} -else -{ -lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; -x_68 = lean_ctor_get(x_62, 0); -lean_inc(x_68); -x_69 = lean_ctor_get(x_62, 1); -lean_inc(x_69); -if (lean_is_exclusive(x_62)) { - lean_ctor_release(x_62, 0); - lean_ctor_release(x_62, 1); - x_70 = x_62; -} else { - lean_dec_ref(x_62); - x_70 = lean_box(0); -} -if (lean_is_scalar(x_70)) { - x_71 = lean_alloc_ctor(1, 2, 0); -} else { - x_71 = x_70; -} -lean_ctor_set(x_71, 0, x_68); -lean_ctor_set(x_71, 1, x_69); -return x_71; -} -} -else -{ -lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; -lean_dec(x_51); -lean_dec(x_10); -lean_dec(x_4); -lean_dec(x_2); -lean_dec(x_1); -x_72 = lean_ctor_get(x_59, 0); -lean_inc(x_72); -x_73 = lean_ctor_get(x_59, 1); -lean_inc(x_73); -if (lean_is_exclusive(x_59)) { - lean_ctor_release(x_59, 0); - lean_ctor_release(x_59, 1); - x_74 = x_59; -} else { - lean_dec_ref(x_59); - x_74 = lean_box(0); -} -if (lean_is_scalar(x_74)) { - x_75 = lean_alloc_ctor(1, 2, 0); -} else { - x_75 = x_74; -} -lean_ctor_set(x_75, 0, x_72); -lean_ctor_set(x_75, 1, x_73); -return x_75; -} -} -else -{ -lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; -lean_dec(x_51); -lean_dec(x_10); -lean_dec(x_4); -lean_dec(x_2); -lean_dec(x_1); -x_76 = lean_ctor_get(x_56, 0); -lean_inc(x_76); -x_77 = lean_ctor_get(x_56, 1); -lean_inc(x_77); -if (lean_is_exclusive(x_56)) { - lean_ctor_release(x_56, 0); - lean_ctor_release(x_56, 1); - x_78 = x_56; -} else { - lean_dec_ref(x_56); - x_78 = lean_box(0); -} -if (lean_is_scalar(x_78)) { - x_79 = lean_alloc_ctor(1, 2, 0); -} else { - x_79 = x_78; -} -lean_ctor_set(x_79, 0, x_76); -lean_ctor_set(x_79, 1, x_77); -return x_79; -} -} -else -{ -x_5 = x_10; -x_6 = x_11; -x_7 = x_51; -x_8 = x_54; -goto _start; -} -} -else -{ -lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; -lean_dec(x_51); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_81 = lean_ctor_get(x_52, 0); -lean_inc(x_81); -x_82 = lean_ctor_get(x_52, 1); -lean_inc(x_82); -if (lean_is_exclusive(x_52)) { - lean_ctor_release(x_52, 0); - lean_ctor_release(x_52, 1); - x_83 = x_52; -} else { - lean_dec_ref(x_52); - x_83 = lean_box(0); -} -if (lean_is_scalar(x_83)) { - x_84 = lean_alloc_ctor(1, 2, 0); -} else { - x_84 = x_83; -} -lean_ctor_set(x_84, 0, x_81); -lean_ctor_set(x_84, 1, x_82); -return x_84; +return x_18; } } } } -} -lean_object* _init_l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_32__inferForallType___spec__2___closed__1() { +lean_object* _init_l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_35__inferForallType___spec__2___closed__1() { _start: { lean_object* x_1; lean_object* x_2; @@ -18704,7 +20470,7 @@ x_2 = lean_array_get_size(x_1); return x_2; } } -lean_object* l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_32__inferForallType___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_35__inferForallType___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; @@ -18739,7 +20505,7 @@ lean_dec(x_10); lean_inc(x_4); lean_inc(x_2); lean_inc(x_1); -x_13 = l___private_Init_Lean_Meta_31__getLevel(x_1, x_2, x_11, x_4, x_12); +x_13 = l___private_Init_Lean_Meta_34__getLevel(x_1, x_2, x_11, x_4, x_12); if (lean_obj_tag(x_13) == 0) { lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; @@ -18749,8 +20515,8 @@ x_15 = lean_ctor_get(x_13, 1); lean_inc(x_15); lean_dec(x_13); x_16 = l_Array_empty___closed__1; -x_17 = l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_32__inferForallType___spec__2___closed__1; -x_18 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_32__inferForallType___spec__1(x_1, x_2, x_16, x_16, x_17, lean_box(0), x_14, x_4, x_15); +x_17 = l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_35__inferForallType___spec__2___closed__1; +x_18 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_35__inferForallType___spec__1(x_1, x_2, x_16, x_16, x_17, lean_box(0), x_14, x_4, x_15); if (lean_obj_tag(x_18) == 0) { uint8_t x_19; @@ -18863,7 +20629,7 @@ x_39 = lean_ctor_get(x_4, 1); lean_inc(x_39); x_40 = l_Array_empty___closed__1; x_41 = lean_unsigned_to_nat(0u); -x_42 = l___private_Init_Lean_Meta_24__forallTelescopeAux___main___at___private_Init_Lean_Meta_32__inferForallType___spec__3(x_1, x_2, x_39, x_40, x_41, x_7, x_4, x_8); +x_42 = l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at___private_Init_Lean_Meta_35__inferForallType___spec__3(x_1, x_2, x_39, x_40, x_41, x_7, x_4, x_8); if (lean_obj_tag(x_42) == 0) { uint8_t x_43; @@ -19072,25 +20838,36 @@ return x_86; } } } -lean_object* l___private_Init_Lean_Meta_32__inferForallType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l___private_Init_Lean_Meta_35__inferForallType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; -x_6 = l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_32__inferForallType___spec__2(x_1, x_2, x_3, x_4, x_5); +x_6 = l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_35__inferForallType___spec__2(x_1, x_2, x_3, x_4, x_5); return x_6; } } -lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_32__inferForallType___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_35__inferForallType___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { _start: { lean_object* x_10; -x_10 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_32__inferForallType___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_10 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_35__inferForallType___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); lean_dec(x_4); lean_dec(x_3); return x_10; } } -lean_object* l___private_Init_Lean_Meta_33__withLocalDecl___rarg(lean_object* x_1, uint8_t x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_35__inferForallType___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12) { +_start: +{ +lean_object* x_13; +x_13 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_35__inferForallType___spec__4(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_9); +lean_dec(x_6); +lean_dec(x_5); +return x_13; +} +} +lean_object* l___private_Init_Lean_Meta_36__withLocalDecl___rarg(lean_object* x_1, uint8_t x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; @@ -19424,25 +21201,25 @@ return x_83; } } } -lean_object* l___private_Init_Lean_Meta_33__withLocalDecl(lean_object* x_1) { +lean_object* l___private_Init_Lean_Meta_36__withLocalDecl(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_33__withLocalDecl___rarg___boxed), 6, 0); +x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_36__withLocalDecl___rarg___boxed), 6, 0); return x_2; } } -lean_object* l___private_Init_Lean_Meta_33__withLocalDecl___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l___private_Init_Lean_Meta_36__withLocalDecl___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { uint8_t x_7; lean_object* x_8; x_7 = lean_unbox(x_2); lean_dec(x_2); -x_8 = l___private_Init_Lean_Meta_33__withLocalDecl___rarg(x_1, x_7, x_3, x_4, x_5, x_6); +x_8 = l___private_Init_Lean_Meta_36__withLocalDecl___rarg(x_1, x_7, x_3, x_4, x_5, x_6); return x_8; } } -lean_object* l___private_Init_Lean_Meta_34__inferMVarType(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Meta_37__inferMVarType(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; lean_object* x_6; @@ -19489,16 +21266,16 @@ return x_13; } } } -lean_object* l___private_Init_Lean_Meta_34__inferMVarType___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Meta_37__inferMVarType___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l___private_Init_Lean_Meta_34__inferMVarType(x_1, x_2, x_3); +x_4 = l___private_Init_Lean_Meta_37__inferMVarType(x_1, x_2, x_3); lean_dec(x_2); return x_4; } } -lean_object* l___private_Init_Lean_Meta_35__inferFVarType(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Meta_38__inferFVarType(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; @@ -19544,7 +21321,7 @@ return x_13; } } } -lean_object* l_PersistentHashMap_findAtAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_PersistentHashMap_findAtAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; uint8_t x_7; @@ -19586,7 +21363,7 @@ return x_15; } } } -lean_object* l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__2(lean_object* x_1, size_t x_2, lean_object* x_3) { +lean_object* l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__2(lean_object* x_1, size_t x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -19633,7 +21410,7 @@ x_16 = lean_ctor_get(x_10, 0); lean_inc(x_16); lean_dec(x_10); x_17 = x_2 >> x_5; -x_18 = l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__2(x_16, x_17, x_3); +x_18 = l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__2(x_16, x_17, x_3); lean_dec(x_16); return x_18; } @@ -19651,22 +21428,22 @@ lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; x_20 = lean_ctor_get(x_1, 0); x_21 = lean_ctor_get(x_1, 1); x_22 = lean_unsigned_to_nat(0u); -x_23 = l_PersistentHashMap_findAtAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__3(x_20, x_21, lean_box(0), x_22, x_3); +x_23 = l_PersistentHashMap_findAtAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__3(x_20, x_21, lean_box(0), x_22, x_3); return x_23; } } } -lean_object* l_PersistentHashMap_find___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l_PersistentHashMap_find___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__1(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; size_t x_4; lean_object* x_5; x_3 = lean_ctor_get(x_1, 0); x_4 = lean_expr_hash(x_2); -x_5 = l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__2(x_3, x_4, x_2); +x_5 = l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__2(x_3, x_4, x_2); return x_5; } } -lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; @@ -19758,7 +21535,7 @@ return x_29; } } } -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__7(size_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__7(size_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { lean_object* x_7; uint8_t x_8; @@ -19781,7 +21558,7 @@ x_13 = x_1 - x_12; x_14 = 5; x_15 = x_14 * x_13; x_16 = x_11 >> x_15; -x_17 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__5(x_6, x_16, x_1, x_9, x_10); +x_17 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__5(x_6, x_16, x_1, x_9, x_10); x_18 = lean_unsigned_to_nat(1u); x_19 = lean_nat_add(x_5, x_18); lean_dec(x_5); @@ -19791,7 +21568,7 @@ goto _start; } } } -lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__5(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__5(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4, lean_object* x_5) { _start: { if (lean_obj_tag(x_1) == 0) @@ -19904,7 +21681,7 @@ lean_object* x_35; size_t x_36; size_t x_37; lean_object* x_38; lean_object* x_3 x_35 = lean_ctor_get(x_15, 0); x_36 = x_2 >> x_9; x_37 = x_3 + x_8; -x_38 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__5(x_35, x_36, x_37, x_4, x_5); +x_38 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__5(x_35, x_36, x_37, x_4, x_5); lean_ctor_set(x_15, 0, x_38); x_39 = lean_array_fset(x_17, x_12, x_15); lean_dec(x_12); @@ -19919,7 +21696,7 @@ lean_inc(x_40); lean_dec(x_15); x_41 = x_2 >> x_9; x_42 = x_3 + x_8; -x_43 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__5(x_40, x_41, x_42, x_4, x_5); +x_43 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__5(x_40, x_41, x_42, x_4, x_5); x_44 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_44, 0, x_43); x_45 = lean_array_fset(x_17, x_12, x_44); @@ -20035,7 +21812,7 @@ if (lean_is_exclusive(x_57)) { } x_73 = x_2 >> x_50; x_74 = x_3 + x_49; -x_75 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__5(x_71, x_73, x_74, x_4, x_5); +x_75 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__5(x_71, x_73, x_74, x_4, x_5); if (lean_is_scalar(x_72)) { x_76 = lean_alloc_ctor(1, 1, 0); } else { @@ -20068,7 +21845,7 @@ else { lean_object* x_82; lean_object* x_83; size_t x_84; uint8_t x_85; x_82 = lean_unsigned_to_nat(0u); -x_83 = l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__6(x_1, x_82, x_4, x_5); +x_83 = l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__6(x_1, x_82, x_4, x_5); x_84 = 7; x_85 = x_84 <= x_3; if (x_85 == 0) @@ -20087,7 +21864,7 @@ x_90 = lean_ctor_get(x_83, 1); lean_inc(x_90); lean_dec(x_83); x_91 = l_PersistentHashMap_insertAux___main___rarg___closed__3; -x_92 = l_Array_iterateMAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__7(x_3, x_89, x_90, x_89, x_82, x_91); +x_92 = l_Array_iterateMAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__7(x_3, x_89, x_90, x_89, x_82, x_91); lean_dec(x_90); lean_dec(x_89); return x_92; @@ -20104,7 +21881,7 @@ return x_83; } } } -lean_object* l_PersistentHashMap_insert___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_PersistentHashMap_insert___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; @@ -20116,7 +21893,7 @@ x_5 = lean_ctor_get(x_1, 0); x_6 = lean_ctor_get(x_1, 1); x_7 = lean_expr_hash(x_2); x_8 = 1; -x_9 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__5(x_5, x_7, x_8, x_2, x_3); +x_9 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__5(x_5, x_7, x_8, x_2, x_3); x_10 = lean_unsigned_to_nat(1u); x_11 = lean_nat_add(x_6, x_10); lean_dec(x_6); @@ -20134,7 +21911,7 @@ lean_inc(x_12); lean_dec(x_1); x_14 = lean_expr_hash(x_2); x_15 = 1; -x_16 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__5(x_12, x_14, x_15, x_2, x_3); +x_16 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__5(x_12, x_14, x_15, x_2, x_3); x_17 = lean_unsigned_to_nat(1u); x_18 = lean_nat_add(x_13, x_17); lean_dec(x_13); @@ -20145,7 +21922,7 @@ return x_19; } } } -lean_object* l___private_Init_Lean_Meta_36__checkInferTypeCache(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Init_Lean_Meta_39__checkInferTypeCache(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; @@ -20154,7 +21931,7 @@ lean_inc(x_5); x_6 = lean_ctor_get(x_5, 1); lean_inc(x_6); lean_dec(x_5); -x_7 = l_PersistentHashMap_find___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__1(x_6, x_1); +x_7 = l_PersistentHashMap_find___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__1(x_6, x_1); lean_dec(x_6); if (lean_obj_tag(x_7) == 0) { @@ -20186,7 +21963,7 @@ if (x_16 == 0) lean_object* x_17; lean_object* x_18; x_17 = lean_ctor_get(x_10, 1); lean_inc(x_12); -x_18 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__4(x_17, x_1, x_12); +x_18 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__4(x_17, x_1, x_12); lean_ctor_set(x_10, 1, x_18); return x_8; } @@ -20199,7 +21976,7 @@ lean_inc(x_20); lean_inc(x_19); lean_dec(x_10); lean_inc(x_12); -x_21 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__4(x_20, x_1, x_12); +x_21 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__4(x_20, x_1, x_12); x_22 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_22, 0, x_19); lean_ctor_set(x_22, 1, x_21); @@ -20234,7 +22011,7 @@ if (lean_is_exclusive(x_10)) { x_30 = lean_box(0); } lean_inc(x_12); -x_31 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__4(x_29, x_1, x_12); +x_31 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__4(x_29, x_1, x_12); if (lean_is_scalar(x_30)) { x_32 = lean_alloc_ctor(0, 2, 0); } else { @@ -20294,7 +22071,7 @@ if (lean_is_exclusive(x_10)) { x_43 = lean_box(0); } lean_inc(x_34); -x_44 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__4(x_42, x_1, x_34); +x_44 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__4(x_42, x_1, x_34); if (lean_is_scalar(x_43)) { x_45 = lean_alloc_ctor(0, 2, 0); } else { @@ -20359,53 +22136,53 @@ return x_53; } } } -lean_object* l_PersistentHashMap_findAtAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_PersistentHashMap_findAtAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; -x_6 = l_PersistentHashMap_findAtAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__3(x_1, x_2, x_3, x_4, x_5); +x_6 = l_PersistentHashMap_findAtAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__3(x_1, x_2, x_3, x_4, x_5); lean_dec(x_5); lean_dec(x_2); lean_dec(x_1); return x_6; } } -lean_object* l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { size_t x_4; lean_object* x_5; x_4 = lean_unbox_usize(x_2); lean_dec(x_2); -x_5 = l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__2(x_1, x_4, x_3); +x_5 = l_PersistentHashMap_findAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__2(x_1, x_4, x_3); lean_dec(x_3); lean_dec(x_1); return x_5; } } -lean_object* l_PersistentHashMap_find___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_PersistentHashMap_find___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_PersistentHashMap_find___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__1(x_1, x_2); +x_3 = l_PersistentHashMap_find___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__1(x_1, x_2); lean_dec(x_2); lean_dec(x_1); return x_3; } } -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__7___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__7___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { size_t x_7; lean_object* x_8; x_7 = lean_unbox_usize(x_1); lean_dec(x_1); -x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__7(x_7, x_2, x_3, x_4, x_5, x_6); +x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__7(x_7, x_2, x_3, x_4, x_5, x_6); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); return x_8; } } -lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { size_t x_6; size_t x_7; lean_object* x_8; @@ -20413,11 +22190,11 @@ x_6 = lean_unbox_usize(x_2); lean_dec(x_2); x_7 = lean_unbox_usize(x_3); lean_dec(x_3); -x_8 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__5(x_1, x_6, x_7, x_4, x_5); +x_8 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__5(x_1, x_6, x_7, x_4, x_5); return x_8; } } -lean_object* _init_l_panicWithPos___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__1___closed__1() { +lean_object* _init_l_panicWithPos___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__1___closed__1() { _start: { lean_object* x_1; @@ -20426,7 +22203,7 @@ lean_closure_set(x_1, 0, lean_box(0)); return x_1; } } -lean_object* l_panicWithPos___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l_panicWithPos___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; @@ -20445,19 +22222,19 @@ lean_dec(x_15); x_17 = l_panicWithPos___rarg___closed__3; x_18 = lean_string_append(x_16, x_17); x_19 = lean_string_append(x_18, x_4); -x_20 = l_panicWithPos___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__1___closed__1; +x_20 = l_panicWithPos___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__1___closed__1; x_21 = lean_panic_fn(x_19); x_22 = lean_apply_2(x_21, x_5, x_6); return x_22; } } -lean_object* l___private_Init_Lean_Meta_28__inferAppType___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l___private_Init_Lean_Meta_31__inferAppType___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; lean_inc(x_4); lean_inc(x_1); -x_6 = l___private_Init_Lean_Meta_37__inferTypeAux___main(x_1, x_2, x_4, x_5); +x_6 = l___private_Init_Lean_Meta_40__inferTypeAux___main(x_1, x_2, x_4, x_5); if (lean_obj_tag(x_6) == 0) { lean_object* x_7; lean_object* x_8; lean_object* x_9; @@ -20466,7 +22243,7 @@ lean_inc(x_7); x_8 = lean_ctor_get(x_6, 1); lean_inc(x_8); lean_dec(x_6); -x_9 = l___private_Init_Lean_Meta_27__getForallResultType(x_1, x_7, x_3, x_4, x_8); +x_9 = l___private_Init_Lean_Meta_30__getForallResultType(x_1, x_7, x_3, x_4, x_8); return x_9; } else @@ -20496,14 +22273,14 @@ return x_13; } } } -lean_object* l___private_Init_Lean_Meta_31__getLevel___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Init_Lean_Meta_34__getLevel___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_inc(x_3); lean_inc(x_2); lean_inc(x_1); -x_5 = l___private_Init_Lean_Meta_37__inferTypeAux___main(x_1, x_2, x_3, x_4); +x_5 = l___private_Init_Lean_Meta_40__inferTypeAux___main(x_1, x_2, x_3, x_4); if (lean_obj_tag(x_5) == 0) { lean_object* x_6; lean_object* x_7; @@ -20826,14 +22603,14 @@ return x_76; } } } -lean_object* l___private_Init_Lean_Meta_31__getLevel___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Init_Lean_Meta_34__getLevel___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_inc(x_3); lean_inc(x_2); lean_inc(x_1); -x_5 = l___private_Init_Lean_Meta_37__inferTypeAux___main(x_1, x_2, x_3, x_4); +x_5 = l___private_Init_Lean_Meta_40__inferTypeAux___main(x_1, x_2, x_3, x_4); if (lean_obj_tag(x_5) == 0) { lean_object* x_6; lean_object* x_7; @@ -21156,7 +22933,7 @@ return x_76; } } } -lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { _start: { lean_object* x_9; uint8_t x_10; @@ -21171,7 +22948,7 @@ lean_dec(x_4); x_13 = lean_array_fget(x_3, x_12); lean_inc(x_7); lean_inc(x_1); -x_14 = l___private_Init_Lean_Meta_37__inferTypeAux___main(x_1, x_13, x_7, x_8); +x_14 = l___private_Init_Lean_Meta_40__inferTypeAux___main(x_1, x_13, x_7, x_8); if (lean_obj_tag(x_14) == 0) { lean_object* x_15; lean_object* x_16; lean_object* x_17; @@ -21182,7 +22959,7 @@ lean_inc(x_16); lean_dec(x_14); lean_inc(x_7); lean_inc(x_1); -x_17 = l___private_Init_Lean_Meta_31__getLevel___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__5(x_1, x_15, x_7, x_16); +x_17 = l___private_Init_Lean_Meta_34__getLevel___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__5(x_1, x_15, x_7, x_16); if (lean_obj_tag(x_17) == 0) { lean_object* x_18; lean_object* x_19; lean_object* x_20; @@ -21265,58 +23042,506 @@ return x_30; } } } -lean_object* l___private_Init_Lean_Meta_24__forallTelescopeAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__8(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__9___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +uint8_t x_9; +x_9 = l_Lean_Expr_isForall(x_6); +if (x_9 == 0) +{ +lean_object* x_10; +lean_dec(x_6); +lean_dec(x_5); +lean_inc(x_7); +lean_inc(x_1); +x_10 = l___private_Init_Lean_Meta_40__inferTypeAux___main(x_1, x_2, x_7, x_8); +if (lean_obj_tag(x_10) == 0) +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +lean_inc(x_7); +lean_inc(x_1); +x_13 = l___private_Init_Lean_Meta_34__getLevel___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__4(x_1, x_11, x_7, x_12); +if (lean_obj_tag(x_13) == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_14 = lean_ctor_get(x_13, 0); +lean_inc(x_14); +x_15 = lean_ctor_get(x_13, 1); +lean_inc(x_15); +lean_dec(x_13); +x_16 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__6(x_1, x_3, x_3, x_4, lean_box(0), x_14, x_7, x_15); +lean_dec(x_3); +if (lean_obj_tag(x_16) == 0) +{ +uint8_t x_17; +x_17 = !lean_is_exclusive(x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; +x_18 = lean_ctor_get(x_16, 0); +x_19 = lean_expr_mk_sort(x_18); +lean_ctor_set(x_16, 0, x_19); +return x_16; +} +else +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_16, 0); +x_21 = lean_ctor_get(x_16, 1); +lean_inc(x_21); +lean_inc(x_20); +lean_dec(x_16); +x_22 = lean_expr_mk_sort(x_20); +x_23 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_21); +return x_23; +} +} +else +{ +uint8_t x_24; +x_24 = !lean_is_exclusive(x_16); +if (x_24 == 0) +{ +return x_16; +} +else +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_16, 0); +x_26 = lean_ctor_get(x_16, 1); +lean_inc(x_26); +lean_inc(x_25); +lean_dec(x_16); +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_25); +lean_ctor_set(x_27, 1, x_26); +return x_27; +} +} +} +else +{ +uint8_t x_28; +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_28 = !lean_is_exclusive(x_13); +if (x_28 == 0) +{ +return x_13; +} +else +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_29 = lean_ctor_get(x_13, 0); +x_30 = lean_ctor_get(x_13, 1); +lean_inc(x_30); +lean_inc(x_29); +lean_dec(x_13); +x_31 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_31, 0, x_29); +lean_ctor_set(x_31, 1, x_30); +return x_31; +} +} +} +else +{ +uint8_t x_32; +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_32 = !lean_is_exclusive(x_10); +if (x_32 == 0) +{ +return x_10; +} +else +{ +lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_33 = lean_ctor_get(x_10, 0); +x_34 = lean_ctor_get(x_10, 1); +lean_inc(x_34); +lean_inc(x_33); +lean_dec(x_10); +x_35 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_35, 0, x_33); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +} +else +{ +lean_object* x_36; +lean_dec(x_2); +x_36 = l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__8(x_1, x_5, x_3, x_4, x_6, x_7, x_8); +return x_36; +} +} +} +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__9(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { +_start: +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +lean_inc(x_1); +lean_inc(x_7); +x_12 = lean_apply_1(x_1, x_7); +lean_inc(x_2); +lean_inc(x_6); +lean_inc(x_3); +lean_inc(x_7); +lean_inc(x_1); +x_13 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__9___lambda__1), 8, 5); +lean_closure_set(x_13, 0, x_1); +lean_closure_set(x_13, 1, x_7); +lean_closure_set(x_13, 2, x_3); +lean_closure_set(x_13, 3, x_6); +lean_closure_set(x_13, 4, x_2); +x_14 = lean_array_get_size(x_8); +x_15 = lean_nat_dec_lt(x_9, x_14); +lean_dec(x_14); +if (x_15 == 0) +{ +lean_object* x_16; +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_16 = l_ReaderT_bind___at___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___spec__1___rarg(x_12, x_13, x_10, x_11); +return x_16; +} +else +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; +lean_dec(x_13); +lean_dec(x_12); +x_17 = lean_array_fget(x_8, x_9); +x_18 = l_Lean_Expr_fvarId_x21(x_17); +lean_inc(x_10); +x_19 = l___private_Init_Lean_Meta_19__getLocalDecl(x_18, x_10, x_11); +if (lean_obj_tag(x_19) == 0) +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +x_21 = lean_ctor_get(x_19, 1); +lean_inc(x_21); +lean_dec(x_19); +x_22 = l_Lean_LocalDecl_type(x_20); +lean_dec(x_20); +lean_inc(x_22); +x_23 = l___private_Init_Lean_Meta_24__isClassQuick___main(x_22, x_10, x_21); +if (lean_obj_tag(x_23) == 0) +{ +lean_object* x_24; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +switch (lean_obj_tag(x_24)) { +case 0: +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +lean_dec(x_22); +lean_dec(x_17); +x_25 = lean_ctor_get(x_23, 1); +lean_inc(x_25); +lean_dec(x_23); +x_26 = lean_unsigned_to_nat(1u); +x_27 = lean_nat_add(x_9, x_26); +lean_dec(x_9); +x_9 = x_27; +x_11 = x_25; +goto _start; +} +case 1: +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; +lean_dec(x_22); +x_29 = lean_ctor_get(x_23, 1); +lean_inc(x_29); +lean_dec(x_23); +x_30 = lean_ctor_get(x_24, 0); +lean_inc(x_30); +lean_dec(x_24); +x_31 = lean_unsigned_to_nat(1u); +x_32 = lean_nat_add(x_9, x_31); +lean_dec(x_9); +x_33 = !lean_is_exclusive(x_10); +if (x_33 == 0) +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_10, 2); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_30); +lean_ctor_set(x_35, 1, x_17); +x_36 = lean_array_push(x_34, x_35); +lean_ctor_set(x_10, 2, x_36); +x_9 = x_32; +x_11 = x_29; +goto _start; +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_38 = lean_ctor_get(x_10, 0); +x_39 = lean_ctor_get(x_10, 1); +x_40 = lean_ctor_get(x_10, 2); +lean_inc(x_40); +lean_inc(x_39); +lean_inc(x_38); +lean_dec(x_10); +x_41 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_41, 0, x_30); +lean_ctor_set(x_41, 1, x_17); +x_42 = lean_array_push(x_40, x_41); +x_43 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_43, 0, x_38); +lean_ctor_set(x_43, 1, x_39); +lean_ctor_set(x_43, 2, x_42); +x_9 = x_32; +x_10 = x_43; +x_11 = x_29; +goto _start; +} +} +default: +{ +lean_object* x_45; lean_object* x_46; +x_45 = lean_ctor_get(x_23, 1); +lean_inc(x_45); +lean_dec(x_23); +lean_inc(x_10); +lean_inc(x_1); +x_46 = l___private_Init_Lean_Meta_29__isClassExpensive___main(x_1, x_22, x_10, x_45); +if (lean_obj_tag(x_46) == 0) +{ +lean_object* x_47; +x_47 = lean_ctor_get(x_46, 0); +lean_inc(x_47); +if (lean_obj_tag(x_47) == 0) +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; +lean_dec(x_17); +x_48 = lean_ctor_get(x_46, 1); +lean_inc(x_48); +lean_dec(x_46); +x_49 = lean_unsigned_to_nat(1u); +x_50 = lean_nat_add(x_9, x_49); +lean_dec(x_9); +x_9 = x_50; +x_11 = x_48; +goto _start; +} +else +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; uint8_t x_56; +x_52 = lean_ctor_get(x_46, 1); +lean_inc(x_52); +lean_dec(x_46); +x_53 = lean_ctor_get(x_47, 0); +lean_inc(x_53); +lean_dec(x_47); +x_54 = lean_unsigned_to_nat(1u); +x_55 = lean_nat_add(x_9, x_54); +lean_dec(x_9); +x_56 = !lean_is_exclusive(x_10); +if (x_56 == 0) +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_57 = lean_ctor_get(x_10, 2); +x_58 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_58, 0, x_53); +lean_ctor_set(x_58, 1, x_17); +x_59 = lean_array_push(x_57, x_58); +lean_ctor_set(x_10, 2, x_59); +x_9 = x_55; +x_11 = x_52; +goto _start; +} +else +{ +lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; +x_61 = lean_ctor_get(x_10, 0); +x_62 = lean_ctor_get(x_10, 1); +x_63 = lean_ctor_get(x_10, 2); +lean_inc(x_63); +lean_inc(x_62); +lean_inc(x_61); +lean_dec(x_10); +x_64 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_64, 0, x_53); +lean_ctor_set(x_64, 1, x_17); +x_65 = lean_array_push(x_63, x_64); +x_66 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_66, 0, x_61); +lean_ctor_set(x_66, 1, x_62); +lean_ctor_set(x_66, 2, x_65); +x_9 = x_55; +x_10 = x_66; +x_11 = x_52; +goto _start; +} +} +} +else +{ +uint8_t x_68; +lean_dec(x_17); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_68 = !lean_is_exclusive(x_46); +if (x_68 == 0) +{ +return x_46; +} +else +{ +lean_object* x_69; lean_object* x_70; lean_object* x_71; +x_69 = lean_ctor_get(x_46, 0); +x_70 = lean_ctor_get(x_46, 1); +lean_inc(x_70); +lean_inc(x_69); +lean_dec(x_46); +x_71 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_71, 0, x_69); +lean_ctor_set(x_71, 1, x_70); +return x_71; +} +} +} +} +} +else +{ +uint8_t x_72; +lean_dec(x_22); +lean_dec(x_17); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_72 = !lean_is_exclusive(x_23); +if (x_72 == 0) +{ +return x_23; +} +else +{ +lean_object* x_73; lean_object* x_74; lean_object* x_75; +x_73 = lean_ctor_get(x_23, 0); +x_74 = lean_ctor_get(x_23, 1); +lean_inc(x_74); +lean_inc(x_73); +lean_dec(x_23); +x_75 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_74); +return x_75; +} +} +} +else +{ +uint8_t x_76; +lean_dec(x_17); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_76 = !lean_is_exclusive(x_19); +if (x_76 == 0) +{ +return x_19; +} +else +{ +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_19, 0); +x_78 = lean_ctor_get(x_19, 1); +lean_inc(x_78); +lean_inc(x_77); +lean_dec(x_19); +x_79 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_79, 0, x_77); +lean_ctor_set(x_79, 1, x_78); +return x_79; +} +} +} +} +} +lean_object* l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__8(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { _start: { lean_object* x_8; if (lean_obj_tag(x_5) == 7) { -lean_object* x_85; uint8_t x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; -x_85 = lean_ctor_get(x_5, 0); -lean_inc(x_85); -x_86 = lean_ctor_get_uint8(x_5, sizeof(void*)*3); -x_87 = lean_ctor_get(x_5, 1); -lean_inc(x_87); -x_88 = lean_ctor_get(x_5, 2); -lean_inc(x_88); +lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_19 = lean_ctor_get(x_5, 0); +lean_inc(x_19); +x_20 = lean_ctor_get_uint8(x_5, sizeof(void*)*3); +x_21 = lean_ctor_get(x_5, 1); +lean_inc(x_21); +x_22 = lean_ctor_get(x_5, 2); +lean_inc(x_22); lean_dec(x_5); -x_89 = lean_array_get_size(x_3); +x_23 = lean_array_get_size(x_3); lean_inc(x_3); -x_90 = lean_expr_instantiate_rev_range(x_87, x_4, x_89, x_3); -lean_dec(x_89); -lean_dec(x_87); -x_91 = l___private_Init_Lean_Meta_7__mkFreshId___rarg(x_7); -x_92 = lean_ctor_get(x_91, 0); -lean_inc(x_92); -x_93 = lean_ctor_get(x_91, 1); -lean_inc(x_93); -lean_dec(x_91); -lean_inc(x_92); -x_94 = lean_local_ctx_mk_local_decl(x_2, x_92, x_85, x_90, x_86); -x_95 = lean_expr_mk_fvar(x_92); -x_96 = lean_array_push(x_3, x_95); -x_2 = x_94; -x_3 = x_96; -x_5 = x_88; -x_7 = x_93; +x_24 = lean_expr_instantiate_rev_range(x_21, x_4, x_23, x_3); +lean_dec(x_23); +lean_dec(x_21); +x_25 = l___private_Init_Lean_Meta_7__mkFreshId___rarg(x_7); +x_26 = lean_ctor_get(x_25, 0); +lean_inc(x_26); +x_27 = lean_ctor_get(x_25, 1); +lean_inc(x_27); +lean_dec(x_25); +lean_inc(x_26); +x_28 = lean_local_ctx_mk_local_decl(x_2, x_26, x_19, x_24, x_20); +x_29 = lean_expr_mk_fvar(x_26); +x_30 = lean_array_push(x_3, x_29); +x_2 = x_28; +x_3 = x_30; +x_5 = x_22; +x_7 = x_27; goto _start; } else { -lean_object* x_98; -x_98 = lean_box(0); -x_8 = x_98; -goto block_84; +lean_object* x_32; +x_32 = lean_box(0); +x_8 = x_32; +goto block_18; } -block_84: +block_18: { lean_object* x_9; lean_object* x_10; uint8_t x_11; lean_dec(x_8); x_9 = lean_array_get_size(x_3); lean_inc(x_3); x_10 = lean_expr_instantiate_rev_range(x_5, x_4, x_9, x_3); -lean_dec(x_4); -lean_dec(x_5); x_11 = !lean_is_exclusive(x_6); if (x_11 == 0) { @@ -21325,396 +23550,39 @@ x_12 = lean_ctor_get(x_6, 1); lean_dec(x_12); lean_inc(x_2); lean_ctor_set(x_6, 1, x_2); -lean_inc(x_1); -lean_inc(x_6); -lean_inc(x_10); -x_13 = lean_apply_3(x_1, x_10, x_6, x_7); -if (lean_obj_tag(x_13) == 0) -{ -lean_object* x_14; lean_object* x_15; uint8_t x_16; -x_14 = lean_ctor_get(x_13, 0); -lean_inc(x_14); -x_15 = lean_ctor_get(x_13, 1); -lean_inc(x_15); -lean_dec(x_13); -x_16 = l_Lean_Expr_isForall(x_14); -lean_dec(x_14); -if (x_16 == 0) -{ -lean_object* x_17; -lean_dec(x_2); -lean_inc(x_6); -lean_inc(x_1); -x_17 = l___private_Init_Lean_Meta_37__inferTypeAux___main(x_1, x_10, x_6, x_15); -if (lean_obj_tag(x_17) == 0) -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; -x_18 = lean_ctor_get(x_17, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_17, 1); -lean_inc(x_19); -lean_dec(x_17); -lean_inc(x_6); -lean_inc(x_1); -x_20 = l___private_Init_Lean_Meta_31__getLevel___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__4(x_1, x_18, x_6, x_19); -if (lean_obj_tag(x_20) == 0) -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_20, 0); -lean_inc(x_21); -x_22 = lean_ctor_get(x_20, 1); -lean_inc(x_22); -lean_dec(x_20); -x_23 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__6(x_1, x_3, x_3, x_9, lean_box(0), x_21, x_6, x_22); +lean_inc(x_4); +lean_inc(x_3); +x_13 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__9(x_1, x_2, x_3, x_4, x_5, x_9, x_10, x_3, x_4, x_6, x_7); +lean_dec(x_5); +lean_dec(x_4); lean_dec(x_3); -if (lean_obj_tag(x_23) == 0) -{ -uint8_t x_24; -x_24 = !lean_is_exclusive(x_23); -if (x_24 == 0) -{ -lean_object* x_25; lean_object* x_26; -x_25 = lean_ctor_get(x_23, 0); -x_26 = lean_expr_mk_sort(x_25); -lean_ctor_set(x_23, 0, x_26); -return x_23; -} -else -{ -lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; -x_27 = lean_ctor_get(x_23, 0); -x_28 = lean_ctor_get(x_23, 1); -lean_inc(x_28); -lean_inc(x_27); -lean_dec(x_23); -x_29 = lean_expr_mk_sort(x_27); -x_30 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_30, 0, x_29); -lean_ctor_set(x_30, 1, x_28); -return x_30; -} -} -else -{ -uint8_t x_31; -x_31 = !lean_is_exclusive(x_23); -if (x_31 == 0) -{ -return x_23; -} -else -{ -lean_object* x_32; lean_object* x_33; lean_object* x_34; -x_32 = lean_ctor_get(x_23, 0); -x_33 = lean_ctor_get(x_23, 1); -lean_inc(x_33); -lean_inc(x_32); -lean_dec(x_23); -x_34 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_34, 0, x_32); -lean_ctor_set(x_34, 1, x_33); -return x_34; -} -} -} -else -{ -uint8_t x_35; -lean_dec(x_6); -lean_dec(x_9); -lean_dec(x_3); -lean_dec(x_1); -x_35 = !lean_is_exclusive(x_20); -if (x_35 == 0) -{ -return x_20; -} -else -{ -lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_36 = lean_ctor_get(x_20, 0); -x_37 = lean_ctor_get(x_20, 1); -lean_inc(x_37); -lean_inc(x_36); -lean_dec(x_20); -x_38 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_38, 0, x_36); -lean_ctor_set(x_38, 1, x_37); -return x_38; -} -} -} -else -{ -uint8_t x_39; -lean_dec(x_6); -lean_dec(x_9); -lean_dec(x_3); -lean_dec(x_1); -x_39 = !lean_is_exclusive(x_17); -if (x_39 == 0) -{ -return x_17; -} -else -{ -lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_40 = lean_ctor_get(x_17, 0); -x_41 = lean_ctor_get(x_17, 1); -lean_inc(x_41); -lean_inc(x_40); -lean_dec(x_17); -x_42 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_42, 0, x_40); -lean_ctor_set(x_42, 1, x_41); -return x_42; -} -} -} -else -{ -x_4 = x_9; -x_5 = x_10; -x_7 = x_15; -goto _start; -} -} -else -{ -uint8_t x_44; -lean_dec(x_6); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_44 = !lean_is_exclusive(x_13); -if (x_44 == 0) -{ return x_13; } else { -lean_object* x_45; lean_object* x_46; lean_object* x_47; -x_45 = lean_ctor_get(x_13, 0); -x_46 = lean_ctor_get(x_13, 1); -lean_inc(x_46); -lean_inc(x_45); -lean_dec(x_13); -x_47 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_47, 0, x_45); -lean_ctor_set(x_47, 1, x_46); -return x_47; -} -} -} -else -{ -lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; -x_48 = lean_ctor_get(x_6, 0); -x_49 = lean_ctor_get(x_6, 2); -lean_inc(x_49); -lean_inc(x_48); +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_14 = lean_ctor_get(x_6, 0); +x_15 = lean_ctor_get(x_6, 2); +lean_inc(x_15); +lean_inc(x_14); lean_dec(x_6); lean_inc(x_2); -x_50 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_50, 0, x_48); -lean_ctor_set(x_50, 1, x_2); -lean_ctor_set(x_50, 2, x_49); -lean_inc(x_1); -lean_inc(x_50); -lean_inc(x_10); -x_51 = lean_apply_3(x_1, x_10, x_50, x_7); -if (lean_obj_tag(x_51) == 0) -{ -lean_object* x_52; lean_object* x_53; uint8_t x_54; -x_52 = lean_ctor_get(x_51, 0); -lean_inc(x_52); -x_53 = lean_ctor_get(x_51, 1); -lean_inc(x_53); -lean_dec(x_51); -x_54 = l_Lean_Expr_isForall(x_52); -lean_dec(x_52); -if (x_54 == 0) -{ -lean_object* x_55; -lean_dec(x_2); -lean_inc(x_50); -lean_inc(x_1); -x_55 = l___private_Init_Lean_Meta_37__inferTypeAux___main(x_1, x_10, x_50, x_53); -if (lean_obj_tag(x_55) == 0) -{ -lean_object* x_56; lean_object* x_57; lean_object* x_58; -x_56 = lean_ctor_get(x_55, 0); -lean_inc(x_56); -x_57 = lean_ctor_get(x_55, 1); -lean_inc(x_57); -lean_dec(x_55); -lean_inc(x_50); -lean_inc(x_1); -x_58 = l___private_Init_Lean_Meta_31__getLevel___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__4(x_1, x_56, x_50, x_57); -if (lean_obj_tag(x_58) == 0) -{ -lean_object* x_59; lean_object* x_60; lean_object* x_61; -x_59 = lean_ctor_get(x_58, 0); -lean_inc(x_59); -x_60 = lean_ctor_get(x_58, 1); -lean_inc(x_60); -lean_dec(x_58); -x_61 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__6(x_1, x_3, x_3, x_9, lean_box(0), x_59, x_50, x_60); +x_16 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_16, 0, x_14); +lean_ctor_set(x_16, 1, x_2); +lean_ctor_set(x_16, 2, x_15); +lean_inc(x_4); +lean_inc(x_3); +x_17 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__9(x_1, x_2, x_3, x_4, x_5, x_9, x_10, x_3, x_4, x_16, x_7); +lean_dec(x_5); +lean_dec(x_4); lean_dec(x_3); -if (lean_obj_tag(x_61) == 0) -{ -lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; -x_62 = lean_ctor_get(x_61, 0); -lean_inc(x_62); -x_63 = lean_ctor_get(x_61, 1); -lean_inc(x_63); -if (lean_is_exclusive(x_61)) { - lean_ctor_release(x_61, 0); - lean_ctor_release(x_61, 1); - x_64 = x_61; -} else { - lean_dec_ref(x_61); - x_64 = lean_box(0); -} -x_65 = lean_expr_mk_sort(x_62); -if (lean_is_scalar(x_64)) { - x_66 = lean_alloc_ctor(0, 2, 0); -} else { - x_66 = x_64; -} -lean_ctor_set(x_66, 0, x_65); -lean_ctor_set(x_66, 1, x_63); -return x_66; -} -else -{ -lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; -x_67 = lean_ctor_get(x_61, 0); -lean_inc(x_67); -x_68 = lean_ctor_get(x_61, 1); -lean_inc(x_68); -if (lean_is_exclusive(x_61)) { - lean_ctor_release(x_61, 0); - lean_ctor_release(x_61, 1); - x_69 = x_61; -} else { - lean_dec_ref(x_61); - x_69 = lean_box(0); -} -if (lean_is_scalar(x_69)) { - x_70 = lean_alloc_ctor(1, 2, 0); -} else { - x_70 = x_69; -} -lean_ctor_set(x_70, 0, x_67); -lean_ctor_set(x_70, 1, x_68); -return x_70; -} -} -else -{ -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; -lean_dec(x_50); -lean_dec(x_9); -lean_dec(x_3); -lean_dec(x_1); -x_71 = lean_ctor_get(x_58, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_58, 1); -lean_inc(x_72); -if (lean_is_exclusive(x_58)) { - lean_ctor_release(x_58, 0); - lean_ctor_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_ctor(1, 2, 0); -} else { - x_74 = x_73; -} -lean_ctor_set(x_74, 0, x_71); -lean_ctor_set(x_74, 1, x_72); -return x_74; -} -} -else -{ -lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -lean_dec(x_50); -lean_dec(x_9); -lean_dec(x_3); -lean_dec(x_1); -x_75 = lean_ctor_get(x_55, 0); -lean_inc(x_75); -x_76 = lean_ctor_get(x_55, 1); -lean_inc(x_76); -if (lean_is_exclusive(x_55)) { - lean_ctor_release(x_55, 0); - lean_ctor_release(x_55, 1); - x_77 = x_55; -} else { - lean_dec_ref(x_55); - x_77 = lean_box(0); -} -if (lean_is_scalar(x_77)) { - x_78 = lean_alloc_ctor(1, 2, 0); -} else { - x_78 = x_77; -} -lean_ctor_set(x_78, 0, x_75); -lean_ctor_set(x_78, 1, x_76); -return x_78; -} -} -else -{ -x_4 = x_9; -x_5 = x_10; -x_6 = x_50; -x_7 = x_53; -goto _start; -} -} -else -{ -lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; -lean_dec(x_50); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_80 = lean_ctor_get(x_51, 0); -lean_inc(x_80); -x_81 = lean_ctor_get(x_51, 1); -lean_inc(x_81); -if (lean_is_exclusive(x_51)) { - lean_ctor_release(x_51, 0); - lean_ctor_release(x_51, 1); - x_82 = x_51; -} else { - lean_dec_ref(x_51); - x_82 = lean_box(0); -} -if (lean_is_scalar(x_82)) { - x_83 = lean_alloc_ctor(1, 2, 0); -} else { - x_83 = x_82; -} -lean_ctor_set(x_83, 0, x_80); -lean_ctor_set(x_83, 1, x_81); -return x_83; +return x_17; } } } } -} -lean_object* l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__7(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__7(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; @@ -21737,7 +23605,7 @@ lean_object* x_9; lean_dec(x_6); lean_inc(x_3); lean_inc(x_1); -x_9 = l___private_Init_Lean_Meta_37__inferTypeAux___main(x_1, x_2, x_3, x_7); +x_9 = l___private_Init_Lean_Meta_40__inferTypeAux___main(x_1, x_2, x_3, x_7); if (lean_obj_tag(x_9) == 0) { lean_object* x_10; lean_object* x_11; lean_object* x_12; @@ -21748,7 +23616,7 @@ lean_inc(x_11); lean_dec(x_9); lean_inc(x_3); lean_inc(x_1); -x_12 = l___private_Init_Lean_Meta_31__getLevel___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__4(x_1, x_10, x_3, x_11); +x_12 = l___private_Init_Lean_Meta_34__getLevel___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__4(x_1, x_10, x_3, x_11); if (lean_obj_tag(x_12) == 0) { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; @@ -21758,8 +23626,8 @@ x_14 = lean_ctor_get(x_12, 1); lean_inc(x_14); lean_dec(x_12); x_15 = l_Array_empty___closed__1; -x_16 = l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_32__inferForallType___spec__2___closed__1; -x_17 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__6(x_1, x_15, x_15, x_16, lean_box(0), x_13, x_3, x_14); +x_16 = l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_35__inferForallType___spec__2___closed__1; +x_17 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__6(x_1, x_15, x_15, x_16, lean_box(0), x_13, x_3, x_14); if (lean_obj_tag(x_17) == 0) { uint8_t x_18; @@ -21870,7 +23738,7 @@ x_38 = lean_ctor_get(x_3, 1); lean_inc(x_38); x_39 = l_Array_empty___closed__1; x_40 = lean_unsigned_to_nat(0u); -x_41 = l___private_Init_Lean_Meta_24__forallTelescopeAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__8(x_1, x_38, x_39, x_40, x_6, x_3, x_7); +x_41 = l___private_Init_Lean_Meta_27__forallTelescopeAuxAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__8(x_1, x_38, x_39, x_40, x_6, x_3, x_7); if (lean_obj_tag(x_41) == 0) { uint8_t x_42; @@ -22078,15 +23946,15 @@ return x_85; } } } -lean_object* l___private_Init_Lean_Meta_32__inferForallType___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Init_Lean_Meta_35__inferForallType___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__7(x_1, x_2, x_3, x_4); +x_5 = l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__7(x_1, x_2, x_3, x_4); return x_5; } } -lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__10(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__11(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { _start: { lean_object* x_10; uint8_t x_11; @@ -22251,14 +24119,14 @@ return x_44; } } } -lean_object* l___private_Init_Lean_Meta_30__inferProjType___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__9(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l___private_Init_Lean_Meta_33__inferProjType___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__10(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { lean_object* x_7; lean_inc(x_5); lean_inc(x_4); lean_inc(x_1); -x_7 = l___private_Init_Lean_Meta_37__inferTypeAux___main(x_1, x_4, x_5, x_6); +x_7 = l___private_Init_Lean_Meta_40__inferTypeAux___main(x_1, x_4, x_5, x_6); if (lean_obj_tag(x_7) == 0) { lean_object* x_8; lean_object* x_9; lean_object* x_10; @@ -22442,7 +24310,7 @@ lean_dec(x_44); x_49 = lean_instantiate_type_lparams(x_48, x_18); lean_inc(x_5); lean_inc(x_1); -x_50 = l___private_Init_Lean_Meta_27__getForallResultType(x_1, x_49, x_38, x_5, x_12); +x_50 = l___private_Init_Lean_Meta_30__getForallResultType(x_1, x_49, x_38, x_5, x_12); if (lean_obj_tag(x_50) == 0) { lean_object* x_51; lean_object* x_52; lean_object* x_53; @@ -22456,7 +24324,7 @@ lean_inc(x_4); lean_inc_n(x_3, 2); lean_inc(x_2); lean_inc(x_1); -x_53 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__10(x_1, x_2, x_3, x_4, x_3, x_3, x_51, x_5, x_52); +x_53 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__11(x_1, x_2, x_3, x_4, x_3, x_3, x_51, x_5, x_52); if (lean_obj_tag(x_53) == 0) { lean_object* x_54; lean_object* x_55; lean_object* x_56; @@ -22900,7 +24768,7 @@ lean_dec(x_135); x_141 = lean_instantiate_type_lparams(x_140, x_106); lean_inc(x_5); lean_inc(x_1); -x_142 = l___private_Init_Lean_Meta_27__getForallResultType(x_1, x_141, x_128, x_5, x_100); +x_142 = l___private_Init_Lean_Meta_30__getForallResultType(x_1, x_141, x_128, x_5, x_100); if (lean_obj_tag(x_142) == 0) { lean_object* x_143; lean_object* x_144; lean_object* x_145; @@ -22914,7 +24782,7 @@ lean_inc(x_4); lean_inc_n(x_3, 2); lean_inc(x_2); lean_inc(x_1); -x_145 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__10(x_1, x_2, x_3, x_4, x_3, x_3, x_143, x_5, x_144); +x_145 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__11(x_1, x_2, x_3, x_4, x_3, x_3, x_143, x_5, x_144); if (lean_obj_tag(x_145) == 0) { lean_object* x_146; lean_object* x_147; lean_object* x_148; @@ -23227,7 +25095,7 @@ return x_193; } } } -lean_object* _init_l___private_Init_Lean_Meta_37__inferTypeAux___main___closed__1() { +lean_object* _init_l___private_Init_Lean_Meta_40__inferTypeAux___main___closed__1() { _start: { lean_object* x_1; @@ -23235,17 +25103,17 @@ x_1 = lean_mk_string("not implemented yet"); return x_1; } } -lean_object* _init_l___private_Init_Lean_Meta_37__inferTypeAux___main___closed__2() { +lean_object* _init_l___private_Init_Lean_Meta_40__inferTypeAux___main___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Init_Lean_Meta_37__inferTypeAux___main___closed__1; +x_1 = l___private_Init_Lean_Meta_40__inferTypeAux___main___closed__1; x_2 = lean_alloc_ctor(8, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l___private_Init_Lean_Meta_37__inferTypeAux___main(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Init_Lean_Meta_40__inferTypeAux___main(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { switch (lean_obj_tag(x_2)) { @@ -23258,7 +25126,7 @@ x_5 = l_unreachable_x21___rarg___closed__1; x_6 = lean_unsigned_to_nat(37u); x_7 = lean_unsigned_to_nat(0u); x_8 = l_unreachable_x21___rarg___closed__2; -x_9 = l_panicWithPos___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__1(x_5, x_6, x_7, x_8, x_3, x_4); +x_9 = l_panicWithPos___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__1(x_5, x_6, x_7, x_8, x_3, x_4); return x_9; } case 1: @@ -23268,7 +25136,7 @@ lean_dec(x_1); x_10 = lean_ctor_get(x_2, 0); lean_inc(x_10); lean_dec(x_2); -x_11 = l___private_Init_Lean_Meta_35__inferFVarType(x_10, x_3, x_4); +x_11 = l___private_Init_Lean_Meta_38__inferFVarType(x_10, x_3, x_4); return x_11; } case 2: @@ -23278,7 +25146,7 @@ lean_dec(x_1); x_12 = lean_ctor_get(x_2, 0); lean_inc(x_12); lean_dec(x_2); -x_13 = l___private_Init_Lean_Meta_34__inferMVarType(x_12, x_3, x_4); +x_13 = l___private_Init_Lean_Meta_37__inferMVarType(x_12, x_3, x_4); lean_dec(x_3); return x_13; } @@ -23306,7 +25174,7 @@ lean_inc(x_18); x_19 = lean_ctor_get(x_2, 1); lean_inc(x_19); lean_dec(x_2); -x_20 = l___private_Init_Lean_Meta_29__inferConstType(x_18, x_19, x_3, x_4); +x_20 = l___private_Init_Lean_Meta_32__inferConstType(x_18, x_19, x_3, x_4); lean_dec(x_3); return x_20; } @@ -23330,12 +25198,12 @@ lean_inc(x_29); x_30 = lean_ctor_get(x_29, 1); lean_inc(x_30); lean_dec(x_29); -x_31 = l_PersistentHashMap_find___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__1(x_30, x_2); +x_31 = l_PersistentHashMap_find___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__1(x_30, x_2); lean_dec(x_30); if (lean_obj_tag(x_31) == 0) { lean_object* x_32; -x_32 = l___private_Init_Lean_Meta_28__inferAppType___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__2(x_1, x_21, x_28, x_3, x_4); +x_32 = l___private_Init_Lean_Meta_31__inferAppType___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__2(x_1, x_21, x_28, x_3, x_4); if (lean_obj_tag(x_32) == 0) { lean_object* x_33; lean_object* x_34; uint8_t x_35; @@ -23362,7 +25230,7 @@ if (x_40 == 0) lean_object* x_41; lean_object* x_42; x_41 = lean_ctor_get(x_34, 1); lean_inc(x_36); -x_42 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__4(x_41, x_2, x_36); +x_42 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__4(x_41, x_2, x_36); lean_ctor_set(x_34, 1, x_42); return x_32; } @@ -23375,7 +25243,7 @@ lean_inc(x_44); lean_inc(x_43); lean_dec(x_34); lean_inc(x_36); -x_45 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__4(x_44, x_2, x_36); +x_45 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__4(x_44, x_2, x_36); x_46 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_46, 0, x_43); lean_ctor_set(x_46, 1, x_45); @@ -23410,7 +25278,7 @@ if (lean_is_exclusive(x_34)) { x_54 = lean_box(0); } lean_inc(x_36); -x_55 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__4(x_53, x_2, x_36); +x_55 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__4(x_53, x_2, x_36); if (lean_is_scalar(x_54)) { x_56 = lean_alloc_ctor(0, 2, 0); } else { @@ -23470,7 +25338,7 @@ if (lean_is_exclusive(x_34)) { x_67 = lean_box(0); } lean_inc(x_58); -x_68 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__4(x_66, x_2, x_58); +x_68 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__4(x_66, x_2, x_58); if (lean_is_scalar(x_67)) { x_69 = lean_alloc_ctor(0, 2, 0); } else { @@ -23539,7 +25407,7 @@ return x_77; case 7: { lean_object* x_78; -x_78 = l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__7(x_1, x_2, x_3, x_4); +x_78 = l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__7(x_1, x_2, x_3, x_4); return x_78; } case 9: @@ -23580,12 +25448,12 @@ lean_inc(x_87); x_88 = lean_ctor_get(x_87, 1); lean_inc(x_88); lean_dec(x_87); -x_89 = l_PersistentHashMap_find___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__1(x_88, x_2); +x_89 = l_PersistentHashMap_find___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__1(x_88, x_2); lean_dec(x_88); if (lean_obj_tag(x_89) == 0) { lean_object* x_90; -x_90 = l___private_Init_Lean_Meta_30__inferProjType___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__9(x_1, x_84, x_85, x_86, x_3, x_4); +x_90 = l___private_Init_Lean_Meta_33__inferProjType___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__10(x_1, x_84, x_85, x_86, x_3, x_4); if (lean_obj_tag(x_90) == 0) { lean_object* x_91; lean_object* x_92; uint8_t x_93; @@ -23612,7 +25480,7 @@ if (x_98 == 0) lean_object* x_99; lean_object* x_100; x_99 = lean_ctor_get(x_92, 1); lean_inc(x_94); -x_100 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__4(x_99, x_2, x_94); +x_100 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__4(x_99, x_2, x_94); lean_ctor_set(x_92, 1, x_100); return x_90; } @@ -23625,7 +25493,7 @@ lean_inc(x_102); lean_inc(x_101); lean_dec(x_92); lean_inc(x_94); -x_103 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__4(x_102, x_2, x_94); +x_103 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__4(x_102, x_2, x_94); x_104 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_104, 0, x_101); lean_ctor_set(x_104, 1, x_103); @@ -23660,7 +25528,7 @@ if (lean_is_exclusive(x_92)) { x_112 = lean_box(0); } lean_inc(x_94); -x_113 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__4(x_111, x_2, x_94); +x_113 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__4(x_111, x_2, x_94); if (lean_is_scalar(x_112)) { x_114 = lean_alloc_ctor(0, 2, 0); } else { @@ -23720,7 +25588,7 @@ if (lean_is_exclusive(x_92)) { x_125 = lean_box(0); } lean_inc(x_116); -x_126 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_36__checkInferTypeCache___spec__4(x_124, x_2, x_116); +x_126 = l_PersistentHashMap_insert___at___private_Init_Lean_Meta_39__checkInferTypeCache___spec__4(x_124, x_2, x_116); if (lean_is_scalar(x_125)) { x_127 = lean_alloc_ctor(0, 2, 0); } else { @@ -23793,7 +25661,7 @@ lean_object* x_136; lean_object* x_137; lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_136 = l___private_Init_Lean_Meta_37__inferTypeAux___main___closed__2; +x_136 = l___private_Init_Lean_Meta_40__inferTypeAux___main___closed__2; x_137 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_137, 0, x_136); lean_ctor_set(x_137, 1, x_4); @@ -23802,40 +25670,51 @@ return x_137; } } } -lean_object* l_panicWithPos___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l_panicWithPos___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { lean_object* x_7; -x_7 = l_panicWithPos___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_panicWithPos___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); lean_dec(x_4); lean_dec(x_1); return x_7; } } -lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__6___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__6___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { _start: { lean_object* x_9; -x_9 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +x_9 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); lean_dec(x_3); lean_dec(x_2); return x_9; } } -lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__10___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +lean_object* l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__9___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { +_start: +{ +lean_object* x_12; +x_12 = l___private_Init_Lean_Meta_26__withNewLocalInstances___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__9(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_4); +return x_12; +} +} +lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__11___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { _start: { lean_object* x_10; -x_10 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__10(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_10 = l_Nat_foldMAux___main___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__11(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); lean_dec(x_5); return x_10; } } -lean_object* l___private_Init_Lean_Meta_37__inferTypeAux(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Init_Lean_Meta_40__inferTypeAux(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l___private_Init_Lean_Meta_37__inferTypeAux___main(x_1, x_2, x_3, x_4); +x_5 = l___private_Init_Lean_Meta_40__inferTypeAux___main(x_1, x_2, x_3, x_4); return x_5; } } @@ -23913,14 +25792,14 @@ l_panicWithPos___at___private_Init_Lean_Meta_22__whnfAux___main___spec__2___clos lean_mark_persistent(l_panicWithPos___at___private_Init_Lean_Meta_22__whnfAux___main___spec__2___closed__2); l___private_Init_Lean_WHNF_5__toCtorWhenK___at___private_Init_Lean_Meta_22__whnfAux___main___spec__6___closed__1 = _init_l___private_Init_Lean_WHNF_5__toCtorWhenK___at___private_Init_Lean_Meta_22__whnfAux___main___spec__6___closed__1(); lean_mark_persistent(l___private_Init_Lean_WHNF_5__toCtorWhenK___at___private_Init_Lean_Meta_22__whnfAux___main___spec__6___closed__1); -l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_32__inferForallType___spec__2___closed__1 = _init_l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_32__inferForallType___spec__2___closed__1(); -lean_mark_persistent(l_Lean_Meta_forallTelescope___at___private_Init_Lean_Meta_32__inferForallType___spec__2___closed__1); -l_panicWithPos___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__1___closed__1 = _init_l_panicWithPos___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__1___closed__1(); -lean_mark_persistent(l_panicWithPos___at___private_Init_Lean_Meta_37__inferTypeAux___main___spec__1___closed__1); -l___private_Init_Lean_Meta_37__inferTypeAux___main___closed__1 = _init_l___private_Init_Lean_Meta_37__inferTypeAux___main___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Meta_37__inferTypeAux___main___closed__1); -l___private_Init_Lean_Meta_37__inferTypeAux___main___closed__2 = _init_l___private_Init_Lean_Meta_37__inferTypeAux___main___closed__2(); -lean_mark_persistent(l___private_Init_Lean_Meta_37__inferTypeAux___main___closed__2); +l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_35__inferForallType___spec__2___closed__1 = _init_l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_35__inferForallType___spec__2___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Meta_28__forallTelescopeAux___at___private_Init_Lean_Meta_35__inferForallType___spec__2___closed__1); +l_panicWithPos___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__1___closed__1 = _init_l_panicWithPos___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__1___closed__1(); +lean_mark_persistent(l_panicWithPos___at___private_Init_Lean_Meta_40__inferTypeAux___main___spec__1___closed__1); +l___private_Init_Lean_Meta_40__inferTypeAux___main___closed__1 = _init_l___private_Init_Lean_Meta_40__inferTypeAux___main___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Meta_40__inferTypeAux___main___closed__1); +l___private_Init_Lean_Meta_40__inferTypeAux___main___closed__2 = _init_l___private_Init_Lean_Meta_40__inferTypeAux___main___closed__2(); +lean_mark_persistent(l___private_Init_Lean_Meta_40__inferTypeAux___main___closed__2); return lean_mk_io_result(lean_box(0)); } #ifdef __cplusplus diff --git a/src/stage0/Init/Lean/MetavarContext.c b/src/stage0/Init/Lean/MetavarContext.c index c85de239cd..e5b9a53e1e 100644 --- a/src/stage0/Init/Lean/MetavarContext.c +++ b/src/stage0/Init/Lean/MetavarContext.c @@ -156,6 +156,7 @@ lean_object* l_Lean_LocalContext_foldlFromM___at___private_Init_Lean_MetavarCont lean_object* l_Array_anyMAux___main___at___private_Init_Lean_MetavarContext_17__collectDeps___spec__36___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkAppRev(lean_object*, lean_object*); lean_object* l_Lean_MetavarContext_MkBinding_mkBinding(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t lean_expr_has_loose_bvar(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_MetavarContext_17__collectDeps___spec__61(lean_object*); lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_MetavarContext_mkDecl___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -14411,7 +14412,7 @@ lean_dec(x_216); lean_dec(x_214); lean_dec(x_1); x_221 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_222 = lean_unsigned_to_nat(532u); +x_222 = lean_unsigned_to_nat(535u); x_223 = lean_unsigned_to_nat(18u); x_224 = l_Lean_Expr_updateLambda_x21___closed__1; x_225 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_221, x_222, x_223, x_224); @@ -14712,7 +14713,7 @@ lean_dec(x_289); lean_dec(x_287); lean_dec(x_1); x_294 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_295 = lean_unsigned_to_nat(518u); +x_295 = lean_unsigned_to_nat(521u); x_296 = lean_unsigned_to_nat(22u); x_297 = l_Lean_Expr_updateForall_x21___closed__1; x_298 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_294, x_295, x_296, x_297); @@ -15148,7 +15149,7 @@ lean_dec(x_363); lean_dec(x_361); lean_dec(x_1); x_369 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_370 = lean_unsigned_to_nat(541u); +x_370 = lean_unsigned_to_nat(544u); x_371 = lean_unsigned_to_nat(18u); x_372 = l_Lean_Expr_letName_x21___closed__1; x_373 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_369, x_370, x_371, x_372); @@ -15494,7 +15495,7 @@ lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean lean_dec(x_15); lean_dec(x_1); x_19 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_20 = lean_unsigned_to_nat(499u); +x_20 = lean_unsigned_to_nat(502u); x_21 = lean_unsigned_to_nat(15u); x_22 = l_Lean_Expr_updateMData_x21___closed__1; x_23 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_19, x_20, x_21, x_22); @@ -15521,7 +15522,7 @@ lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean lean_dec(x_26); lean_dec(x_1); x_30 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_31 = lean_unsigned_to_nat(504u); +x_31 = lean_unsigned_to_nat(507u); x_32 = lean_unsigned_to_nat(16u); x_33 = l_Lean_Expr_updateProj_x21___closed__1; x_34 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_30, x_31, x_32, x_33); @@ -18373,7 +18374,7 @@ lean_dec(x_6); lean_dec(x_4); lean_dec(x_1); x_11 = l_Lean_MetavarContext_getDecl___closed__1; -x_12 = lean_unsigned_to_nat(573u); +x_12 = lean_unsigned_to_nat(576u); x_13 = lean_unsigned_to_nat(16u); x_14 = l_Nat_foldRevAux___main___at_Lean_LocalContext_mkBinding___spec__1___closed__1; x_15 = l_panicWithPos___at_Lean_MetavarContext_MkBinding_mkBinding___spec__1(x_11, x_12, x_13, x_14, x_7); @@ -18481,7 +18482,7 @@ return x_36; } else { -lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; +lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; x_37 = lean_ctor_get(x_16, 2); lean_inc(x_37); x_38 = lean_ctor_get(x_16, 3); @@ -18489,106 +18490,125 @@ lean_inc(x_38); x_39 = lean_ctor_get(x_16, 4); lean_inc(x_39); lean_dec(x_16); +x_40 = lean_unsigned_to_nat(0u); +x_41 = lean_expr_has_loose_bvar(x_6, x_40); +if (x_41 == 0) +{ +lean_object* x_42; +lean_dec(x_39); +lean_dec(x_38); +lean_dec(x_37); +lean_dec(x_4); +lean_dec(x_1); +x_42 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_42, 0, x_6); +lean_ctor_set(x_42, 1, x_7); +return x_42; +} +else +{ +lean_object* x_43; lean_inc(x_4); lean_inc(x_1); -x_40 = lean_apply_3(x_4, x_1, x_38, x_7); -if (lean_obj_tag(x_40) == 0) +x_43 = lean_apply_3(x_4, x_1, x_38, x_7); +if (lean_obj_tag(x_43) == 0) { -lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_41 = lean_ctor_get(x_40, 0); -lean_inc(x_41); -x_42 = lean_ctor_get(x_40, 1); -lean_inc(x_42); -lean_dec(x_40); -x_43 = lean_expr_abstract_range(x_41, x_2, x_1); -lean_dec(x_41); -lean_inc(x_1); -x_44 = lean_apply_3(x_4, x_1, x_39, x_42); -if (lean_obj_tag(x_44) == 0) -{ -uint8_t x_45; -x_45 = !lean_is_exclusive(x_44); -if (x_45 == 0) -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_44, 0); -x_47 = lean_expr_abstract_range(x_46, x_2, x_1); -lean_dec(x_1); -lean_dec(x_46); -x_48 = lean_expr_mk_let(x_37, x_43, x_47, x_6); -lean_ctor_set(x_44, 0, x_48); -return x_44; -} -else -{ -lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; -x_49 = lean_ctor_get(x_44, 0); -x_50 = lean_ctor_get(x_44, 1); -lean_inc(x_50); -lean_inc(x_49); +lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_44 = lean_ctor_get(x_43, 0); +lean_inc(x_44); +x_45 = lean_ctor_get(x_43, 1); +lean_inc(x_45); +lean_dec(x_43); +x_46 = lean_expr_abstract_range(x_44, x_2, x_1); lean_dec(x_44); -x_51 = lean_expr_abstract_range(x_49, x_2, x_1); +lean_inc(x_1); +x_47 = lean_apply_3(x_4, x_1, x_39, x_45); +if (lean_obj_tag(x_47) == 0) +{ +uint8_t x_48; +x_48 = !lean_is_exclusive(x_47); +if (x_48 == 0) +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_47, 0); +x_50 = lean_expr_abstract_range(x_49, x_2, x_1); lean_dec(x_1); lean_dec(x_49); -x_52 = lean_expr_mk_let(x_37, x_43, x_51, x_6); -x_53 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_53, 0, x_52); -lean_ctor_set(x_53, 1, x_50); -return x_53; +x_51 = lean_expr_mk_let(x_37, x_46, x_50, x_6); +lean_ctor_set(x_47, 0, x_51); +return x_47; +} +else +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; +x_52 = lean_ctor_get(x_47, 0); +x_53 = lean_ctor_get(x_47, 1); +lean_inc(x_53); +lean_inc(x_52); +lean_dec(x_47); +x_54 = lean_expr_abstract_range(x_52, x_2, x_1); +lean_dec(x_1); +lean_dec(x_52); +x_55 = lean_expr_mk_let(x_37, x_46, x_54, x_6); +x_56 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_56, 0, x_55); +lean_ctor_set(x_56, 1, x_53); +return x_56; } } else { -uint8_t x_54; -lean_dec(x_43); +uint8_t x_57; +lean_dec(x_46); lean_dec(x_37); lean_dec(x_6); lean_dec(x_1); -x_54 = !lean_is_exclusive(x_44); -if (x_54 == 0) +x_57 = !lean_is_exclusive(x_47); +if (x_57 == 0) { -return x_44; +return x_47; } else { -lean_object* x_55; lean_object* x_56; lean_object* x_57; -x_55 = lean_ctor_get(x_44, 0); -x_56 = lean_ctor_get(x_44, 1); -lean_inc(x_56); -lean_inc(x_55); -lean_dec(x_44); -x_57 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_57, 0, x_55); -lean_ctor_set(x_57, 1, x_56); -return x_57; +lean_object* x_58; lean_object* x_59; lean_object* x_60; +x_58 = lean_ctor_get(x_47, 0); +x_59 = lean_ctor_get(x_47, 1); +lean_inc(x_59); +lean_inc(x_58); +lean_dec(x_47); +x_60 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_60, 0, x_58); +lean_ctor_set(x_60, 1, x_59); +return x_60; } } } else { -uint8_t x_58; +uint8_t x_61; lean_dec(x_39); lean_dec(x_37); lean_dec(x_6); lean_dec(x_4); lean_dec(x_1); -x_58 = !lean_is_exclusive(x_40); -if (x_58 == 0) +x_61 = !lean_is_exclusive(x_43); +if (x_61 == 0) { -return x_40; +return x_43; } else { -lean_object* x_59; lean_object* x_60; lean_object* x_61; -x_59 = lean_ctor_get(x_40, 0); -x_60 = lean_ctor_get(x_40, 1); -lean_inc(x_60); -lean_inc(x_59); -lean_dec(x_40); -x_61 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_61, 0, x_59); -lean_ctor_set(x_61, 1, x_60); -return x_61; +lean_object* x_62; lean_object* x_63; lean_object* x_64; +x_62 = lean_ctor_get(x_43, 0); +x_63 = lean_ctor_get(x_43, 1); +lean_inc(x_63); +lean_inc(x_62); +lean_dec(x_43); +x_64 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_64, 0, x_62); +lean_ctor_set(x_64, 1, x_63); +return x_64; +} } } } @@ -32933,7 +32953,7 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_1); x_11 = l_Lean_MetavarContext_getDecl___closed__1; -x_12 = lean_unsigned_to_nat(573u); +x_12 = lean_unsigned_to_nat(576u); x_13 = lean_unsigned_to_nat(16u); x_14 = l_Nat_foldRevAux___main___at_Lean_LocalContext_mkBinding___spec__1___closed__1; x_15 = l_panicWithPos___at_Lean_MetavarContext_MkBinding_mkBinding___spec__1(x_11, x_12, x_13, x_14, x_7); @@ -33305,7 +33325,7 @@ return x_26; } else { -lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; uint8_t x_204; +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_204; uint8_t x_205; x_92 = lean_ctor_get(x_16, 2); lean_inc(x_92); x_93 = lean_ctor_get(x_16, 3); @@ -33313,337 +33333,356 @@ lean_inc(x_93); x_94 = lean_ctor_get(x_16, 4); lean_inc(x_94); lean_dec(x_16); -x_204 = lean_expr_has_expr_mvar(x_93); -if (x_204 == 0) -{ -uint8_t x_205; -x_205 = lean_expr_has_level_mvar(x_93); +x_204 = lean_unsigned_to_nat(0u); +x_205 = lean_expr_has_loose_bvar(x_5, x_204); if (x_205 == 0) { +lean_object* x_206; +lean_dec(x_94); +lean_dec(x_93); +lean_dec(x_92); +lean_dec(x_6); +lean_dec(x_1); +x_206 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_206, 0, x_5); +lean_ctor_set(x_206, 1, x_7); +return x_206; +} +else +{ +uint8_t x_207; +x_207 = lean_expr_has_expr_mvar(x_93); +if (x_207 == 0) +{ +uint8_t x_208; +x_208 = lean_expr_has_level_mvar(x_93); +if (x_208 == 0) +{ x_95 = x_93; x_96 = x_7; goto block_203; } else { -uint8_t x_206; -x_206 = !lean_is_exclusive(x_7); -if (x_206 == 0) +uint8_t x_209; +x_209 = !lean_is_exclusive(x_7); +if (x_209 == 0) { -lean_object* x_207; lean_object* x_208; lean_object* x_209; -x_207 = lean_ctor_get(x_7, 2); -x_208 = l_HashMap_Inhabited___closed__1; -lean_ctor_set(x_7, 2, x_208); +lean_object* x_210; lean_object* x_211; lean_object* x_212; +x_210 = lean_ctor_get(x_7, 2); +x_211 = l_HashMap_Inhabited___closed__1; +lean_ctor_set(x_7, 2, x_211); lean_inc(x_6); lean_inc(x_1); -x_209 = lean_apply_3(x_6, x_1, x_93, x_7); -if (lean_obj_tag(x_209) == 0) +x_212 = lean_apply_3(x_6, x_1, x_93, x_7); +if (lean_obj_tag(x_212) == 0) { -lean_object* x_210; lean_object* x_211; uint8_t x_212; -x_210 = lean_ctor_get(x_209, 1); -lean_inc(x_210); -x_211 = lean_ctor_get(x_209, 0); -lean_inc(x_211); -lean_dec(x_209); -x_212 = !lean_is_exclusive(x_210); -if (x_212 == 0) -{ -lean_object* x_213; -x_213 = lean_ctor_get(x_210, 2); -lean_dec(x_213); -lean_ctor_set(x_210, 2, x_207); -x_95 = x_211; -x_96 = x_210; -goto block_203; -} -else -{ -lean_object* x_214; lean_object* x_215; lean_object* x_216; -x_214 = lean_ctor_get(x_210, 0); -x_215 = lean_ctor_get(x_210, 1); -lean_inc(x_215); +lean_object* x_213; lean_object* x_214; uint8_t x_215; +x_213 = lean_ctor_get(x_212, 1); +lean_inc(x_213); +x_214 = lean_ctor_get(x_212, 0); lean_inc(x_214); -lean_dec(x_210); -x_216 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_216, 0, x_214); -lean_ctor_set(x_216, 1, x_215); -lean_ctor_set(x_216, 2, x_207); -x_95 = x_211; -x_96 = x_216; +lean_dec(x_212); +x_215 = !lean_is_exclusive(x_213); +if (x_215 == 0) +{ +lean_object* x_216; +x_216 = lean_ctor_get(x_213, 2); +lean_dec(x_216); +lean_ctor_set(x_213, 2, x_210); +x_95 = x_214; +x_96 = x_213; +goto block_203; +} +else +{ +lean_object* x_217; lean_object* x_218; lean_object* x_219; +x_217 = lean_ctor_get(x_213, 0); +x_218 = lean_ctor_get(x_213, 1); +lean_inc(x_218); +lean_inc(x_217); +lean_dec(x_213); +x_219 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_219, 0, x_217); +lean_ctor_set(x_219, 1, x_218); +lean_ctor_set(x_219, 2, x_210); +x_95 = x_214; +x_96 = x_219; goto block_203; } } else { -uint8_t x_217; -lean_dec(x_207); +uint8_t x_220; +lean_dec(x_210); lean_dec(x_94); lean_dec(x_92); lean_dec(x_6); lean_dec(x_5); lean_dec(x_1); -x_217 = !lean_is_exclusive(x_209); -if (x_217 == 0) +x_220 = !lean_is_exclusive(x_212); +if (x_220 == 0) { -return x_209; +return x_212; } else { -lean_object* x_218; lean_object* x_219; lean_object* x_220; -x_218 = lean_ctor_get(x_209, 0); -x_219 = lean_ctor_get(x_209, 1); -lean_inc(x_219); -lean_inc(x_218); -lean_dec(x_209); -x_220 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_220, 0, x_218); -lean_ctor_set(x_220, 1, x_219); -return x_220; -} -} -} -else -{ -lean_object* x_221; lean_object* x_222; lean_object* x_223; lean_object* x_224; lean_object* x_225; lean_object* x_226; -x_221 = lean_ctor_get(x_7, 0); -x_222 = lean_ctor_get(x_7, 1); -x_223 = lean_ctor_get(x_7, 2); -lean_inc(x_223); +lean_object* x_221; lean_object* x_222; lean_object* x_223; +x_221 = lean_ctor_get(x_212, 0); +x_222 = lean_ctor_get(x_212, 1); lean_inc(x_222); lean_inc(x_221); +lean_dec(x_212); +x_223 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_223, 0, x_221); +lean_ctor_set(x_223, 1, x_222); +return x_223; +} +} +} +else +{ +lean_object* x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; lean_object* x_228; lean_object* x_229; +x_224 = lean_ctor_get(x_7, 0); +x_225 = lean_ctor_get(x_7, 1); +x_226 = lean_ctor_get(x_7, 2); +lean_inc(x_226); +lean_inc(x_225); +lean_inc(x_224); lean_dec(x_7); -x_224 = l_HashMap_Inhabited___closed__1; -x_225 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_225, 0, x_221); -lean_ctor_set(x_225, 1, x_222); -lean_ctor_set(x_225, 2, x_224); +x_227 = l_HashMap_Inhabited___closed__1; +x_228 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_228, 0, x_224); +lean_ctor_set(x_228, 1, x_225); +lean_ctor_set(x_228, 2, x_227); lean_inc(x_6); lean_inc(x_1); -x_226 = lean_apply_3(x_6, x_1, x_93, x_225); -if (lean_obj_tag(x_226) == 0) +x_229 = lean_apply_3(x_6, x_1, x_93, x_228); +if (lean_obj_tag(x_229) == 0) { -lean_object* x_227; lean_object* x_228; lean_object* x_229; lean_object* x_230; lean_object* x_231; lean_object* x_232; -x_227 = lean_ctor_get(x_226, 1); -lean_inc(x_227); -x_228 = lean_ctor_get(x_226, 0); -lean_inc(x_228); -lean_dec(x_226); -x_229 = lean_ctor_get(x_227, 0); -lean_inc(x_229); -x_230 = lean_ctor_get(x_227, 1); +lean_object* x_230; lean_object* x_231; lean_object* x_232; lean_object* x_233; lean_object* x_234; lean_object* x_235; +x_230 = lean_ctor_get(x_229, 1); lean_inc(x_230); -if (lean_is_exclusive(x_227)) { - lean_ctor_release(x_227, 0); - lean_ctor_release(x_227, 1); - lean_ctor_release(x_227, 2); - x_231 = x_227; +x_231 = lean_ctor_get(x_229, 0); +lean_inc(x_231); +lean_dec(x_229); +x_232 = lean_ctor_get(x_230, 0); +lean_inc(x_232); +x_233 = lean_ctor_get(x_230, 1); +lean_inc(x_233); +if (lean_is_exclusive(x_230)) { + lean_ctor_release(x_230, 0); + lean_ctor_release(x_230, 1); + lean_ctor_release(x_230, 2); + x_234 = x_230; } else { - lean_dec_ref(x_227); - x_231 = lean_box(0); + lean_dec_ref(x_230); + x_234 = lean_box(0); } -if (lean_is_scalar(x_231)) { - x_232 = lean_alloc_ctor(0, 3, 0); +if (lean_is_scalar(x_234)) { + x_235 = lean_alloc_ctor(0, 3, 0); } else { - x_232 = x_231; + x_235 = x_234; } -lean_ctor_set(x_232, 0, x_229); -lean_ctor_set(x_232, 1, x_230); -lean_ctor_set(x_232, 2, x_223); -x_95 = x_228; -x_96 = x_232; +lean_ctor_set(x_235, 0, x_232); +lean_ctor_set(x_235, 1, x_233); +lean_ctor_set(x_235, 2, x_226); +x_95 = x_231; +x_96 = x_235; goto block_203; } else { -lean_object* x_233; lean_object* x_234; lean_object* x_235; lean_object* x_236; -lean_dec(x_223); +lean_object* x_236; lean_object* x_237; lean_object* x_238; lean_object* x_239; +lean_dec(x_226); lean_dec(x_94); lean_dec(x_92); lean_dec(x_6); lean_dec(x_5); lean_dec(x_1); -x_233 = lean_ctor_get(x_226, 0); -lean_inc(x_233); -x_234 = lean_ctor_get(x_226, 1); -lean_inc(x_234); -if (lean_is_exclusive(x_226)) { - lean_ctor_release(x_226, 0); - lean_ctor_release(x_226, 1); - x_235 = x_226; +x_236 = lean_ctor_get(x_229, 0); +lean_inc(x_236); +x_237 = lean_ctor_get(x_229, 1); +lean_inc(x_237); +if (lean_is_exclusive(x_229)) { + lean_ctor_release(x_229, 0); + lean_ctor_release(x_229, 1); + x_238 = x_229; } else { - lean_dec_ref(x_226); - x_235 = lean_box(0); + lean_dec_ref(x_229); + x_238 = lean_box(0); } -if (lean_is_scalar(x_235)) { - x_236 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_238)) { + x_239 = lean_alloc_ctor(1, 2, 0); } else { - x_236 = x_235; + x_239 = x_238; } -lean_ctor_set(x_236, 0, x_233); -lean_ctor_set(x_236, 1, x_234); -return x_236; +lean_ctor_set(x_239, 0, x_236); +lean_ctor_set(x_239, 1, x_237); +return x_239; } } } } else { -uint8_t x_237; -x_237 = !lean_is_exclusive(x_7); -if (x_237 == 0) +uint8_t x_240; +x_240 = !lean_is_exclusive(x_7); +if (x_240 == 0) { -lean_object* x_238; lean_object* x_239; lean_object* x_240; -x_238 = lean_ctor_get(x_7, 2); -x_239 = l_HashMap_Inhabited___closed__1; -lean_ctor_set(x_7, 2, x_239); +lean_object* x_241; lean_object* x_242; lean_object* x_243; +x_241 = lean_ctor_get(x_7, 2); +x_242 = l_HashMap_Inhabited___closed__1; +lean_ctor_set(x_7, 2, x_242); lean_inc(x_6); lean_inc(x_1); -x_240 = lean_apply_3(x_6, x_1, x_93, x_7); -if (lean_obj_tag(x_240) == 0) +x_243 = lean_apply_3(x_6, x_1, x_93, x_7); +if (lean_obj_tag(x_243) == 0) { -lean_object* x_241; lean_object* x_242; uint8_t x_243; -x_241 = lean_ctor_get(x_240, 1); -lean_inc(x_241); -x_242 = lean_ctor_get(x_240, 0); -lean_inc(x_242); -lean_dec(x_240); -x_243 = !lean_is_exclusive(x_241); -if (x_243 == 0) -{ -lean_object* x_244; -x_244 = lean_ctor_get(x_241, 2); -lean_dec(x_244); -lean_ctor_set(x_241, 2, x_238); -x_95 = x_242; -x_96 = x_241; -goto block_203; -} -else -{ -lean_object* x_245; lean_object* x_246; lean_object* x_247; -x_245 = lean_ctor_get(x_241, 0); -x_246 = lean_ctor_get(x_241, 1); -lean_inc(x_246); +lean_object* x_244; lean_object* x_245; uint8_t x_246; +x_244 = lean_ctor_get(x_243, 1); +lean_inc(x_244); +x_245 = lean_ctor_get(x_243, 0); lean_inc(x_245); -lean_dec(x_241); -x_247 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_247, 0, x_245); -lean_ctor_set(x_247, 1, x_246); -lean_ctor_set(x_247, 2, x_238); -x_95 = x_242; -x_96 = x_247; +lean_dec(x_243); +x_246 = !lean_is_exclusive(x_244); +if (x_246 == 0) +{ +lean_object* x_247; +x_247 = lean_ctor_get(x_244, 2); +lean_dec(x_247); +lean_ctor_set(x_244, 2, x_241); +x_95 = x_245; +x_96 = x_244; +goto block_203; +} +else +{ +lean_object* x_248; lean_object* x_249; lean_object* x_250; +x_248 = lean_ctor_get(x_244, 0); +x_249 = lean_ctor_get(x_244, 1); +lean_inc(x_249); +lean_inc(x_248); +lean_dec(x_244); +x_250 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_250, 0, x_248); +lean_ctor_set(x_250, 1, x_249); +lean_ctor_set(x_250, 2, x_241); +x_95 = x_245; +x_96 = x_250; goto block_203; } } else { -uint8_t x_248; -lean_dec(x_238); +uint8_t x_251; +lean_dec(x_241); lean_dec(x_94); lean_dec(x_92); lean_dec(x_6); lean_dec(x_5); lean_dec(x_1); -x_248 = !lean_is_exclusive(x_240); -if (x_248 == 0) +x_251 = !lean_is_exclusive(x_243); +if (x_251 == 0) { -return x_240; +return x_243; } else { -lean_object* x_249; lean_object* x_250; lean_object* x_251; -x_249 = lean_ctor_get(x_240, 0); -x_250 = lean_ctor_get(x_240, 1); -lean_inc(x_250); -lean_inc(x_249); -lean_dec(x_240); -x_251 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_251, 0, x_249); -lean_ctor_set(x_251, 1, x_250); -return x_251; -} -} -} -else -{ -lean_object* x_252; lean_object* x_253; lean_object* x_254; lean_object* x_255; lean_object* x_256; lean_object* x_257; -x_252 = lean_ctor_get(x_7, 0); -x_253 = lean_ctor_get(x_7, 1); -x_254 = lean_ctor_get(x_7, 2); -lean_inc(x_254); +lean_object* x_252; lean_object* x_253; lean_object* x_254; +x_252 = lean_ctor_get(x_243, 0); +x_253 = lean_ctor_get(x_243, 1); lean_inc(x_253); lean_inc(x_252); +lean_dec(x_243); +x_254 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_254, 0, x_252); +lean_ctor_set(x_254, 1, x_253); +return x_254; +} +} +} +else +{ +lean_object* x_255; lean_object* x_256; lean_object* x_257; lean_object* x_258; lean_object* x_259; lean_object* x_260; +x_255 = lean_ctor_get(x_7, 0); +x_256 = lean_ctor_get(x_7, 1); +x_257 = lean_ctor_get(x_7, 2); +lean_inc(x_257); +lean_inc(x_256); +lean_inc(x_255); lean_dec(x_7); -x_255 = l_HashMap_Inhabited___closed__1; -x_256 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_256, 0, x_252); -lean_ctor_set(x_256, 1, x_253); -lean_ctor_set(x_256, 2, x_255); +x_258 = l_HashMap_Inhabited___closed__1; +x_259 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_259, 0, x_255); +lean_ctor_set(x_259, 1, x_256); +lean_ctor_set(x_259, 2, x_258); lean_inc(x_6); lean_inc(x_1); -x_257 = lean_apply_3(x_6, x_1, x_93, x_256); -if (lean_obj_tag(x_257) == 0) +x_260 = lean_apply_3(x_6, x_1, x_93, x_259); +if (lean_obj_tag(x_260) == 0) { -lean_object* x_258; lean_object* x_259; lean_object* x_260; lean_object* x_261; lean_object* x_262; lean_object* x_263; -x_258 = lean_ctor_get(x_257, 1); -lean_inc(x_258); -x_259 = lean_ctor_get(x_257, 0); -lean_inc(x_259); -lean_dec(x_257); -x_260 = lean_ctor_get(x_258, 0); -lean_inc(x_260); -x_261 = lean_ctor_get(x_258, 1); +lean_object* x_261; lean_object* x_262; lean_object* x_263; lean_object* x_264; lean_object* x_265; lean_object* x_266; +x_261 = lean_ctor_get(x_260, 1); lean_inc(x_261); -if (lean_is_exclusive(x_258)) { - lean_ctor_release(x_258, 0); - lean_ctor_release(x_258, 1); - lean_ctor_release(x_258, 2); - x_262 = x_258; +x_262 = lean_ctor_get(x_260, 0); +lean_inc(x_262); +lean_dec(x_260); +x_263 = lean_ctor_get(x_261, 0); +lean_inc(x_263); +x_264 = lean_ctor_get(x_261, 1); +lean_inc(x_264); +if (lean_is_exclusive(x_261)) { + lean_ctor_release(x_261, 0); + lean_ctor_release(x_261, 1); + lean_ctor_release(x_261, 2); + x_265 = x_261; } else { - lean_dec_ref(x_258); - x_262 = lean_box(0); + lean_dec_ref(x_261); + x_265 = lean_box(0); } -if (lean_is_scalar(x_262)) { - x_263 = lean_alloc_ctor(0, 3, 0); +if (lean_is_scalar(x_265)) { + x_266 = lean_alloc_ctor(0, 3, 0); } else { - x_263 = x_262; + x_266 = x_265; } -lean_ctor_set(x_263, 0, x_260); -lean_ctor_set(x_263, 1, x_261); -lean_ctor_set(x_263, 2, x_254); -x_95 = x_259; -x_96 = x_263; +lean_ctor_set(x_266, 0, x_263); +lean_ctor_set(x_266, 1, x_264); +lean_ctor_set(x_266, 2, x_257); +x_95 = x_262; +x_96 = x_266; goto block_203; } else { -lean_object* x_264; lean_object* x_265; lean_object* x_266; lean_object* x_267; -lean_dec(x_254); +lean_object* x_267; lean_object* x_268; lean_object* x_269; lean_object* x_270; +lean_dec(x_257); lean_dec(x_94); lean_dec(x_92); lean_dec(x_6); lean_dec(x_5); lean_dec(x_1); -x_264 = lean_ctor_get(x_257, 0); -lean_inc(x_264); -x_265 = lean_ctor_get(x_257, 1); -lean_inc(x_265); -if (lean_is_exclusive(x_257)) { - lean_ctor_release(x_257, 0); - lean_ctor_release(x_257, 1); - x_266 = x_257; +x_267 = lean_ctor_get(x_260, 0); +lean_inc(x_267); +x_268 = lean_ctor_get(x_260, 1); +lean_inc(x_268); +if (lean_is_exclusive(x_260)) { + lean_ctor_release(x_260, 0); + lean_ctor_release(x_260, 1); + x_269 = x_260; } else { - lean_dec_ref(x_257); - x_266 = lean_box(0); + lean_dec_ref(x_260); + x_269 = lean_box(0); } -if (lean_is_scalar(x_266)) { - x_267 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_269)) { + x_270 = lean_alloc_ctor(1, 2, 0); } else { - x_267 = x_266; + x_270 = x_269; +} +lean_ctor_set(x_270, 0, x_267); +lean_ctor_set(x_270, 1, x_268); +return x_270; } -lean_ctor_set(x_267, 0, x_264); -lean_ctor_set(x_267, 1, x_265); -return x_267; } } } @@ -34805,7 +34844,7 @@ if (lean_obj_tag(x_9) == 0) lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_dec(x_5); x_10 = l_Lean_MetavarContext_getDecl___closed__1; -x_11 = lean_unsigned_to_nat(573u); +x_11 = lean_unsigned_to_nat(576u); x_12 = lean_unsigned_to_nat(16u); x_13 = l_Nat_foldRevAux___main___at_Lean_LocalContext_mkBinding___spec__1___closed__1; x_14 = l_panicWithPos___at_Lean_MetavarContext_MkBinding_mkBinding___spec__1(x_10, x_11, x_12, x_13, x_6); @@ -35167,7 +35206,7 @@ return x_25; } else { -lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; uint8_t x_203; +lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_203; uint8_t x_204; x_91 = lean_ctor_get(x_15, 2); lean_inc(x_91); x_92 = lean_ctor_get(x_15, 3); @@ -35175,321 +35214,338 @@ lean_inc(x_92); x_93 = lean_ctor_get(x_15, 4); lean_inc(x_93); lean_dec(x_15); -x_203 = lean_expr_has_expr_mvar(x_92); -if (x_203 == 0) -{ -uint8_t x_204; -x_204 = lean_expr_has_level_mvar(x_92); +x_203 = lean_unsigned_to_nat(0u); +x_204 = lean_expr_has_loose_bvar(x_5, x_203); if (x_204 == 0) { +lean_object* x_205; +lean_dec(x_93); +lean_dec(x_92); +lean_dec(x_91); +x_205 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_205, 0, x_5); +lean_ctor_set(x_205, 1, x_6); +return x_205; +} +else +{ +uint8_t x_206; +x_206 = lean_expr_has_expr_mvar(x_92); +if (x_206 == 0) +{ +uint8_t x_207; +x_207 = lean_expr_has_level_mvar(x_92); +if (x_207 == 0) +{ x_94 = x_92; x_95 = x_6; goto block_202; } else { -uint8_t x_205; -x_205 = !lean_is_exclusive(x_6); -if (x_205 == 0) +uint8_t x_208; +x_208 = !lean_is_exclusive(x_6); +if (x_208 == 0) { -lean_object* x_206; lean_object* x_207; lean_object* x_208; -x_206 = lean_ctor_get(x_6, 2); -x_207 = l_HashMap_Inhabited___closed__1; -lean_ctor_set(x_6, 2, x_207); -x_208 = l___private_Init_Lean_MetavarContext_26__elimMVarDepsAux___main(x_1, x_92, x_6); -if (lean_obj_tag(x_208) == 0) +lean_object* x_209; lean_object* x_210; lean_object* x_211; +x_209 = lean_ctor_get(x_6, 2); +x_210 = l_HashMap_Inhabited___closed__1; +lean_ctor_set(x_6, 2, x_210); +x_211 = l___private_Init_Lean_MetavarContext_26__elimMVarDepsAux___main(x_1, x_92, x_6); +if (lean_obj_tag(x_211) == 0) { -lean_object* x_209; lean_object* x_210; uint8_t x_211; -x_209 = lean_ctor_get(x_208, 1); -lean_inc(x_209); -x_210 = lean_ctor_get(x_208, 0); -lean_inc(x_210); -lean_dec(x_208); -x_211 = !lean_is_exclusive(x_209); -if (x_211 == 0) -{ -lean_object* x_212; -x_212 = lean_ctor_get(x_209, 2); -lean_dec(x_212); -lean_ctor_set(x_209, 2, x_206); -x_94 = x_210; -x_95 = x_209; -goto block_202; -} -else -{ -lean_object* x_213; lean_object* x_214; lean_object* x_215; -x_213 = lean_ctor_get(x_209, 0); -x_214 = lean_ctor_get(x_209, 1); -lean_inc(x_214); +lean_object* x_212; lean_object* x_213; uint8_t x_214; +x_212 = lean_ctor_get(x_211, 1); +lean_inc(x_212); +x_213 = lean_ctor_get(x_211, 0); lean_inc(x_213); -lean_dec(x_209); -x_215 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_215, 0, x_213); -lean_ctor_set(x_215, 1, x_214); -lean_ctor_set(x_215, 2, x_206); -x_94 = x_210; -x_95 = x_215; +lean_dec(x_211); +x_214 = !lean_is_exclusive(x_212); +if (x_214 == 0) +{ +lean_object* x_215; +x_215 = lean_ctor_get(x_212, 2); +lean_dec(x_215); +lean_ctor_set(x_212, 2, x_209); +x_94 = x_213; +x_95 = x_212; +goto block_202; +} +else +{ +lean_object* x_216; lean_object* x_217; lean_object* x_218; +x_216 = lean_ctor_get(x_212, 0); +x_217 = lean_ctor_get(x_212, 1); +lean_inc(x_217); +lean_inc(x_216); +lean_dec(x_212); +x_218 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_218, 0, x_216); +lean_ctor_set(x_218, 1, x_217); +lean_ctor_set(x_218, 2, x_209); +x_94 = x_213; +x_95 = x_218; goto block_202; } } else { -uint8_t x_216; -lean_dec(x_206); +uint8_t x_219; +lean_dec(x_209); lean_dec(x_93); lean_dec(x_91); lean_dec(x_5); -x_216 = !lean_is_exclusive(x_208); -if (x_216 == 0) +x_219 = !lean_is_exclusive(x_211); +if (x_219 == 0) { -return x_208; +return x_211; } else { -lean_object* x_217; lean_object* x_218; lean_object* x_219; -x_217 = lean_ctor_get(x_208, 0); -x_218 = lean_ctor_get(x_208, 1); -lean_inc(x_218); -lean_inc(x_217); -lean_dec(x_208); -x_219 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_219, 0, x_217); -lean_ctor_set(x_219, 1, x_218); -return x_219; -} -} -} -else -{ -lean_object* x_220; lean_object* x_221; lean_object* x_222; lean_object* x_223; lean_object* x_224; lean_object* x_225; -x_220 = lean_ctor_get(x_6, 0); -x_221 = lean_ctor_get(x_6, 1); -x_222 = lean_ctor_get(x_6, 2); -lean_inc(x_222); +lean_object* x_220; lean_object* x_221; lean_object* x_222; +x_220 = lean_ctor_get(x_211, 0); +x_221 = lean_ctor_get(x_211, 1); lean_inc(x_221); lean_inc(x_220); +lean_dec(x_211); +x_222 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_222, 0, x_220); +lean_ctor_set(x_222, 1, x_221); +return x_222; +} +} +} +else +{ +lean_object* x_223; lean_object* x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; lean_object* x_228; +x_223 = lean_ctor_get(x_6, 0); +x_224 = lean_ctor_get(x_6, 1); +x_225 = lean_ctor_get(x_6, 2); +lean_inc(x_225); +lean_inc(x_224); +lean_inc(x_223); lean_dec(x_6); -x_223 = l_HashMap_Inhabited___closed__1; -x_224 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_224, 0, x_220); -lean_ctor_set(x_224, 1, x_221); -lean_ctor_set(x_224, 2, x_223); -x_225 = l___private_Init_Lean_MetavarContext_26__elimMVarDepsAux___main(x_1, x_92, x_224); -if (lean_obj_tag(x_225) == 0) +x_226 = l_HashMap_Inhabited___closed__1; +x_227 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_227, 0, x_223); +lean_ctor_set(x_227, 1, x_224); +lean_ctor_set(x_227, 2, x_226); +x_228 = l___private_Init_Lean_MetavarContext_26__elimMVarDepsAux___main(x_1, x_92, x_227); +if (lean_obj_tag(x_228) == 0) { -lean_object* x_226; lean_object* x_227; lean_object* x_228; lean_object* x_229; lean_object* x_230; lean_object* x_231; -x_226 = lean_ctor_get(x_225, 1); -lean_inc(x_226); -x_227 = lean_ctor_get(x_225, 0); -lean_inc(x_227); -lean_dec(x_225); -x_228 = lean_ctor_get(x_226, 0); -lean_inc(x_228); -x_229 = lean_ctor_get(x_226, 1); +lean_object* x_229; lean_object* x_230; lean_object* x_231; lean_object* x_232; lean_object* x_233; lean_object* x_234; +x_229 = lean_ctor_get(x_228, 1); lean_inc(x_229); -if (lean_is_exclusive(x_226)) { - lean_ctor_release(x_226, 0); - lean_ctor_release(x_226, 1); - lean_ctor_release(x_226, 2); - x_230 = x_226; -} else { - lean_dec_ref(x_226); - x_230 = lean_box(0); -} -if (lean_is_scalar(x_230)) { - x_231 = lean_alloc_ctor(0, 3, 0); -} else { - x_231 = x_230; -} -lean_ctor_set(x_231, 0, x_228); -lean_ctor_set(x_231, 1, x_229); -lean_ctor_set(x_231, 2, x_222); -x_94 = x_227; -x_95 = x_231; -goto block_202; -} -else -{ -lean_object* x_232; lean_object* x_233; lean_object* x_234; lean_object* x_235; -lean_dec(x_222); -lean_dec(x_93); -lean_dec(x_91); -lean_dec(x_5); -x_232 = lean_ctor_get(x_225, 0); +x_230 = lean_ctor_get(x_228, 0); +lean_inc(x_230); +lean_dec(x_228); +x_231 = lean_ctor_get(x_229, 0); +lean_inc(x_231); +x_232 = lean_ctor_get(x_229, 1); lean_inc(x_232); -x_233 = lean_ctor_get(x_225, 1); -lean_inc(x_233); -if (lean_is_exclusive(x_225)) { - lean_ctor_release(x_225, 0); - lean_ctor_release(x_225, 1); - x_234 = x_225; +if (lean_is_exclusive(x_229)) { + lean_ctor_release(x_229, 0); + lean_ctor_release(x_229, 1); + lean_ctor_release(x_229, 2); + x_233 = x_229; } else { - lean_dec_ref(x_225); - x_234 = lean_box(0); + lean_dec_ref(x_229); + x_233 = lean_box(0); } -if (lean_is_scalar(x_234)) { - x_235 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_233)) { + x_234 = lean_alloc_ctor(0, 3, 0); } else { - x_235 = x_234; + x_234 = x_233; } -lean_ctor_set(x_235, 0, x_232); -lean_ctor_set(x_235, 1, x_233); -return x_235; -} -} -} -} -else -{ -uint8_t x_236; -x_236 = !lean_is_exclusive(x_6); -if (x_236 == 0) -{ -lean_object* x_237; lean_object* x_238; lean_object* x_239; -x_237 = lean_ctor_get(x_6, 2); -x_238 = l_HashMap_Inhabited___closed__1; -lean_ctor_set(x_6, 2, x_238); -x_239 = l___private_Init_Lean_MetavarContext_26__elimMVarDepsAux___main(x_1, x_92, x_6); -if (lean_obj_tag(x_239) == 0) -{ -lean_object* x_240; lean_object* x_241; uint8_t x_242; -x_240 = lean_ctor_get(x_239, 1); -lean_inc(x_240); -x_241 = lean_ctor_get(x_239, 0); -lean_inc(x_241); -lean_dec(x_239); -x_242 = !lean_is_exclusive(x_240); -if (x_242 == 0) -{ -lean_object* x_243; -x_243 = lean_ctor_get(x_240, 2); -lean_dec(x_243); -lean_ctor_set(x_240, 2, x_237); -x_94 = x_241; -x_95 = x_240; +lean_ctor_set(x_234, 0, x_231); +lean_ctor_set(x_234, 1, x_232); +lean_ctor_set(x_234, 2, x_225); +x_94 = x_230; +x_95 = x_234; goto block_202; } else { -lean_object* x_244; lean_object* x_245; lean_object* x_246; -x_244 = lean_ctor_get(x_240, 0); -x_245 = lean_ctor_get(x_240, 1); -lean_inc(x_245); -lean_inc(x_244); -lean_dec(x_240); -x_246 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_246, 0, x_244); -lean_ctor_set(x_246, 1, x_245); -lean_ctor_set(x_246, 2, x_237); -x_94 = x_241; -x_95 = x_246; -goto block_202; -} -} -else -{ -uint8_t x_247; -lean_dec(x_237); +lean_object* x_235; lean_object* x_236; lean_object* x_237; lean_object* x_238; +lean_dec(x_225); lean_dec(x_93); lean_dec(x_91); lean_dec(x_5); -x_247 = !lean_is_exclusive(x_239); -if (x_247 == 0) -{ -return x_239; +x_235 = lean_ctor_get(x_228, 0); +lean_inc(x_235); +x_236 = lean_ctor_get(x_228, 1); +lean_inc(x_236); +if (lean_is_exclusive(x_228)) { + lean_ctor_release(x_228, 0); + lean_ctor_release(x_228, 1); + x_237 = x_228; +} else { + lean_dec_ref(x_228); + x_237 = lean_box(0); +} +if (lean_is_scalar(x_237)) { + x_238 = lean_alloc_ctor(1, 2, 0); +} else { + x_238 = x_237; +} +lean_ctor_set(x_238, 0, x_235); +lean_ctor_set(x_238, 1, x_236); +return x_238; +} +} +} } else { -lean_object* x_248; lean_object* x_249; lean_object* x_250; -x_248 = lean_ctor_get(x_239, 0); -x_249 = lean_ctor_get(x_239, 1); -lean_inc(x_249); +uint8_t x_239; +x_239 = !lean_is_exclusive(x_6); +if (x_239 == 0) +{ +lean_object* x_240; lean_object* x_241; lean_object* x_242; +x_240 = lean_ctor_get(x_6, 2); +x_241 = l_HashMap_Inhabited___closed__1; +lean_ctor_set(x_6, 2, x_241); +x_242 = l___private_Init_Lean_MetavarContext_26__elimMVarDepsAux___main(x_1, x_92, x_6); +if (lean_obj_tag(x_242) == 0) +{ +lean_object* x_243; lean_object* x_244; uint8_t x_245; +x_243 = lean_ctor_get(x_242, 1); +lean_inc(x_243); +x_244 = lean_ctor_get(x_242, 0); +lean_inc(x_244); +lean_dec(x_242); +x_245 = !lean_is_exclusive(x_243); +if (x_245 == 0) +{ +lean_object* x_246; +x_246 = lean_ctor_get(x_243, 2); +lean_dec(x_246); +lean_ctor_set(x_243, 2, x_240); +x_94 = x_244; +x_95 = x_243; +goto block_202; +} +else +{ +lean_object* x_247; lean_object* x_248; lean_object* x_249; +x_247 = lean_ctor_get(x_243, 0); +x_248 = lean_ctor_get(x_243, 1); lean_inc(x_248); -lean_dec(x_239); -x_250 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_250, 0, x_248); -lean_ctor_set(x_250, 1, x_249); -return x_250; -} +lean_inc(x_247); +lean_dec(x_243); +x_249 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_249, 0, x_247); +lean_ctor_set(x_249, 1, x_248); +lean_ctor_set(x_249, 2, x_240); +x_94 = x_244; +x_95 = x_249; +goto block_202; } } else { -lean_object* x_251; lean_object* x_252; lean_object* x_253; lean_object* x_254; lean_object* x_255; lean_object* x_256; -x_251 = lean_ctor_get(x_6, 0); -x_252 = lean_ctor_get(x_6, 1); -x_253 = lean_ctor_get(x_6, 2); -lean_inc(x_253); +uint8_t x_250; +lean_dec(x_240); +lean_dec(x_93); +lean_dec(x_91); +lean_dec(x_5); +x_250 = !lean_is_exclusive(x_242); +if (x_250 == 0) +{ +return x_242; +} +else +{ +lean_object* x_251; lean_object* x_252; lean_object* x_253; +x_251 = lean_ctor_get(x_242, 0); +x_252 = lean_ctor_get(x_242, 1); lean_inc(x_252); lean_inc(x_251); -lean_dec(x_6); -x_254 = l_HashMap_Inhabited___closed__1; -x_255 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_255, 0, x_251); -lean_ctor_set(x_255, 1, x_252); -lean_ctor_set(x_255, 2, x_254); -x_256 = l___private_Init_Lean_MetavarContext_26__elimMVarDepsAux___main(x_1, x_92, x_255); -if (lean_obj_tag(x_256) == 0) +lean_dec(x_242); +x_253 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_253, 0, x_251); +lean_ctor_set(x_253, 1, x_252); +return x_253; +} +} +} +else { -lean_object* x_257; lean_object* x_258; lean_object* x_259; lean_object* x_260; lean_object* x_261; lean_object* x_262; -x_257 = lean_ctor_get(x_256, 1); -lean_inc(x_257); -x_258 = lean_ctor_get(x_256, 0); -lean_inc(x_258); -lean_dec(x_256); -x_259 = lean_ctor_get(x_257, 0); -lean_inc(x_259); -x_260 = lean_ctor_get(x_257, 1); +lean_object* x_254; lean_object* x_255; lean_object* x_256; lean_object* x_257; lean_object* x_258; lean_object* x_259; +x_254 = lean_ctor_get(x_6, 0); +x_255 = lean_ctor_get(x_6, 1); +x_256 = lean_ctor_get(x_6, 2); +lean_inc(x_256); +lean_inc(x_255); +lean_inc(x_254); +lean_dec(x_6); +x_257 = l_HashMap_Inhabited___closed__1; +x_258 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_258, 0, x_254); +lean_ctor_set(x_258, 1, x_255); +lean_ctor_set(x_258, 2, x_257); +x_259 = l___private_Init_Lean_MetavarContext_26__elimMVarDepsAux___main(x_1, x_92, x_258); +if (lean_obj_tag(x_259) == 0) +{ +lean_object* x_260; lean_object* x_261; lean_object* x_262; lean_object* x_263; lean_object* x_264; lean_object* x_265; +x_260 = lean_ctor_get(x_259, 1); lean_inc(x_260); -if (lean_is_exclusive(x_257)) { - lean_ctor_release(x_257, 0); - lean_ctor_release(x_257, 1); - lean_ctor_release(x_257, 2); - x_261 = x_257; +x_261 = lean_ctor_get(x_259, 0); +lean_inc(x_261); +lean_dec(x_259); +x_262 = lean_ctor_get(x_260, 0); +lean_inc(x_262); +x_263 = lean_ctor_get(x_260, 1); +lean_inc(x_263); +if (lean_is_exclusive(x_260)) { + lean_ctor_release(x_260, 0); + lean_ctor_release(x_260, 1); + lean_ctor_release(x_260, 2); + x_264 = x_260; } else { - lean_dec_ref(x_257); - x_261 = lean_box(0); + lean_dec_ref(x_260); + x_264 = lean_box(0); } -if (lean_is_scalar(x_261)) { - x_262 = lean_alloc_ctor(0, 3, 0); +if (lean_is_scalar(x_264)) { + x_265 = lean_alloc_ctor(0, 3, 0); } else { - x_262 = x_261; + x_265 = x_264; } -lean_ctor_set(x_262, 0, x_259); -lean_ctor_set(x_262, 1, x_260); -lean_ctor_set(x_262, 2, x_253); -x_94 = x_258; -x_95 = x_262; +lean_ctor_set(x_265, 0, x_262); +lean_ctor_set(x_265, 1, x_263); +lean_ctor_set(x_265, 2, x_256); +x_94 = x_261; +x_95 = x_265; goto block_202; } else { -lean_object* x_263; lean_object* x_264; lean_object* x_265; lean_object* x_266; -lean_dec(x_253); +lean_object* x_266; lean_object* x_267; lean_object* x_268; lean_object* x_269; +lean_dec(x_256); lean_dec(x_93); lean_dec(x_91); lean_dec(x_5); -x_263 = lean_ctor_get(x_256, 0); -lean_inc(x_263); -x_264 = lean_ctor_get(x_256, 1); -lean_inc(x_264); -if (lean_is_exclusive(x_256)) { - lean_ctor_release(x_256, 0); - lean_ctor_release(x_256, 1); - x_265 = x_256; +x_266 = lean_ctor_get(x_259, 0); +lean_inc(x_266); +x_267 = lean_ctor_get(x_259, 1); +lean_inc(x_267); +if (lean_is_exclusive(x_259)) { + lean_ctor_release(x_259, 0); + lean_ctor_release(x_259, 1); + x_268 = x_259; } else { - lean_dec_ref(x_256); - x_265 = lean_box(0); + lean_dec_ref(x_259); + x_268 = lean_box(0); } -if (lean_is_scalar(x_265)) { - x_266 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_268)) { + x_269 = lean_alloc_ctor(1, 2, 0); } else { - x_266 = x_265; + x_269 = x_268; +} +lean_ctor_set(x_269, 0, x_266); +lean_ctor_set(x_269, 1, x_267); +return x_269; } -lean_ctor_set(x_266, 0, x_263); -lean_ctor_set(x_266, 1, x_264); -return x_266; } } } @@ -40406,7 +40462,7 @@ lean_dec(x_166); lean_dec(x_164); lean_dec(x_2); x_171 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_172 = lean_unsigned_to_nat(532u); +x_172 = lean_unsigned_to_nat(535u); x_173 = lean_unsigned_to_nat(18u); x_174 = l_Lean_Expr_updateLambda_x21___closed__1; x_175 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_171, x_172, x_173, x_174); @@ -40835,7 +40891,7 @@ lean_dec(x_259); lean_dec(x_257); lean_dec(x_2); x_264 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_265 = lean_unsigned_to_nat(518u); +x_265 = lean_unsigned_to_nat(521u); x_266 = lean_unsigned_to_nat(22u); x_267 = l_Lean_Expr_updateForall_x21___closed__1; x_268 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_264, x_265, x_266, x_267); @@ -41469,7 +41525,7 @@ lean_dec(x_353); lean_dec(x_351); lean_dec(x_2); x_359 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_360 = lean_unsigned_to_nat(541u); +x_360 = lean_unsigned_to_nat(544u); x_361 = lean_unsigned_to_nat(18u); x_362 = l_Lean_Expr_letName_x21___closed__1; x_363 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_359, x_360, x_361, x_362); @@ -41904,7 +41960,7 @@ lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_o lean_dec(x_4); lean_dec(x_2); x_8 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_9 = lean_unsigned_to_nat(499u); +x_9 = lean_unsigned_to_nat(502u); x_10 = lean_unsigned_to_nat(15u); x_11 = l_Lean_Expr_updateMData_x21___closed__1; x_12 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_8, x_9, x_10, x_11); @@ -41931,7 +41987,7 @@ lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean lean_dec(x_15); lean_dec(x_2); x_19 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_20 = lean_unsigned_to_nat(504u); +x_20 = lean_unsigned_to_nat(507u); x_21 = lean_unsigned_to_nat(16u); x_22 = l_Lean_Expr_updateProj_x21___closed__1; x_23 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_19, x_20, x_21, x_22); @@ -42444,7 +42500,7 @@ if (lean_obj_tag(x_9) == 0) lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_dec(x_5); x_10 = l_Lean_MetavarContext_getDecl___closed__1; -x_11 = lean_unsigned_to_nat(573u); +x_11 = lean_unsigned_to_nat(576u); x_12 = lean_unsigned_to_nat(16u); x_13 = l_Nat_foldRevAux___main___at_Lean_LocalContext_mkBinding___spec__1___closed__1; x_14 = l_panicWithPos___at_Lean_MetavarContext_MkBinding_mkBinding___spec__1(x_10, x_11, x_12, x_13, x_6); @@ -42548,7 +42604,7 @@ return x_35; } else { -lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; uint8_t x_40; x_36 = lean_ctor_get(x_15, 2); lean_inc(x_36); x_37 = lean_ctor_get(x_15, 3); @@ -42556,98 +42612,115 @@ lean_inc(x_37); x_38 = lean_ctor_get(x_15, 4); lean_inc(x_38); lean_dec(x_15); -x_39 = l_Lean_MetavarContext_MkBinding_elimMVarDeps(x_1, x_37, x_6); -if (lean_obj_tag(x_39) == 0) +x_39 = lean_unsigned_to_nat(0u); +x_40 = lean_expr_has_loose_bvar(x_5, x_39); +if (x_40 == 0) { -lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_40 = lean_ctor_get(x_39, 0); -lean_inc(x_40); -x_41 = lean_ctor_get(x_39, 1); -lean_inc(x_41); -lean_dec(x_39); -x_42 = lean_expr_abstract_range(x_40, x_2, x_1); -lean_dec(x_40); -x_43 = l_Lean_MetavarContext_MkBinding_elimMVarDeps(x_1, x_38, x_41); -if (lean_obj_tag(x_43) == 0) -{ -uint8_t x_44; -x_44 = !lean_is_exclusive(x_43); -if (x_44 == 0) -{ -lean_object* x_45; lean_object* x_46; lean_object* x_47; -x_45 = lean_ctor_get(x_43, 0); -x_46 = lean_expr_abstract_range(x_45, x_2, x_1); -lean_dec(x_45); -x_47 = lean_expr_mk_let(x_36, x_42, x_46, x_5); -lean_ctor_set(x_43, 0, x_47); -return x_43; +lean_object* x_41; +lean_dec(x_38); +lean_dec(x_37); +lean_dec(x_36); +x_41 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_41, 0, x_5); +lean_ctor_set(x_41, 1, x_6); +return x_41; } else { -lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_48 = lean_ctor_get(x_43, 0); -x_49 = lean_ctor_get(x_43, 1); -lean_inc(x_49); -lean_inc(x_48); -lean_dec(x_43); -x_50 = lean_expr_abstract_range(x_48, x_2, x_1); -lean_dec(x_48); -x_51 = lean_expr_mk_let(x_36, x_42, x_50, x_5); -x_52 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_52, 0, x_51); -lean_ctor_set(x_52, 1, x_49); -return x_52; -} -} -else +lean_object* x_42; +x_42 = l_Lean_MetavarContext_MkBinding_elimMVarDeps(x_1, x_37, x_6); +if (lean_obj_tag(x_42) == 0) { -uint8_t x_53; +lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_43 = lean_ctor_get(x_42, 0); +lean_inc(x_43); +x_44 = lean_ctor_get(x_42, 1); +lean_inc(x_44); lean_dec(x_42); +x_45 = lean_expr_abstract_range(x_43, x_2, x_1); +lean_dec(x_43); +x_46 = l_Lean_MetavarContext_MkBinding_elimMVarDeps(x_1, x_38, x_44); +if (lean_obj_tag(x_46) == 0) +{ +uint8_t x_47; +x_47 = !lean_is_exclusive(x_46); +if (x_47 == 0) +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; +x_48 = lean_ctor_get(x_46, 0); +x_49 = lean_expr_abstract_range(x_48, x_2, x_1); +lean_dec(x_48); +x_50 = lean_expr_mk_let(x_36, x_45, x_49, x_5); +lean_ctor_set(x_46, 0, x_50); +return x_46; +} +else +{ +lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; +x_51 = lean_ctor_get(x_46, 0); +x_52 = lean_ctor_get(x_46, 1); +lean_inc(x_52); +lean_inc(x_51); +lean_dec(x_46); +x_53 = lean_expr_abstract_range(x_51, x_2, x_1); +lean_dec(x_51); +x_54 = lean_expr_mk_let(x_36, x_45, x_53, x_5); +x_55 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_55, 0, x_54); +lean_ctor_set(x_55, 1, x_52); +return x_55; +} +} +else +{ +uint8_t x_56; +lean_dec(x_45); lean_dec(x_36); lean_dec(x_5); -x_53 = !lean_is_exclusive(x_43); -if (x_53 == 0) +x_56 = !lean_is_exclusive(x_46); +if (x_56 == 0) { -return x_43; +return x_46; } else { -lean_object* x_54; lean_object* x_55; lean_object* x_56; -x_54 = lean_ctor_get(x_43, 0); -x_55 = lean_ctor_get(x_43, 1); -lean_inc(x_55); -lean_inc(x_54); -lean_dec(x_43); -x_56 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_56, 0, x_54); -lean_ctor_set(x_56, 1, x_55); -return x_56; +lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_57 = lean_ctor_get(x_46, 0); +x_58 = lean_ctor_get(x_46, 1); +lean_inc(x_58); +lean_inc(x_57); +lean_dec(x_46); +x_59 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_59, 0, x_57); +lean_ctor_set(x_59, 1, x_58); +return x_59; } } } else { -uint8_t x_57; +uint8_t x_60; lean_dec(x_38); lean_dec(x_36); lean_dec(x_5); -x_57 = !lean_is_exclusive(x_39); -if (x_57 == 0) +x_60 = !lean_is_exclusive(x_42); +if (x_60 == 0) { -return x_39; +return x_42; } else { -lean_object* x_58; lean_object* x_59; lean_object* x_60; -x_58 = lean_ctor_get(x_39, 0); -x_59 = lean_ctor_get(x_39, 1); -lean_inc(x_59); -lean_inc(x_58); -lean_dec(x_39); -x_60 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_60, 0, x_58); -lean_ctor_set(x_60, 1, x_59); -return x_60; +lean_object* x_61; lean_object* x_62; lean_object* x_63; +x_61 = lean_ctor_get(x_42, 0); +x_62 = lean_ctor_get(x_42, 1); +lean_inc(x_62); +lean_inc(x_61); +lean_dec(x_42); +x_63 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_63, 0, x_61); +lean_ctor_set(x_63, 1, x_62); +return x_63; +} } } } diff --git a/src/stage0/Init/Lean/TypeClass/Context.c b/src/stage0/Init/Lean/TypeClass/Context.c index ca29e397b2..c3a9953194 100644 --- a/src/stage0/Init/Lean/TypeClass/Context.c +++ b/src/stage0/Init/Lean/TypeClass/Context.c @@ -6741,7 +6741,7 @@ lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean x_80 = lean_ctor_get(x_71, 0); lean_dec(x_80); x_81 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_82 = lean_unsigned_to_nat(473u); +x_82 = lean_unsigned_to_nat(476u); x_83 = lean_unsigned_to_nat(16u); x_84 = l_Lean_Expr_constName_x21___closed__1; x_85 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_81, x_82, x_83, x_84); @@ -6755,7 +6755,7 @@ x_86 = lean_ctor_get(x_71, 1); lean_inc(x_86); lean_dec(x_71); x_87 = l_Lean_Expr_getRevArg_x21___main___closed__1; -x_88 = lean_unsigned_to_nat(473u); +x_88 = lean_unsigned_to_nat(476u); x_89 = lean_unsigned_to_nat(16u); x_90 = l_Lean_Expr_constName_x21___closed__1; x_91 = l_panicWithPos___at_Lean_Expr_getRevArg_x21___main___spec__1(x_87, x_88, x_89, x_90);